[dpdk-dev] [PATCH v10 9/9] doc: update malloc documentation

Sergio Gonzalez Monroy sergio.gonzalez.monroy at intel.com
Wed Jul 15 18:32:28 CEST 2015


Update malloc documentation to reflect new implementation details.

Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy at intel.com>
---
 doc/guides/prog_guide/env_abstraction_layer.rst |  220 ++++-
 doc/guides/prog_guide/img/malloc_heap.png       |  Bin 81329 -> 0 bytes
 doc/guides/prog_guide/img/malloc_heap.svg       | 1018 +++++++++++++++++++++++
 doc/guides/prog_guide/index.rst                 |    1 -
 doc/guides/prog_guide/malloc_lib.rst            |  233 ------
 doc/guides/prog_guide/overview.rst              |   11 +-
 6 files changed, 1239 insertions(+), 244 deletions(-)
 delete mode 100644 doc/guides/prog_guide/img/malloc_heap.png
 create mode 100755 doc/guides/prog_guide/img/malloc_heap.svg
 delete mode 100644 doc/guides/prog_guide/malloc_lib.rst

diff --git a/doc/guides/prog_guide/env_abstraction_layer.rst b/doc/guides/prog_guide/env_abstraction_layer.rst
index 25eb281..cd4d666 100644
--- a/doc/guides/prog_guide/env_abstraction_layer.rst
+++ b/doc/guides/prog_guide/env_abstraction_layer.rst
@@ -116,7 +116,6 @@ The physical address of the reserved memory for that memory zone is also returne
 .. note::
 
     Memory reservations done using the APIs provided by the rte_malloc library are also backed by pages from the hugetlbfs filesystem.
-    However, physical address information is not available for the blocks of memory allocated in this way.
 
 Xen Dom0 support without hugetbls
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -366,3 +365,222 @@ We expect only 50% of CPU spend on packet IO.
     echo  50000 > pkt_io/cpu.cfs_quota_us
 
 
+Malloc
+------
+
+The EAL provides a malloc API to allocate any-sized memory.
+
+The objective of this API is to provide malloc-like functions to allow
+allocation from hugepage memory and to facilitate application porting.
+The *DPDK API Reference* manual describes the available functions.
+
+Typically, these kinds of allocations should not be done in data plane
+processing because they are slower than pool-based allocation and make
+use of locks within the allocation and free paths.
+However, they can be used in configuration code.
+
+Refer to the rte_malloc() function description in the *DPDK API Reference*
+manual for more information.
+
+Cookies
+~~~~~~~
+
+When CONFIG_RTE_MALLOC_DEBUG is enabled, the allocated memory contains
+overwrite protection fields to help identify buffer overflows.
+
+Alignment and NUMA Constraints
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The rte_malloc() takes an align argument that can be used to request a memory
+area that is aligned on a multiple of this value (which must be a power of two).
+
+On systems with NUMA support, a call to the rte_malloc() function will return
+memory that has been allocated on the NUMA socket of the core which made the call.
+A set of APIs is also provided, to allow memory to be explicitly allocated on a
+NUMA socket directly, or by allocated on the NUMA socket where another core is
+located, in the case where the memory is to be used by a logical core other than
+on the one doing the memory allocation.
+
+Use Cases
+~~~~~~~~~
+
+This API is meant to be used by an application that requires malloc-like
+functions at initialization time.
+
+For allocating/freeing data at runtime, in the fast-path of an application,
+the memory pool library should be used instead.
+
+Internal Implementation
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Data Structures
+^^^^^^^^^^^^^^^
+
+There are two data structure types used internally in the malloc library:
+
+*   struct malloc_heap - used to track free space on a per-socket basis
+
+*   struct malloc_elem - the basic element of allocation and free-space
+    tracking inside the library.
+
+Structure: malloc_heap
+""""""""""""""""""""""
+
+The malloc_heap structure is used to manage free space on a per-socket basis.
+Internally, there is one heap structure per NUMA node, which allows us to
+allocate memory to a thread based on the NUMA node on which this thread runs.
+While this does not guarantee that the memory will be used on that NUMA node,
+it is no worse than a scheme where the memory is always allocated on a fixed
+or random node.
+
+The key fields of the heap structure and their function are described below
+(see also diagram above):
+
+*   lock - the lock field is needed to synchronize access to the heap.
+    Given that the free space in the heap is tracked using a linked list,
+    we need a lock to prevent two threads manipulating the list at the same time.
+
+*   free_head - this points to the first element in the list of free nodes for
+    this malloc heap.
+
+.. note::
+
+    The malloc_heap structure does not keep track of in-use blocks of memory,
+    since these are never touched except when they are to be freed again -
+    at which point the pointer to the block is an input to the free() function.
+
+.. _figure_malloc_heap:
+
+.. figure:: img/malloc_heap.*
+
+   Example of a malloc heap and malloc elements within the malloc library
+
+
+.. _malloc_elem:
+
+Structure: malloc_elem
+""""""""""""""""""""""
+
+The malloc_elem structure is used as a generic header structure for various
+blocks of memory.
+It is used in three different ways - all shown in the diagram above:
+
+#.  As a header on a block of free or allocated memory - normal case
+
+#.  As a padding header inside a block of memory
+
+#.  As an end-of-memseg marker
+
+The most important fields in the structure and how they are used are described below.
+
+.. note::
+
+    If the usage of a particular field in one of the above three usages is not
+    described, the field can be assumed to have an undefined value in that
+    situation, for example, for padding headers only the "state" and "pad"
+    fields have valid values.
+
+*   heap - this pointer is a reference back to the heap structure from which
+    this block was allocated.
+    It is used for normal memory blocks when they are being freed, to add the
+    newly-freed block to the heap's free-list.
+
+*   prev - this pointer points to the header element/block in the memseg
+    immediately behind the current one. When freeing a block, this pointer is
+    used to reference the previous block to check if that block is also free.
+    If so, then the two free blocks are merged to form a single larger block.
+
+*   next_free - this pointer is used to chain the free-list of unallocated
+    memory blocks together.
+    It is only used in normal memory blocks; on ``malloc()`` to find a suitable
+    free block to allocate and on ``free()`` to add the newly freed element to
+    the free-list.
+
+*   state - This field can have one of three values: ``FREE``, ``BUSY`` or
+    ``PAD``.
+    The former two are to indicate the allocation state of a normal memory block
+    and the latter is to indicate that the element structure is a dummy structure
+    at the end of the start-of-block padding, i.e. where the start of the data
+    within a block is not at the start of the block itself, due to alignment
+    constraints.
+    In that case, the pad header is used to locate the actual malloc element
+    header for the block.
+    For the end-of-memseg structure, this is always a ``BUSY`` value, which
+    ensures that no element, on being freed, searches beyond the end of the
+    memseg for other blocks to merge with into a larger free area.
+
+*   pad - this holds the length of the padding present at the start of the block.
+    In the case of a normal block header, it is added to the address of the end
+    of the header to give the address of the start of the data area, i.e. the
+    value passed back to the application on a malloc.
+    Within a dummy header inside the padding, this same value is stored, and is
+    subtracted from the address of the dummy header to yield the address of the
+    actual block header.
+
+*   size - the size of the data block, including the header itself.
+    For end-of-memseg structures, this size is given as zero, though it is never
+    actually checked.
+    For normal blocks which are being freed, this size value is used in place of
+    a "next" pointer to identify the location of the next block of memory that
+    in the case of being ``FREE``, the two free blocks can be merged into one.
+
+Memory Allocation
+^^^^^^^^^^^^^^^^^
+
+On EAL initialisation, all memsegs are setup as part of the malloc heap.
+This setup involves placing a dummy structure at the end with ``BUSY`` state,
+which may contain a sentinel value if ``CONFIG_RTE_MALLOC_DEBUG`` is enabled,
+and a proper :ref:`element header<malloc_elem>` with ``FREE`` at the start
+for each memseg.
+The ``FREE`` element is then added to the ``free_list`` for the malloc heap.
+
+When an application makes a call to a malloc-like function, the malloc function
+will first index the ``lcore_config`` structure for the calling thread, and
+determine the NUMA node of that thread.
+The NUMA node is used to index the array of ``malloc_heap`` structures which is
+passed as a parameter to the ``heap_alloc()`` function, along with the
+requested size, type, alignment and boundary parameters.
+
+The ``heap_alloc()`` function will scan the free_list of the heap, and attempt
+to find a free block suitable for storing data of the requested size, with the
+requested alignment and boundary constraints.
+
+When a suitable free element has been identified, the pointer to be returned
+to the user is calculated.
+The cache-line of memory immediately preceding this pointer is filled with a
+struct malloc_elem header.
+Because of alignment and boundary constraints, there could be free space at
+the start and/or end of the element, resulting in the following behavior:
+
+#. Check for trailing space.
+   If the trailing space is big enough, i.e. > 128 bytes, then the free element
+   is split.
+   If it is not, then we just ignore it (wasted space).
+
+#. Check for space at the start of the element.
+   If the space at the start is small, i.e. <=128 bytes, then a pad header is
+   used, and the remaining space is wasted.
+   If, however, the remaining space is greater, then the free element is split.
+
+The advantage of allocating the memory from the end of the existing element is
+that no adjustment of the free list needs to take place - the existing element
+on the free list just has its size pointer adjusted, and the following element
+has its "prev" pointer redirected to the newly created element.
+
+Freeing Memory
+^^^^^^^^^^^^^^
+
+To free an area of memory, the pointer to the start of the data area is passed
+to the free function.
+The size of the ``malloc_elem`` structure is subtracted from this pointer to get
+the element header for the block.
+If this header is of type ``PAD`` then the pad length is further subtracted from
+the pointer to get the proper element header for the entire block.
+
+From this element header, we get pointers to the heap from which the block was
+allocated and to where it must be freed, as well as the pointer to the previous
+element, and via the size field, we can calculate the pointer to the next element.
+These next and previous elements are then checked to see if they are also
+``FREE``, and if so, they are merged with the current element.
+This means that we can never have two ``FREE`` memory blocks adjacent to one
+another, as they are always merged into a single block.
diff --git a/doc/guides/prog_guide/img/malloc_heap.png b/doc/guides/prog_guide/img/malloc_heap.png
deleted file mode 100644
index 4449fda0dd0b7688b32854e8e32f8c45c505f5f9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 81329
zcmY(q1z1$y8#Rg|AV`RGgCm^|NQcybbcfR2jWkF~4Bai#Aqa?sbazQA-Jx{n-Q(~7
z-TU3=QOB7%bIv~dt+m$so-ic^DJ%?93?w8ZtT)mUDo9Ak#7IaFRUe~*Pa+b(`hk}R
z&MH!3Nae%i+u+S3b5VIwB&5pdCpU&D;61v7w6-%65_Tuz?}J2UY%(OI`}{W&qH6AX
ze=^Yw)ViiV;Ka!6%YS{yWVHVwT=z9D+51Y=UF09lR08j_1OB3)mCt-d`YbFkBk=i|
zgy%kOWYF!VfET at u*fVZf>e>0 at ZCbC*Ietzzv*E#1&Kfc7mzW(K|Nay`v_kX4`rjK4
zZc^3%J_i35LFL;1&zszS4wV0M44kP0AI`wYzz}0yUJtXHEK%RkC{&=BH;T>A%j*n=
z+o}#&O_w+IncSSV+-^jFfx{Oo`@L^qA<0RJ3*5EvO_9?H)xZpU;t)gP5M{o>2(<+7
z+tcZ)`@3t|AMgL>8TUl}dL39}J-xFCizI#H>Dj=d_4V~Rq*!_??+sq!P&yC$V{NIQ
z1 at h|LZhLdoCKSEn<Kz8;724HiacOC9*P*0YrcKBr0XEC+!J at tV?jodBvCt at 1CMFe<
z!#ejvBdkrHs#n%i78!?LeQ~s1&;=fLc16>#-j`0d5iAghxRaC9RJ>zkgX?a8e<E|f
zXdo(SxBY947GEEsB;ya(NF#%XvdL_TgM)Hd14BcTEuG4%-I1r6b?gT^PZ?J|E*ssc
z46^H<`|?FKiVGrb&oz2DrwVy}7be=gZ0r&W^)ty|o{bqwd&T@%8?B0v^=&Vlgfk$<
zm3q~e(|j0Hto@)&-}f?~++|esXuB{QH3zXxhQwpW7_bDn3|?ihF1pPuuX4eIR%Fp4
z!xw}MuQK^v<21g!?YlT!4OIGPCivD%ykdr&<P5#PH#axbogB|_M8rB7!vCEL#*z|%
zOPf+PdeIJ>=XgeNbiv+oqhd2<`kzI#<=R5y+S|o!U0%i+5{Jn&d7kFE?Jw}ZHUIZL
z?vtsvQP1!(3rc4a2q3YBk5+%|H#27$*!^F>{%-rbKT2S)C_KdQ1=I|~0`XOMw*k0=
zCDfDJMPJqP&mplz2BbB&XTQ?}{#(=_Vo@^%)ocN&(j;M+!<ZW*+4giQ|L(pM&Pc2r
z at LR#t?aQ+13+S37;cG6Qn*Y8E2VaSe*olhzr$!N at V;!^m-d&nIt6C$j3Hx_axji#Z
zo*LM5)ml4UzN at X=A^9)=F8R{<%Q{1j)bx*%S8$2o#2vqzLn(?%&VOMMilWN#`4LY|
zrhr?NK2MEm$eY@?$R;*le~hV}p32~P+{(LF$lqc+KE`mdvn!9BAVDk!mvbsS^x52m
zLI&^H+yp5))}_~vzu&9tVgKJv#HFSdpKTwuCK%3t^Y5Lqoxvx9YM{E1zrZsII{Dm_
zm33{0Z1S2X3jGY?bu=)CqhF!%#SUsCQ at o4vG1w8>-i^(0h`B4G`Z~;dI_|+3CVc{L
z;l%B<*A#W*Lm1XUPja)!{)#EVJpEDQ!8J~V`{Dy*^oTv}5;D15LN*<Xh4KIHjs)CY
z(3^^ry(#zKF4G5pMT#Qe=)o@%gw#w%o67rstA_ko)TJE=#&PqCLWfA8{xH7rtq)2J
zV>9NRvNdk#{d5<<zB4|}?5`>aJH?`^7#UUOS0E*?9N}!kCz<k_uc`j{J`q<uq<%D<
z;Zkr`oL;8F?k=M$%T;{Z`EYcaDx1L3 at 7!kIv#&E})?e=VUUkkUB~9S-1vjG#<vqex
zQ-hDMbpmO!d90 at f={(5(+uH&I33Q<b2BH(`X$yXrIJR<sfp9|akN(hR9hB#?R~lv7
zL8(w}y7v at Jn%Bl&*vX?8{wj{|>Ps<C>9>v(7P1-QYhEpgqDJBLIk4}{D>f*kyqH~{
zuVOqEq(H?^Dno~ua!p5UYeQCYj5l4+v!QQc3cYb{ddyq1Zu36e7jv=u0!panDBHMb
zO9f{iseF}^2mjfXxDw&m9QEli&7tg at U#cNL at fMjm7Q^~CiXK+c_XRC&78sTBD63SL
zVtrjWc1al44a`=*D@*x+GNMsRWK2O at G~wKXp7MawdGICo{~ZhrM2 at QkNm*Wl&SJ(d
ztUHTZ$r)i=lQ_N_LWA-}wBr0|X3|#gYaUE_W!a>zy*vMR&fuX>?dd$uC4<h2v3+=f
z*^WqdR at xRLz#IQ<A~V>;KEii4xI}hVuFx8)npP8rn^Gg06xRBU<0f38qh319IIpIp
z&++N9ihrVTeVSd(q-powQRZiv_kX2<ezq3b9-=Kd(iS*L^3|2<eJa8!aP*eUdk-C2
zbn&30Ktnk-cM?e{MWaIR3xxCk+Mdq9^k1eP19_JpKALQG>KXpb%tU)r=(dkN(&m7*
zVT?^q(*zx1v~#F<-{XvJrmo3(?rH9(V8%)^=?1qJ_PV^|7xjKlr>W5W>Ia;JO=zG_
zFCTq_-ktM>-(onrqSo}L<ED#=nAf3TL>yEu`9xb?Lp#O%C9DB+hgiot?_>bGyryl_
z?CLru^!Td3i1+Y$Vp0;_Z=34KiDFgy$NyEsBJvtB7j06qwP}67#B$vq{d}7l5FDWs
zrKfMJFFY1ToG$AI*1yCrj^D282`Sv$McsCjM4s0AUrs#T&Y+;u%ay4%>cW_{t)0)4
zPv?gE-ds>m{41akPee*x^t;z>aNB1q%zU3Fc+?9KwHWGPCOK%0#o1aMs?>)hVh*PD
zr+=7tEi$nm?NDRstPSw at nD9rVWH{ZOP971yW_kSTzv!hz<R%p3``hzm&Jn?C7&GyQ
zxCcLK7Ub{k_Ix0|+EpfD<$<Dl*&K#}oJRkC!ZC%Y*_Z3d`rpP}7d$p6weT1_X0)`>
zR`cQ&;?@U}2R5_)D1-hviJ?Ta{87|1QoXtZE}ubZ6NjFg-}Wt&?)H}d>^Y%>xS98V
zfAuK{{58R<aR1DtvlB(}^b9rs9YOu(m$t7)LdP6dcL8z#9j;bJfJ<9#J~HJ&{AyPI
zi*nbePbX;%;?;q{XWgMEJKS<Bt-oysmkQpOe)+Bv-2dN(5hAW}a^f=ojH;0uE2a`x
z=zKmz-qH529qkznwCr1%n2SkUHeRK$MA$*-Sim?0H}?8wkNY*M%kk!9+yQ^!p3p=f
z{;ql_?@^4<8#)s#y-lnVbN#+FjyF|-^AbS>jmd1fC6Iqv+wgw@?9`S-j>SIBKsCuT
zXPrHS;Z2dhn%9PVeQp)l)X{pl%rUQJV>iDuwT@?Z;YNa&!BY@{xieDqy6 at mm4qh%5
zYYK;$$=4RWBsg)q$Fk(P){&iD(S(r~?O>J+Gac>;Ia|&$u6Yy%Eu`UnQdFDW^8ibH
zy*w2am4K)JmF#{)kVZafy@=NJ)FknA9sRmD`lg|*Rz#UD+2T?$)^J|ynkHPmx==1D
zO!s4WO9uCfcJya8_mBR8wASs?Bov7uv9vz7r~L1e%E?Ggm$JIT#~N5wlC`J`kxofz
zv;%p%ev!OF%OLSSpLeS=8%hJH0O1?CPKd(GK+M%(bF_N}rx;bH!-{e;<Qt3%$fng|
zZ_IVsBfTlJn|M*0+?#^MNOPzN0KwW;ZuEED|6I$c`|W^oTzWb)A0J;^*0LdGcg*nY
z7*8XK;bY$<gQf$U)NjR89uZR#7`)$CrMHtaFZxlI3JA?nH&}-dD}ZagM1jaSsQ%8E
zCE}zA>wMLmn*LI_Bqst%t_+cle2f<qXV?gYO=q5xjMZeHY>ej*R&_57to at Coev8ML
zCEp}1$;Tg$^c1I5<4aX6|G(V?i^5fgnh%qwa#_ZuM&WZxhG3C^{H56!`vLm#!E<!Q
z=BycJUOoEvoNl=$?meQqCYa8g0nX)9^&5t>Ma^;y(E->^`TEl{P15otLgS23yzqUp
z1)~#b0{WPi-?jD?`&R#hL;p(}Ab^qpoKa+}TYBiRmGdz`sY9AYqg;m(K!EgbcJpt$
zqp7I=-w2CD6tf>JVrIL at Hb}2L!v7pb&ph*vZIEdFU#hOGM3{xEamJ?A9NC4KVKtBs
zYuC1mP7x;G_5VA>ebTU0wNT-y5pfurot4-5p6%t_zimxHZ0n%>msm^=r$ewh8D(W<
za1<gcmH9w?Jp&-=1#(JNYWmxMTgHuQEh&L+XLWzEij#h0^@1w}W?R3W1TZye(7#_9
zs$nA%Pgj7RZX*o|>~p)!LfJXgenHR!WFpg at iDJ^b4jhqQG%9aueV^0B!E6!zj=Q^S
z`}zB`-}a`nRi-<JSjQz5Eq8C5FE_|sJ)T4mvW^eI?h$ST;rr^!@!4dhGpqp{c7J!f
z9xFwOE`|lEG{}o`<p9v7=-TJ{EYa`&dNFNZnUeICRi1TQhWAllTw)?^JiX%7Sk!8i
zfC5|n+B3fUn`6`d1jdq>MepOGs@?J*{ed{bMcB`@TBCO>ySwWgS6#ln5E9aj;@@HD
z8yrj+%atk((}<^&Ukimq#h_x5Zq>~6xR(FJh==|Ncv)e0zBj*~psElnMdicw_!Yd<
zXsS$m9Fz`MD<rOyipC=ub#k-ejABC&8!D!s^;>+aJWs8#1a1yG){h3*HB&cNBG{Au
ze*djdUcZsH@@AERp5ckxyle6vveO1nPUq|S2G{lcWWDj&IQndFmABt*7;S%j8#C8x
zbg%S2n>FW8tLwlP=uI`xDjp^xrm<XTtk3!n;hq{Hz(>GXjkTujqgj~+*yp(H?22$?
z2wor>&Qyp<?o%q?iyQ=liWYq^Ygw52Ek`kss=CeRd|s36V!!#ioCz;Q_OR)j)uc=}
zoCG49#4_frJRX~yr<l$yAAQ|&e=U-j{r;C_*AwmLvtQPpBe)RQmhh*9n~T+GsMDJC
zytxUo<fD9xi-YBoAdYsY>%X-FLFjlV%?$KClwM`z4y_NY?z&Dnq0kfW|NIOKf#kT?
zQ>1l0xAO}Oh|!-M)4gBxaho-YU{&*<QFF*9VAik*r25IY;c#=cThSE(-K*@OWV#1*
zXrh#WP6K$@S0=1zp|g~m(`o(j at 3!wePA4_h(M8*k2Fn+GuWer~w$DXOo+}Gx`Q3TU
z`(CaSsdIRq{b8Ke^ZF9i at 9-C}F6rB=Q`@LSgpt)AAW+et+3Ff#X%;N<4rvLC31iQ1
zz+C;w`o1JVQ{-Bf-rM8(R)oPvADr5yABQ7jploQuHRhZKSozZeil>JK_E~D at ->2*N
zoKEsT3{VNIa+)<w?vv-4e=(5EKJD at 1dcURRJ>?Au1Wz9wRc9Z39GFO5_CFUR>qeC3
zy&wB(^~4+o9|VEV{Nr_l#amNf(iOhm0oMr_y+DpuXCO*3&LQRqy8&mLR!+UY-S^|K
zeH0wv at qBi6mOs30?LB^!u+P=j3)kVMm2l<>mN<LLF6(67_pwnF0y|si=NxX$i14oz
zMp&SLbS4#tluLTAelrUIm1j6~W}I#T9++X+xs=)7M`2NKGdy>S`8_fe9>G`~CcTz}
ziFS&5Tm6wE=KrXma`fGX(Pt?gGjA0CshQT}zyD`jOpqWp&KLbOQH=MS&NW6}9om)3
zS0$ff3kxLBGw(Ms$8~X5Haj<V69`=@3Y{i2MBkqLR16$l3#=zek$k^5r%hkA=(gx{
zG$L|eB<9qC#nU at eX*}6Mz#(?Dcz>t)eZkZE^5%GC5{n%|SGV>mA8}P_7$Td=<$e8I
zKoqa1Kx&kKxbe)Cl>r6`Dq7H~3eQ3zdB3&bYVjf^#9^q)MDA1Ykx9m86OyD#EW9qL
z%A^^0xISN$kfb at sc((rs+KAGW0B%&Hpti^52Zx3Fvbx0>_(kD)BUeU;Mi%_|07*Sf
z%amc9<&$|?VAz)XczeW@*M3u>4C=yq3Q>DTG?AXWsGj#>*OG;@X<*+LV3i*yN;MUw
z__f$O2TKqIPof7{-0+AwB5;f&k48%)7jvIW!dx5b85Em1`Fd^+ijT*zFG#v#`sxE8
zj<$B>PPhq|5%{XLLK-HROhEZ$T{ptv`w>1$Rz;b6i8QPu6ZQgYWZVJ!o%%psw*HUj
zaayK>FAZ#;<Qka`rsPmoI{Y38#lh$X`oN^np5NUu72npU!0>5|wv3%2o<%jj2*MR?
z;t`iYHv|xdOSI!7UYH*4t1?i)wLY0N-W&}y*rDNVM2p<H>xRbgQ8Lg1gqvs_#RuDT
zdHJ at pF`2?`ZjA5=7x>)@K&Rk^n}+3i?_&lG6i6Tgv3r%#+Sb<&?4NwPWhx6_4aL>v
zv>0N#9%yG~C at ascT`5Z;>==sHj(Pz6vm53=U7T*;tUcWq#$_sAY4DI2;}K=C)&b6R
z-QbA(dZMP9hXH|$fzjp7<?$pd+nz(}zGE8-(U#Tv2}<SGCqz_DxY#@b=gh at 0c*uj-
zrc6hiZ{REWjU&y!up!&;PMheYvn(83UoEB{TBb3)g&IE)%efi&iVv(DGndW?<KHq`
zdr>0JDnIj5=4!>*8 at D;nro1#ZnJ7{&(aLaJ at Nfcox%A;fpnm*-QwqKHy*<@*RcgH@
zVf?p=X|FTWNq+Kx^BD#3J^NXxIKAkeX1w-LwV*qa%vy_ODc=TU%ISJyxYpP2sFW=!
zkB23kG$_nX0x!uxiENNd<9Z|iCFR9GS!FUZ(g56)&7;BE8MAa-7hO!!JCK>`8*)%I
zkVJNha!=gU+Za%f`8I|#OU<;O5V1`-%q>9s{WqBsvi at ZRCwyGQ7SCj)AQ)yPE=Te8
zq^5qNqVT0eVkDh>T5m9sUJ>N!U|-!{!>$^m0e--jl2*v1eakH!02k`VEHDK<&uv;=
z^$e8fFH=2N!syk;THz5j@`w#Hb~gCmhIxmk+cmtoI{V8k{t;W<bhWgiS%n144 at QEt
zj!cV$f^=S;9>AztP=r=up5*}}O7gziE_5yL?xFH4a~8L&TSncU`tr`<8^VG%r2pi{
zP+X0DVIUZ;1G6dT`|~{oJ735|)_Q~PzWb&2WWNoKiUpL+Dol{c&UsMaHi%N^$0?d|
zeV9?k-*Ud-wVM&i=e$w0jZaz87@>pMg(4=KxLTkN!8xV_Jc!_OjX-+j_w?6(W<b~#
z`oK)3%ytZ5QQJYk;~}1s4^N{!2sRD*)zz_X`CWIm$g#K+C^rlb$TaKF$Q?eEKOeqz
z^clcd`LWkf`pxnu9q;dd?*CsD80CR|r~+kYdmoV&0R1Z``^0;5d%k!y at 3y#29y-AG
zLr(JmMj|?Ez(pe>qM!JL at aHOfzl{3NPol_tK;oO6{EI6^p2HlGd&8pFs3oPxk!eJI
z4SqZsi<M=pn(BbyFn#_&GXq=pP^)7F6wKso->c%fwy5G~SQqc?>Lr`+uB;Q6hm#H>
z*czm#$7Y_wy=~x6bY34C5*#A9AE>Krx7X*uqb?=0k5i1JVg>f<#1rWedxa3f5aEoA
z`P2_Mywj*CTJa^mowXxvL}9V20-vN5pM&v$C(+<~E4=u53PThhUijm18TD2Z2fAR9
z%e8o at Vf&*~;Vuizew<u#O?@BN#Q6bmMrrJS=A8)|b?-^XFOX&+xG|f at tdQe~a{&Cr
z8bYaAOW>beVxH}zL3Xc>wV@(%a}a1#GpWI^xRz#Ju8ddib2cjlC at 9yfLnv4v+~S`?
zZOqxh at Mxicc&K%)FI~vC_XIt;&KKWAH2|F;mwj+RtI4y5i5UL1 at nR*y>9C7v_XhV}
z>j+p51I~Z9$vN0!;DZT!bs!O}Nk7$7^mxN^X(Q>)irlyvmx*e5aoc0r_wT>|gB<|<
zkqEkf1?nwKNQJ^<Eq3RDwee;Ea9!fCFh<17<fHJ1601V}>@z)Sq;PkRG{?U+(>o>0
z>BxiClpbrislq-DCT3<OQf0H%=CZl4NE3i*l)4bx&e8fW2a{sk*`?OD38ITEr;TAY
ziWstWHDYggB4P9tq$NadPkc4(aQO=dM7hb&%BtjKcUrOh#~%OoT)neH9tfh?!3pd;
z1gW1y%E}>*EqYAnziQjhjLkrvqJ6qGCN5v7B}$%LZF6%5fv69?|7}Z;BYg1*+@%jT
zkUcUV-+ at v)Fu>lz!f7 at bv*>%x%KHmpI*tEwE2$wiDqd0QyS7Jm8>SKg58Jm;3Y5u_
z5wO<N^EoC7oyH9+oq4s>MaYJW8VV4%6M(Ry3xw+YTp|V%1Zc0};#h=MGXm?ab^dq1
zND$nPk2spn^!QkGj>x%WDI!>iz;0?6HO_i7l_K-<O~x_bM?T!LrkC&kXbDAk-GRjU
z_;FS#_hjcE&;fW;q1WW{2pLCJ at CgK=8^VqZ|7pmtkOniANN2Rv$?#qfu87kd^rINu
z1r_7>a9;V}0RK;_Xugt3e3FoWz{Sy$m9NJP42AIt5 at L^*-j)edGQYE_3~mJQx8#q*
zBH+&3X%vD__B#W75tnc>fFP{>>M4wArk~W2Is+z{OMw7<Ot>j;Ua}j5JT>L4L`*zM
zO>X+A>(Pj6bMK}Ow_KHy)`3dbnyp+JH|k(MV2Z_dcFNquV at uj2ysMZVOa5qizPDFx
zv4~52{#TJ;<Q+0gDWW-ApCmZWALc*k>Zl-(suG1Pj!d?$v*7jI@{_|kJ{fR~D<@JG
z>G_<h17zoAGM at K_zoEV9=lFP@?vMB5CF-S148X-8WB&pM@}RXE{}VOGxzSvmV+rqv
z>{|aL|K|b46N)0Yc`bZrpCj1D$58#e)dMW2{?;y*<4urQdH~3{79);57W+)ZavtFk
zEdPR8nuEAz3%GKnCeu`TtGCtOT)opU-)1jBy%oC}A9ymwmP5_jS|XPLl&hTsph-nb
ztH at dIAZYTFXy9uEpMHVC-3Rg~q|Lx&C0<c at Yz%qB at RI{3F~@6D2K-nETCWldca75n
z at es^du)+G-(U+8~J<*!9Tfj*%qY!cP>;V~~YbEVK+;rf~q2;{#DG+;{phfvLaZ}xP
zLAs0N!B7{D$PG2?+iyzInr?HBA8i0ZZ?HohX(dOr!63~q5uGkbn873DV at A2clv@9|
zLj)RqSXEELX$IGEomA(qCs!@j_q$d9_1)H524SBJ)y<8_(>I7lM<<rtLy^NyJXfyV
zq9SSFGVHoR75p=HKmML9037tpGo9OZ4S?S1H`{{xR#sO30u@(r<}o-=i1L>*?P}Qc
z=EZc&9W6jxbxeeEuoggJCz=pF3tat~7xrLvxo<^tT3IkqRzDzP$K2d_djPO)(iVWy
zhKpE?py5A%ghd*H4j5o4wMEIrthIA0&DVPZ+dm7V|5OdI{dc5%4<hO?bGt<+J55{&
zG5`FkDV_7&{o(}l3se=vH+07T!Uq-^=s{wh;TZDGdRl=_E`>T-&(o3`0d%bR|I at 4|
zq>Hi~Ouc^F*1l=+y#+}LaJXLDWSwW^h+;k=@n0{|iYtPMJt>h{b4L)9?nADD0aP6v
zz4Z9sr3`lg$Wdks4i4^Olh_<gg}Cla#DYDyxERluty%6#Ljf{k5 at -wpa<A&*cX_nV
zl>4&R1ALHV`Lp27m$x-0prKb~HOX{J-uY^0vb1n|mAHc;0(8u*?yfe{?YZuKfCM at Y
z at aOhIlb1t~VJE6}o6^~ZQ+O2%J-rkVty!HnhbOBn0l9yRt&qvDKEPwbqJoY{T?q;J
zr|#V~y at d&0+uPe+)7)^AP8jeL^iM}7U1q{=O!A(-mRr^P5g!5q9)96<c6Oe`L^1t9
zkX5Xt%p!bqApTc$V;|8I!+11pvdoSD#6;xoBA3hdms%oP!s9=i0D{;9 at RJUw645)G
zb5=Zk7UZ4nbH<qD7 at frW&Px25HV`PjjhhV&4o+;YdI+j5{QX^<e0jV%0BT^~rh1Re
zME6FpcV90`cy}LtcG+bN`jT)oF{%teUZw4-bYI6}Mfs#w7nyMq+!7+z82eKzjeBG^
zhcnlIDvBfmOuGAuVfy=`ua~Z6mL!e#)3~F^BXr3}islI(XcR6n2srwE{{1^v9A%hR
zYaG-eg7y38QIb=nQ~2(~aI|YdSs=cJn*w<C>;b5xkl~!8+_*ewx}Zl@$f0&F14rCz
zd(uQYAzL+X22?fol#EZjqYj11QT>rEYVUiCBrNNcamQ1n(5c}*!^pm>jw+7F>EUT!
z&J^Xleu3;(?v%dAEGJivI53{HSJnjt{L^NunOpg=Fh;C%F%QwUPeea#e}8YFCMy-a
zHaE~kX|EGWJi`|F^J#jW0)7$vjTUDfB=&}<i<g_(><CGp`qeXv=1t{Xm}R{vgi6xC
zDroE>j9|g<-skqr?`oT#HC>5=VMH(iJt4ApYhuYe;W6pe;Nh}PKU;rFFLdaBLwIh)
z%{_)F78f<aGDvw!iQ73E#MbUDZ?+RDZ#Fd9sRlHT8<ZDL_vYUvVx2J-dQkRj_M5ge
z2r(~^!TtqaD01`F4l{-PC#P!w2v6Aw at Gu@V)t`(i7mqQZF|jkLc<x%%amu_l?QVFe
zR_A at ze6+4rF1g<Sidg$o+hUG5nh+XalN;AbF$>?cW_jfj0XCC7>0?2208lhOwcH#<
zggEObVBrUX!Yv<t?%-E0Dk<OLkNPl|sS`aH+W2Jpg`K+ylP{AsOlw98J?D9$G7=Zt
z<6QIcskfn2<#j6<0Mkfu-J)TWGXNM}v0({$X&~`o_~{(}G1l>rYF3WK*T)bHRMQXa
z9ZIAK0q1r~;QgPX%;z8AAwr{Dg}MILN((kkr&FE_Kp!bHWx#Ta3Pb6q>c at v!)YF*~
zFN`oqiQL~fs}m}b6W5$NV8?viM*1u$PI3vXRD-#C3${#Rp%(CuE8m-ZolW0_j|`MT
zo+qQRL at OZiJOt7a49j08EPOvVT6jECF+M!lA>`VU0}qxjV=6A5CKKE((*M8 at y-+NF
zB}bDgI50d3#$_1x3rQTE#x7KZ6oWzRrr_Z at 9WDdA+FU1cQ#z&oVXn(4hoQpb9;98i
zKTYQgRvWFaBGZuHA5QDKWg_Z-+Iy})@Qa{*fKeAG7rk>C at KYel8;0X=*o6;-s6aU>
zdHRVuX3wUV?>!Jjr&0OLWDZeHg-rP=_)>Ip{*3mu3sfuPaEJ|AaP41!dWvcu&P0)L
z*oh*8>V%)prrS_NLS&W~Qdy6vLfjBN%TG`fg@;YrC*5PtlIvo$0kb&Q3>f4QKKr0C
zRD^*nq^VZG6<QorEK#K6jbf94(-f4#KAQff3o8%JF^aJRRH=NtP^oCjFVL0jy8ObY
zU07Yn#3)ukK+JGxM|V1CLo0>0S1#R?rlTcbkm at iDL!_eA$gbJ~(a=<K3q-|Jo%S-_
z7RKyjD1AM*Nj&oAavO8Skt82<-S<MG)ljnaJeoO&rRqQ3$ZDkUh>>gz8HVBU$EAoL
z{iz-)S?PMr1!3sKqsvLq{6htlK+@<yRIG8_I4vn_ObCMD!Q~&Jh%_myrO65AP2V7*
zlk&Ng!UM(i*UO5uAKr`tT_HzEx!2;WQG>Xtfz4Z`86`1`Eu?MORnuWNnbqg+(8p$0
zc?8>Hq>h-8RGwtTy)S<rVxU8#UUCba_-4C|zxj300A%@ffMcNfKhoOfo|!)QNe4?u
zuvyl7hG`|J#n$J!cm+Vua^5F#WQTL*4T{?>DxN$YNl@;j&z(y!_a<^l^9CDb<rzE<
z<2^;+cJ8J5Xn{5b>S<~2H-;Vf2V$5yf&r`Hs->NfE03y%ik#0mA1wvqSOv at EziE?a
z=fzT_V=(pw9p0WI6;advZbvQy;8&6_5?^j_{3LW{-iQ`Fn=vkl`NZ-$<LemNfDZOx
z6<f=V6NQf$dK-L*R4yHrR54}vQzza?iu{-Zl$+ffErt6qlLP&}dPMjqHvSpo at kI#n
z0~3>g$g1e0*pP}!OX}g`bcR~uHq(jFNDu1-Sq9o(B^l{-f&E6+0d{_wm~>T4hz7z2
zkskuCK|_1A`vo28h~P0?qw3`OOaG_UbT;S8lnNrZE_^^@Pz&RD_C#(WB`+-XAsK|6
zfilJKAQ=~HV}N5eE39bEAJO}e{|YZL1RDN7YL$_TAh){Df9LHFbpYi5Wf7^g{AaOP
zM}qQW*qKs^@)f1~(gRi;un(>TX6l2Rtz)Rya^*cIPkV?`)}YW(r>!O}64*C{Vv!gW
zf+-}5-+S_C>|MW-2nI@|l&5!*4rq$nr0XPiesUO1zuqaWuwsACy(u?UD3xq<K4ToM
z9vmN at UXPp-I+||Xi4BqNJj7EJ%;`t5v$>rk$+a^47FsWB10p%QTL??Zv!!nUKBr9i
zYfHl0KQ2_8A(s at Pf+lI&Fob(6x<rvXcH&k|YP>@+Cx*=;)}(xZpzv$@p4$i2Q33vp
znD0x8bR7JnlumXgWxeFFa#@InE&$RkJm%$)y12XEf5rZ?!N2%%<V!hxj{F~2JEeiu
z at P4TGg+u+xxa=g$N6E`jS<i{c$d6;Zq?vWPrg_+$qAO=*)x+a at b}-8(FD=Mj4l-7?
z{vuzy4mNoV$Cc-d;YUj}^xUctWkN(U<l|s^>9VEdn$!D2|4-v#zbND&PL^$ql0q<T
z=4&PHlM{?)V5MJA3wmNg$ee{fP>R9YQ>0=N6Y~vWE~8tt!&_nNUilw0?WaO1=FC6^
z86Ztg866!9kotT)ETBk$LHC3#49l!_BCrmt8HAtuVJihkrd3^Ummsd at cE~a!XFXqX
zZe7LWo|E(KzzomvgV7HQ9?MY>7A#9eR~xDkl+BCkiMJUjj6|?E7eUBV&Odb;*@>Yj
zh|lUQ+Yt}`Jb2M{LqF)oq0PmFBQyhm`d5X=-MOUe5N8&S+dO5G=v{eYG8|KaaKVUX
z=-b{5 at g3OI{HH7+-WNualK%Q6<Io*cHD?`eQm=0sFZ7LBMuVZW5jhV2QoB?0EA5*+
zprP=(07xA4ea0w4>H6%iI6!kbK<Q^&W11QTEqaQ#l}3^ddAK3_Ow0-D8Jf?VEB at r<
zlxr&xruscT_9)pMRr>zqdG?n9z1f@`-5((#&pE_E9}7c1OOVfHHIgSpMO9T?p%|+M
zNI~CDr`~<c0y;&Es;{{9R2g~{cfS#Us5ymMo=o3BcO+=9 at pzbeV&*Am65xR2%yW#R
zg*1*ctr<cx;z~`I!Ei!g?lTJJ#m|U_Ru0ew`CULw4uNuVibs;Z!l<$R&3yt|u~vL$
zFWBGY8Aumdr|R=i`D$gou-(Q$XMWerfz_isdq{Y{wz>Hc!RAN5)Gm;g03KKb;7JZ(
z1yGkR0?nWT#cayA^-iV^d6mM;jg{rTu9pQ8rexZwNo6{G8pjhUWpSI22&yZi0NAz?
zPrY$J8IvkK`u)vP^-C`rCh^lN;NI$X30RJ5g$kKU;4fD>{7Cz&f#?>HM}I<NZh&y}
zF4*&YkKzhI9dUpaF`{G$%e+fj>g(%&DZ2qeX+>EA+Ga(7!{>kwlZBA1kM#?pH at OBT
zruETHWjHz_-kQ`Y0n3k>-_hb at VDvp=CT84fzF2u;>pfATF8ib%8Jm~-1Oz>b6fqev
zo|77fkzZ3k*9}&P*TX=0k?*dX_?rE&V0=PCt6(2Mu6HcRF3&-V#%=<>ofG_o2vv$C
z3jvj+e0rUwC|uQ^T1iyd%vOzpmLL8vphIzG at w@Gj^8-mMzVUpvzc$i8Di#bz2u(D3
zohyM6K=r<Rz}oUJ2c;>kenivoZT;4)qJt-lsRrDBs65AxV+%x+O*RmTt3<XcZgO_t
zrRxYEp<qVVnfXw;+;W#<N6ulI;=)W(P>9KZ&0Oh9Mt4_5yGMjeSrFir^!a9U;pr^Y
zGC(?6fg-?1s%Ln-2JRlAd2lY|u=HAYEh;Pm!Ojq4B|8LNjO1;~Fg2IIEEIv+WOTAR
zlBL{p4Osiz?Vd7=Ww=nQKlmg<DtY?*q2A^R=yo=TZ at V9w$u)E>q`pb^(Y at Rt4L(|n
zSKJ}ThG23pYwEfto^1b=iUM?ndg36)EyX at Win?*-bbnEQ^IhXnKXb$ATNUH=cY~v6
z7w0Yatoq)E!EoZ2VhTd1YP$A;-tUKAP4 at x<O-^q4f@{xM+M&Jai3@`Po^};c+c`&>
z0G*rxHvwOssG{%T*P{K((5+=94{gI(@nYO9j@<^YoyL!$da>iz>x<PVN?!yD<~A3Q
zuH^EgSeaR{4Y$tj at AmH}xW5^8gyaA-vIAZ%f})aplyGA<#Yw{u>(+4zg;o&xee|@M
zR_P&2^w+!kZTEw9B3BCM)v2+`YC*akh7VAA+i+n3HFu*ol~kJzVTi at 2(`UIqcL8O-
z$g)UPO&r|2G4)H}uAU2C`$Dg>jeLziVpE72cR#{4d%^N1- at w9H;7HtDgoQyl#UkhF
zYz)pQ%&+rsmzf!NTB#o+aC|e_F+*6~q(eB|%kH3_r`7Y^#X?Ja|EY)|a3?DjvDFBg
z-#~h!jv=o6%H>x4ThG~pJ>^kq+xz#9&F`+RGjn{f8>=q_ey-|j9lnsJzitZ-?!%t<
z_!KnkJH3CsTk)IcGcuVc-3J5$B^{X=1!8H3l}6$p4)jFc97l1Fm_d93g5r9aw{O$Z
zJ~jiR<pcx-ytdN1{J!1lvIAtIpJ7WW3cAiiuX5_0H&Im}W73p(j9c2{a#nweaN{PE
za|TsR6ywmLVx9!)B*C?MkcS?x(N#Yer9SUyIE};AHa59wUAke6H~s9AI2^lLNx}by
z=o~-3D)9CL#y-iqvu2jc2q8Vo+i%kHQlP`0XRR%Gcd?4-AM=5w214LkDc^0<$j^6d
zRbrH>KjOS&5~AE){%%?2w*b}N_`cdqM(;X8K|geRSK4Davo)8$!lbdiY@*q~VKQ)(
zHc;p6)%&f>SHxTJoP$XU<YSk%>cVW_w|aiJu8xUyI)1mOR#_b8!x>9OYeDK~(ZW|2
zuE>LF5EkNO_}A|vU;~)JXGLs(LeZZTxR!a^1yvr|{uK3kRINZrZu%t~jne(~?kW&H
z7<t>J86HYP{26BlTI??392S4;9}!bvvl_oJpvZ?|Cv3I5aOIphSZYJib~Ar0 at 7iC~
z^GJ}KGaS!aai4S#rMwiEVs at yMwx0*Rf``S*1UFpg%Sykie}}yHDEN4N8*e8xXaBuq
zhKHNd6ZQIJJGbe~-PHrA7UE#K#-Hob9Vp0Rb-I72EA&-77p}l;!K5iWgsASXtBeNq
zOBv(!-vwywk#$x1Br;hpGBE0w&w}$*IVM=bQGF{t5>U(i<bor2uz1co5-^$dA26)W
zosym@&p8K<G|@ckh?oHF^a^XVZx&<ET>yRg?fD at 6vA&~ciRa>syAs2K`)Z_8PZUMX
zv!3{8$FXs^jXm;dT#P3m_m>JxnK-70h0Rg<-Qe>7`PwmY%R<MLQbJ5nopWSqd>+XG
zI!W&>(rv$w9fk3!z*b_sF+%n at w@X~K)_gg%8zegTy$2h{qOrKn5<@v`Z<3QLa!-1@
zuOJj-bI#%;O@=Z|qKN{v4LMS4K&+j5Q_fX{fHJR*i2JZ)Bx~*FzhN4QmVq|UqqsGr
zwcgkq&(j at CG>Ix+kBi-kmTz*M8=2i1h7(*`W&1&R3QBI at d8s&_1+Jw9<}C5s1<0ku
z(3;A(JpKu$Lr0Qwpwj$=Bc at xlcpuFw(s`5_3wpoOEQdXXcqV30DVI(mk?gj6VdM0r
zu<h<mTdyefQHqQTy)m7+*xciAXoUA29rMZz5fm>ky*<ou9*zYKt<opI0GAYq0aEc#
zP%;r}T_+>a(P0l&sn>={#>derQ(4DITSg|PIK*_!Jss4;!{aFX{zmE^iiYLZ6r%hS
zp&z;|5U;ChXe2fK=3dEuYeCXx-x2yw`1VA#el1Qm at 9S43&~=uawXSG-7-mRJNq4#6
z(1G=9=FdXY4?)mCLkPdG)5yO@^#Tw~1M1m#1mlRy%A%Bh77ft97J_c*K3M})9a9V|
z*X#&1<t#3_?B;k`(-ru)^IjWuLIB8g#EC2bgisrZQUxeKv%L05q(S!tOHw#XN2#--
z>FjMi08?@O5l=I55ds(6RSjSPk8%txCjNZ;sZa$5PEctM2SAIzFyhG`XbE5G0UZnH
zMToL<D!*$<l!a1s{Kv{pj+J<R9)W<x5M^U+FaksF^`{bQ`-=<FwhkC|Fy01698DC}
z_xk&aZ|MW_Hz+H38Uc(XqDYa1Ea$WrJh%mQpsz?d*X0E=Pk9)Ise}n6*ew%`f<+lE
z{c=ONp+kQ(fS_7ZB96<XIHSc*zbp&iC at 2hjj>z#w*3>R|%97b6MAU89IE at wcaaoQ_
z=-RBRH0w2aRso2B@(i*d-OdM;)`0c{Ahz{_u_XP=<&RV*e}C1GHiIEhiW-1KguY2R
z9W1q3J&XC{dykd-Jmup7h*#O;jiG$M`@1V2S|;${pH==fR2BxvXAAbtmj!cRV;V%v
z28lCUy2vBlNgs5*a5>o;6BD7azP;e11(QwDCg$e5q^}v2;A)0+uiW- at 5`mhuQMVfP
zvoR8Vb-(2vOmQBDFcQObK4e~iIUJWN at Gyq%I%tzl93XI2u0iXE2jkV|iuFKoTnC&f
z3EWii90$B=IsNlX`CPpC9Ep5TPJi_l9Or<s|0;vFhpe1Sh>=)Ci-d^51b?Yvw_MeE
zz}^4o0C3NE at GM1<Y6NJ1%65Q0`~22ieRY(EvK}DV`5J7bj%`Wr>=-*juzpr;1LwvN
zi*)ah%Y)Y;;h}lzy8X80`D<$eB at TW{K;Pt=q7(_#Pfa$nI4v0&8HWNx;`KJBh7^ot
zL#w4$e^Cpg*rcR_g?Nr8gM~iu6hSG3WN^OSWebc7jKKy+bHvx%pRmK3)9tee;_2nY
z7d<v95EHKxkKj-zpy(omVf9Z8MD|Um8q7qIbsxMV1K`?=pgF+~28tZ0U#^7ZrLRR=
z$^#?T1hjcQ_Dfxoo&hrQ<VJ-c2?0Tq&J5bhS+tKy(BzkQwHJa+<#0IWtuzzFScH>P
z)s(zvUz(&xOcI(Ev8xG#5w=PMaIhac;+DeQ%|hdOkDyFHu1<G%IfUPNK!<4;WCy%|
zy*%9Q#8XTF68DzZ0|I&o5uzP&wjr4{;{43Ku{0VvD}7fP9obP2JYLfzvU!Y6J^=K^
z-DBb2SjQ%5ZOKiVRUN<ks`719LF5tjEV$1?*k-h3H>VMQoBm)wXik*wk2HmHQcd at I
zD69lK55)N^mP(VHuio-Tb46)vtcF`B(XY;ppBrblJY|GX)?q^z0<G0x-TDi7sUy>R
zu!R-f=cd9fhsh3W1bsK>M3Hb8iEfRnYpHH8=d5I0n6P>FCadhmJrq6V`cO!+`_;jZ
zGG2&Y-3EAW=9G^w+gO?^+wayxkbXqUU3*$WW8s$j1!VEcym*W6_6H}`1AFHaIHglB
z&99E=Sz4jH=JV|1dZNvwMBlkuL6UP?5p@`h|A0tads{CH?)LmP23LxKC?Ue7&fWc-
zxuQ{Juld?85+`eZG5du2&YjIqekI2JVR_%>-Brf!>P!!70vodTjim49T0CN=&qF8P
zc_v0uFaDUfux!8aImz`+ at c2l(P|P7^{_#`j-4WY*pSvD6mAxJ;!%-n`u*djYRn>U<
z=3>m?=B9<opW|e=6KK@=dSLP;$9?kkF<9a>jRGV)2MVQ%zDs>>x+c5vj?!~0r$lGz
zdlJ_g>7Agyh?CDSZFwWyxKF<qz5^-7$DD$F3V7p8wGu}ws}nLfF_ at W_wgELQ`I(X|
z`_oK*vb?2yV5`1<Ihy;`E6Jn^t>WNE(2)E~S+mX6TqPsoEV;dCnrdW2{Iap$BzFCB
zzsuG}czf7GFeJ2 at m~<$t6WG$bg<?Q;(aXoC(yd?hIuCA*C(?*V#X-fo-~W<)-_*M`
z7V1ao$H!iE^c=2?n!w4P8?$~RoyyMD2){<aGt=gWG;m6O(*7)$^FQ=i4gp;DV=75?
z){|fK6`gb%Od1>(*n7H+bLr$w@?}>&v2^G7NG4aoa7MAy{G2cAxxRv36et>6tIgkK
zBYu^S(#eZi>k6)KZdc<ESP5wVeLMKVb#pyr<lVXnoBr40!PxZpAA5rBx*XG!b#9j|
zEY2gHO>>94CVPTS8%$pWA46IQ2?(q*c&s{|pUXOKi<)NXiGA<yQ+cTE=^4`h)si;q
zhwH9};Bve>{VigqdqgblFr&2+|7MM7A==mjdpx@(Po%2%xH03nH at mm@-5o`LT<pf&
z6Ax|Zo-DsZi!{k%(Fj at ZMRz0oMoM@^kcrG>jcTQ5Q$DNq8{Fr<@ut9EVnJ%-_=iZv
zw?Ps1>F9(*1 at CG-Sp9N~`U<6XT_ZYA46r at f@TzYt^sZ`uWR>(z0M>n5uc-|k7C!?;
zq2v#ca1s*BGgfEBk`=9{o%WMs%NOb5b57mq->r_f4J5JXJ&&AsTOS}9CvaCdQUMg?
zL~sRH`W^dfnjqEr@#djmZwlE;cBTt`IbYPZJIVDLQTbofgrQD?>oxQh_~M-}x$Nvq
z(|-IWsu(jsT@$h*G6a`LAlWaE+5|3KHdA?{Zk|OB77Fa^f&sR^+ at QnA!{l#A)39#G
zHN}PKx($AE<UC8zm*iqq<`T5ryDH3Z3ZHQHa7dK>4U;DwSP6cTpK~o7j=}g*cXdvv
zI!Sadm2fzlK5|~@gZud++IEMtgzu&x-i7__Kq%S*=aB&Yod-KRq_J^7g9~L(bINVl
z2V&a!<WNtUL}|edjL2Vwa-7{BJL#;|4hr2ICna5SMZ#cL&mk;F=@JV3UL at OpMj({l
z#3M^1kVe7O7Bdg%LhM&*l99j1Wq#&&M{=D)`(lmiFOCm;UxjJ1L$DZ=>v=!~#G<+D
z{jzbWyB40VTkY$q-=l!;j>jf5TSrXEASWluCbLWlW>){|$`uHybLLa}LaC+MAy}l2
z0~nm($*A~Ih2O2LU!nO_a)^9d-%jE{&CBFiWyK`6G<w$Gc8pIphvVp2-wy1o%jPS{
zl$cDFvOn37`*~~to?IA at _K%Lmd6cdfl0Q}#JCr5#?g at vm9BEI`SZU|WlN8m1!^1J+
zo<TGc?)DREmA(fk(8w0hFDiw%^fII{KDu;xZmQOx_81>SjZ5bV$#nNZN_%p9kmME^
zDrN+X^@}I5X!l2j2d(x1F2Z*Y4yzq~{1$**^+jkgqoZDsXn)Y7*PUC~A?u?|@PgRF
z{D3>GisJAC{8)*Q;gLJfr%y&S9K*RUUz0zh?<6}^Fx^<Jjk4~nb&1T(=kpjZunQT)
zzGHJqH1jDWS2186(TCXXnD+mftRJ81+Yr#UlNh#N!>If6-G=^NE}LdZH`l^8)LoC!
z_FZk9C8t^c``<RKs)a)_NvvtxKAL>ApIvv8pg!GYueo*K)>yEiuw`lfxURLD9qgL6
zA=2M#DpZJ{`l2Ja`NMs9AenF|y&tY!Z7M*YzGCvO&g*HGehm9i8h5OA^=AL~clPTh
z_q~L+zw2aZG=EmSS%pEp_5|HpzJQThzr1-u+gI`tI$0KLN53;(b9?lwSuRGo>*eo*
z$2E0R1?>G7_AC1Q1ZWur#}eIhK8DJKUA(w;T<!~+2`<N7Va7TlI at bHDX<m1AJR&lU
z8mEbgZah|n7%Vy_^T<9~C)=K>%uTacLJty@^gZyX1jAgkCTkF;*W4yLcqH2+)v;4*
zT5F<%I(1Z+A>RGR at kFu%y at i61MXbvwXb*bn6tl_}De*o$Akj-apbmn2OJ&iu#G0q(
zeqa?S at R$p<_jg~ta_8u{qZpA$nR}|QmN4i at J)E-np$yUU%2HeKR>Y%MP$R)uL^O^^
zWSgbB4^xnjlJ(xpxrYigllblfB-RB at Fj<Lm-<)-9>VK6g+bU$C<*c|D`9xzlA|cjn
zEipv?ZC$@tBA3NP=lZ0eW?x0 at 6;^uhXOHUqNy2x1pD&&B3|9-{_L<INA{3+2d8|vi
zsh)n!6Ic}9?s9$O*Z=$|!v5<K$ZZKv$IDqj>JdG{1VASO&bvW57x9hOjyKD@<7I;L
z8WHudH2ZjnwQ9K&r76~Q0ZkzMf<~xMHVD^z?SY9-y!UIp=ktt#4li&Sj~6j573*Qb
zqTRO)1COPK?e)3w%>PJD(dxlcdxS2A-6_izo7eb!?p_Q*cArIU{(fGbQ~ZN2^GQPB
z6X#>oCz`0kE~W+pa?@MRjtx_Z{-<--EKcju$-(K{hBrZOJK(vm3%b7DMj{V_8 at DL9
zeUMWYZ!`-sNYlYp{YcHu<LUd^E;M%>`m2J?SmOy?5iH2=gu{^eP~?U5I>UtDew&>l
zjy=Z`Ne{fGI$v5!YHtl7m2bB=?^y3RjuVk=9^S_6t?`VPxsWU!8<>#1u5ahj)*xw>
zhHhR$KXB1j;1O!09%SOVt+{4p?#~Ul>or5hgD#e?>B_)^!~B=o`{X3&bnxRwxcQp4
z2UWk*aIW`qCd0eFYQ1iOr7!S0YP~SBex;T0V|Su{nUy&2?Olf~idisLU2&ZkY)?i5
z$p(h?Nq91z%1eEl<Cys?ZZ`pa=K!T#*d}8SAFq&_sP3y78~cc(E8C at 8bNnmUDsQ4@
z3;7E&_nkia^$h2c$;Ivs+G2b-kDj0WF#oj<U(vK>)%D#+nQ&&UV(D$u0!?1?NtrKP
znqRaw62e1NVv<*d<M>r-MIo1ee~he6_Uy+28CM^uwv at N8FY0EBdN1mVy)PIT)W&{Y
zwifk1K87-}3!7nllP1~x`Jv$R0}O49XBhG(H~C5{&0K$E2N(p4EErQ5=bGTws-lNu
zDjcfrj#L;t!Vc`Y0h>Gkq4cQWDp@$&XHjUcg+AQ8LTyPtw3&<8T-Nn5R0cJy2&ob7
z_Tny7(~lB`d0)O!xyTul`)AoglT<aG)7bED+1Mwg`{OS4UdbVr#Z~<T9NXmvMmo<&
zn#9H3D68nokv at wx?G5a|=xXY*oz`c(-m9(UdcR-i-lsy8yzD+zXR}2*CcE{DHnSa?
zrMo)bHT~>-fi<n(T&Gcjw2o`kolR at i<kYk{KBtUDXKiKtFXY{7R&kc~0lRL)93!bA
z$@wQut<}^zm&?NX9|irP=59j6LuF)pf1l|8?8=W{|8YK6=aSg!M3mf1$l`Lio`4%E
zdw#aP=cAnTwn4`1E+E)x^A=~|n#$*M_#=YH(`#4snJ%A8ZQho$p37<G9QZ7?CxmZ-
z0p7{*lo0Ghf{rO5P<`4^Wny4rV?rAb$LQ<9jck=Bu`G97Gii3*HC=moMDs2W4kPl2
zJ)w^3Wmj8 at g&v_!M<yuO$J$%;9th@}uCXp;3U=9(eo^!7<xLWdgj-Xu3Noo?Meaw~
zXA8=%CWem>xDy>Qj7TDP at fd|ZF<G;1)+7yW#(l%@pbrwzlKY~;33MgOKJr?r-WfBJ
z><oQVXC;usge#mk+lywEZ1rs~Z}v4rU?mh{GJGTHG?iZ~ja>M8G*@?RMO&%~x?|-b
z&71j>B=t1ULEhh&Dk0JD<|wl9;9w|?C?(+yY3z5MWN6UE!8)ns>r~~p-PdvDc~mU}
z at s3z4^8<C*9>L}`c8_y)R*AFqKMAIeC?@<|GaL`uk8G46-j<*|*rdrF+#q}1H)>x=
zp2|KQ6Dx(tJ(Sw|F}1u&Ug~Pe)DSAX4O7!e+Rj^9F!C6EcivK^8rT5+G;kKTJS^|H
zU)|p&gjJn?SzhKgQq|qXxC-0W`Q4XRcg^Csxp;bOANQ`pU(n&+Z|&)MCSHrF&!!;J
zIc$SK#$=5%YasbSo at O50g{2gedS3+%<cT`gT><)`M)*DfiK85O!f7U6Pbc$JsrAGM
z<Wk~k)<^P=I7e6>Ip5%$bQIDfNBu}EAJ4;BkVC~+kVrhz_p3qjX*mw>NAf+!f*daj
zO#e$_cSo7W<gunm(0;V6NOxNMI8Ei1Izo(x`x4C?6ix8!L%B{AN3pr5evQ?B3(~3g
z*mYFUe&w^aO;?l72bUjqV-}^&?>-ZIpRW at +by4c(1(wqHl``w<4apTlf+cAfU3w;D
zzpU=KCfDlL2bYz5=}qUwN1F{NPTyzIK)`^rg21IoQ(>jY8&Z_O>BjADvbC)1z2s(d
z>;&OL{gNhE!(+lboNctqDFSZ>0(`ZaO!!P+ZyB>+L-@&efBJqBFo>)uat!x%!H;Y8
zxG8vc;K$ce(8nNg*;H(Lv(87YL9(rW1xRTSR>O at G$wmSks7Jk6*MFES+2*I}tc at DJ
zB^}Q%eqE0DQaI1XF*Xocq;MPjO(osToS;u~_=(*4sQ5WbDaYH5wiEJXzB&8k?x6bX
ziuiiwx?MFE=N4r<jLboT5Wqfg=0nKhF0BdqNT!*08=XuUmyi2?FPZK|M at aB32XW>}
zZ`J&zKEK~wICvR_j3X$G?I_ce={Co9DY|O2=yM*Ar@;TFynaV!9?f(4K-w8R41_`h
z6BNhU3XmLF+xd|l&;7U78H-nED&&~J%)dr=;c(rE;Tu~;L7{oS$SmG^NSR)P!=m$u
z&}J3Xsmf(Cf%Xp`c4F+IoA^5B=GC#~H<%Y?f~N50&bJa1urZ$#mD#Zz7x(3P7GC at o
zKv``OI-4FQ^z`(p*Xp^==cK#YS%!{xp}r}R><lv&NeZB2UAwMm8HW`as-d~SOt6Tl
z*&EKL=5@~#^xoOh3}iT!UCykl9hFv0`(&L}p%yb9-RP^XH)qrJJ%LE|_t9q&Hy2fE
zzbV0mYwCMwqw094X1FiZRNd3`Y;8$$jar{?vg;2BO=r>G>KI#hu0|&-alnUgnv!eh
zJWH)H7ioNIEm(>6zvmJ{@wv$YR-JTzWu7eDzsT3-^!QsWwZ0_o)%)w_>$cM807mL2
zJAuD$MO+r6(os8;@7{j1q4hIY)VMVKNX4l8enC>t;}Yd><nw5%iB*GH>wTZKRPdBo
zJ?m^d{Qx@{+iWsVk-1!8fcVau?>Cw3!0Vw~Q$3Rs2_F1oty|q9 at qY0%$chPI)>IoY
z5%O13;WJZyw`lzZm~QEPHLXiOPc|8EeZHVB#bM!X`?z1yGic;y$+^#Qy`yKfySNw*
zHV|&4<9<kc)La^E_uC$4_KPHEAM5|a(^&>Y*>&MsMGO#80ck-(y1PZB8M-^Aq&oyb
zN=k-?A*30)JEUXiRJyynIeXskobyBf7(DaL-g~XR*1fJfwCJnFLi84u*I?}HsIt|~
z_0%{vIU#`vJXn;ii%cZ5(VC13tt!2a`iz5$MoE9pB=y8`Sf0;2K7y7L`#w9=*TJGD
zihf3$yZQs|y(;+|f*9y;@NvcC&H7WDKW5AHsA54|?we%yYOZx_kN2)u;*GAQa(1iZ
z=!)u8&uyBItv4NZ?8;VSwR$QiZ&PQ4P9E}{l(gxPvx-}}!XJcQn6BoPm_K)5q&<Bt
z`ih4 at UzsF21V}TX4M{`^aWE!-%Ug+#0AbWcc^Mho7tj=F+G2nLajv=XB7sIkvsmm3
zj)W9tFYXjdKkJCLZV@?tf<dua=Nc8rDJBXv;W}=OPr|hQ3AC7C#S(>aMeb?BezQ!K
zrq@?aDjK<8gExlq@*_%xFw}~l%SO1c6n^iMSqhUZ2^&Xw%KA06^swWsO8CdYV?{Lg
z1|^O>wMh<s=E0yM+ at 2s3iFM_;&YlB&3f3`c41%#q_aaHnJkTGviMFHY`9*w9Fj=C7
z)2GE8y7k at dYv0p+t(>YcX=!LBuMssbUKp&BS8d&(Nc*)jk<nMLNU at gR3px$PKd0W{
zt}Giey;6RIjYZg!>lJj5gNWPSzvOXKNDy=L6h*sHF=4qHUB*36fxy_IKQMXa-HAMN
zi5zxHBb8pIxFXheYZa)a0 at IXNiZtl>_RI2#>^Bz6&ILWTGe42DkS3$+xObt=M>y3f
z3uQi>XF?<Y@;i|tt#@1nzBdzk^1}RIo(h=Eg^`H;wfp+f>qQ*H at Vb%MUR8mf9IN7%
z1gHo6kT-IOQYObkMJ;MkZeRLTs+M`;T&`iFc{^0!^6YbCbTl3V-$8X)PShjzSW<c)
zyM2jeBPZE#cM$`~kAuwF4fXPDiFLD`@_oU&fG2a}p%;M)G`r0If^5DY7mj9Ky~j8h
zXutVLq~W&>2an}AvB2sv4DdNY24B4za2aQYi(1Bt-&FFG<2k6VZ at 5XnWdeoVe#i(l
z9(KdDRee}ymZ?OW7{o~R74!Qv(@EOVtu8uuL7H^P>(ryZoE}?$JVt|Af8U|UosG-E
zF?6f>#m&Q#(@f15zGD!%=YE7A!2CgHqmbCUi@|S42O^mH2odtT!whdirR+mu%^d0e
z2b1|uii(a_q%xW55S(!Gr<s#Qy8}j6)UY20$|QLd^;N2Qh-gPL)lR90a*8#^vM!hN
zYj0FYBu&Up5yj0?)_WEj4f^5vGDaRw?$;#-)x8z&X)J#CRx*6ds6nV=Lh6;Uj%`QQ
zPwC4`^!9rSCTL&(j56F!q93(w+yDMbc=*e`jhyN0=Y-C4vt-6`O!Gfnnj201`1uaL
zl5 at jZ=;BZmyi5J3Y;<k8jAQ)OCGtnw+1hJIY#DE29-brUYj9JH%$1)?a`+CrbrC!L
zyv$~pu8a6fr<8G(c3`0J4(-<mxOrmJaCR<JwwZqUN1gmNFnVN%BbS+#wUsxYfS)ju
zZKVYdwFqFr3AxQO&4i<CagyH|yzbU4V(EEH$LXuU_FKFCQZ$invZ|E^g&Z$N1~+_-
zcfv<snQCm;326V#HG>($L(o^vS~jHz5<eA|-}u6iJGPGc%RnL}>Sb-2;lK2Fk7;Vx
ze})3{xda<J896T<Dr;jLm84lZN>75YYd)EwT3ciY@`c;kjb+-2 at SMf#vR-6stpKTC
zR8rE$I{E54PVZ~+vuLkd*;w=eA)%cPM36`D>=-K-L+9Z4qoLmRtw4LIN*q at wgkg<3
zUcvyy25%hI$pbn)2C?#@x3(D7(dFc-9G6t2!Q0B_q=amZ+vL)Xbv~l=wzP4h^zaYO
z^S>~Cj50Nj2>l0Pz_E9CPn?$aJ#n;)UM3)3ZoU!=5IPG2LuFlivl%4*r1R_RtB4~U
zx~!613BoL~o3`rDwO_0)mPtm+ynZ~{%C0hZ|7vZaRx3sfeousHW)K)WChw=It$`P&
z2E(Q{(5W1hwAds-GUMygGm=%L;0K#(ur((@S<9|kD<Pxi-hk)#c|OvE2H0)()DEY<
zYpyvr&RT8Gxg%%GmWwNHP9!yVN+0an+;mz2JtBFr=JRlVFdG1xD!!nf#^+cQ51YCO
zWS8fvblQ at TO{;}-Ea5h!722Q1)WHjlQTw}RRZq9KXwSgUyOPM`!Mk)rHQ=gL&Scqo
zYBv5=H9=L#B4ZOR;)*85K}ovTj^BFURtXjtC-+1_<J0mS^!#+_6?{jln1*`DQvC<3
zodm>b9`n+hyy at XUwQSs0AiI8Y4%xXCTZ>Bbu+#_isy(+$x3VGLSD_Z4XU8Uri>)ot
zgPDE81<CVaQ%TwySelmB7WvRjR_K&<y;YmF1&qB- at WZo0BIN7%Lt#WKpNbtL`C3tL
zcI->0bVzp3a(0zM##Pz5u1D|O^$vL;k$nwaLk5>aD_QW*Mf#F1i<U1L$#|}Vh6a=(
z-l_yj+?FpvNBMa at y#K|_m{<ZMk?4`>SP=t_lOo0F*U2!8b`RPY_3%O^8amWII6+pH
z6v2m~1n|S_Bxtda0~vsf at ZlMI05h~zn?aSUvah+jrw6KWyjGWtr=@!67gAoA;FM()
zxN96p%!hdAu}5QxmND4n=H_p|VGxMuh|{HAPxkg<@4AkCeVz-`w9>6(=rj!5ALiA`
zBN@@ZYjEoT*c_iS>QVm;iMvM}51p at zJlR9HeCxhh8KkY$RZW!na>TeO5#~{%ids@~
zfX7kA1t-vWt%GS#UjY?FtHKV|{3{1swJlp)nGai#p%FG!p$wVt%|;U-tASh1lDW-{
zF>2JwbT-`kG+dui<6mweA`?`pBEH5~R7 at SUozElU^gJ2$Jnw4hb?Vq7 at D4-4LQ&DG
zR!@_uurIwDwl7u5H{_~>$KbUbFlTG56#an57%1azp$RbPB-UOvnp4h>jlAo&>wWIV
z!!-Hd^NowLeCvGC(*@Zb`8zunpxq+vL%e-S_ at lU;Yy7Po^A$6btr8y<l^)$hZ|1YE
zfZ4Gn1{0 at Okqb5KU%K4@)u9fODhN at eRd|$H^W*-;C{hMbNVmx)Sj^hm8uZlg9h6|)
z(T+;6b!>m951E9%1m8sxM!(Rx5srt|!JVW&fn9Gt$c~Tzh^}!Nu<xy=D`LjR9O09{
zOKH(c<#ntr;M_Nlk0GT7XE<`N?&ly@*H;MyLNSonV$8V`qqa)*38UqjwwJNG?}c2_
z?Up;I+LZ9g5ErgWQekE9iTfc|h95QExhf$uF7HBMQ!$okfd8ei3l3KE*`&=a=jgd!
zu->5K{-TT|Fxb=<nK||gv^h%YI0*%XG;HjJY|blRuE;H0B}DlsbAeWM(OB|v4Uukf
zifjdjO&r414;MjpMpv3<+^+S*4$P!nxp-OYW_|d68O+|m;*JF?!*{9SwwS1ZpYU!y
z<JqghT3Jz&jZ3=OSTDxL#_mb+*kuqW85OT{+GhluA503d1|w?=ER>Ny;Hf%3x8pj-
zJSfk5k&_e;jwjw02!r)_LaxrgNK~#$t-33kMp-NKIsTc~=KrNLAK(9Z`>T at zYr#;3
z+4Gn8sdBcF$;U3}2$M&$hLTyRM6q?7G1}5g6cbOgnv*djEE0EaJU6&j&XKjn!)g~9
z+x~vYJFd!jiGCQ at JjXlDy7^1R{5QQS28)_tq%dTsaj at w>N*~a0Kl=H4FcZ}w{({V~
zqc6kaNv4RGuI^ummHvR%zcLK1b5Au{dd(W<XDlG?C*O56TrFgX<gj=|{7vx7V<T(X
z at B$i5x)59q!6L at U-p_fUu3E$jQRAvCO_V5o`LVJVo{S`U?NT-JJ-!}tsPXH>#KuTu
zm8lyiSQvZd<veN{3IuIR9PNwPF-r%awjQK*GGj>%)<iVqZM4O313sUy*`wt-yUSpl
zqj9eJ-h-|?I;O^pq_O^>xi+x?KIgs-m({ar>zJp37*V1jea)_9f2KZuPf#x46+3mT
z!OMD2oXBaFXKkTnlG(A6&50%VvvND0&>}<Afa0ZS96_G-3u_C)rEJcus!Y?rM4?+`
zAoDGOO%Z97=@(7ybUhMS8wcl-2-PO5L4;$$I3(B!oH0NiB534FNUpKh+=8MY0(2$T
zjmAquJ0<jZ4=?#VHD|ut`~AdTvv3neftS&IdI!RSLsS=}Q1AEw8SZRI0PkLuMvZM+
zxbJV{<H;azG!(8u&Fl{Kf=k&K8SZH^FfN-EXTN^+{!d2W5JGf6&C&m2f;a9TE3S at L
z!<%1bZE*_)(SxQXrL<O(7S$+_*hLxa3(bm`rgL};1?q#duI|0IF8eGRSjO_=LXS${
zo1pj`200GAl*!2sjfG-0lr3)j`%lzZYL{)0%hwsp;Dntasaf*IjxtT0f}Bl6vphwl
zGHY|qUj?Q?jDyJn8s*QY&BUK?NzB$I)ET6_&5yJmqbC?E&Y73nohs#`t}G{$Y)VTE
zjSVT(l&rgMnqJPH$g(sU&FUup1=Ebi2I*7-Y-$bPe1x975iHY5Z1daLIMcb8`5~DW
z?`2X2b!NvH_3F5 at pU^1hz%=Cs7rl&qUk5SD{-d7nGvE0h&T4+(dU*9Y{`Ck#Kxkh+
zUzMpE*ZU%+uJzN*7;6t7$Tm*ei`8TJk-^NG`dj!WB??osqO4GPbHPBEmmw4S?&;R7
z_!Di%Qf<Hy8Oe6q27#L`Uv=HAts*y~)?8Sh at _8Jk<N?OGEj4aj(Rwy#onzW%Cv*-{
z2xhX!pMOyFw?s1**7c$9LBvH%spAj1{iUA;L5$Fk00zrcWUexsR#hAw$@FRyV;OA8
z-DTzRcMaPt+;*#cvC9kCPb|SL{GsoY%S|ra%bUuLL)GLR37O)oaf6l~rx0>gQiy;{
zRdU&@4A>NJWg89+u9Ty;h*70dr{Ludy4%*z*Q|TDERoRHw+E$`pSGrO(Q)bJF-h2^
z!Y%@BdO)~*l1YhWw0WE5gX643sFQw0t_E^EwF2hz6tPnur$<f>b(S{c(vaaRUQMYQ
zI7S160G67mz)bB5nynv18QThbe$7G{M7mtx<;Bj`m7>gilm4Y at jL3Yhld1IcHCiBF
z6 at X~5HmwZ#O9al16mLJnU)s&{{kgc@>S5>aqEt`10S|er2i;nm>IV53L8L?Za??X>
zKOp7W(hi=dy31yy$)FU-2=}~bxjyPeF!cbPhe?wXdnjP$jFk=PhWhc*rr$pagP at py
z9Ar9v?4YBQ(_u&%)lm<(G9ix^<M>21LF=RxlA!krj}rU@;f3rf69mv)&rpQ<`h1F5
zCQy5?onoMshxTbzD+UfX&(lzoHkop$F~&^BGni}Vl)5TfPjn7`LCE^a_;Yd4@(kyL
z at ys7Dh=l%w%e_>pu5MfHKKN<(a1aAz2TEJY7U5NLJm+V;EgV!-&i-sgw)=QIrG#p+
zF+Q!nKWFa<IDMgb*!6IXjysGCn~_{yiKhf#qAlI_uE*T-BF&e<dgf%Z1J8XsV5aSZ
z=whjb>m+BaGiZFhtobj`2`8?KsyLA`|4R`+riHMIQO3?2hZJUHx=>d=TTOQ*ei0qi
zZRA_{SCy7ugP%y(-Ak-L!1T#dGdP{)50p7Y<Ex<w(Dw{l>_$}2Ao|+c9M&@*>s+>J
zpOU!86FIj-Bbz_CQ$B1=*Qr0NV>bHoC0iDoYbn*q+Tv0i<Y at Og1mozN3$tTYeb0(l
zh^?k<v3vGGPVt8g<Uud#r!?^nJHde|00DIYS?Ox`Jn+n@%aik7Q8P2+WsbxA$v;@!
zmd?vu7l|s>!rp41tAL<O at zme&Z08?R5htyyn^K@#DTSU!H2IN?gBC_ssS|?6Raw41
z at Za+$DaIy1X^5+*Wq}%-o^QVnRzMRfI1#_{tsA6pt7_UbxO$#H*)7+w*~s at a*0W>1
zPfW9f7poOQw*oJHj at Jh#!%GrQ7V18Saq4gfujF*aD_PW9;)^*6&o)(+$lFf at 7}Ho=
z&?$&tlWUkUb<j|m_`vzr{5rGA;ZhM`U`uyv+>+F3n=5+WJ8=QqU)g-Bq3}xuVC&ov
z!bs45FjW2hMCJ7jU at a7jy}l(^%(IJeRWeeJL#z<SfWug7yvd4xy615;f<B1IXKLQS
z4&Ts;%FY^(Ep8 at YBKdaVqjYpfg@|Q9rx4>u<^fL$Oc*q)#)do2oQ%L-M51kgV~f`E
zlR2KsbK+(v#nDVru|)PRh!thQ3+h38?K?`QIOpmH<DNHe>&Y%Fe^4-^pJRP^oYt95
z3IbFDo2i7ZZn(_tGOqbh$<LjdX|Kpw=q7d;c3grIWrxYyfnK%fos$-E^~1)wx%!79
z-Cv>2(l({Ny;Gc&CbPxaUj<WwT>2cqU?sEpcwUU>`EIph%@?EDvA4aw;~?9Q<-rCW
zu5qi_>vxK at hf{ExN|Pf!?;ao?qeO}UW%0O{NRas;SpH7)YcmZue`m((?5o1-U#=E`
zEHz#n2d4;%dWl-b%~h;Oj#seii(7dGr-{@kPSK>j0XkEAAf4>h_1L8Z^rk4J9<3SI
zXjFkN`tz(T2=D1h-v(;!^#_$!4w_6Qy}ZKR<yu6^?{Prxft~a9K+TTj2R(Utim}{{
zZc5F*=BC at 2f<36(zQvuo$udpuWb*!(Q`Q;Uix_HeT!*WhV4nf at z>vq)aziM^35ir@
zDDxS)3Df{urjoCUQ~z$&b8k>@LGz{v4S&D=*jl2~;jq5pI4A^WQ!AR{y~o2-*`|tY
z9>`ug*lmRWdqw at Wc8`~;>0AgtTl2Hw=HiFF@*uf!p~wB_C&x{qA#V|?I%g_a<%r at 2
zvAx=BS&b%IChl}Y0`~3*zQ7q8uDJu7*;E#zfC`&=U2noe1o#q2(c_9D=xn^D600rN
zn at Ts_i$>YDdjDTd6A9<|Z^}*lLN;v6$Nmt!zc|a{X5BNJ5qaww7Z*5et9OXn-J1qC
zVc}b6%^+otun0bw^eh9vo+`HeZIBn&aqOWy>SY`3767H;+v$pkam#c%7(sSc?~mpi
znn6ekZBB|^fS>j^A)w^868an~hop@;ZcjkOZ_K3eRiu+)#4Y=N0Wzl@>#2wuI}(ZI
zwZcrh^4Q3 at dQH`0?GKl=Jdv<+Db+%CT2xfGGWQPF*+Gp;Z4*?~T2|A}`J=8uz0Iv*
zzTJwbI*ATB?&);V5M>cvAPL<Y<&zQJHaR&V)2g-4dO4^<p#|6;x-jM<NxUvHQ<8FQ
zZ<2xYt};E%&iOLqtb4LH>p089of&le!KGiz)!t_#tgScYaj|v`Kt6Xji-<aWp^ZSe
znri3ShsIsj-2K6Mc`uVpTgb|m=>eNqd>$t3uI3l6U30^1e<ZXd^_FLGBO`P9jF>`M
z9bc*T;>V-t*T04C?!=w9%JP#^ozmE?r&?*;h8tbf4;dm&q~kWoJOE;)`sdv9KLC<f
zu${3pno&Jw^S3=FW*Bl~YV7iF3H9jmn!Hkmf6))CVsbcFa3kmnpubj-8p|)TrQDg{
zv?MdwXd=}7oQG<f_hpjbS0?$gm at RxX2S_4yGdvjn)(wCRDP`YY1`^E_g;m(d%Qb!y
zMcFo7Y`TM8hGa(3!Bp!wyTHh8Msf@^$#v<cg)@YE7n4`RJay>MoZOXAPBBb>#^GGY
z{@AJ-;q~+!x)+#Ax?44?+h|qbq{;BRSxhWo-t_UZT#ojP-74H39CHXIIe{#J9kVv~
zB)WJ+NT<3<)?y7LL75+23qrw~g4gr=^)Y}mbPJr%Q5lIfQw3I<(W>p0M!not`|@}>
z^IR}C{pxfzA#gtm>x!7lQpYE{o7vaL-npA4r at Jb-D(=oSmFX$bkj at c$`Zi8$v~A0c
z+tFWd5`~T%q@)$fN8a?$DNe_DqCu4PAa-%2ZkChN_jMPuuibRSd;96a>Yi{6*3~&{
z59!+q<x0`{S5R`iS`5M-aigwYfLwbgfnjv~X?+`c^)Kc>u6Xg!8*_8GDu(e9J_d$%
z<H_Il<`uY5PB&d~BjYzfy8^>p8g76aqjGt61E#5va6ya4AVVLg$5Ky-?V^qNQP%!p
z5OP)wRNzU_qEx&j=B<&5q|tKOA>+wc>)sdgq~Xa|HS_O{Jh7bV)N79Ui}^OKwJJsm
zTg#c1j8Mew&SjH9Rbw;kdbngxS!?BbtfIdQYp^HxiGbsYb%oWmst18GmZO%*IQg2D
zv2mt!{@eb4&p%<|sp%J~mnt at 0?s>TV!>O=o;8bKC%{c!Zn~*?e)Y(AQ_U_`p`BGk~
zFYQ8e6xa?!Qr at 3C{!;8GJ}@7uki^=RG20~g3^EM}3jk%Gip&<R4ez<k^2TWO at a<%C
zs<0|5X8x%p>_#959BJ`^nl}niZdLi{zU9!OiEd96W`Xl-q)3O)>2zn^d*o+8I*a85
z{j3=s{xDP-trKYf*RX?Q$}BoqH!F^Hd0Y5QSJ9Gdh#8P&E&Z`)Y&2+3c0SM$Ui>|_
zRoafsD5H7fth9|5PGPU4MHWtb+1q{|*%4AXl%p at U$hJh%H}^55B0huzwxWaeJ2VNm
z2A*8WE55G#8HOwvd2m&ZIRz-_{MIi30rU4;wBb*>U+BP9YMXbsYRZD{5{cFTPgE8D
zCqq8^X@*ZXjN3nXJ|4ZyK=BSlDswGA=iim62xKoq7HEU<LCMHq`HL(aWD*+cjzNe6
z;}s1t$=&jCTrx71h)VGX?1cQB;tyVwOH%397Hj}y%5J7ZDY$8FKE)>@Tzkqnom(Ad
zwkV;hYC?WTj&4ov1zz$`lrYw{=SyDoI<qp8 at b+f`;<ICQ4hKV~pdNY};-WN7|AebD
zAKZ3y87<q>Kv1<G7R7~g^_nec$g}=6`@wAUBYds-{!VMHFCin at D#l9u0}4>F^})F0
z(2kCcSIatzNMCx88>So9Y+ at 73e9!z-HCNY<c{pI3MN(&K$lElvzOs^6tAuPaIhDD9
zwoWZA)iX(3?Hdm3v5)TO{GW;%_vXO{H<gsNJ_&pFc8V`g&4y<;lx?LogfX<vmeYbW
zAJkS_|2zwDQQ~9bk_*<Z6N531`4ZtfD`|Cos3jOj3p=YU^3sh*_KQ~YYxOEXNi8QH
zpkK=`jut%N^cBLM;)LX6^xS+-Tgq0y^y{pGJ9#HUbl#kTnT=S0Cd+hf%a9}c{y__U
zdW5vCV`N)3U)8EVI!0hHmmtW6K;*{cBC>gR%Or0ys5kprqa$?!ei11eXexzUnk_JF
zj1D$O8;FoZuw=|*%n9%wu$DXaD4uqf+O~XRgG#-+cp2{vO<W_0RxRk at hz?};w3w8H
zW^bDNT-rGPlsXP0w?j?Tizxm;3Kr84G`^SUSscrDj^FH<xO8xS{+GgDWX-4ya3M)6
zwuJxvK}!e51r`b{z>~nx1}27&_5_OylV>I3%`^a~yayGI7$n(K?V~XTY04kV2WQT5
z{C9pU>#M!JI0(Z%D-k}E^0~S#Q&IVcjAN)-C#K35!OC1}W`%`)J%^zlY7HiRNj%bk
ziBBbTdy<i<nvOyx&=~G{w%K*m{7X>zmv9Xx=MqWN!wHnB_!!tJL5$f0JlM;v99}02
z>6Ghy8pR&tG`rYM0!X1|^~+B$jE;X8#eqCVnwPjvSiPd;kMZ at B)6<zX2CXM)u$R2a
z3DobLDWcPk*>g$k<fHluCL4a+8g at 1Wszl*Gssn?;tKjsD0~2?0fMW&ysQDVynF=4W
z>VI_IXo$TQ;Ed>wHW;z`9`#y~^ckhhF9)q^1J(}IFsF6*QofG?z`>yH)#siXyX6%y
zfENkq4Vq5?WWovby6U8F#{RT_c&nW6teLNpJ&w8g=h<hSxS~o+(bRW$5^<xBzLv7q
zO=o*l{CmV9WYO at -m=g0-<`zD4>@te?<N~uQ5m`hJlp}5NZIT%|9ujbb9<4ngZ;WA>
zRwt)!{{8VSERH*aAgxfPSXW2q+P9FkHh%c5mWOAn<hv7$lL`zVTU!1$X3m2aM8owz
zw=!=ck*no<sRp7Q9(zy_x%nfkgI<$;YZK7=k81BU<%<Q09{4BA*^o1B*DG=l9r^Vw
ze3wh{iVu=*I!}+!(o090(Lwyak<ZTsVFY$75?Bl7fAg-sG=uTrEV)#{tDQJ)&(h2s
zQ;FqlhRO%wsC@;@7^S at xSBJsrTW=Y8Xrsu85T1#3GDp_KFZiG(q)@wgfUCvG@~AFC
z^4Jgx0v?ici5t73Gz3*s?u6!`*f`M4+`RDf;c=W<AT0~7CFl=fkzyorT4uldt!a|k
zwUQkh)12 at __-QyuyH~V$+ieAeQwj=TQ)2N<wfp);ywOJfX9hqKJeG!*K?vwy5>n;x
zQ|uRC+B3chAP4s>#;A2z at KJwsKBhZQaTwsS2NShV#BGA;H$(0gK%uL|I1I1S8au->
zvn+xk>Vr&#FmYR>KJimX#Pg`K4s*PYb(#NWP;F?WoAvE6vbDgpQ3DZJOBTJSV8#+|
ze+a^R_rYS@=|8nXT?P<6dzMfg3=?NiPU4Y$&&CKjc`v8-ewvVtr=aB!UZ|5FUNF!D
z<&gv*Z9o20M3WcQfUrRVNA!N~^3vaaL0DkL7o92EVL(tzoHOjgG>lOf2W|W9|9v;V
zbzwp_DFr=)aS8bjM)peeV&c>yYuOXIs=3p4O7&B#i&>W}HE^eUW?zNmxtH63EtG6W
zKPIlltFXo<j&P?D%OJvyMM|%cqe at 4egf<&1F;PGR0!FMbtx85qLM$Htwlv+uyP09u
zVD03XGOyXrCMOigvYB{>&*2>GcN+4N*Z0qD4g~fAF!Czv2mwfG)^Y4nmhWfd_nZ?A
zH2~V=Sm7^eQ_?@7wVgKuS_yO1s6GybtcAMW-Ze(;5Gz+!qt($iIAu{wG9yDGRnM~k
zqn=2Uqr2;6;}ehlZcB2#n7)$@^j$}n9lt}p?rWp2Zod7d{HTAS7gRghRaLxyf^hV#
z3CGb_4bh#HU^Kf%j!GdsXpJ3&Y*by$oUx$1scileHg)nMS?x7LybuVq1<#dchXTHQ
z{;~NKL_@)t7X_1b at nFhIObkpmIi+@9g8`%!Fyb->^+hTyILZiZ8Wgf+5)=<h2K|KX
zi>qx3I6sRSpE}WsXdsOd6ewCf`WiRh%2aK*oysS0XErB_?@sDBApu}&Ams$D(@bB<
zP2+ZucgbRfqsrGg at 6u}VnWVFif_B@@4UtBZqe35=uSz-xiu=}De{z1zLcus8XhX at X
z7U>f2?MXOl&vi7|bo9pX{_|+ at y<~j(NCTVM&T(sAX=Odt3(4pg*rY0<L|e<|wEL}1
z57Lk(IRf?JY;+Dn at d<~px-niFUcF)FypT867RN?*O0XivxKTRLgy1odeZFfU#<4*v
z7jWeufQq8ULJO0)wg_-B>l<}#UQ4u8-qf#k(soF*Wo}+XGMB(iv^LmEm>LxpQ2Kt+
z!|pfutF$S7nj?pGvaDj_l%Hd9R-_Di>wd0)30LX+uKnnrjjb`t#X|ehflvH!h&G3`
z!X*<(lZ*D59Fo%8PF<!PsE7?(PH6b}w6gg+42FISC%RILueQ87pf6D?7S4#rLDhpM
zrYkhQx<46%zSuPaJ&jWAPg~h<&y!+!`DE=b-<lBF;I1sLF=#5gF9f7m|N4gV(+6aQ
zL>C{nxy(o_XI%!m8CTQaMk;&+ at zDVdof4C)5)o@&15_{tZINqJX`pM%A&P*TwO~#4
zspNAo*+_9!#`wQ{K<{T;I_SA55h(Su+a0YFY;lI!dKb(yDPQ<7a_Ds17%9N#{h9a(
z1IXh5-x=wDgPa!Z6`j<h2oyN9q3NcMXbWVBdH3tocAEX4kWGTphu9vw`LL+E_3)@Q
zulw<3_OFh6iaGH$%gH-ZxB)L#jb>^EjHi~CGylEqU+KY3jedg59)X<g>#vG0CF%D>
zONn~qV5N{&VCQdIppV-vhSHy_t6HGGc!$xGjyE&*_TK5z(282}ZKvJ-RD%ZFrh_BX
zrpL_lk^N{TN-CkNAUbO5$lH47sHm&tg6u#?e!N3WlMLkhVs8GU+XxD7l*oJ<^8MW%
zK%RlRDqURECjU&Hfq+1 at D2Dc{x0EPRH1xJ5A0(6~EEAdm5yT$MqCfRmbpR-c|G0}r
zouN?VWF5{gFxIKsmgC7Idi7<8i6rUBXJ!rC|7p1AM=li#PQ&|bA?rx#<_2YNwYS)h
zKKxyX`G^yWhw~U at zzz}}V&$^LJu>j+NVcmJYQd3J9}a)fx(n at s%lC8LJvt0ZcPU%g
zWn>9LE-6X_8NaI2(<8n%_H&MyU+<33yL|c5kLS+G8Q$0TA`Y_;VwD~N3iC;NHD!=(
zxKuWRAm=Nxab8EWm_0Er5YyAKmF?_Qv{LU7$EZQ%H$lHqV)~ATIBRiWq}>SYib2-D
zK`H_HMRihpHOntm*wu&j0D(BV{8ych*gTJBic{|&>q3{&emXRjQWErJU~I%bNo_Hf
z>F=lA8G?%ZIO?FL*BN%5?=jp`y7G`ftx%I)E>UuhPPHI%-}^#g4*xW^L0}8gBNO6f
zXd@;T9O|~OQ+o^uKmZ{=I)@8H6DR34%@k{f{bGP2mFZL0DI*D0E&3{*cFxu7xJVtD
z>f{fo`3kcUHlRD}4&)DrAaRj3y)k%3xV{B#ypO at eFSs&UxbfG&Rn$-96{o6g^a}7?
z^W2-uWRfoGSJsPSDMQx8OjK3gg6qwf at 4jj~*%Ma(i&7mBD_Pm1z67pR^Z?YKp&ngf
zJ(Zt_0o^V{pqny;D)ciI6G at Z;sE|FAFJ24<Ek5q%A=KV<Amt#t<O$S61|-?sX%SJ-
z#gV4n%#QWkk)m+2k5J6H0_}2?<K#{3KPVRIkefLQG%<+3<R(7;X{KbkDq$9>Z4pSO
z(9M4%ZC{Kmc7W1iG)uHRTbubA<g4ra8bhMF&jft*Oi}&k`P$GE3_^(vF$|~ZQFm^v
zA6JYF2 at QJFGh>|sP-~0nj*aZtN|gWJ&=6E>dYq*cs3mrzL&h2JBjeD~Cm*MA;BF~S
z#I(|q>hXEL`2kuS*@J%|Rz(HOT$RsT8r+U6;*3;Zg3Vx>(NjuIX{o(fZm)6#y5E0)
zHxW5)q}eZa#C6+IB~jGY4s($m9ie5Z?F-ruQ^xgzVa}qxJkYsVbR)?22S at ZCSaqDB
zi%oEdPQGF}SpXGfse at akKp8QBC=HZxxgO6E+iCilD)${=`G5y$1)rO<7s3#xi1t;9
zJr8$@M9n7i)3v*k6C?!L+)j_qg-toG*;5F+*KvPJxLU~gwF(V<7tN(dLX(g%{Ogna
zpK_^#{bspnK)KxZq#(ajSe*e)l*iE_TiFvd&me4u;LBSlaIS&tsQ#GoAn18|j3xh4
zJs<8R6-<jUtf(|QX8o)|8tJRR3V<+vcs>6Umt3-{k}^%@1}GRnYvF~@hm>+saJB0g
zdzoxE3BD~ZE6Lv1jYf)TIPOcPRq79uB{#F0^ct(ZdRj&;Aze%k<N)x7^8vmifWJVr
z`lF+O=4`}0s5yiG4DvWPLmiu~*vv}iiY%D}xrD6af0Y=H_X3$fjJch`RlUg%_sF#Y
zt2x#tu_?Rzfhzik6KO!ei{h`p+KW?GRU$Eg-M$pd?%4ny4PSpmn3wsHLR?P}qd*2^
zcq!Upy(IFSwt-8TSE&8{9<f5WK#W2!|Kf2JX;EZQXsBaO2^;OUv!RS;uiCaF9AE!k
zmbFE4YwoEs<*2{p94Z(d{+~i2yUJRJ#_<%pD2gsB1mCI)!r;Ih%M{k^8EQ(y+q(HI
z)D(1zrGT=e9mJR!yo?17u1XFRG}58DFsXtc4>RX at xhfe-v7Q5+<m6woks2tG=aA3H
z^@h>Rg!mC!x}Nc?SwoOijn2h<fF%Cq#rx at txFVd_GbG33csTOl>B~w0o1DNet%F0L
zQ<WC^C>WsixbZnt1bq_AiLN%1%dJURGtanYpS0sPjBA72B>9CH%hJDcWguC=@=jfO
zV_8YBQS%ynHp7-$Ak1OPY$?k^R6J<KesKGnm8P{+IUVfUW7=5+Zd{E^pDmh7{n;+?
z392gV=bV-_pgh^Rx%tGi at cSLB?a-<{VC`FobOw1hAVnyh+6Diffhb~c_Yeqj(2T!?
zT3fWGtj5PhDfgpf1o-&Awm-e5J$I3O7uAq4_)9af_C at 1|iiu?0)V<ivc99-tRC3vk
zzokEnjmKg>^c%S-Z4Z_K`P=(j%__8+vFt3cqd7CN8o=yNE9#G-_AiG^S*%;TE-R~X
zx)Ex+Ucy`1;(8a^^+rP1Cq`}nT8>1Zm$l1Kzws at BX-=H~Y~)?=r~q=Ju6nqMBMZ>o
zTox&G(UdZZS>mZYY`mycRLlZLeg+%uem18m1ZXNc0%21}AA9tRj2akQ<3NE30A?uX
z&3_=`=tDJxnJd%R<SDH!blz9kn}Blxqj{fJ1JrhbpNN`(<7a7NmxBuLJE)%5od)<O
zGxs22|K+dUs~8SSg!>UssP9hP2b>7cwn5g`&lO$}7fD7_WEY4_f|TY#3YA{IT`z`a
zfkW%_rEeGfi!9AgDy~YCmLQ5bIS@>;lAj)mf$wy;%8UwLG*mEOBH7ny)kIbaF6aIi
zU{!t%g=x|%t{M1=ydlCBhr?+`at%b1n at 7q_EdSe(@0&u~TkGKvpl5k5{Nw6W$9)1+
z6~Nsgtc-e_HqnMCK~0(BQud$mxYvIVWaS<((DHGUA at B1dP?u@=z^1Z7aG$0fKF@&m
zbp(l5R{{po5NSu@=2ZHpO1Ur`5Chphmg{YfL^<lL2sWtCjv0QatfH2bc?ep0HWSLS
z{7uD4UY#2Dz3?1qYp;`iU3qy5oq7^#suagEBGB^K+H4K-z6bzkVMgkK9zkQkG-!?S
z(q_r-mcW%>sp5k_U_(k|3SGG>&7E441Hmcb##Onw$7lAh4)Thi8Hsd6D%kXyyuj&&
z;{PB{PdOb32p>O=G<!~BV{Kvi<OMG4{Ug49nXg?s?qaa?4x04=13YJ^H^^RQxu)06
zDy~ME<Ilc$LCDrvxF88Gj(;X(x at zQ0NL5{M_4$%XJC_q1TT<)0(B94q{0pcKkVzW6
zbyh-Xqm5M9Z~9se-uQX~`x<4sF{VCDqiCIEoX3m9-(gd3JZ`c*x^#%Rj(dqD7kX?P
zI!~&YpJQj!E{YxvK%eTOB>f2V8xw_%QMkZDb<*)No23PsE7tiHfQx}v&$}xDcPuNA
zJj|`okdupchP%nV^RkWSKi?@YGaF7viuV5hq468AsubxcMKw)~bJvs2fGCU_mqi?z
z at i~b!G1#L$3LA3=!O>|Q)V<ER<`%WSPFEGuhqE~pgHZJ0_Aqc|b*($n-$9u?6!pUs
z537+}L5Uw=Au8{Qf%uUOqbpzk at C!E8%{`*Kz2L%L(`Moy;?QR<U$RRm at xtEz*tf#*
zIgvx;)c?)~L2w~C9={ZQFVL)z4fLot$fN$be04rdQ>~dP94Lpd1Co5-<XBrsXILe3
zI}}7JQ%VHxR-w;~RfX5uVJ``}{4YoNp71j9TRA(}ObiM5_>6O!5{TGB<1S(sGy<$)
zpEq3%As-+F(m(?=#@`?0y*1H4Cgo~061C4V!8)GH3xu2 at Z^21t9WoAKXzYmB0Ik*6
zpdv{11=KUqL&iSmQHRftiM3|B%uIAft$qYsP3b=2!{sGUnP*RWnEWf5(p;LpWInaZ
zt1wXhRi~y?qXaME$?0~_;?qD}1m9WBG9_0v^DAq-aDlwZVf)Sm)1L1SQ8Ftbk08&E
zj%*|4Df}&uj2P#r<^HE^wp9w at JFBgAoAP;ORX60hEFqJrxSc5xP&j6zOg^?NTI3ZD
zLgjIvBRn;6>&R}Fl)dRtmCH3c7&lU?<*x;Tfs%tmWQ*%7k%J8^K_bSlH$>ra>LnL$
z`#p#_35krz^1~_tuOvS?SV%?cwNjm47o{_H*RR}Gvv9MlzgUpYFw=le=tM!n(ef{$
zUZ7LNsSdfvqg><zX_3^{8d#LI!j}fUlH+OM)T^DK7f{je6Vp+HJ|fZpxg#(@9Dn9O
zKgu=&9#dycUpd`Yk*ktUO}Yrgs-#+9{G!5E>L<Nw{PGAKLCK*qwBr at 5Ux+`5;z%!z
zNrVDb5?w7%euZJa3S9xSe3$?I#Kb!RCJ~gBlV#W1%aP?3q^%J^|MS$OKXhF;ya?}W
z=BYia+g?ej-;dSZ)kIib at 59#~(9?^`J at tncGvhOwq$Y)j);@Ms=Q-*>&r%)DW?fs&
zF==jduO~NWc6du@>wJNRr`*vT+VLD$0>(MLv5$D7%LqVgdfvD-qen**Kn%n#)p}9l
z&e%sdIO8ynVm~{swzX;syh=hI;2-t_qA|rWE<@Dz-EnZmti2YEaZ4lVy;<A*H*QN5
zt+j~jZIcA2?Ve~MuUPL?7r!L8wS=P?he2~!lRwpby1#%q6t*88A%grDKbe}gQ_Rk2
zNzu*v_ivP=G`6mbKk0E>#;xo25u%ZaDf3vJo at A)~n!WqYcj=aEcw$a=YvAg|$J9iM
zNmTNS=x<d_0kyhP(k~zWotEGh1fIXgw_eBE+phVQ)#|xeL2;#KswV|<KQht)59i5y
zjySNhUve)zxCEdVlllRV?xv?_k&Zds`fvZV?^m3>7)Mi5RHPJQ5*O!D|HnDs1N6-l
zZ1<N+cjp7>W%pj!Jw38L)PQA!B!y%Wx-VRWeEEq%k750F49;z5E-h!131%PFhley2
zcoYGyTA-i5TfLD*Q)9MnPbaBLR>XU?H-^&q at A8o~^@9Rb-_UPfSe<r6ZKY7wBGI#;
zXgkcJeF5(Gg98H-!+vZ1FiU>Y41*=yphf-^nCS<>jmj0bOZk$`^~7#G2q~kRT)-vN
z?wy^oW`NrOX!B75%0n$<g-ajjZk9o!B at y4Qf!iHHj|9B1S1efR)g}}Hro_yhEb<GA
zt{dxe<x>*l8Qk_XWcjn>9Cw>i*$edsv!s0r?9Yz}dw}Cg4~)Yq-Mq at eDO~XB;17?%
zEJSM=Kb6+5v0n}^kMpi{EMrtQgn&=OXYFB;_{^BoVOcw1V8-q*(aSAIUKFhlXf+ta
z+3ohjL)X(3;(Q8pv*|TM3!u7D{1Te42a~GJN<-Kt<(GL_Zpn1rUhV~k9<MQJQ%uge
z*3a!Ph`fw3x;}y8<l7sc3!Fs at oKI;9ULBw$2=0=o6u8Wp;Qlk6zcrq at HZq>*OHi!V
zt at FG-bvc@V+0=Nf^dKE{kY-iv-(0zlp1u2;$eR_$FHCUBPF2`LvVv-i9iAk9*T(kb
zGEi&{pvq6U4n+Ye!q(t<!l2O#%8jphZw(h~lfZ{MvECY{!;vA5c=d<x at Ig1{+9u|(
z at W^E#iHCNX0L*}oAOAEh5&*5Vn8VvUFrx1M;xeivfzivADg_<C>(zZ9R-)iH_viTD
zl3YusQx)d4%Q}}3&jZNo;u#Wr18RpG)M(y08pXBd+OyqhT*R~GgvPG`eo23)`n;_@
zq5;^WaUr&5Jb5lQMs+kM|75Av(PDqZmq>`;Y*k~_+3D?(d0xoy>3GO$xIyEn1tw?t
z&%Mg>g+7Ul;M%P#)zRZanY-WgAI026h~zsX0#;tn#c_*t>K&o4AI at n1Sf|tlsEy|D
zC%?abe4?FtzRca)Z3<;=Qc0mx>=bZ)Hy|vF|M}g@)W;P65!M0n{llA?@`}(K(WHZd
zZdaQ*RQ$`321QMPT-VbTyQ9$az at J>6k-)z^shre{!|V)m2rJ;Vch9lPG8aqCd~;v4
zlR<QX)r=mjUAr{*qwEcSSea*BmE1j)K{VmiWWgkE>wF>`LU`+Z at xcvqPtKhsSn}N(
z{xfl1%}%#F?WIR at +}+)&O*dpsjXR()r;NY;U{g6ZbX~mj7K~|&irqvpkpY6mIXMZ`
zyXM3GstLc)<@h>E3Nij+ubXzrNoX`wwfh-){{`ZF;QG at 3$1#mf#NiIo<6=IOZk1vc
zqstwCa20{wq+@)uR=)~+&t&V}OIXxat`u;%)9tF)OE_ at M+WYJXef7yIChH#LQZY94
zJe~e%p2d>cHdzAyFz73|yo?_`!5?g6!@BS0b=>&9?+5-$!~59?z{!Vmr?@g5F_KPu
zUGJWLyPOaUCxVl&2~>Zjt7o at d+B)E6EPlIj^>$@*d at osn#jKt4gB1!s`8%vN#t6Cf
zzBsBBFV(A5r)*uJ*QCYJL7Ht#{-W>FXrM#h6hRl%6Ieyry+-iVBw$+gPAti3bA+<u
z_9b8Rvw5p?fln?oPI6}3R#glyr@{E$C(IWf+$*$`OU!ET{Rp_M3G8vqyHz&ctCjj|
z`@gZr3Gda(%IrF*CreNY{!|3bHqc$8&3(hFc3DV8{sO=2;?~Sq8wGz5yn9zW9G%iW
zm7pt_srcG5siK%$+53d~U(v6r0H{Yy?RlIlmG`#+gJZj(J|VWnBsC2{HrjtuT|%;9
zU!7ZQq~%YzsjSLPxT&tnttDC(Hhb~qhO1T3e3u}R(pd0T8gb#(y}xrjiMSAhUh>vf
zgxcy^f9~zB$LaaI?$#T1SPgJ5%}iW1UhJ$X4-=S_q!2;HU}E;}BCOB*2hp|(KS*)=
z<6 at ygo*F)VaajCa0mfcJik*#8h#L-1_v>pLiMJZEhg__TH}zLHyC&`azcNP3@}_`z
zsq!~YJRUbC_eyl7e({$mY;rs#ULDCOyduQ-=dhMw+Wnj=DR+vrvAx|-sf5^|US&cu
zcbEOkk-566bmh0Zx?d9B4n)m9mgEj3j-`Dh()*7{M=j&Xm-#<-uBEyd8AH#HS?}y^
zT3ZmePTZI`UMtsit*Rcs7#j{g?Oy&g?v8kGVJ~d+?sJOTFh at qr<+qd=$6KHdS_S4Y
zkpSN&>#_TOM<JNqanio|AD#XB7GFL+e^M`#yQKERT=PGbv-gpaZ<+)RpmyyRi*O&g
z-BaT|03npu>}(wM)m1gF at qQsB$~|c79j>FdHXx18wAEcNTDK{(mTJ;ZKxI_g@?dX0
z)qjpT1=aJa?vV~)oKUs}3S|o@*#fw2uOwA6#rd2=@eRi%6UMan{Vg&>aX9q+btcpD
zK9Gn^z at 3O5Ir=xpn-aGD=zQ_pU+s>x^G}^DnHub at OTNue)+PV>JN^UKIZQH>8xs<Z
z&13L&5^7WG?zweK386Rti#VLQyYf4n-WP956$-SxJP(Vu3!gu4t`)R<<5titc=&O~
zL4awQX_8i2jC<1P#HKyybw^`|E$DIe;;3oAX2hDU?D+-w9X}NcZR=|0S4K#~ZX6Ed
zt}k64q=w(6=yuwjm;o<=Ti!<wcbDr3VBn;1BMV(WyxF<7EZhIJoCsc(+YCx?)aClw
zwMoyj<#$;oJLPr|kma*_3mM-q>?aO)U-ZAFS$1_#Cjpdf9)JnW0^Xi=Wn5hj#2vR!
z8jJ3UU&<#mlT4zd;NRT-H6_;t0H at ekJB<66t35Ti_GjeHf$GLLPrL`qjQ^B>?&Y4d
zNm@@W=f_{?>B#U4wLFR|BiF<q{KIjnbEVM`+MJb2sn{uY`RGnvZ|<vv81F?z_!<9w
zeZlcx*MX7sOTZYq`-X at t-8T^&{O+x1PuKPEx=D7d#?JdzTLv6y4WKouEw1|pwfBoq
zWcT&BnRY7$JJ-Btxy3=8w!P#A;2)087qJj*O;uW&0YjXZka*_z+#|U!K!tlaB^Y>Z
z_`d_4vk1%ITX(=tkdUZ!lLr`XR!kZVr;7>)Dd2BBw+rK&MVbd00DCj~ms)j>@POCN
zS-;qpV1Q*Bp+sHja)`85nG<iy0w_TLIbis(kPATs<IsIV8d09nHs4)s3+I-C+`Nl;
z>KN%&`uIJtoOv_WADzmPTyhon{r6(6uc}8i*p4=rfMr|QSOLU5(ZtSwg+W4=a~2y&
z>>Q6Y3(I>*NEqPC3%WO1HuFscsqMs#sIms5!y!nHA}{bju&bv at 5b&s)@;U>U++Dt~
z-XFw_&PiWSx5h`AcjCXr at 1M5BR-f33-5i1D2LezOX@IaXrQx6z-F{Hud_!W6v3 at 6=
zT>0D82^2g#J-7R4i;HxEPcp|j2LOY5Hv=aZh8*}d at VViSuWoP1PLyq>#RK%kL{;7U
ztI6gS&|ezwk$cf*@a6yzsJ0FWv3|-676F^m<Uc0LFTSt>dR{#(4)trBhQokPLOV||
zvfcwurmQ*R_!_Y!Ybo!3AXrd2rtW)iQ&M1nhjR=-$D8ND_JUvkGINB8z-NF9opKug
z#lnv);Fw|$+&2-(E`F<LUS68-4Ioml0L#@Ny7 at hh1mI$$zFiGy(><zMRye=_7b>A|
zfs47D;-|uVP+<$Wi*Ny!pNna)Lw7I0ynBv-84`quwAq=E2=fJULSccYi#$tUd at gmM
zL!Z3pklw%b3}DsO2=D)%-2=sNOM(h|SO$wx=Y}>WHgOws`ZD0Mt57b3KZ-+VtohhR
zeZAp&31$?P%~QGU(w(sv!U>CIV8KYYGwZs|55%W8NQX^%a at B){Qvg2BGbP0q-}#Gy
ze7CTr^_(%|H>xfAhJ*jH<3Cf>XlJ|*g;gW95B(m%-6+W~@o@#58#H=XtER1$viiE{
ziZ<et at SkJg$}j;}jC0b=tv|P<Q3y#PP-m!}W)9t0(E0}K1XjUn#r)K|1O63lMw*cM
z2nBH?(%f*2-&#o+brYg=+YTXjR=<DbP!8UU+UO{AXgfvOPC?IDEk4zT<dep^zXzk!
zqqz#?r%8sNy9BRyl+uTVnegvU%{SOEQ94kL*|0ffM)Kb9t0g;4XdHn)ORn2fhmSRJ
z26)3haOz_wsUM~+O$KWPU at r=X10=4_puUnjO`31}=U}JjX4s<|2FmZ&bcW0W#2Lk$
zkk~{WHQ*M|{`i-1MKNAsK at Ww=cIX`ISLK8Sh)B%O)<b3kG2?<4xf~y#ym(d*D_r&Z
zg+ajzpw@&7#(tR3K0O~@o|&+Um$4HznyuB{c^P3aTi3(<nDAkvNjyvk#Ko;Ed!_Hv
z2rOA{VNiu3-W<=5%hph#V+KBEJAiP>Ti4R6AF672R6}DB{@~mLG|94Hbb)yRi5g<o
zQp{HMpvmgU*bnmLV)PjN0BFt7T=3ICI?3tV5IFWRbNo!VUSF0}@uoZ*{`(QG9ZWut
zjnA8vMIRi~e~$1>_XM0f@)a5G2q|8b4wl}ENqMVDpY6aX$;B>vohoX`Gtb4GiI#@-
zflU@~LdrvyuRi%`Dc^u)?o>wbIc%{l5CO2L_!6LOOsnp6F(S<r1FlRe>smU%3e+OF
z2977>)!=?^WN5Dvi_cLSI-|U>vJ}cTAaAk at knCkV<^j;h%r=aSYwESW9B>1M?|ZZL
z+gEtVR_NZOHh|hwAa1vR{vCV=j!-8vYOS`18m^RxC5904$z%Y!x6Iuhax!i21;?uh
z=x|ydq5<pMOH<N++~Ar>yfxq4T=ceADgzT~eZ%s?NU79*RZ1r=-F);Qco!+n4p8AJ
zD3Nw+`6dV$qoj^T at B|ZM6*iBvogv`KQM?_GeE)Sez at 8~e!X3qV;?W-x{$pls(Y!B@
zfMJBpq0|^hcu_Ltm0%vdT}<ZLz-D%%^Zyq&gubI0DMqVXV`ln2`JcNWU<WlzH4rZJ
zuOYPok|BSw*e;{zRDj_LL&2*M9<sf!2{0eJec;iA at I^)UCC__e6WeRXYFVI+&ruRu
zKx>OWu;Q`Ss=!$`fwis6T-^zbs>Bx2RLJ!KD>V)5et{L*@gbmq$4vzCCsH_#pT|r^
zRKM`PW=$8wMe20GBrw2P$7Ls;USkp~r^}ha$#eV<+PrD9lj;UIIWa!bK3$)6n$$__
z>+3_3-9>=l5xr2O{6hpmKq*gxkhj;ykO<~Dt6lT$8Tx<tcoRe{>PXl!km{ln1Cx(5
zkG)!|=+smaKWlo9=Fm{ooEd*4Jvl;&-Z5rR$N3-S3U(OM at J!*D88rhN=^p^3=G4l~
zUf&qnSr7 at FR+^-Rg0X9iPScjWj;X7(pL+E9v;q%R?*1<dyoPlQpup9HPWFw3YD$>@
zrSV}#5B=M}`UZH{*QI5^_HFAnHwl!par~_D2pEyaePZ5l{3gIgZ-C{7mI=&Ca79H$
z^EO;IhJ>4U!Ipc^?s;+Wk$^A$lpibs71bu|E!HyLcs>{F4PZ=-M(lO5sL8npE~#lq
z at kJZ(O0!_Cyy(Iy5_^n_idxr=U3AYpZXght5zZ_1l4s?W&Sn+wh1=YqJrGluo%(x7
z>}O$ilNZ0sS+q&MiM<mjLOUbjK6?1C at U-(%&U>e{YXxbPeO~GsQwOXiP$d6_5^zWb
zUhD(LlupzNkejKwRJ;CUeUY(t0KTKm^WIO1HKE|pE3f?89-UWKVt)?Y#?o~cFV2|i
zHqt-7;e(ZheoZQMo0M!V^#||$5&v2m()3N70_DkzA%6(+1Mp_+D?fOreBgKl{(l5;
zlq>e<M|%>Yyf|*=aD3b#o_T)iB60jKc|{}V#h=w>#>r;trzI at cg!$U8>d$_4Tp$Ug
zI_)LwV5~%KpM^g09Eg at SXcv@IsO|dd!J=F{0xip4An2h)nsLke04vsR5ZTF)5}$#8
zK><LDt+ejE;1fRHkZ-}04N(!ZW~4Ogi)T4Paw8R6g17rj$y0vu?Q#DD%kf7B(r*pv
z-Tbi83j2&)EOZDb?~rRCU70-yX+fTh-Sc_9|6!x!LX1z|Trt|l><ti7u7GqZ3e+4`
zkoKy?F at M5#!4ykT2+<wbg<Ef<0z|<eS4FA9C~g=y7l=do%l7*3Z|Cnf6WMDd`hnS4
zIO;@YuGwpuUL}IQXjrJee7Gu(iq41FxnikYFB&?HF5gNokmQo=+6pTGC%tJ$h0jE$
zz<TmQ$)0SNFzfrjr^aE=e_q8&Fw3;$K6VvIv%3MizFP!SAQNK=I9KZQB&sNDECdC=
zpVDpk>`%`D0- at E%141VG3#;sEEGFuLSAA3DuD=$6W9uOTIAWL_t at KQ}9e_`<C3R1Y
z`=1Hx3t90;A)iEx&}21&4a-~)4R^mw#GVqW`^3G(n<K%Lj}J;SE=}a2vu9%+*kH_9
z9isz at ->W=*naGy3#WLAceY+uDvgf(R at xHH7KI1paAl<X3UIQ;l&A=-SdbD$&oMh+3
zGhPL_A(J#JY@;uMO<deP2%P{YUP9EDPk+sHp*J=-T7d-EpFMp`n}y=j!JN=0rt$re
zut+V)5P1W`{2>bL%(pE>xgd-Gk0Grl!5>SnkxrMvR*dPOCH8GYJMAW8*}v=+RylHV
z1B}m^4&fW&i9J%x_Fcr|`)Gl&N&j#8sZ`)dSM*<Te0<7pT|p;X9G~QNdD*p6V(v!l
z<XyG>ZVyrH3W;w^jh>E0zE8e&`#(gTbySpHxb{`L1?d!qMr!Cr&;jX`E&-A5F6kP&
z8>B;!QX1)Q6s5bRL(*^0`<=7SzwdfoGd#1Oz3+Y9*M0qB2DUN6dV*O<H6JB26p(9_
zSLTAc$o~T#(JBJ#rW9yq>Hgj58o`k3SjT65wS+Ux^e}aH3EqW at UDEDb_!7vehkb)Z
zlUw>sWDZ)@A;Ku%eo9LN=j*R8<bO4_42n9qkv`QZN>ij!jx|d&Q)}rvhPZ%TWf<-e
z3Xr7L9Y4nyhu#eJ0gi?S5tc%K9uT&s8XZl4gALks1C;^LKk4&DQM%cXg6&m0cNieG
zeZjK_s=uG7tGts4HI-)}WTq^*vAYY81b+oK5%W?>T8}Iq^^)XH!zXUsG(3>bi1}k0
zjM)DM;n_iL8AxLG&lnXZR&M}kc&Eig1fic9WIZhv+>Jk&EC^#IOpBO=^tVRJlJ4eP
zoPnI~WDs}#rp4_KA~rn&cPVbkYoDDRjhlx`z%DDaq`0_zm)`lyvD|Akluh)0?$`o3
zl9dWNhlkDq>`llSW2uyC&W>?DyucKLE8l!36q at UVf5zNu-eC1ZZWF9BG6uqrvaAKh
z*zse(*BL~AsZ9Er$7Cb02_&9Bb4f(8!fcU?jcwk2`R03nG25W_Nx=W+e0T3A<;|G*
z9(Vqy)lp^{aQ;Lw$-K*K0hfWDQZ(sp4Ylj*YYM*ppvX*&^v0|WT~QhcheqIZvEuYl
zyeXIaUvO$)=y)=+syv*Ic)&X|iO1#5Bd(tnD-#8 at ar4hDJX2O}G_L$WPzwHJjN+v8
zm4Xjk%BBEeKYjW%)+tGXcZ7vWF!aq>l5Y~9%X_Y&01{z|6Ec+GCjBJ&B<mWf^nM><
zm_Z{AE{k?k)+x^Gz}hri;vsoqI2T4Q7IgtpPTS?2JOU!yhHFj%`3h*y at 1OHwLw3t*
zFj2qlGTv|MkS*^TmhqL_dnB1cxKT`bq&bNb=`0()ogtx9Cn~)IkJ>!r-voZ<z(kkp
z1viHxC-R%~yT?Ri$uyZ^%k3lp!PkCQBt?&%h{Ec~s<@S?QpU3;bwoQ9qUBX;TsBj-
z;A>CEXqfybWPOeqG1XL^fw6L#YAEU4_JMQ|4MIAi(;b{NsW9}M{2~dXUB6J&j5iG$
z;}jX~6dpq^%*Wi%9OgjSX>XPkWjL8f$zJg+$iYbbbl$zx;RR%z866Hgrc8<&5M>sF
zix<pHtOhMO0~%BMG-fx~P>Co?ftoYdCrxrz=gRp_@%z^|u4MFy<=;gy!5&CE5!CM>
zLX at ioRe7X>o^~WzO%sW3DC73a1ntl3ZWoN+$7Cvl(3f#%r60 at UglHH-mf^x&x&cB@
z+N^&)nf_HGwJ8elkuk3)zt_p at 5V=%Ngd1xFV^Z<3h>n|?o9}k{7 at 9z_AvHiTP@dVR
zexFR?q#X68SnJ77VP320x&U>>3L-E)-h}*q#9gveQpi{%1s}~%9aZhYBh6!s8QGjY
zapc6SUzEEl3d?CoI|;4o_3u}|F_R*aqWzSz0bg_mSfeK<V$bO`Ygfm8!VMv{Ssu^W
zNCVR~WXO0sm#x>iQ6RX_BTDIilYT9!?a{-MzLqRP*9aU5TM;zV$T`29tn0UD)hEPd
zm1P~5{T843EGN4UC0UqAFi|uNo9rDRs?rN4Nw;}jOyR>pxS9&$l$TWVRN-YlQ=#(_
z0#s%bml+k*sozqb+Fta5s>Vsgc|53_L6d0y;Iax!F2L*yo$dUtKj`f>L>@%JEWz{%
zDkp6oV=m!i#Fu#bm;&IL``(AaP$6UpuAf&zCt*~?5ijNrEib2fXnfj4X+M4Bq&8vn
zWPuDCK{q(aZ^E;7sE}>x0RZ6#YFp?p(e?89H*4?@=Lf&lwXWVfm4Md>1%j;L)0f`^
zNb1b at w=I~X07F|Uo`%$=OSTkZOJsr>s`|%xkL$z4bI-ez{tJPeIt0E*Q<7CA9mMZv
zU~R<<HX7r;60Jrv1H at Dfh3w2-4t}^*aMSZfcQZST%keaYRq}+&2oVFug862$Q2c*)
z%m40ktIlJEHh{u}53bhWTZ95qJRj!Id1Hc`mCm3B+9!=6lp=065xp2V-Qk=LFQfEy
z-#$p(>=bN*IvIx^{1ezG6SizJK1|VOu1^8Ca|kMe!FH`IE!!ua+Rh#o;@xf$xGJtk
zIk?yLp|+TJ2Ui{6uq=iuVsv4fPIDvZ-hpB6C4lnq0-X;C67N2hR|`DTyn6wj6<>nw
z*WWOpB8wa7q`FFSCB7>%f<eb5{`nZlAk8Md(3Kr8RegiV7T7xy)-dPT#V()&w>lc3
z`}1j#Q#v+D)C$Tpcuy}OVAKX0-2y)1&byCyz<;3UivMEE>Pzi)$G>}f108ojaZ3eY
zyE^U3aFGfLFPvtaxW}F0Pv$=o7 at +^HxU6+;!}?oU^}{wTxSu8vKjQJXp+^^WVp3ko
z^UqeRw0sl<CLhBIK- at IjZMz9;0vYVh4z>q?2mG+?juu!dUH%Fl)9F*&Y at H>?;1*v|
zaTKRYyn3pqH61ZdRqA%$-Bd;k96JqFwqLlp(7L(SLco0>q_(b3+IqGM=Rc|rI6(6i
zgR{Euy+ExbP2+p6I>17a4<cP9c%8RKRw~JrE+<s9u5fis1Mj(YXm^EqlRk?e2xAO0
zt{*(AMRhJGs`k4symV;&o1iSd3cD8Jr|ohW=_ZxqKpY^kn#c?As{rn0->2YK5s$5*
zVv$lB#a6D at A6%<{Jy`A|r(%)15W6N^w14B2YrbBCj}56Zej=FIHrZ_7v`OqJ7n0>P
z#Nq at JUH9mG1r{8F5OQ>L4(h{YdJ8DW?RQ#nN?b}aM>5`|oL?N4h`6OxJ!5>s-+`oF
z+_?lVvoIRW;8KHGk4vGE{XI~Le at Rue{yaW^9M^@GLb``X!(|yWcaZBR+H8Ge_IvzM
zVs>5Re6aN1NY=Y<p~mjBN>}5u?&4+_4tw1`Gk4N(brJd#&DuwZ4YBJiV#hi+ at j3w)
zu0h1eD`Ip)3E9HwFK5TyCu(aY(UVsV_u^o)+XN+Z3ZU8VXHXz83a!9Ri*RhLMDh`Z
zzPNXI4{{$~h6O+chwn$p_022ns|o^d-!k*S6DGJHftz2-XIoHg5fFgiSku+|Vs;WN
zUks#Z($;BF1j})RXMCr$7wF at xzzC7W3ITT0H~`<R at E(!pY}4>P#RCp?1k(K)V1{R$
zf1r@)KL@&JM2wHIzypF10(wd>fKrwW_-T8-Dk_b{QBS-uF){g97h;diY^rFM=u%E;
zL?pcwN5C82CO0}?ipkn&9|G;xM$0MC);OA!p-E<|YLuFqo<;&?3al2f82|5!%7Bcx
z85=-pj7j)vJ750f1Q at Ib)3{AHKtOcjqT9TpjJTSbnud;K`u7mV0&->1lVAk><rD~C
zLkM^Y6+TF{e0Hu2h{Nd%fCKLYgm}4JabFF`>zn;**Yn_zC)~q(v(>qGK(8!c`O6iP
z3vB*Nx5wRhvpBCAf#Vz&OU*8?wSlZ`h)U%p-%$lI3(vLH?229hi5J$NuzlScv1zgx
zAYPihj=*{HKkK3Ms#lhlB4-r=;{z<8(0KY+dKPar7j>ogKB#lSgTXiie{b|XxUuSr
zspTselRSV;YY<fa90<HRB|t~if*VIU2HKgBwzVn9A`;#^0ZL_AD(eH#W at Dj#cOII8
z0DGsb$*iIxezOD7B;^{u0mP60pvQnNs3H!?UIyuu&M#t2yn*R%<_|~z*5+pl44qtD
zsKXuUF0|CtqqJ^ab~jZ_pDUMABrg?yT&yY<Hk?+8KNV#H&vRf|j?&;w@?VZLhpDM4
zp at e2y61wRtDra7P{@nKN|5g-ymc>p)BbtOo4*<?7eNX`cPfeXkAz%BLlao`K<Qk!8
z4>?A(cwJas1H{pcPh at -o5Y6?Hv6E2D03s)qXG~B!IR at P1^~O!rgdx-gu;>IZu4v%o
z<aFNZf4^@e{A3DX&DwHJdf1sssh9>=R0ieX at sjOm?NO?D7m33+Rr*Jy;4p(cehCQa
zre`V|8iko??k$<vM}1Y5w$B=qN5{wU0HF%<3+sr2kMI;WTdDGP*46V}cGNp`eY(A`
zW40z3?gIgAuLhfoMoc?dCh{RMf^_G(|FUQt6=vhSlwX`+KeW~!Q54gqn`ltAA0Uu|
zrFnVJlQJ_aIHs;e0Ir7pTj~oPf}!DIEFxm!J);%vZmzEX*yoy05<P+P``#6A<Oneu
zp*Y2*x<CJ|dTxC at gHOJ@Rg1PDV*)?y<&?RCY$#9G_ccXnVfjlBeX6<-rZQx|IYnBB
zyoG8liaJ~<e{)hAS|JCiO18F`1P=I=0#cOyy=u(V_|r|_*;KN=8{@ShStn3bZvtKp
zaS8fPDevmWIFQb)Nhu(+1ElGF0sUame5U9Wbngp+biFsx%|h5aI|sH}bI at krb7}(6
z94|#!K3T8bY*lt4xFax0$83x9*0nk#DZJHYPKmc6jy89}<5{ROXeq}IqYsToM=(QS
z$&x5OKrOGxTmdki(%+;iogh^v)d`d#g8-eCpLoEHFO6?vOR)8o>ng;P3*_hgbcQP`
zq(|Qy1B{h6z8fNrr!@{avJ=_oODejaJ8t9#Lb%6aT9EDlTsNZSy2|^3TR9ZyG*<$_
zDX}>&uBa%l#fJma!$`VgkQn_2V8qV_@)Yv)^By at +%1NrK#<OC4Oz6B5X+?EAT+l(x
zlST$<(W#K`Fn5Z&fvZUG5ZaZrWg4I}*#O&e`L8d^f>(voA!nk at 6#95F5O%$<Gtj3p
zbPHkD>bP{$tB+z{Vh95$(+pLMNe>d(MMLrV2uU<1+JBX*m&CmNqA~TN5EcTLS7Y^M
zY*cr&0~*@i8>}Op^QTV=NIiDn`4Vh3A^;)=*wgch;{rHnUQbSjLQYLIxQX}<F9a}O
z(c=#Vn;v}Bos#d9WfndEvUEW@*yZ^Ihv8?A5ZKcMDpfRGj5N7e{TLzKo%7V at DAE2y
zRQy@?BLK=EBgdqiLrF>27fZUb$qBGMGUy*x3N$9Zl&p>oJjU at OL>&ToLno>D;b5aN
zs8$r}qZB2-W5!y at U1zCwK<+|E#YDwKjzk`M9ErU&<?y^~2X&iAt&=Cu$AekAGZwDm
zrp6ybDWpb3cSy5~nyrd+*zF^(Uwvj6od3~5)SrdT9V7v-fV$8RaCiAJ&c9AbOPeUa
z+%@P at W3E-smtR%L|MO2ReA;+ZA5$eyZH2s at sUL)%TCm!%8b*@+B+u{aMGhG920Dv6
z$@jELl_p at xxz_bG1dB*FJwfXOJr`My=KLU%#!Tf*OkfuuyHStq>*)Kb+Nn~{1X*Hv
z0UX?sOu6i!ZRRPQ-auGlvHI()7uFI9IAV$TR}%xpKHs??E%kpC4vxo6LLWlMTb79S
zg}uCvURxP{0%ItZA;o7HnPoV6g!@XxPlZcGSF{JoF$f9;(Aj9VrFg;om<=&9A(Jx*
zO<FOv|J_OLdW=Z<RQCx`O~IWYBA- at SItG|PkT746-vW^__7aRt2&!Uvhen)421jY>
zS4}x<kYn;2VK|6YDVivcV-F!kE3!T at TL=neibVAn>KkrE?Z7B-3U6f`Le0cGJI2MP
zvIl5UU9w4 at F`g-k*ZK0aaJp_DuSQ&zV>$tTi47h?<s^LAi&EL at rY&;UD|s(dr(X2F
z-xj%_`xE_uUhu7$L2P}4bIV;H$n<k7D?U?GQ_e^lzZyCDmh*#Obn&vxvyivF>U&D<
zsE~~(J^`a$rm_rEE7kB&#wlHCCmMu%1PF)NC!J=BLfsCuJx>Rj_~6m at IZl~g0n08>
zE^^qoC<LSZ<iNjfOtrSN^=Y-SO21mHX;tse2{_iu3q&NThC~Ts3Sv<99EF`oG4k!`
zIm$AltqSLcphHd_T>??3n)mmLow6#-F0#7h_PkpGUEzb)m2HwiF%8c at z@7EY_>BeA
z4d0VH5-Ob+9%lwd1x5}9SUci|h*BgYwM}V|^WN-)<R5qCB+DUBlY~Y)UJSMEMkB-$
z*XVH2rqiAc-I*y%%$QN}m|_EAK!OeH#m5_-r7j;{onjLfQ~x{AfQfQOVxzFMiBXPw
zigKO~7}Bz`EQRE_ygk_xQ&IEKlCY9mm47+f&RH0(h_xF+_QWzM0tbs0ms(W&Pnl&N
zS4Yr~UxOWmY`fj8lN%Qxt6q{#`QYL9>Zp1*^pjQMkbF&NpP$)g-56n6z2!{veN6cy
z?2HMmuZPgrZyS%!%1UxDGhv?m9?H!BzdYw78q#mKXdeevfDxiobpM{EgvI(={JM(8
zpDf;ZBWgLRBWXJgLN;0BuqyT0C_vC$j8XU<aI3yIONyA8ZGRT~_kA|=GQLc9#9(>+
zFBLbuUCP5R>Cnndmn>e7>_KaAU4uROE{sjMBv}B*M`iq_=D`*5GnW5vS5ROWY9ozs
z at zX1nQl8)NHyPO6M_{yQF1%oJ%R5x{xnK-C0VYSSx|!f?vC2ASm2__>w<r>nrqAdy
zzQ&P#OuDbeX60!ADq!8yK8cl;Ckfw}Ta-Md2PKk-i0HlWN^YX}F-1{m^s*uCV@!i2
z`XsEk7sWE+9_vla!A;_kQA7io#8dMnL?_W0ouI{CB8Rps%gGc)(heZfUN43q#X at OD
zHP7FH?nwg)p*@VhxyEwkwi`DqUa6fzm^h6YP<5Gc;XY at dYrn67aZK8Ox6A+PeVB|?
zNWPeSbp~yZGM&O|9&~|n;yu_ at pi{ip=y)t7+s6WOCM}37WWE84l8Q}w;>RNl5jGIg
zngX2bm#gV!24Pha<n!E8hb-b%ax#>SKbd#+Of1IxOfg}U0c+o3CX%)J$Y1^;kmv=Z
z%;+D^r+8ikksm#4KZcd<0779-3t)NgZ0M0&4`Pc6F~5UXfgy8Fa{m{8+w0FrHD6ku
zv`JESd-iZ&e(vG<T6J*S_#PQ`bL5v#o&tikUT(uf0D7DjgP<Q<;5I5bH?i_^u+XWf
zCP;vd(Suy`V at 08^8zntf&?12gl@*8iGfG(2ZsE&(m1+}QufY>?8L^%Z^q44&&cz$E
zlpkcc`lE%Tn`3ZL;-LiYt%$CFhWcdH_o(FPjec1(NPFvYXTAwt@<--HmuE|Cm4UAk
zG!HOEjoZAPs>`p2EHGg>C<30~pq)a+7sE at 7xC6E5-b0Lu3g(Bd8a<1ifE*h8z90!(
zOcw=z6;^n3kX)i5lOie3OBPd&@En at f&|?bqI at vQeSmYPi-fpz_ZwqI+`zZ^CWJMK)
z;TC_z4Sg>(|C4vtu`u}xR2G|E)rBJ0fX-i$IJEntyD~N&S3Y+r=$fAGhdQoFy9anh
zESCfbGC>qnX_r!l>BB3kSN)h<RdBkgTi at NH)QpIClrLrGz=&b-AG|rLkuao;$TZQZ
zc4H1k!^hD>PpJdqaQH7DhkWW7sCyaIQBL%vswDLa6X>xRIMM1hL+R&3_T-h=Mrw}J
zf<^9GhR9w|x%y3VX%)A))2y5Kg6g~OBD+Z4BR`g*pGoBS-R!R6<4r}nyfX`mh$v)f
zlji-v-2&xjXAWRqT*A$o#LXhf(_gVgd5zQ?cy4@%Dkl=ju$->StwB2ykni3s6H9#x
zZdtl`u1|oXQ9v}33HiM1 at iLy2%lKo8y_ol<!qDJs1o{PWHt)##tKZ*|lf7d2(f6si
zZ at fEENJ`0S at KNF+*gBp1U!jE9TQcxHiu~{$Zq1$ImU5yLC(w_}$V*)Tz at 3TfXV{8U
zD(1m~ePuLC#rZ+mtYTZi-1Q1C?RwC#c}&N)wi6K{Fnf;&=bNWIdXvI(K-k)wc`)2K
zbnsIE2`-xd-LyTxX at K6J5^sVFwkt_y1{H#QY at 8DNQ$Nj16 at 76Hu3x+{q?;|k_rVv-
z6KFwC?877-iamK0TpK;c31mqs*s$Y at 2|d4yPpvj<wpFFxtND<4lNT&$@<Fo_bF6)#
zc`s?wB$BNTc$5n|L at 7pE(3zz%SQ0-d7SbJ!+ttrj1I5Y)RfYV6%G9sIkHvZKbEzLc
z(3NcCU1goWpDuk__Qf!-r(3xkGP+A!!rd1vvV~?`t&m~5)wh6)c?jB7I}W at B&wsMD
z?&hr(uJ-6tc&-0c+HFE2lw^!FbqX<n60y9u_iI<ImFDEfL_O)Fi-3=iMLfol1>YTQ
ztBiXaPhBd>9>(S%4QEM;_n8oq^BgSg`(o1Vf}A!9Ot?a?#st@~vzOm<ILxYcsjHg>
ziJuB!c9pi9dpMVS2`pxIM-g_<_c4NL6O?=~ZV{5>wO2L)bbzOOAO~=O1vek0uY at 5C
z-v~2~G)UmU0ar%FSZ5k5hvIkzK?cYM;phYyFOmjjrrrQcdWM8<gH at 4dFH6>qd#u<c
zx-Y1{GqeQzf7Le*@$h;auT1dI+Y~Gxf*uK_6|f%the=0R;ySDyhCV$g!m_%GPENsX
zJOn5 at L^og^N`W?Nz)ZLWD4d^p0q<Vq at bi*a!3g8W1UO<zGC%{>LE{q-V-kZ7pvB}r
z`)RAgLI2$QL#cI2B7P20FhOyD)93%F^5pAd7w_C9KYW<2%Fjn9Kp&Fa`vN+Jd>cth
zpIexj^uF0qd4a?wY2bgtj!|%v_0LVEI}O>QIDPxZ^W?41^Xthlt=Hm_t%k3bejb+(
zmVnTQki609XOY*>u!2l7<&Ky##0m(~3|7W-b7&-3=DFm8+SuAQ;WozGcc5Re572F5
zq#4Cw=yk}a`0t(1$;mQNTO&@g-#tikia8g`qWyFw6LiR{>JRWl=g1~=lq*(^Mod#P
zjjnfP{75DH&AmoJ>}Z;l+&UJ{0wGk`Dq89~U~gI&cn7PsQ#-s7n}8G<)r@)#zG>=x
z&yjs-Fbf$KVqpBqNDcSk{&$=p&oLR#`SVK`D^e<uR#o1T^5wF0qYmsWbqn~3hnAD|
z!CuCWf$KdLpwT93P`IEten2$fo1}F4JiMe6DfThuw6mu2#UjBTfKBDG5|9r7ozb~s
zR|`D6ph6w>2aY^<hx(c_4`8-(Id=qo)_kDe at B(H%l_DBUV5e7^7=i2(OKNRVud45#
z4>tnV#4>X*|H3Y<l#lCrv?S&N_{*qMW(@lF$p^o2F3So6n^_dh>>a*XhBO>z9poEG
z8zh!afi<SN1I!)huKPdPH2|Ji1sn!a;KDf_?@_?GKBuJ<?<wM@(D at 6Ul)wkL3iV%3
zH#EjOf?%l%HIw%*;)Ai4U2lS-stJZ(71pY#c`|b(^_wM&mb_Zc(KpUOSj0XU7C3Gv
zM*~6hgI{63v5gndU#OZ_0<r4z70I#5p!DZI_3T3cH2CWTh*=3NAV>r^1s#flBu at mR
z_o-D6B<(%5&vB=2s7k7V at 5PU~e3M2mYcYmTbSMxtG98&l=NH$)y`oJ`P5HNnEu1bx
zEG4C%I^BTy73>Gd&@1Q=RZ!8Rs=NU0>{=B$xyVc791tjW^BBO>EC5aYjT}ik1#9VN
zCT89D<2h7b;J-?PORm8O at aS=iN=m{2SCvE<oZJmh1^C5AUU~rWMGCa-&~0mai8CzH
z?Onl(8FqSh7F0lh1RM0I{&(B)ZyKL3=><d_F$`F|33g~wIYmXBZ19P~{lmw>`=6Xd
z`s8NxOm00nVP(u!1?SpY77UIhY1_$KhLfr|b4o7Zs&3>FQ7oj%E4?H}*i=9#%m>Ck
zYe--Y^#~mhQUW3HT1S+I3uId-2U5u(dk~>8XPo!6zi=;<!tRS`Gnsa?i{%bb0o67G
zPxFDEmk&IJZ07)(91P|^h$)FWj4|aPGnpYEK$#PSbN3;#*36N18-ZIaY{}<Lkqttp
zozXI5TWx7jSlmWtV?i=2FYn*MQ$HTyPCTpU)r!T&|HrkKMqfMaU?Lk$Zs)-LzP;n2
z`5uJY;$)e*9Q;yc3SRcw|BNw<ZyF4K0Zj3`W9dIseW6cpXAn$OZ?;iWxq5Boi7n)6
zYM=+V#TeUwMIijCX4cRfVX@?Hh~nd?O2PmsLW!3%zF?d)AJ{1j#7-z3d+_rS4Em~J
zIN1I4Wd at j$fISdq9oI*jru6{2#`y>#aX2K5+DlgK5gEg^<)Lyu_4omS at H`7qwb1Ll
zejYKGv&fg42hOo(@7H=FbUEG`4t+p9n<v1WW7~8|NqIiE&MH-n&- at KP(_SXoJ9cVy
z-+(F3(u0huWitdVEl~9_K#<@rf~t1U31 at Q+2)aKF*MPZm1>ICS7;8px_L*4{UNnYR
zI*rfqOHJN^e!>kSpOcU+ThnRjBTD}M4fBQh2Ovp0YWZ;m+=7{=$tH8#`L8%Ql!6mO
z-vvV^6|>@0a@#<m{IXP)SYp&yaOU#hYreq~^XHW=!9*bdyDpUvB;>He)-xq4TbWhG
z((9m2zCHP8e;kQafAZ0F54FfdI0y&IvtW(*;t0FQyI`XwxwO{-Pe#(?XZ1BWX7`xn
z=3-vw==VT24VWp#UX^m4K1U{->>lU^Luxb1p1Qgj4}3 at OGjqDSx+XyVjSmcv*)B`O
z`!KF2H=vmTG9TXueJcg}l4VZQ&ZnpuJBjpJ06NpQz(7N04!2>3_l2HB29%ToraHp7
z6;oUAVa1YlX`;`40>u9`qU+gKN?@*Z`*gR$*N3p at ADOd0#oyYPWG20<nh-85bd6x8
zA+jXFRp*imfcb*+%4*GRZ{`ia+t8EN)RlP!Dh!s2zIgQJVaaKjy`g`nX*&mtzOT4P
zVCbY!>UUR{IWsjJ`a{EmUx9!-;++y6^$`3o@)`f>B52Y*L)fiA1A-4tq1fx{@UwGk
z+7Y=xl3iiyMT^F|J`urk8s~cBySn3WeB^tBN{`C<^9+V6e92$U6jhvI1gnNMWyUeq
zCnuD8eHU`z0*0KHIPquz1W!-_Yp_*?l?IL>_p!!ByQ)wcjl=iHXgk4XcZ-=<X`@I)
zOwQ0!Qc|kV5nQzQz;p96lv(`1Q%Rj;jYQO+8*@Bdl+i0xRXtxlsC7sdcGuW}D=;#<
zKf+n9iWgsd>c^(v5{TL%Gp=WJ&8!y at kq37e$@ytudhdNZnSq0C$XslU%oXgjlOMK6
z-<N6EJlIN3ih*Ysa2yFUdAVfa(*5ha6?ltjg}Lm2LN)<%z6fqWVTknRB4`&IEBKSf
zIdB0hzCPhH>tRZR)xO2e!5d{L#m56EZ)>t1W=`tAYk>okA>i5|$G<eJ!g}t$!EH0i
zN?Jq|j^10M&{WXs5ZkWBaveGrk at wX*ppXeD#=x<`>qyjwuneyeV!x4>$0`J!%X+&-
z-3M@?8v^nbdzA?bB2@`ceVOCPGcmP1hY;j<K$1(ya$oXv8s(b}uh2lUyjUevXadsV
zCg^m<ft(UKJG&}`w7!-!0k-)ZW<aISmkt|3bTGg_E1?94<A5G6D-J4QmpDW!2{ET(
z<>m%ZPm$i>6mL5S?=SMhYGLq%nwQ7IeM2908_Z<44~`vwOZT!6Y{oHEolxt?+O}dJ
ztOWMs#_1lC7kzuYzx*Pv<lL1!bSgj5B|ZY`Dfi`QFo*tGvs+3`=b_hmt8S<p`+6%g
zNF`VYn|VAUObFp?3=XC}`=sLYcQp(w)^7vgxMM^}$UbIP-M?fJg&vMRISugn7V*CV
z&6X!+HDw=`TATPEA!3$5ftJnc1wt4w3Ms}bb?P=|)RmJ{4ZT><StwY)fPlcasMw^>
z5w92m{|+GP?7+j70{oaNY+MEJ&%l!%XumzIxX_|^$wHU~Yr!5r433o-%RXn(l&&+X
zP?N6U74+`X^a)&qFKPqKe*RQi&KOBDSu9Mk-&9UN$T%_2Th)PT^P!ZmEr`et-C>HH
zr}!Dj48)ndjPe`e+I?#+scpjY_MMzvxA$JWIoDfQ^bTvbrnltpwC6#G(K9d*Ax{e_
zwC-5?q+Eol;86Xp)_f|MV~XYOS8~6Yv6{mOcYi5U(zKF at V%savWB3~D<OIU~B|V_v
zC$^pCJfa>Mukk{smfi()q$?s;bS$!gLpzfoOJ+qX4PyqpbzvE(8YoGomCP{_ooU>g
zcxI-kkz^Vm80?%3NW%q(QRz08G3;w$Kvv#;<+Fv0=*0ELAc3l!#3`~eqj5DMrAY!L
z*i>*ld?4kc`sviAk=OvWy8M*08u6RA<oC}}#p6{I=TEX{r7yHNsx#>gP6h4f2*vp^
z&zPB~>#goR2^bXX=@=8yUU_w6+MB0IX?DG01&9V#rGuMr-USXXl(jf%T#SYflTunK
zX7BKG3LHj(!2|UyE)9LI*>!&c2>F33rs`e6R>ZH&qN#?mqiuiHrO_B_ at 9@6#j0m=N
z#`761 at W>128qDou*)K>EUkb-lVQvTSvkLG8 at h+bD$dV5AfLp;cuk%S6zAR7D%5!_t
zlSferQz!CE(YYAQFnTbe|ER4Vp%d`uRdqagX|nF at ihyq1jDX-078u1MqqHR*><8lz
z1vv4DiW8lipAQj~Jc&fS*1fJ=iCDpVUZh1Pe~(wm`OSxtCjOqRyVkEE2#=~bgim2F
z91^|3f(_wl+DKS4w1 at bmbD2ne*v at wUdEN$Ej(if=IkJ0A!MZ&ovY4d4rbYI!E%@I8
z;(v`#m at OUTLgy-)BL&bgg4l0>o#HuA?2{0om13ue!2=NP_Ed|d;`997^%(;L!)vDg
zW>|nyAj08q2Ik6yxiR##FPp+DCd>imSWTxthRS at Z@C~c!8o}3}pf9C$Ydw|;Z1oT3
zf$Yu_jSs*Y*Q@#T6xhDxN|dtY2EJ4;fqtUvyTkwTib*(T+(A<|1fj*7BT5h#&~jk1
zYsQqZt=JyRZpndPfi&Cr_IXgfem;sG<+xRFamOKU6F52r;~M{YCqc4U;>d`?VjLnw
zg|*wx2~10R#jp{c8^rs9%Cxr at 0ecsV=m0YyyPk*@EG{svTJe@$r{-OVV2HAL;bX^_
z8F7gITLQoB+>VF?HFP#Fp{q-3aBy(a#Y}A-(M~yu`Yd7 at AO^LR&+;U@&FaoVn)(Y`
zZ|c7h1>NkbVUN)G1rQ&HL7VmS?%;hYV6l&@>-IS(KD448-GH{-u1MUnhtXQpl?=b<
zso8H((rCi`o{Q;sE9)Z}b%*mj5L^`+czHGVeYOrRhevb{gtvgjYUOooSV*%SpVJeo
zjCXp9aOFWy*TD6)2w2p-3{DB5TS&m;GYDq2IDvPdW6Scex5c*RwO;Bh at viqX_g0GQ
zfbG at m!LU}5>xpfF7>HPe{NWq at 6Q3S#$JgS<hJ?_=ULFs!>oAvfDxkkBC!bLEKpbB;
z)2<5*j1PF=9uD83o>Duu0@<FpAL7`1=1gfa5H3TbwL)%69_!;i;G-YU at 8f^Bl?m$;
z81jvfKE-w%`8L9HeHP(=O6xdsV%TT2mg``%;raf-&}H)V&0=CTq(gD-<5Bi$pvPu&
z5B_xsZ{uEh1#gx2`A+`VE2aE6kn{N}H^B2fXZznzTmH}S{w)JjOP at J#rSdL%3Ty#9
zXM}$a9@)5*&*R;Jwx;4#{Ba*9ANfMD?RZWw$W{1^;z-)-0Q9+UD0|p;<vnHnRx=D?
zLa*D8muW0F&3kAQC$9VMz6HXMQX99gJ at MKx)=<(pO$T$6tP4~B#l*$uY#6oEPNnm*
zv#)zCB%aH_3>m3d at H}x(iFRpN3P#qiS#o79azdH`b`x|seCWmratpbkRnj^6F|_yb
z*FN3%5f*D<r@^8Mt)~Vi)qdcHvv*I|2|Dd0hNa8IN77l>K106Y&km&*oY<#AdDlJs
z62FQvdG>6d47kwY43hXr4>0F?zMYEj85N6j^qq?EptpTf0{Zxkjp?7w2`x$djwr7b
zc5kSA9(!iDj at HGYy}{~YMjJ4l;ck^!Mmh=<RfGA_<20dJDz|!)?e?}f<C^n$2Hz<e
z$X+YV#kGr`)tV1$Z0$2nB{fI5Zx~$LdAM^zjGhUI@<8_(jY{G#H~iOr4ww4N8m)bF
z*zl?Fk)LrN2)8(VeWSAVG<Sfx?iUko1XxYgCw_&H+5FZ`oi_LtR_Y(U4|k6|qkLoy
zFU&<ev+AX`&N5Qt`y&K$(tTbVZgQRsd!LG_cAR1-O%KS*<fNWIr*4HqKZ^E>FVh{#
zE{OpUR*_MM-_0GBLHo^Quf)aUT}6;YB-(#j<)e}A9s2svHx7TfFkTg>QHtBr0mWno
z{K{;HKOz>O`vT~EcE4FQ<}HWyY+62tHXKdR(wAB0!`O90$@%T^%d=C8#exqZxJ`J{
z+b+lRzWTzfQsek;RfpXwdTv+v6(hdCSe-+nbNaW$``(c;VjA`}4eXe_+QMvjm(KQR
zHnAzTP8)Vqn0j&tUW*(uvhjWM1Bf$93AI)V_N@%(`hA?EzZuA^&xc!Vxm%`J*hHE4
z;6b%M?7D`Fd_6VGih_e;PYhZW2KQL`9q(vlCJGssZawvuh5~%+?CO2Iqc11KuMIA^
z-4r(|y#oSIpgDuXves*PbY!cBusJWXqhaS)L;4{a#qib*u!<eK#5|SFT7y#YQ^7d&
zhM(v&3dec7C<nh^cJrSd1xV&TDekLyS;>_u*<RTkx);Jtr`4>iNl!LesqYnAooxL~
zyYR15Ev}$B=^YQEW~~-F(45iXJ09=!aeEta37MR2^9R8#{gYXm;jObAiE26>vn);e
zGtZyHcSijGu>G8g>K+){eA-`7xwluY3Rn&pb<~WzQ<1?kWDcFH{89ZSPVuiZmLIa)
z;QNjSYm5Easn_<8(_>9J&z4D!*4F!nJy1`XpfnPOFzPjt4Y6x}Fi(wfwBBLTm33O`
zF9bfveSduYVIj)<rtu7#TjKFHC!Nb*5j<*N{oAu}CbJ$q$ETh-vC>8{$MYo(<I_HM
zK4J0DT>CiH;^P*VoVDxwZ|mk8I7^w!Mc>~3`G(EMu()vX^>Bt|LpM18vvBCY_szE|
zSE{qNziUio_X>lv2nbFn4-Hw$^5+iy*!4oD{W5L4T+O7JDhyg;5}RtntsB3979H##
zzuiKQSOFX7f>;LH?tG^~>iKG$ho9d!hYM>jT`xz`r&>ME23M(9w0_gm)4YEMya&S7
zr>L7^EiQd;Jk!T3hz6PK2A}nO8+R9{N#yk8FzXS5=4uTp51`A$jBIOiu6v0`x5010
zfH*ipTs>e*j?z%0WqdS4nBfa~@Y<SDZkxwnq@?0+8}{7~&Ktsn<NVv;9t;m2G at KBF
zc>F{2!f&b9e^>Q$Q=5zgC4%>T#?F at C7+l$0WHws3o!Wj~7QZ{tv!#+7tfVO4?#hfa
zJS6XhUitpqnmhDV24Y&A`c}}}yc!|EbH%P-tpGKBj?Z6{-`_NyuPu7z(!V-2fFO*b
z`m#)x>yX!KPj%VSmDD*MY7+K_wtTJx+TOCiDO1;b(Elpsr_-u{EB at Dbce*6@@`Hn-
z*SiI at d@=2F%Es8&4ZdB!t7W&u)qMHAh|oFZ`^2wU*&*<=kNa=w*9G)=w`<0?#NB-D
zyo~?;IRdHuo&$}jCIf<@-VVO}X7SsvhyF&xmsgIq&20|sW&6bbj at BhHtW*BOH6Og=
z`+eoOdbGU`$I;;h|KqQ}qxbiG_jO6_Xsd>Od~I;whm at 3>@gp$Cx@|_&=x>&BZB4M1
zn at mkB`lhIOHZlA1fYFs_U;fVw;o$hF<DXdUDn{!?o}cA^rfLQjCB)jaQ`TZKdDiW(
z*Gn*jpGe`6&Tgms_#Dq_n$1z{vOe`i&2g26w)1E?T8&dJKZDX}Wr45>{UXgfL&L4=
zT~;1nE&i3c$sr#~sf~Mn`m^x??z^pwR-~hT at m-nmW1!E~qaA)k!kt)pxs-afMViyw
zAp)L;=fm7NGa?kC^I5pd(UO6885zD)v{D-r1z2f<%l+~je1p$|&ngFYTsJ+s!ksyt
zqjCN;TtXjioPZUNbatz~hYjjw-b4&t3!|RXHvfLHyLt(YG4H5{TdZU^;$8=BuakqP
z*YJ0kyJ%b*b_anN#Kq(G(45FNJ1Uy>grwqYJ&4Xq!sTFT%JxgWe6pH-Vm=Qm_8Xo(
zoff&i#MHi)+D6U1)^zy|9QJ2M?D4!;)J=eU*KN>&&Sa8tv`BL$Quo$YXJhHeziwOp
z)=f|L?Z0VWj<fLCq~lwBytN0T{i^h>_Uk}Cl!S}~#*ivemGpvv%@CI>!)p|dqej!8
zjb~Y1&;1p~QnrmerDIRd1vgYIwL1b@&&EohzuGu(9&;Z5m+A9w at msU9em$1g6qf$N
zRE6SompA0hakYcx*fDa!-`{X+IsymmL at R<zLB4(v2xlA#Wc&;|HJ-bj+iR4#tRJ;3
zE+#(=rl_~6<G}(jB)-lnGA|kjW7^5k!|^`*L%kIES=_aK&u}Bht;$X7DR_em%s5-m
z6M`26+&)^D{BU+OnBQFI<3K8IsZ7~Eb)<6dNSZs$;gBe9=He{Sc<|WL*V&qLeeqKA
zx0Q_{$Q62i_HY|YvALU%H^Aq8KtJEy<^Iwxr at q=qnY^&6tH*qTj)ba=!<po?2H9VI
zVHuUfwBvqUq3J$sc|+pgb*#Q)FHxr^4#Y99roNY0Pxij=v)OlGZ%8EmY!I^APW729
zYv at mVY@B+RbyMiTTtn5nJV(L-=>E^tqjn!7>K4<u1()?`r^Sm|>!2{qFu7p4ppJIc
zZ8jn!OI!Ge0BIY1`~2!+d-5r|#6RJ5343YiA&R+yvoy3T|D5l4iPRS77AiAC8bt%p
z8-`hzqPJJc<7YQKIDyw5BTeYbRwoFKU<2A>t|)LC_iowuU~J#sI=0nT>Ew(ESiOtC
z?)YxMd|b*(X40-IMS5k?0fjygC>z2=9eg~&`x6hH>fG*?B^y`tsDxI at x5C)gIU^PS
z)s3gj!eWvNK&nNM+x#HaemlwOH}5dQZ|ah|jz*_(Sdc9CX#?w}J$<43pz+N-K#@kH
zX at qqQS1Wlx4{Cu3PEhSCJM~AYzvxLu!-U2T(T!P8sEGTy*Hg}IgCadvY_ooPJb`gE
zV at TZlXdSnVeZAwZi-pcwBj8|i-B_poL(Sd!G+qYrpSgxqn)ZKhLl?a24EHLk+oyc&
z==swWsJs^(p=Ysgpq2f8Q#GncI_q<m^}{|Q(MOLMOrviV^+tz(<=jE^40HMQ#IK!N
z4;r>}IyIw5UxO4ZjRTT@`$nf at ARMRTYKJbY!5)I5gjD>c=on>4id{nf-Zm+P^++L;
zA*kb8$5y|_oge-xsBaHkl-MuGza`1r`@G6%u-Rw*>wqLjQ9oCUK4A}87}&IL^TOF|
zIa%N6q(B?^{B40wK#&0`<Tc*KcIu5D6?A+n?lrY~4!ncc&ysn{qwposs3-MUfn&s|
zKsF6CIsCcU-Ep^7rec$fG%tYClPG-kG`kBaPssP+a!Pbv4LJoj)+vh$_KmqVH#fYe
zexb(#6plG9s9IAcF8>M}Lm$=_M1|Z&n4G#Ie8FsUF1`-cL+CKQPmOU2VUf8~=U?NQ
zd8e5Zi-8*7*wnCpB2qxL**g^ts~XNVTrH0dT)QmG+%K6;(So(JAdN}L$jE^UC>xju
zP<AkZsOBq(fM0B5_GEo?Qo31gn-PbhpQXjDV(nn_!HPNtecj$SRr%rmLiu#{;QACm
zxaGf9ZF1UL*pMe!G1z+*?$9b!7|2hlTeZM-nJX4Ux8#*^^-Q=TYnGNJ?MNfA#q#2D
z;_0q at jR`dGzLh#GzD==FY_!m!K*J>;w$cAq+3|z+Z2o_rAp9JFOQ26#*p56nO-*|~
zI+I-+n<W!<>4?TEJ!Q<A(l(9S$^d887RVMUH at A_Tuc%SiCrdBUN)@&-Xd|vV^J#l4
zwZ-4J at wQUGmn%Pbq3_CI>n#QugbLt)t?Ul!(S6%N(7|wrXSp^B@{y$97S-wEx9>(n
zsXwl*&2s^Cez>|>m)dKG_BZe;dc1~o(sFJzeb#Kle&c!_io5FYaB(e|Wh5VVk{TZq
zYFVZM6J||OIHo$e*AxKg2o=xu`^PvQI!okbf5KeZ-YCincK=GMbVc!8&3N)hvl6=@
z>l8Olkt~x07NuMNfwnsgFBO1Y^u=UX$zuB`ve{rx-vu&BMx at g>PlIDLG)_erzs*!=
z2`upGYc`^;B at _+QGw>;b>fov6&#cKP*Uey7sNFPf%p*;;g-|t+hN?g&;#S{!eku=j
zKWqicV>~UVak)4flk!{Q;89os)5e at f1AVW#FZseCvNOxQe*GSO86mcfdJB!i#~EeC
z<gN7G-uJ4>MYSOfCOyvx*G9@@$I+F2_}9?LZIYZDTka9ykN><JM%;lW^k_bHI23%v
zpAtT2CFB*$1iT;@%z6Ls4h8FiToX2_YdMjZqXd&lH+J%<ceQMu_5i^;TGyBR)#m5k
z1wVe2#s4+F85HgKO13LZuA0tI;fYm*9ERk=!SoD%Hxmq%0AJ1PuixJX??D}PX8AKL
zjh5($@)s^R1*ogu;au*l%mcB_kBw(2nYVSn+OUAuU?M`LV<V?<RiyqKO2Uy=9oe_A
z at P(;r$fuW5nPsBV@|jy#faYWKH>D}wUr|mw8?Vd<*UXd2b?U}qHiCo#DzrW)g#24x
zYI+1yo4Nj%I(oQOWB)4z#gpCaZ8$#hhB at 7rk5Ar620lcTl#ra81$t$yG?mK4Nkdq@
zWu4ra$%wSY at Yk}D9hp8ktyqSJi4tQ!c7tgz4LjG3o7Mdu?P&k8n3(hCN at 3hAVPyR_
zV97;G(_L#;L+hWPX2;EsL$O+Cyh^3kSu<t`T1v89O}S|lrVSO`##0MZuJgOu0Ah}3
zi;(1vWzA{`1J%T>l&tu>bb3iT7PUZ3iM=MYBq?U1v{VztTBZ=BrQhbmxD&+;XWOK9
z($k)?GLuLdlMg6GJ0q-9hTpkl*ocZqd~47sJw8(3f1F<d>=`nA`sx6t*6Te1BVPBf
zNh47GZ7-Ce0q1$Q9o5BbIaL;Vu2UpW_hJ at i6eKZ`B8KBldyRG%3gyea1Ro3Hhs+)k
zDfD!qJpE5-BuCt`o0%b3)Sm{ARklXu>Q5^Ov6wN;&5Lr9;Rf9WPD6u$qSbz3dwmk?
zU#aEGc#Wr!`Q;DUqIKGJ(Xp7+y;04F_N4KUrfS+NB1}LS!8ua`Pe9W2@>0a!x|+P@
z>aghGRXEmdANCRVt`tL7T)Jr$LHWcymb0<x1=f)yS2vk_%8NdSaQrlk_oE5G0W4=}
znLY!!#LW+Mrb#_WMb1&1C;ilkdUg*r`XDvI3;#{RKjV7qsyVk(FKqkVG9S&Al7k=F
z($GreKT?@N0iNz<is8BBm}9T at z!XJt)80|5P at SuE1}<TaY&+6fDIIoA@!v?}UgM7u
zp22auXptxfV<*XT)%CCL6&GJ&8eq-4AN2H(p*tYYDwwDb^?VA!GW+l$>~1qZENQ}m
zgV9ocvoA~M_30 at a=b#Z_oIHR8606rC8xlJqVYh3WXTycq(9CP!lP78%8r#PB{Zh{A
zSX10lBfKa@#*$IK2a_ at vb0m79+=C)*{mQ*=Npbqfe)}>qAZI#GAL;1e>DE$d$8K|3
zNW{#YnVr?i{R=ggHoM+Ba}8f%63!)M)MZZ at HVo&;s2}dy7<5}H%$aTh5z8xGk2-`D
zE)5s?UWiPA2*~6%M_9h+<S_BKR`9W;c2?smy6g)xDNe{iPthjArxn?0n=qDitO?Fn
z&$f1tG+FJrr%cPl-31!<tW-$lh~-qT3C1(w$pbY^Z-*5H7U_-tc5R#OCZIswmEuR(
zvY#!=xyIIcQcytTc!X|t<jN%eJ!xvJQALcx^Mr2jXeawAy@{Yq3eD8jD72Mh=@k0e
z%oP&ow_Ud~Z=iySDq0Q(G9a~yc2*dUJ$tl)nR8+Qye>Ny;C>1EG80ewtmVFREo&^j
zE0ked0g?SL_o!bx4;Su)eDpE4YZ{517e5ZtD*O-=`OS8Z2IL64?<Q|4i(L at 1aIz);
zu8TAqJ9y{pZRqE*McH(B^^EA#Vu9)DVL at yP&zPvX_=CGY69QgACVfgK$o3JfR3Q1&
z7szXYhSGiqbu6s`EUb}z?XU1-qNKn8AyVyKH~z&Lf;Dt<#znz=sxV)dj3abfv-jUc
zC;(`)iByhRep~G4dxnUOrX9X}0*%|ou$qvfnt7(tw)ZZWjhnTth1%5U_c~R#V-2Uh
zoPMgnIe>w9Msw^Zch|Ka#%#pg`IEi$EBC|}W)4F$=cq(RCb}LuE2-(2zAtA6uW(!4
zF&;duujgA*vnx8w^JBjW#LtID7zqSvOOp}ucm;F%DJON2q_5lAm}T~rDG$+GR`c;n
zWva8UsK4~GQnyXn^!}(M5?EI0WxcHi4fa+rQU-cp)dQf9KSG)?ZoG7GxVl&?!_rdb
z7kOEJV^nHq<<1;}x$pnqvdxp(0%;%dlfI_V1XxIeY*7s(JxPEAG~MKFJ0y67(%}eW
z-nr5*Yws7zShrA=$=gqt>Lpq~zlIiCnTO29%37#bXrM$-MmxwfAkT?_=@dsk*QsUv
zpN^)sbP|4&GJ;QLGauQ?^S_{j6;uBye#?T+6+2hwo_q6W6dmuo;vZ{~Fte+j($(`k
z$?wSaBb`I2<2qnj=hafX{apo5tO=~0a0;;Of4He9D^=3kG?y`$ZGC(cQ$6!Ar}*cu
z_b!nO`@yet5aa$@a!*583^QLq+H$A-wSGwbd35^iUTM2(xik_%-%GPLm$193pHE)D
zQf+}%`FGS%j8EindoJH9C4@$a(;*sWBy(&}pTFqtu at oYHpB40Dxoy_8Fj$)Af;Q2~
z)i3{x=h^$k^caj&9>td|q}q$elQPu#nYvO5abGiadBng%f;xZCkMJVf+{{jNRIdnz
zDxd1#QNp=*>yl6tm)@&iA2-MiU{7mkMUF2hA|n at vV3Eivj#?t%a~2`TuZpQ>$VM2v
zTxa8KXvm^7?mSHuvi0ceG^j3{^GvIPu8^HMYd7x^tH#bsS>%rkcoOuF5wF%^pu5}2
zTCbPC6$rr&<nI5}HpLr+=`PzqR!{@uN#N>m`FaPKiDsi(9I48Fr-`S)#hJ-XpWB)B
zTgZ9ZSv|_jrm<|1sRgS?k^N^%r?Z}2xkW}GMdz<P@?rzh&OGopGD-?G1aI(rSg;E;
zWHPN5yLB*d07firt?G^W0(QCkXItcgPln_bNK;FeN~lK$Z2z*1ar<&qOU3%m;=3eU
z$`)%3mNZUv0f;&uPN{9k+FKW8o?qs$&676M=6ictsoT(+M~IECET78$qy3vaV#~zn
zX)I&^1U}per?oC6bIyrD|K)S#ZLzNk0gmGB*_IfWMC?;rG`R(n(@!<_LQ%FXkc-NH
zl&nY2y%yi+LNopO!c<CNOXZ0u)_hUdqxX&unphQy^$Rn0i?l7tP6<bLR at _=B*_fnF
zlIiAHC?&?<pM_Wr%>-5SB~Z}@3w~P0M<?`=K_6s!UU~GZ-2lr}1)3zAli>8RUR9vs
z#wR}2&{Nax;8$6;L{A=JczX>8_qKzG+B~1QKtaXVx6SXS)_=i|_7i9xEUR6zOnaWw
z>?AMN?+X2H^41u8SP9$cqj4DoXdFhw7+!q%2HzK9GU}!5pOlz?irrRySUA(!oaN<4
zChm}qaECBzKbw=MvlD_{3xi8<={H@$?d9NrI9LHaIJ~-F3=}C4FDq%?HmM<j`ya9p
zFOyI&X{_75qX+qv0ddzunp^6)R6{?_p`qcYmh>5n$CSsB&i{O`hV|^*SvuNEv=I3p
zrUW8`-p_d{?5t#_0XWEWHVzIy9NiZpRpIy|J_6Vdqj3lM;77u)q4xS~qV@!!Y}GTl
z%)&5H2Q5 at Ord`#oF`hfu8WX8XVG^~r{FVEo6^ZXHZFvkAHp#U@`f9t(K_P{=7c!<K
zw)raE;4SOxy|$d9_JUuG at b_kqw8>UPY;Dbp%$=s*FbxBle`AXVZR4=TYlEcYZ^$dU
ztyY|bS$Ins`|Orq*?^5~(<AGWQen-E*JlJ!48lJG$!op<AhqkxG>>>eB>EtD5-&u~
z>5mo>`v;QO`8#_rJFCwe#bVxYjC4>N$Z)<WUg}MC&q!=l_l!+8ds|GHG|S(?u{y9^
zxHdp^I%l1^c^&PaNW$OtJTqsRp0oY<)4^Pm{AH>AZjM+1G%#dhV%TOr_FojgiHpm^
z3`!S7A at 8YOPxMd>)jWtxHd49rG-Say at dSgY8yBOQ<|k_m&~Ii77mQO0cWAC8#m&{Y
zID>AQVQPuL`_3_s1tE)L8#bsA5-<%~OWic^_S-1f290Ycb}cGXP at LZ*j&+VarozTF
zaIOx%J|5#RtbG-$PbuD^?_aIv85Qq`-qo(Aw#AvogkPj0dOrfY-v2&*TB!!j@#C+2
zuuHPF at 8FOQvLBrIDPTUEB5+}J>vy-j*z$GAnIbpA|MpwMY1I5t+^Bsk!@S!;!smIn
zp_Q*xwYIlPp6j2#F%aO&Ya95ll=)p;>3CY at 8PWOAGt1BLm}mes=W<wB&l$=m>5!xT
z4#a)O6=&)SZjz1hBnmecgy_rw^ApEetp|Q*pc+?w<{S<{3~8bMR}*=>u;;$LBm;jC
zZ4=7UvVfsKc*`=~aY`26d^~s76#3#YDJ5jQt9HGzH at z9O?JFzp^YSworq)r@^N#V^
zspQ%C{<;X-;ql70pw?lm^g+b`Ym at zbLqB^Ogi~~$)B2}A?Y`d)PdZ<VhTIVGKxI>r
zn&>x$8Hrk#-!GkR_UbmIx3kztd>UW=6Z?0EwE=97Nr_70uQ}}QM6NHtRd3QCJ$VUs
zE<3O}mdS9n4jZOzw6#_${HVKgRJZnwBB!QK0nsx?)z1<}!JGMb6{Gu&vj)R!qzt>G
z7mG6qJ}6uM4xxE164Si2^x!D{TV*mPHKWLGxJB6E$|b2=`yrnA=?%4qY-mzm2`};Q
zZx*pNEH7n@@NJQU#rHW6i{^3kw0V_$gQB8}YHQWRFWqTUf%ms^cAk5DDiZ$`mv#u6
zDdk=7+ppyLe1<7j^z;ib at 4UaB&V8T<zJ{q;$Td!-($;9MJ&4y<d>@oK*I_%)0fBg*
zb}6zip{2bds&L-{YHi%<sS^*Q_e*&dF3HXb^4xL{m(DlgBA~u&lSUt;eO_wX$&PO7
zwPvBZXJ-|aWGrDZW+RketUF$ZE_VFo>!Y-To<q7HrP#Q*Lu_&?U3XEhuBDb7$HS=6
z2Z3e5yq$pe=)U_1WXkz*aJC)?rblk at w74Io#4kc>nQ#OeNIStdt8J1K8gvwBNRxnH
z%W^&I8F<Zlbf%!Df*HD5>~_ at 7O%^cB!y~HcwAs%<Z`%jYQIV283~0i9`X%(T at Ti!W
z?Fk9dc*0fgow(4}qWH9^Ie~4U8tIqfPM~P9;z^w6squatIzV39dV#WAikX}BWv>n7
z{{MaQZl{;wIu?9HiQ50;>n)?Q+ at h{w=`LyM?pC@*y1PS4q(r(~knWI{ZfT^uq$Q*q
zq`T|gx954 at G2Zcw@%=mpxw-Cr?Y;I|bImp9=c*P_#_w9fjm5#kVb|uMhksV#+A7DE
zmn;VfyOP)A-RRS$Zewa_M0D=hoLC0!mbeUS;@%Hx-tUH8Kh}H9B2sX at 1)}jXU!Sat
zP)SwjvfJHuMh#*<<(0MQ1GIqr at sW6e2MNyfSXhVMw=IF*9}A_B<{W5F!5|~TGDUb1
zH$ITNUr+Q8s7R6Y0z(n#;egeGD{>8lwK-<oR5S+sRe`(&^{F*|=rA}*7UP$2r9`~k
z9f*b%Dj at 6j`Oyw02xq<kFC9$F6O)w&S9M7#m%<A9v|Xv`5PwWgE{Ub7l6JSOOF`61
z`a#qUWRz{9Wh?d_OuJILNY$71$A5BI5Yctp^oNFIotNXFOsxCIN%>Cm;`8b*f1R}+
z8_+RnRlGKp5r)zE^+`=2JqdUxp^$z2xj93Si>s~wk|@DCMPh3&)Bxm0DeO-3A0g=p
z7P}lhYo;6|cOZAOG%1a&oH98dy0~UcY#`X35c+XD((s)Go=^-a+&n+uL*>V`rMGkv
ztKN6dqE_}wn<zm7<iXkYdda6XGGQ7ek;hs{TA#8z at -BlRBbUyjkg`Us?oZTRK9272
z)__a4boV7Qx8QZG6lv;s5Ia8PBB*H1^m-q7K)l4H=NerUqEvI57a(?qLywQi4oNW<
zVUOAH3Io}%`c9;WGGL{npH$sqRS_hOX+ at jASA<L?K0VQy-Pco$3Dro$VW_5%qszg{
zzo)y!0O`E)0#WnzU${6m2et4f7i0I-3R9FCucI!&>n`V^U({ZJrd7EW1*`GF?X-J@
z;hTA*pj@$0za%Y at fp~SOHcy>;9 at 5~OY;tCS)fY=T$`w2Bi>`Tl?UQ2p&sX?T8d1^h
zVu65bkS5;bo5yimoIy|a;};9!ZUM5>3WsHs?mqi2bLBx-HlR>>!(!;Zh5NV^yr2_t
zw1o{xpF3Gn^}cV>(i82X8|TeaNk~^f<(MUX%>L~y1-2<nn{CSei~O!n{h3W^x}lHV
z-BhW*&(oJDx6G`W8LF8s(NQuQ)1Ky+dt6&!vI8$`%(73O15$O|N*G3#>v)XNQ;oXF
zbE3<qxg3*DC_<^0hiQKp`>d8`i!v$p^J!t_slZ&dtS8dh`m at 7JS55#M_$7ssxu|Qj
zVAUxhI!G~1PURyF@@=OWzFZrp)?k4;7BaktL)kXJderK|8BR+`U=1PhX}p5na;APC
z4V38lHkJ9Fg02VWEHhYsCA0CE7Q`7^T{+8{Y9}HL!RjgJRTQXEhE{xt1$kKUwAG;c
zi{2M at 9~+`0KBlt3WvHihn9_JQ7WaBEa-nT1rFaE*n;0DDs2i{CcwL2Rg5yIwoNdCS
zg0|#Umvtl!TdOF3hHKD1p~u4%iDa=Yppm{2{~K}8ocVX|qg-U>Lc*~BbTdYkZ~th9
zhlnYCPDx9PyrR&h`t2&;j<l6ku_at?i&;{TxcBFCB_C?7dIJV9p^-w!6)eFm>+765
zrIpg3T`$*nrz?RlC&>=Xj7o|Qs7T(a{w|)z3|3YDzD9g14aeM9v@|u!B=<|<u;u5T
zKwg_ASKZ#51mxjIZ$Ov2*gNMH21avr#ZO(q8~aV0OmH*|8*nQpHya*t*GX%!I0l(u
z97|lfE#OW_ho{cdae#%K;uc;K`Q)grn#-A|?votKr5S}hcOU0Xxmv*T__&=rAa8Af
zl*{b?$~LogvqRT$e at 3j%b~@gqFkh<aeZG3IZm*U)m5M=Ua9C2?sY+B;_RX}fEsOG7
z%1IqHx<?Wds!?HR at woR>2C=j1t#h%UetUn3o_!>LolZh8Dd2Jt0~lKa5LrusLw0wf
zTwLWcwWo at 0`lxoiMYE+(-DsbIaMZ6#-$(18fU9o~1PjlA_Rlwl&)ALiObkqkaqE=j
zbKlPj-sY&ItEOagfZa+(Q$its4HEWY)PKcE$SB+FN~yXed)V}S^pXE;UD`bAl^A2M
zdD{>MKiRU^hC*wM5#!8 at nyQn+!3(cI>wLLH^Kr5`&8#=jvGQ|%;uEZiCcm8+s|}mp
zCROJY*<$(@>CLEhpTI8GB^BAa at 9MXHFl3}6P%deRK8W at 9j8qBQeL<^CQ2ygd++TP*
z#kBT)Y^k-5JbZt{Jw&&a&G+`#Sz at KvJBVcU?Ma9TGuhpE$R@~QV%fabP|ob1uk6o&
z%<Q*fZ2z223oE;N!_h`0)e%PYwGoRVZ}G(9t?LrU@(&wZ3d?Dj5Q!8zk%u*m%bLYg
zqvw2l8+U60l*9Zv>3mO83LS9ExIF`bd?rsx$zgCsR`^|C1DT82u0Q*4n at 1F(k5`!U
zLg;HjT18CYpDMa#?c`M1_5{=^orGJft<BUG%PW%De7BIneA38;!kOljiw+ewfq#+e
z(3j>^HTxPR`1!k at Njg+$)xyl_82`N~tW)GgtYdW$38gN)zE3SpB{BBay2*~j{s<*o
z=84e!`*5_#07N0<y3qyXpIOX^aU*W<pKG!n%e;2wj3(>jA#x8}bRxH3pZ3u%`QH$*
zSvKYx?e*2c;Z9e+_QsusGcaPnP}smO>55#M%zOQH9=;vcgBi}OwFsw*JC?O$cmpv1
zV(q;)i01cUai~yBGb<BNKXl2-$*N9%F_i}H&(*{&JRZD+3NM6184ziMVp0)SfI&mj
z?r6Z-dwFM#<4?$7QC_3wPPr5MJev5_tq)L{U+R!0(8%Gr8=4ThGqNxw-kxt;=hz-C
z{*>%-0*<QuCHLmJZ|Uf^O=`8iybI^zxS=T;5-G`x=w%}BL37g#NX~zE0-L|bH8jTb
zN$q~Io&@Al!*oOJ?6ci1$n<zK_Th;Q9R2U3;yAvB2biGImFw2YM)B{_f0dy07(fW?
zHE>;`=`>b;_3D+=x6PaUPOmja-T5A}zl5_-rnJhz=H#!1adxfIWImAFpfY^hk(hA}
ze?3ElU8e6xI0cxNEI>80!fQ`0E6y4)ATSgjXMG=&FD@=Z?YEjW7&T<-UgRsuq^dLW
zQTz<mWSR2h)$D0flxFq6*1UhzT46{L(6Rg2>T{&7>d!H0$6TAbHf!|N#KUL6NA4=V
zn)8 at 8h2822B$@OpE!#wsGc&X>FfbOwIFk!yLzF(X(4S=!%Odc_)pb`y(=K|g(Qz*)
zwMk-JejNl<*s4KS|2;Wc;%wr%{3-fL&C~45($x2(uGRy<B{icz+1dhG8T8>avk_kZ
zFKTQY)Rq%~{QYyH)uj*NJOzWazZ%*uS#Gy^+KaVb=>sC9>#XiHsQuWv6o1beK-EpI
zVn{35OQ1edUcpIXAkzN!I&#d42W)Ybz5V?yz$b45hsQStLc4yt=@<E!{}(&!CMex$
zQbtx~zJzJ{=rtoV1zeyH!nA<+V?a#0>8MS&q4#X2%975DlcjU$IEt- at Gj~bR0%d5z
znVCN=?lli<*X{8Q%dc&wS_9r-F&CIm+Sw+XI74kQH(g41!_L-X?b=|3!tUAZP8F2D
zVa&^Cqt_ at Grjl=N&9`2V_>-te4^QK`GZYnzHCMw{12Bm(0>|(SQPSEP>^iZ*&i8Jg
z*ib+oW6sf!6xIucK%7lyi)~3uPoS;y2{dn;Rv8%?&45?R*^bDw&RBmV#EBUc3vG{w
z_SR`!_bA7*MH(~T_B`@x44|LjlaqhZCCdJ8D9d5L?)rSL*<A4UZXvDKed?!F#1Ifu
zD<)!)7w?b3IdcLY4KlvI?N=-h=ULDCW6h%43JMBN&JwR>Lr7gx5{4N;Q3^6BOgg7W
zO(I&4!iZbN5ylQA+aNQPciTK4t#rO#<zde?85sU)Q`>gCbt%43+bD3!V%BX`mX+Hc
zsy|$C8hagN$Cj<*FB&p(*26{8;}Ozjp@#l_-&pkPk3x=yqVfa|okhe#cXdwkLX%cb
zCyTcoz;118YfF_|0Nh{a(|m6D>^h6kv<k at vE~#FJ)<*GQG-w3%&2Zq_BN7n~Qi_O4
zAOp_k5M(-&36Fi^SO2 at yf&ip)wBfHOlewZS0{xI)PTO_s at gR_tF011~yn?6{du?-N
z#VXV1DHM^9FAx%wsuLY7KTrzEI<hgnT$$CB9rxOWm-=Gnbk(TI$J?U*&F6w-x00*&
zxyiDP>UpANDzvO98O0*RY-={n%#@v8ir68Dxc-d&_PV2eAASc^nd7-EMW_T-9eGX>
z)jdiFV)^bj{s@<5ISrT8#}_zo>JlLPSaPg!Rlkz&QaEh0azT+s<meC(cwH-}6zXl&
zuXww^5O_8-9z(2exNU_)wO63&t;e-rP%pjEg>g(8`!e5bID<<IWy$c*PtQuPRT#?w
zT%&vZU1ZqWI_N<q_L5-!2awi%Otr07#WYkKqEA21J1W52Ab6R94TV3L5`Ujd_9)Ht
zl8D=89FM&b<EahIW_Y}94bsz*pQ<-Ap=SvGi}aCG{-$pHMTY_l@(QcI at iX|9BEj=v
zuFo5hJVStfPXi{fvLS{>pSzIgKAcmzB?rh%gL0Xz{qJM&)Z+yarz$@s+1?^$sl9G_
zy~3GKxf|-xJKvvDLn4mR%ym)6jnX0IWb>4IQ}w#Nk2T0#IEne6$1F8}6*RELX|1?x
zC<;HC>3Ge(*SXKF)BSlnH|9f&um8!vK2UC|2FiT1mP;}D*3n`=GsB6_y^z at nEADN!
zkLksGR)EvSIc5hM5BkVmJcQ5f87#M1N+|MuN at ZrvC=IHkOfBt_3$xs9cRZbK%W2T^
zCYumCnGraqA1u=kla({WtAF{x^5(hEmUKPuLj|+$hm^#0mwCdoiomN`Xri_`_TWyV
zdyC+;<A=%jgv5)K5QVCsyF0Umnex8wxE9!4SON~eI%HZavb?>CfS<(xU?><3uD$Bp
zw;zB^G?@SKJZ|Ngmx+k7qR08ffC2}tDe#9~+`kFQJOqzvS1k`VG{p!N4$ZL$(q<KY
z+*L};8STh8WNBFZPUp8F74Y?C0`_a<AA0w*X~GQt2+vwc6^0D^qpf0Dj<-U|`|Uh=
z?hn0}MpGjEQCciU`Q0thESHmG-ijW_jRtKVU7nl6ff#W)t;;Ri%<75vM+$7erZGe)
zX3Gtjtknsz;_Qt-ykaH)g~yyY*6`ST&~QLLw|`2)kkuecx_h7Tu=6G>xwQQh?RM6>
zV!{@N!puW-=LKv&1a|%mkj??mWac<u{-X~|@y$xnk~qbWl(u8&jtq!4_dVLfs1EtE
zgKnlDv?~yWXbaOl;uim$3eBMuvdPM(2sLY`m1gtcTQHm6t7r3LUH9-1(*BNekX7z>
zKgVZFY7+_Gyd!&%5I!BGy&eC#LocRe*3cw8N;I9DxhI%jGRmYmOUzNpS7}qR=yFf;
z`O$f0nlJc=8<^*`UK{%s4W$C#|Hs%cP*5zUr|x7{j+kGQqFvjek at o3*w>P;{Q}3D=
z6Ncuu8(zQr4SvL$vw+t(;e7dsSvKj3N*9Y8yeh;|v19W6P at 7Ckyi*%1k4LWS?FXEM
z8p!55yL2-7s_7vb>G(g+T#d<@U0Y5{(zSfs7N;Ex+d at cE1Uoq}%bcXQQ?tLB&<e`u
z#DP*DK=jGJ&)2 at Qj$BVWzE4s<m!(Ell?qyh?)hFIXG+G<G@#vYuQ6o8SBC!~#_=N|
z&?)LU_etb?e{ldlDlRhG{-REA2?>|sO#%lIviKR=>#Lg&kqm3b^4@~A38ILDgyaKV
zWiZCDF#S|}t at YgW_%lY<MA2_`=}GqZ|7bx!9W7DmiV+ab<zBN0IFsN-s`-+vM{Jy)
zpKL`0b)Tg*`?6Hp`@C)7nc<_NYBsH~T>11=q`)gd6pXgBz{7+JUE*vL%-6eS|FDe{
z#o1#a5*1w&0{**c#)xToKKj}EP*1PKLD6?<J-sV^Jw2+Ba+DMvzwR8LIVPB<rf#?Z
zdAtm2F!fETbmmI^TNi+p0%b_rS$)SyL%W=&Cf(>TsNwz&SUb))@&ug&)J5c&do^&c
z)s3vJ;}@RJMK<^8)CY?ZSTyE;@DQopBf at XzLYQV2s1&y_lI)k5r*SY_=eExj_bhr9
zTFaNvQtXJSI^($!nJZ(49>rzNmzsR$b5D~_!z!QGtMfhbpoyNO_#b!s=>y$a{aWt@
zx|_EGnvWAPrZcJ9k(OzyJqs!R>|XqJXMdhQeW}$X`sAflnXdEvy!n8^GZ1MYk_3~?
zl7uzg@|W7;GYUyT55faW7S-pS%D~Bs!RTL^Ld{$L2&7YX7cx)K?=Yzdl6|+Bst<45
z2QSHZb)s}%8+{S-c+s18BKj=((_qjx`dWmhEjMa%Erl(@d2y8<kyOpv+IkC+3Dq=S
zx538^a^_F^ax>t+K--(?Eaxo2A-kCWYo{wdAaSBGo8~SL-oC{cH*MYfinXH&@6Rht
zY3A3<t<_RUmITEeZKQR|{h#LSY<WpZmrAABWo6|gu22X6ocuWGuJ?33FuLESP&AW(
zZ?KDR-D}I2Me2e*%UNsX6ntGal6Ub9q2Bh|?s7I_fxA{pQFu!o>EW-%?(R>y<wv_R
z%XeqEjfufOS<^3xf7qnjth7qa&LRz2L$kNuJ8Sp?w97ePUYpo`GZx|-E9>Z3qwl)p
z>;YxPh_Ck6#p;C`stqoN$oeM+m2Zcj^PhN-ka>|{8-`7h3XR6H$D at Bg!gzI*D~z1*
z5^e=c+#*V+x9{H7PnBJf*H}cT_+E!*v2e4%MXF$F>L?NJd}q*e`J9xmvfl7&#rNw`
z{*}1<pp83d;%_z`drRqIG?p8QekPkj8cwcT#KK^JbG&WgWY9X(V}$3C))6k$o;A_$
zM+)k;$&^Qfqk+qw6ov(5_G*Dk5CF8l!k{&pU<k<Y)PWXKD#w?p2K3`2lm#@`y3(XW
zIwrhf9?7G4V_+hh06@<gvz-bGcMyoScKv<kYWh<U58>R}Jx+raAf37)kgOKl?#TEA
zL>VJK&QQBZTUDZUDjbp;B)4)E?46e3j8UZKfxb**@ngqs;ot+GqZ#49uJ&F7u&We@
zfNzwT<K)^T-0k|;oA1e3KeV=t5P0`AcI|_V?^Pgb7-9*FPWBlWf0I-ur;ws}=*5t*
zTLGsDf~1dWq at Ss<%Gdd%<k9JKV>M?rKn_CY;!hsDPy?vR0Y5^fhwPUG%@$`f2_dg<
zVbHj!afR6?{oM8Tl?NIDFDR%RL=igo(~M>vNtOw?1$lJR=n^msrP%RUJN(gya6E^5
zCs#RnaA{1;j#JccG{JCwo6)Gyu^=CSHby}Ax<h6l>TqFe1YpH#(Z+80I&0&r9o4Fb
zwC-!)-&xS7{$r$cHxs<IZ{i7otb0FuG+-Q1o*!m&Du9y4)or)h9GWM?ytihRku%>O
zPgVS4wsk=5q&Q8FQwp8`uW^0{^F^6iL`2kJGw^)@A|CQqEsZLkO;iw&FDWtkR{&T~
zbhCP#Jr2o3 at OHHsXq#P*UcVi5QvHP7mp)fhH;~s`@SWj<5Yiybg+RbEC1}NM;@pfL
zF8+MWgdp1=`o;a7FWt0JnNX}wn3>aY(H(s90D_``0UlfCj(eQzT)NKLKsUyal6|XA
z+hw`^&=)kKe~tT7$yRt|92JA$R^Mo2#k%*PDVQP9?;OXIstW<st^__b6;HE{O at a<r
zvs2vlU;YYiO=t1X=uUZJ9rJaTY_H+DrikVz0`K$;4J}~Jkn;~wF`@^eG6c3xrO0Ak
z>ut^j5nvRnxB+Qkp8HpULfVCg5cP9sfLlI|W1VT{L~Bvv at _sb{$DN$mc8rHHA^j-6
zJ6tK!Vt`8(LYl&U%W_lp-3lzsRcbw6`C(-hYT^U6rmf9#zqa?<8NBz^iToVk=%I at l
z>5x>Q*W-G_6VKF`*Q6yt+ca^q!RbhUL+1i9{4Oc}0mxW)H%o11pQ$pa4Sis|B(U09
zBi86=*GZQb0l?O=I@&f&PRz`g6-dLKHrta;<8j9BqsB&Nm{o9}ys*Xj4WK;<pNw{G
z6Z;y?bL6d9xlNrSw;UPkn at j`*^Rh#8b(T at i{j^R#_!5ZgWSp0+k9tT5sS9<4&nCjR
zASNfKQG9(76t}2*tal}bB#QkC<s4_hx{{^wsi5f at 0VGnTfI)Gv8iap9S+oM_yW4 at j
z`=HOgl?f^!^9UDCo}+Y<p&YiJ&ghkJ3}lC9pJ`OIHOqkxQIvpPA{bs)7DzaOo-|pj
z`#s8Q07l}RZ28}wWr6Ms0}D(17LB91*eifpMn>$RbCsbg7G!~j8T;bZaEBl2AxS>?
z-o$?F-{D?DaCN%Q`}@0n&=X%O_!!&8BZuU`{zLbNu`s%mash$nim_WG|6PhKjbM^T
zJ$#B5zur;%vG3L|qr2}ARA3YIwM_1>4gr0FXkMXwZT$~GDVkf#)B&sQmlyLZnSu=P
zm&Z?74N*aCf)sfO<M&^qg+KCI1H=GfdBt2Vc at HZBwBz$PK-GZU%Wg9CiHhCxN`LO=
zfa@&H=z3sv)nzQcC5QBolp}%0t6#?C1y9}9Irun_oB?o<_MROVK<7t$E)%@nLSvi-
zqSsBU)IEfk6 at M}KM7F{4akB@~6|I%e1jp4<F`CWAB!ew!x*wQpEO4zWg#nN#&0v(o
z2~81SkQUq-S`t_k;@N+d>O6OUZ0Gtf<Z+2ZfcFG=goeLEvLFIdi_SXKRaIceId=St
zb5RR-rd7pUhibED*Jm87-O12-r&~p^)U3sX(#zmhyuc^OSeW7SMgKC=db5CRnHr2(
za+*pDn*u&UED4pT88vu#`vcC!DfCoio>W6{8bh0kHP9BIA)5obXyN9>nvJb at c^Ds&
zVlH^g*0OlcF>SIzF{2b*JOeFh^T8<Fzo3344KW;7Cc&WpF+%cP-gfUiWF6Kg^*+Gb
zMY-I~w2gaSb>#*TNQO^;v_LsJw%*323WRg;Wx#in83MS{I1I+*zpk)dx2fDbq>IXh
zysQ&}vwAEi;IfPL6;K^mhrnO6U2q*(I7Th8W{X>2r<`6+agd=;Q=^U+KEp?P+P3>w
zIRWpR2uO3qD>_V_#EV4%ym*a_z=ROzi~$ho^U;AreW7>9CpEoqZD1pw;Ud!f39}rF
z{h4q68iAU+zeAwe?D?^dJt-<pSN^Dv`j}_MLyu&b8*gd21D?dPN|pKQkR(y$;fORJ
z_Ar(PMRrQFq-`XB-sWS at d_PCM`+3BVcOS_T5+W8Rj#av72YqYPbn8eGz^7>(HynXw
zcyB<!`G`~8S7c0$2=2LuWZlhKkyecgzFl6v`<TGmU%EJc`S^PGr at r_lLysb3t@K(!
zr18%{_2af{N2F35X;1|4p=i(X$jG0)4o9k2s$B<{TbG5mft6|k!m$zC^Hm+~?Xqh-
zla|+IDM%B|_<wHx&PsA_SY{;CaR~L=$kVu^f?s2P5<vKY at kvmM0oooN?H3r4ZB2Jv
z4x#>YZ+*G8Xwvh(5vnv3iiJDnUN*)tO3l}V#<(|;Iibxn;IrhC)MiT)%H~GaLjoxc
z2?<GJceFNz#<7s5xVLW-5G2q;2|4z;p7^XDtn~CyC^EDhOY!sg={Y{@ftMTtA}j*c
zpU)8KhK1ONe-a1hA`d1=B6md(H-Xctb!IXV!xp8%*j=E==>GzxbKQWSf1DGtd9x9v
zmSe^b2&1M8^|oiR(N7{kYrIvfB$+KfH<>vhcA~Werw<|KFj1W+!Gd_(R*<Vv;mFgx
zCLQR}eC{K({A);vlXXPF`P|h4>s#fo|FtH?CjF?m+W(${Sr~ookMVI9J-Y8<-pdd{
z9V=QQ%PqF74a_LGuaNoiR5evrx(q|6b9~krAyGyw#fVIp7(>&(kyJg($~Mf{kfZ0w
zGGI<3eA9^`iO*X-T4kCclFDnt+h=je#p;kAjEmonQNYidSsc;*#oJT2f%gIK=PLyE
z*&l_4QkA$411+3<JL7 at Qyf~=8dSLU74+z&@IP`v8$bo%Y=uR`+YG&G`a^5Mi&#QX!
z<JPJgoh?x76P}Oy>X1$UiboD~D$DLS)y4)4Iz0i1<_hRA?JUPFk4cK|7oZO-#cG#u
z{Jh}IX;V)K-jky6!y3xg{j9Ijmk`(eA8;smC5~D{!25&A+`JF5v<_Ew!7ia#rT*06
zCUe~#%Q9HUmkz8(FAFQFzBQ+VeJTIhFQX?_AaQE`b2aqsg?@z4p3h#N3g5`U*Q!cZ
zyvQ^)K{=o2_0qG&tBikm-p7w0V*=#q_WD@}t`6q7u9l8{@Gn1krRlx&v{}(#SMTQ5
zR9z?L at qKz=_?iafx#UwmDqpO)pKtf}6yq<yL0_w}98-LyWoRf|Ags#aFvGE4=JZFM
z3bPe`sFyUvdp}iHPL8gJVmPeZIeq<;?Y{dD3bMxNI(twCZnEhRR~+Mocx9uO^KPz$
z)no;txl8cPcenJd at i>ReU4Pr{(;3r}PJ85uTA7RtuOz!-QPFR at -r#mzP at jVFBqC_f
zC&FI}vxpq|hJBCr)vmY1AX8|0Ioe)L?Rp%qH+iK at r`Hsed!b0(7Il|1U#@uDP_dGV
zgcRt|XCv&n$^{qNk!CC&;T0WbT*nwj?_AdHA8O_|VzfMoE4FY#1a<pw;B{wztRJk5
z-taQn53sG5^CmQC;Dy#?_J`FBVVbYvg?M`k^`1hXU-t=f7xMOxl#`k|#>@e^rN%0J
zBd>`BXpqAxQxU8}2#~<<@Q+}ZME$#_<mofn9K+YGVu6N at pK_wY8?Jl!*c$-ZgZpit
z3{J?tRV5-JuTpCefArqFDF<HsKj)Q(b|jWUM5CQwD69&3r(gWFbPiKP3lY|gj8QaA
zL>le1=v`y0!1#pDy{Y%c=8l+2 at s07FU{5i;N`DSrPgwVtuVJCxZ%ze8--O+L3+)!J
z*ue=ocMxJipA{qas@!1f%2<z~3(~6$78+%AMCn-**0z03D#$kK7~btppc0N?9xBM2
zk<5&K`&M{E1}~(g1FB1_?F`p_{VUxtL10r8KS at +|t&hN^!*8N9G9y~N8x~BvN)&pw
zO{nX)w*c4>EM@((adN;r)<ib>ow?lWMImnsM#r5(EKiT^Qj-SR!r&IKAYCSw13j1L
zW3>-m&ssyxEJXr`4@!?o%`A2T)v`h%FY(4wj}c%wXTTjryAth~LLP309$(a3LN~~?
zrosI~@+aS*Tvlyc(jV)XQE0c-qW4zQSUozn_(Ld%g}5OjCGnx%?({|nrZsz--+A?c
z9B*LY-5>Pz at lpG^>Rwbrx_F0yF at SPW?$1^xlRc~=e1;Id;C^BH0Luh9DX9>jc6Oat
zW5+YXe|#N#a_w}EF at 4@X_!LQj9YOYIW4+3Vi&Wnd7|THPV*cI$n}>frTLUAk9r&XV
z>-qiWUbA)Ov4dNQ+qK(_b>&Ls0!0U2$yRaV$(-`Kjz<+OtPsoEcDk?Ym|t9BtS~KG
z=?19g;qnw{(C>>726%h~^6Hi;Jc%>m9A*T9cw0Q_-}XT5lT`PcknQLk@<*v$pP-wN
z{aK-4LSGduU8X>HCUizIM>?3TUBOuW2KHYgF)&=aOOa;-DG{bP?HM at jT5Y!@_CtVr
zx0Us at o3#lBv}VYtUT at pl+D<Mm+7wU+nF-(<IK at 5yp8AX|0c<-E>`?`xUi=_ at NzuIg
z`l0ht$@eZkmEZFQu#+jCPcWXdgVllZh^FQcP at iF-%XIsm8h{zc)aZ(`DbzYy_Il&{
zcZ<3m`Met7fG}c*gd7*@H1k9L4DQ0h8=y|JL^xr<5Kijp>G;|3`eABjW-r=XPA*(i
z^q at 5%DCPk6Y7dB?mJtI7n9nP~h!bd-Qjy(sAk?0qUswD+?IrHA at ys#;nx8*+3(}m%
zE<ihjoG$%SKy7{f5KtntEg%otd<j=(tPPvj%Ju$e;p at QNQOr*zW{))Q$)WdyDC};x
z-DFS7Oc)TD9yU-6=-Yv*QfrzGpsO4A<qN!!hd&lt3afVa3glrj;2 at L{P5RYfOJifv
zv;=KrIR23+p{qYdgfiTI^@#3$p}!j1A8l`^D}880o=&6dC}C^x0kKHs1o_L#akBEY
zN4{bYmJZvJYWWitd|#-NfyggvBfk#+<*u4hez_+g<ff;{w}nH3e!mPcPq+>czx{h~
zkZ^V7vUG3N;7J!`hCz_pK^zY0*v`Wa?VRsMLAxacAdobR`%gsLK-*4~Xq0X~gVo&3
zdcMuN6z1pR{U|Ga)P)uC1^zUo$=o~r%S3a%M#=nq-jHDZUt4b4OG3TK2n-(rXg9}7
za}RTyH`1893Eytmy=5I=Gh3AIMyR;GKO)3WK527k+*yKY6?%DsU|webJ{53XhTw3%
zt~_k>oIPE)ub{s1JLIBu?QUHWdD;*eN^ZNL`3clAF49rOrLRtt+aKNuUluFv$}AB;
zbx2e50#V8>ARQOO=5reE@%n|h0PPn`><{5FM)Jb&A1r~=NL|X{T~N$o0P>e9*+3EM
zC5~5;l^3uNlgielA0vJuIDZd1;OI{4)BYi=>s=M#kzFD6>iek=Qr%tN01vq>hlxTT
zU!B3mY!}|qcrMISJznv+7FR+*(-S&UnpJ>C`FdKm8Sm0;OGuyIGIl_VOD_)MAj}Cx
z|6;fsxu5YQ&y3ekARlun4NpNW&^gcxx?%2oX9HAqRyYZ$eky)I#_m`1%A?((&>p1Q
zJT*JJuQFtVfKJE$KI|Bmg8Di;0QCApx#A~VFVSQ#e?Y|-#~1~;Q0O5oiRGu)R*+<!
z>MvDUJhaTipO%U|8EfflOT%|<J0t)WN?n*!kog0iveSFqsQEXtNDc%JscuFKLW0{F
zm;wa50YVo*ObK9P!XWn=mk5ht-T*cv339AIB at BVdp->_6P!ODcc-IJ%{!Tz&pJch2
zHnKD~3}AV06&qv5r73s5z#Om at _pFTDd#vilr(A=gsYb|S{rKL@##t8Xhg#jFDx4}5
z6{_<*Y;k3;i;r3Eg<PHb-LR>0m1+qwPD0T2Ws0l#Iz%-F78>f1^9%%t$^G}n>-1pK
z!T;=ql0A@)nrM4kbD8-j1^1&5Y6e!j+UzUgdx%T)b`K&v4obw2N%^pt#USJ_eRi~4
zW~6XB?M9FL$=T-b%~oiw`16FgWI}=p2Vkuj&lS(Idc*O5+56t>34J?-s3bQe17 at PM
zQ!K6czy(w<^tK{oJ|hzcEn4{#8`?QN3Ud%1ddOu9ytP=hK1_x&`*hG({C_XR<mH?A
z&z#Y!>SaAs+dgxDoks(te#}T_sD23W-mp+sNta|wmwXe)uHg<Qtr8+Cy$`L=9*=#E
zDqnd44zX3*G0^uLkQb{);Pv{Dv|Xfzu%IjQiFcxG9n+4*!qipVWc0XevGTOej=k&K
zcQr&#nukMs-{021AAYqzgdYHr9FMklMn+l8diBHdCT{T_=Oa9IU9tO$gsZp6my^1D
z-!S6 at lskX0kK}y=Qp35Thp%>v&}FRSy#wmjehv<r#?yJE_0GNu%gDuok<^rcKHRtt
zaxGN`{GY=2U*F)m)4?Il^mKR-;v2f<Jd8a*M7xCCRzBZV&OfD at VME2jn<j8BPOv#&
zC33(#suI>qvL&94Pq9SuO3q78!<TSFk+Axc%0c=6I>K2Xj#D88=Gr>VF6Ayfpnr5d
z1f=6C67Mm5Z at RH1>ERI&a!XHk_<=#sgd+!pEXEZCqP}ux==&6zU~%k`TvSM7nweyh
zQMk0BvPkhxpsVVfRxnriKsFW1pMT$DhI at HKd%@fzigTk at ilJ~KD#(ogI4{P1%yT){
zd%wFGXJ)+dYTi1(xL8JslxD8WO+a&ElJ-e-?1o-a9^sufyf}r`CE+17zo0k)=ev+_
zcSSSr25D38FkAFN*iSs+aI7XtZqpiCgFsF5GS4oBNf*1}&{*|iG(+HA{O6Aj`o4p?
znxC}r6nv5s1Wo0L6x3+OWM~wBA=hFp=E+2~k9uXBC$J<)Wf-{l%{20c$Xub83OYCO
zlj#yo9ec>fmpVH*h0*=~sp?8^wHX&Kk-FMKcQ-(o%ZHRzx>o(vmJ!66F7sArUzNPN
z<T<eD@!ZHTcvoNO{4n+>{6=O>^V#i3_XiMOc(Mb;5K~{XFStRhKEs$Q##;-u8;=1|
zX{Pk7OEX=bPWjcIM1bl1)|+kjTljg at _#z}^_-(Blv+NORlzcFpK|D8Q)vWPNQqO}^
zqeEbUr|lHY9Vn(=wjjIt-F4x&kpq5L=GC%=(N_V|GFSfz6y`jT!`pq?#sJE>)5uf6
zo73hCrg$|8BSBD11k|xAaHehqWvkINHWx&|$&;kHsj1f2=Vp^mt$+0-`|cX!Y`S_S
z{08Rb4TCsa?CLm+M-VvP&7Y5UBz&IwE3JaX3Vn}gi+#stX at c?!eWgfScR2ZSoT~Uk
z2VBQa25YSA2UvDC{xr1>yeCnjg^~9eXL<%-c<*`(II6}0X<v<KVXu9?l{g5~V)=gg
zT2iY)5q8_4qm*d5!3!39Hb>MX;q~$%D~QfHVEG1l|3-QP0oqLn at CFnZG?gTRS7F8W
z0#I1T#i2d)WGv=>xCiR{D8&;y%ps|^Z^8dOjS6?V$slW1dv2wN>E}uJ3 at p=alO>Cv
z5>*nE&ph$@*C}AdUPhruQ10=)s>y;hjIcIv83`L{1)E8L4503dF|Ac;XsR~^y&YZ@
z;?gc};Q}!^&5dz3K;LyH+~4-k53z;NT)H#husws_UFAmxo2##_!>je@$E{@X^IcuF
z)1|CVVFJ{re|=PC^bWJAV*R{6FgskfFZ8qw_-ndrUsPWNL+=Y3`}9Jt)sN9Ke^jBu
z22t2r$bl$6U-NRX7I_I|L~9<FIg7RmJFZf>lRQYCD5d2NFly9Mw1Jh+4{j`-x{rxo
z;5#I`w(c9~t`(J)y;h5N>Xe56k>D>+7T?oRzGw7whF at +BlBwx4V86W|i##k9fY1G4
zYh^WIp&SpD8`P+olS29)2WBkH*&X0eXt<~VoQ2_v1%hUV*L&iaL<9t(it9blKA3$F
zA2V=2z>P>eh^4)FA(SX1A*N0tJrf9b;&a`+GB`dSlPLv-p&TuISHukyr1d6Zk_4Dy
zcm$pY%KOEN4J-KZY2>s34Sjzp26}?xs4GnI0({8kB!n|`1me76wtG-(%$SG+z(Xdl
zq(oNfbMS(~i{OnwvWM(tIx||NknVZwS9l%WX14S=kB^V@@<>_gW%ZFwD8Ff at beO%8
zW!S}`X&%AM=g7W0zM^RAFDb2-piLrmc0>vtIDMzC3m95;?bbig;&6*AT?RW4 at j@w5
z_dJLbm<2P18qDyG at wambk)<*-QY8 at 3qZFCCPnLuDpwQ6JJg@}a90EFg!Jr1M6O#ZT
z0H<?yI3TLaaJz|UR2hH${BlFZ)hZANX^KEzUX7QcloLV_Kur79)x~8GsRm-;<g$W9
zfpU6zdFc_f0j#Sgx3OpT+JoGnvc!gyMGd<C!b<*L-9oZf>2SnKK&5ZRv at xki*t*&v
zdv45B@<;0D&5XLF%U)~&8H at ++v6udF7t@XR$x(7r(l?5r7 at I(35Oys6JeB_Z>~13|
zC4Rfw6^a1Mis-9Z$w3<dR3W$KgJAdVJDlLIPB7ummln_+`afe^Ghm<my?{8>swoNO
z8}xNmkWs<@B?&1PX%Q4N>0QjW_c>3~EqX^1 at L6DqmVbaP0cE&>J`b#~b{Lrt-RK16
z|D07Ba%%BLzYawI4JM=8u%o#i;dOHQ_ms?6RVJTVXctLA)iSS!J1jR2gDlp&bMAoE
zAqa&`zXv<~E!$}wJA^%jX9<j)S37J-3Q<}xWXwnt>>=W)PNhMpksg;e5dk?-=G~zL
zl1Iu7YgXmso%RsP(fv1X3x;qaF**4li+&ad$<OEQNQEY}Ls7$EgI*rIeG$yUL%Y(&
zHBu;i$p9)1$J!37$WI-ar1$KBr`6v$Q-xQ(Q9Hz5Y*W3sIC<L{q(g%93$RL+nDAau
zVYAzI9Y=ySXEr8t^vKqKf7)-uUHsOd_b<v!xJmTm%{PL-<f~@(;?>xYZ5#lV>1&J!
zvj$t?K#?FW8oY~y^HP94TI~2QK!50fm1$YMdq|f*S}uvQ{P-{1)QOnk7c@}f7Z8UD
z1><bg_3O?;WOMW_Xh7ivXo)IiHhG5=BCR}oc%V*v{_760j(*`Qjz>KT!CAjqdU{D>
zb0P#P#Ud1CVkC+=1aNSr#R6$D3+RBWX&QHQm1xSFbu3i)5#{L*-)Ol~o*fn)`mNS*
ziD)wyyw6QX0;Q?H<G+*;loVUOZo5vc3WlMT%8lT#hqn;^>+rO1^jz`_3mIkz>s0y5
zcm at _jL78;*3Rh?<^ez93E%fl;CZi)@WT%2Bfv+NX0 at V7%DV^r$p%RQ8EKE4sQ*4~*
zduaR!jnzC9b4cLH5FMZbSb_}79E~p%at9>{<Tc3!SAdA9ZpTusRXn$Ol^<q=DdH5S
z4+WyB0W3Y8GB^2)x5o86osFZQXe-h3=_^8#_x>cDfU}4qixPB_3z~2!o4jPFe at E(u
zTR+(#9sWJ-Gm=Z`_g=#qMDBKPgwKS#t&>EKv8UI>Tr~a&+lxqrjQJVs8gd<}KqIy{
zehI#0ZWNK9Jeh5xO<-XfQ(k7KLA!mIsaycDK4!IagYEtRdltS^J%oG at DL&EJVEu{A
zL(V!DF&_-6 at rJ891p>|}g3RzC(Z%d#3lLe>)t0np-1gKKWe*yUKr7Hm(T>211;Q|T
zC<l<M7q9V9G&D#V!=I?@HSDJ!E1)IRNov7~IeLm8AT;^*tEk7t=6WVCMwiff4BLTT
zSa2fVT1Qy-09pdMoLHA7)NI#>7dWpL$t=uyG2FjYzc={h0iXBICzg#~l^%cC+8;C2
zG=g=Nm>xZ8(ob-`Z2*D0(es`A)^|d+0x<*eITL7p2Y6?=W86K<wg_#kI5x<Y62kyL
z!W?9exQRK%q5A at AQk9&Uxsz0!|B6CTEL5CeG|(^V7J)$M2GrBpa6ZFoe$@fX&k)v%
zZcK<f)^K$;Vh0-2c9`*+I6Zet!zbVfyX(jS?VniSunbWH9Es0<(V>PFq*uliFoA~n
zqzq5qLvc(H*$Hfpbvii`&;+p);02k^zL?VEgwidGrkeC17pTz7tw%hP<WNdVyNH3i
zSNt;~;wk1{ITq@{+m3)UlT<MZ^tBJmRnZf04|VItcCh3Fx;r{lWTD;8gTsC+FG_<p
zcmm_3Uk0l1M09kTMdcEJ0vqy{f?}9oWSKJ4BGJ5Lwff3q+=meSD%T!h0DeqUnBw4$
zcp({Aq at RZ_>B+ulF at iuDG%WbvuMxs;e<W!2(_)Exm4Y91R+El{DQ-aujy$IL04nqv
zft^<sCOMsRA-W{nj~vKhgo12&3N!f5Z&W9Zy|`<?5h^~e-J&l40#g+j|NZQXAIf{g
z-t=rizEv^g_{}vH5X8<QuLOMbi;Ko?n3s}le_y$s8MB}=OCV_t14?o*2=GCeoFk%$
zK9D>x&#tUXkrqReV^t<>`5GzJy%GJtp96x2z(nGN%(mYkA>J}D+GCIkMobms1sN4Z
zkUST`&lDc}Om_)RIL*?KRGdT<aSOaC5IsS*%;qNzD#~!Y_loeK>RUyGe4h9jbcDXK
zBFb<ccz6WBfC2w6jz_f2Kcpfq?xoOJFec~Yf6onmVut!n8Vh_9_%%-We_u2R2OUg=
zFfdM at zd6uTu<VhKLB`rGV~E=}JRe87dm4!wVo;Oh-U{Bt{kPVev`N{#Voh8 at ZIo;Q
z at dh2=SWUvAE$~*8SO27BR+`wDSRGvD7tmvh>q8PmKpa52=s_Ncy__WByhb{e2%h56
zlzWzR#OYQw9AVKs{hMgPRAEt$nv#QEl`mJ+^E3Z#Bma>t_eO+DlC-75 at F_3rY-i2X
zYq=WDrpOUD(!}LiMhYZp12M)_Gsge^Lda?O3Rw(kvlEUcW!4JY^mYzyPRC#IVLk_F
zZF&7jUcFi6j$slHb6aca5>3sb$51EkI$4czf+a*(b-C<TwP5IosA(BrsXqj_AJp#3
zb2*8US?N`^ObxmftDW{5cCFagyGSU at g-_9H=b~o6wd=+02SHQXGV1r=j_edCvN}h8
z6#Di%KMHY>_`el;jfN&`Tx~_rD)cz{N7;(hUjjOp=*x+ak7B!mad;#Vil&UU+QTKi
zu?3HENgr;-cgoy at CMODYX}Oh at pOsO2MEU%$$xVp=PH?o>)`?=NOjTfMWYBU_7zEzD
zU8)vtgQix{Vj;0EizrJdLF#|}j$jaH*w2PGgK<zw>`N+MfcS6Ye<ngyQ{gH$+}*WL
z at W>Kommz0w!kVLhoF;jhxTQPa2Up+7TYMN-)rRMcPlUr>lYYZTU^;1;m?2|dQ|$Fu
zg_LMI at uga;eiajk^WFej<!)ST at jfP}JLDcm9CY}Y-^m%jcNqKBcc*Q#(xYMQL at 9`w
z+((zFsdO2{%R_IxP5Y%-$1|VrRi2c)jhp7^dSZ(3*WV`cEd_Ft1win5^S`&ZQ~YKm
zuhw1NyG1=w!q^GA^<le0OdFoL{JnTOcr3 at 45z58YwUU7zv-3EUVIEdx=+ez^uJc{X
zYx%9xPIoWTNkZIN4S&;6sm)SQzx}t*<L*Cj74sLPsDI5Yw5E&g_zOQAEnZ$dlQ2%1
zarm;x4yU}ir<V`e5qx at b7@pO6bTs_sYgmoLD!-ow$|btqebOq;s{6!sBaKdNc2=kY
zBaWxvSP88R`^$LJH<dU?2_Oe7JV>Cgq*ny*HAbKhA$Gg_CQhNS`=5u-)fCWVDGV3r
z=dB;D2 at Xu*)&Gqe4Ru{LsUGbdG_rbg-<bb<t(era(P-Ggtt|J|?nY)bK#9e$o>U^S
zAjc9C0$%-p4k at O%bRVQ({r4{h3I1&~$iF3oB$eQ|Lh%cFAMGXht;6zCeN1K0AvKXW
zV%1xUIPl?c{~h!goWEAwcx&BwrPQxV`-mJIWJ@&lh0?WZG~tJpVUn%aJ>HB=mf=i)
z|IS~`RDxxl at lM?0)xW(I3NuG1!J2G=9HS#DnrDKFf{UX03ANTW?6k&My#xX?SfooE
zM6y&AYm@}^xvxciygr|wBKa;iLf2G4nRhn%#TuT5cZP2J{bkTF?|(5H$t)N1r%n^S
zs0EadRnZ$)??hFSS265YRQve?o5|dALzVx{?Cg_Oi|gL?<^2+@{NBdV>258dK at u1=
z3tQiU8TanLxJD~V5tsK?bniQrinFqs>EAlZUa#_((`;hS`8UH$U#Z(@DdrIWtpPO+
zy~InNhnGF{>P|JoNvPP3SF(-?jEfXWKE+iyDpHFTGSXM#|JF_h2|2dM|9^Mf at A;!h
zW}uQVZEq8)dRbA&kafCqS&^v8#5wT>Y4H8OLqTDfgDIo$|5YEdiMA0n8(x2Dme6a^
zsFhCh^-3ryq$v6r_HNPrP<AQeV*yeHAxwgvM=a&sTY!YfLSF3q7f>qzLp3cR$M-D@
z=KB><tjpiEk&DJ2UBY#k_8>Mqa}*0-cwX`-+oA4hJClx<Y%O`bL at p$IR#v+d4oVu_
ze=iGsR7`{zHp72W{{Mg5AfD`XT9*iU at 9q<k79QwD2By)s9?3fDE9#F%D at hKh|GVC$
zed1ZfsibLder{0+dv!Sv^O78`R!p&^n{k|4=LP{G75q}_qLsSV6}G1*myi|iCoi`*
zxp86z2>;!{wJ+&zf(7#0S#f&{w7y+>Al6%px|HoENWTj&+sCvrAo6 at uHmHJ|7p^A|
zJNm6Cz#;-QTffQ$X{PiClg&n0Iz_rb-dpY028`|IjOx<frgazg#Iw|t`_1oO%?^B%
zj6J#>tnJs`MZTjMuh{!aDE_~Xy&U5yo-58)JIluXlY>Khys}AU?{G-mHaX(5jvfog
zx~V)q>Z$28b8p$AI6nL5GW<jl|M--yIlYH$r`oI3JMY976<S6i(4lp5l#_F?y~E1j
zBA71tbQDuj0QUSa?jno%Sc?YErGU2cXq!8k%HPDga*ASItH%>w&AZ?dMBGc=Zs`i%
zDeh2_wXm}wGx&e&aTb`0`Kr?lu7AK|x8mcua1#XJ6)#_ReB)jcljJ;86sj5rfTt<e
z_hN*M=G6%8D(}KC-r>Kk4b-SD55}C1eYswm5#;#blXHr at h(^(-M~g}?iX>qWwy@~?
z?KH7Ha-=AF;sVk!NV|lWEvc1V?7*eq`tP#8?UYB1G_DSyl2p9op*{AF`kp}H{Fp65
zT`s)O?=bX*J8 at 6zdSX8KEguel391RJx@D3Pw5_tz_j(^XE*r|Ll_}j=@9Lh^$>Q>{
zg5ayGqGs5=Vb8lf4Rh9PCXxTmo!rG)5hKYBKcO;i(OfR?%(E`M3DA(83w^UOITYWd
z1yhG&`8_O$@mW+!evXiU_VZ!lHhmK5+GnaK9_N%}PAhB%qLf9FPeoEtg at eo7?0YH(
z48rFzF~tFpSQqnP(iAMoZq-?(`3l?>q`?j;(O9H0%9NcyTq2$FIHPkrCLEp1$PgWM
zBU-hcZf at xDXomzCb3M=%MCVxs4aZI$QflJQq>}|aKD+jRYm8->%2f^+TxL&332h%q
zDSbPj{x1MXk8<$}(nmX|zr=lofRGu3mQUqD7E$t;!5B&N+Hko=J<Aj+GL(pzkn<%I
zJO-ZvE3dcy2V$TOkgj at Vg%JFX13aOY2lTXRaUH^2>4-~c+}P18KXslNqJSLD59 at G$
zexL at GQ1d@0Q}=vBtV|Rm+ulsEFe|9ern}Sn7cp>33&j}9?`(pFGPs*jWHn01T1W-G
z6!LZEZ#IwIKF(@8M*Dfgq7w~o9bCQ~;x at pKFV2yE6JWY63}Q)Kyv?5$G1hi~|6Ol~
zZ0=)}`n6;8-Taw8o7y>2M;IHFG4jlks3&D^e^^taOlFG>54p7ZJSgSM at cGok{h&ah
zItw**$B43jZ^Lyn^jBtrUhK&+o=h)8|1TrfpK5r?tTQ_Wa2^dL!_^NQ0c1|0l*Ki3
zW*V-*2={mb<~VS|8z-W^2egF at VJ7jg(Q~Q|7`vTx<doliGxzq!--jOj?-tmE`x58y
zbGdzOk?3Njn78fRG+v$4f&e+OhnzBFWIw+xoK}tczpNXiw1Y27lPV{D3-5TZvz28K
zQ$79*yZ>@oFwFn|rnUd~#-#Rj(2FP68?1ZSCIOkPjN at suRqtD2o#X-3|6cTy>I9|t
z>5*Pds{SvwK|}5T`vb#lElX~E+)@W^jX6>giVQ=tF66OKm6fC2J<Hn>J6dcVT16;@
zIfCEve`{KBY}r1+M>$+om+3IUSbXRUy?rdC%_1z9gENShF8FtMQ(voesjFEh!uI!>
zG20l8xTS|B2`|VlXeZ9G*?Mpwrld_l^3YI}u&HUMl5yVJRa~Y#lW<&U7F2A!i~<?6
zj3&F`p=GsLqt@>?{IRs>ZHi+tv#@#2*(3DW8U>HeN#BcxN|8#PiOdO)ijqW|HMkwj
z=L#xbwj;lnZEt?}eMO}EcG$__V`ai8v017(EcIYYuy~)-S5u6<Cm&>o!YCFwG+BIb
zt?2}3R1Ab>u<Fq_ey{4*->4(q^;7TO{*E!q7+oWEAMD{oyfesLGW5Y7dTA~+$SHSo
zuk=p1u#t85bv!e+>ZeaY#7tb8RGG;@RuyF`wY37NDcLj4n{#{yzah?9bZ<Cw7i1aE
zuaN{JspU0%urJerK+A~5&l_DDi<s|Cs$Sc6k|~?gs(ZKTVNE?A60{KX1d-y_AMZdO
zJ4SR2mJ92J-o at 3>kH8<BJo572^;$3sqzBatK&CKkZKd;@!l2-sNb;%n^@pHK+_R5M
zSaW~uk4oZtiD43QS(877sHbs!8}|zuF_4<%j6FNKx8_V3lb^{qPOQDtjvm<j?``c&
z#A~x4u~w^m=S(A^p}&Kl&to%mEGkOw+w-dxkdKO_VC?C&lks$^<H`Etq!wqCA%f6L
zKL!~!TTraSkDIA$?K|!8m2(|nLn|5nFNP$iIHF5D-QQ^<B}V=APS}DgMA$SEAmxhk
zoRuw|Cz%uYKpg1g>l%*K-X5!@VCMZgOH$~^wj?=IJyyic3i0i0DlWt1JqZTlV6ABB
zFDh(Ekh5N6LpcAvUaC%kU)Wle(KLCnwKo*iH6labWAG2##`@(KZ{Kmj=j8dQrBD&~
z0|BMf9VNmqXsvBo^WU!yRnl($-2BB;`0!_mXwB~G$%WWv|2(MQ$kWT_vb;aa;JZ(Q
z9IJr4JgbWN=RwLxqV)y?@BO_h)8}`=sqOcjD<Uojt8(a?&Rt>sRfN8GG^Pj*<Rc$R
zlHDU#I*%(|9uC>by6?&##quJv$V~dQ?)x7m_y~R*BqPcwf}A%o3{p+VaN8`CC$BjE
zT)eFkxIBI5s-O34vF_%u`@S^`LxMjI#0)LND|!1rUb$1gkFpFRTW+`J-Dv!%&d`gW
z?C$zgD`D6JKPC^cOCd`8{7ZeMM@<<BjX9xdQgopl3qqwW&pnEdhqOHJ3~zlAybYor
zF3UeJ$&@-F?!ju;33BzP`Xj?Lp#E3epm4G%_mP2ca{50N^1o1m|Nkabc^&L{SaK~<
zV%)0~S$3?>NB~XvSJ4D*GI~S?vz|6l!+=a4;lGj)@ucH7bB4C|u+<y$rL^Pv$?7WE
z>ZsCxkwTLFSiq;fc(Bk=c_aeF8k})Rta)sbuGA{5i2d*y6z!P*5{J*BezoYegry82
zAekEF#0dKz)i#Z!Zj$MjACA>?Ec6vJE?k2mLGrEfU5+~KgTH_#Z$BQ>!ve=}vQran
ztn*$|6_bD^Z<cKAhmYlP+3rGC2G)l5kT|p<*b3K6W`N6o)Fc+$bR~-vU5;(VnU&Kw
z1o<BSfhnIuKkjOq%AP?4yD+4qlWLjr^6m8pDvRtB_P}v+zyu@<3b{X;pkk$&?N?ne
z#~$r((9Z9aV4~73WuLs{D`$ya^U^F!V9c-mYfb$oJV4yP4sZB1cEtkulX62 at G=clX
zShjPd1Tro~kQ-2>0 at r;@PQ%<m>~)>&F!{TG`MgYSV(j4MQ(@-Vzno9mGBa5e`>*ZQ
zps3!1xE)k+x4TEFniTmQJt{>|-hXj}Pga8aDy?~&IPgmLH!A%i1xFyx481=QLz;B{
z<b76-m!y<Vz&gf-JbNs3N{GL;k~+ at A7x%=v|5My|M>X|z+oB>(1Ox%8KYEqkI|2fM
zPy;Ac5Rl$`S44VEK$?I^Z$arD6{QymJv5OfAiYTu-;Vsg`+fJ_GRA%Hjq&)4k(`{9
zvvc-dbImo^+}F$U$5I_{gCZU3Po9-X%fwRQpfQXV{$=-+pAKZx!xFe^v7qCM>hER2
zSSSO`WCvgurw7gdHq55JYbTVcCG%_=Wqu$+tE~oid988!I0EcrOG(zT0p{^;9xa%`
zRF_X4V`+--oO3My&!&Rm3>))7kGK6#{i*qTrmp7QyjNm>NVQrU^K)_4-0D^TO7$D-
zEYE|9^ob6ZU68t8wkP)sj~AxE8#d7Uig=7Ld5~GyV$y+f+?D%jEw46Zwj1GEKw(dP
zNi|`n-W}RMlomM3itv(T`V&qsGsb_5q2M)e=zqvM0l#DUFVxb%q#u7$D9qX<@Gmj?
z|J_NWJ8!Q9n^oJ5ur;n^I4m7ayQD5GSO_J9uZc;dRwJ3?6M<)t5!jxHRER}{K>5SZ
znN?YKu~|=qpAzN}1w6>7#RNHCj3hjv1;)>&+YVZ-2W0+Engm51C(XACa901&ZkQ2K
z{*b0x@$j9(P{-Sbg>V`aHQ<&pS7Z6B5o`=?smz1fX{~0(;&yqc8%8q)3g83GmuDl$
z6dIC-ZMFXn-scFq{+vzs&j&F{+J7-hxbboqzMNcKy;C<&*ufZ5JD%Y)vIx1t>#x}s
zhq$gTuIOy-p2WnbCI^qJ7L9_SX+>}J^SLET-+>+~(yfT-Zfc__;eTEjVP=P%;&Ax3
zEtPVT{;4(~)4^&nL)OksdU)ATmx*j5vg4v<<WNe>A!twc2}}>^yj{U}k9N*3)uT-6
zBkDoBtlJDa1tsQmv*RGNE at Wf80$li=?J(1Eot#ck`sff<lIEhdhg~Y_y?@9=l(6-I
zjOL=u0qUhMM2Or8ixGy!?uY2ton^E*wD{Q7gWl5%k7NZ&^uTO+QN1CWd!jMqlhE$n
zMm_qe&{V<9Qg at Amxy~+3s)#g<l3*iRJu*z`<3YZ;KdxV=?s34xQj`|$Eek9?3Ut;z
z?%8Me9K|_tbMhCPCw_WuQ`l&jA%N`yA;%MnSc<WiWPKdg6w!san`J5OA0k;$J%v}f
z7R%u`4Yf at 5el>XiVVr+BwUCKZCnuOW_9@!M`hmPBrY^I2#mb{RU2cBifPFlm at 3y>c
ze40^v?aAvX<7~@b)8$&ze4bL%*Ari)Rh$M|-G&~^wIg}i5;*E at lQ;`LH!153=%ZGQ
z=;wOp4^Oh*%K0Q|?8NoJ0%d7kx#Xnccj-4qu;Iy4x=@biQFibZiI@^wJ2JbW3TXt(
z<n)cQi{`Q6pF3~uhp0CSu5MTGnAT+7^Y1#EFfT>NLRus0cJMcA?}rMTZDpM|E>2U2
zm3XVm_*9P>O!dhx_-ho2j%`li_mJrEM_!?pEqnLj$?vP!rv-x2Y?e)BH*Q+j3xD%<
zgkl^xZac|meO!dR<h|F at yC{F{<8$4ybp*Y~{9oS%Xr`1_agsfq!xFClBK>kz_eD+l
zMxy<}y2MRmmF*(r7$d4_oQo{=tQe=cq<Q!|<0t&t4ShB4AdG$J!3Niv(-Q*xJx4yD
zS at nmUvdo>*^xJWci94Tc-VOf#mV25URh*!2+U}WlOk_~o7i43)mMd-YXRIQ55Uwii
zqid3sIYr|Qr?<31_eNMEwTyCTRSmY{tw|mY!Iup!DDlb%Ab6^n$K*tN&XjcXZG6H5
z<AVbww^9m&Qr(9+-)$JDAa73LPozRD0^~~#*r?iE9Ye at rV^2)RM5B)Rk7VCn4j~$g
zZ%8J$;$1Me{>$NQxIPZSgo9*l$#Ijk6k|GA>;>dIBEoynKNeTUjuy5-uBL!m7n0R(
z8&3?w`H25#@N`-pQNNk0+BWu;o_N4Hw&JXymtHO~RDy|y7jaLXZ at TA1Q>;B7cuVk{
zpOWBaaWcWa;w=vz%LhpeLr3n!#Hz*i1*gz-JrE9g?%rYMuB{~_VBYfacwMh@^`fr0
zN8f28?LdS_h=>-Vd*M8^9R^F6f9ul=^BnDrDk;|@V&V4DvQE4^6pcpi`V6CACAWob
zZ~DH1uZ>!WkJGYUnAF~1B>P-qQeI8~34945N_^XvKQTxgW-rqs#k;w!S4%Z-uk~97
zI%$^4qPDo4E?wZ};LzDenin-pbgSM$vaW==XPQBQ4b%tWIKlXm!TB?o`ySlzdgUrn
zj~+kExkbB0ww6pi|FmX7d}cu-YB+ztr507NJ;E{jQ`M at 2#0Nd(0zYyQPC4YvW?9~9
zB!n;ZY~Y2f0DF5K>VOCl#wfS4ygFA~<ON at RLUiN8k+YV5W>U#9KV8erH0;6zoe`U|
zd>i~CqF|2S-i26u$@@d^UH7gFuP6ee-h=XMjVD7$h>@FYJ=ehrd44geJnoY~oc>@`
zJ+CI(+Jc;HRb=S<VNCq%N%>0het*)#^Mx7PKp<#5h(8S$iIn?7pJn`J)2Gt?o!C+6
z^uE-B9^0K<w_cb+i7(d%?CMPKER4#x8!>T<aA>qQBYxd&BpGrmDel*pZn|MymKC|P
zm$2yh%F)xiz8*-ouj7L(kHJjkn?+m%q`hqwg(P?O2^Ad7xH)Nbd(RJg<EKrywH8`t
zo}x!<V!|dtmZAIUE$e2bkiY)MsgzX~eSp`E1a?Eo$_Y27IFAYoTjT8=p!*?=Crnq-
z>{2gSQ<<k~9}=2R`fY1wFS_KVt7pIxBIn)cS&Y+SDuUi!`+bp~;=bp&;ZH8<+ at aFB
zAM2pe at SCxyggC?EIDWB9Qge7Mu0j*L?vQBcjm}@iq9O9 at o@n|Kz0ksY6`t42IwN{4
z+RtKeRvmml_y>Dcu-V1PwhO&$PpPa`lesDzN93nASuLu6*pmje3l7PfWY>{=*=$Vp
z>0A_1vbY8tuF{lD*0#!dPAWIVgjUbs(9Dcjikx78v;7&Szkd6N1+Fz!55Q*7>DW;H
z%v<N*Smrt=cM6|zMGQa1wri=mLZ3bTu3}gqIEkJ)u!Zn8a>COdCbzivBg~2j`FsJ(
ztRd70_xY!{7W+7j=h=PBg9)=G34Be9Ouu|OK{K_&U|gV1Z|ZsVjO*6TD*F>II?Y0`
zju(X)8}%nhzI*z$+S_`5X*Tl-qwU$gHyt4y_w{0)3U#OBAT?eOe>yldLHISWdKOq=
z;q9BRB=8|p{|Zs&Jv}>HZbA^KHh!u5ToL~S8&-eEN=Z_x1BLoH<V*OIN3dzf5K{=X
z64T at F9#y=~d>=fmde7ij%9BDJrP#u(C;%`@REQu at j=ro<U<x#e3hXcfod2A)h)TW&
z9M_XRe7LvIas05w_njk9&P#(-{oD1rUzjto>B8`+ZNHl~Htk*mK(C~uE(buAYya2y
zs^b~JL}t;^(eB=g7a+CF$C(ZWz>m<xcIb-m=&{%<OZsK{vVh>Cpf{NGhzNaQ;w<GM
z^BdGYBW`Ra_1^*-<_yiKv<RG5l*wrMMHWl^gr<DynozX=lcE4E>uff+&AAooHBT7~
z0AYhoyt9zm_xv?JVpi0WY#820K4g3JSVe5(G=8XZ%O#{eAk%WlNg0YMYbb4_hmUnv
zzio%9!fSm?aMwsZoJKRToe(k=mf0xQIG^6WUoy)A9os^Tepp~2?lRF7%+Cz?C(BQo
zHEJ4h^)LDg9s;Pr_6KT2yH{)_?o9qH9sE#gVCOy|@5HfCtjS_4_h4PAM;(Qtyj at a#
z<F%Tv<NC`^*VIvin(n6FqbLGAPDiGV`(q>}J`S0M(dmw5lbWQ0SGewcx~8mEIMz%>
z&he$%^3WF@;NrL-;(*&Pk2^D1znIqfooC%qbUQb!*vw=8yPt at gB&CJOz<S^x_(Af@
zi1oHTd5*f-xbZPZ^hTD4U;IC at N7|lSpG$Qw-^b1yW|GtQ(QnZA&$r2r at 9s{>yVUaJ
za5R4}*p!(Pc>u|DNcTOvY0}3)e^%XmSgzIm{F<h<ZI{5DWso}yWQzH7m|$8On_b(;
z8zbsgRX>vWQtr<-^r2{^z}m=RnL$%cyhXBNel?_tri*+!`lV>n5p+4V|L(5W6oGe1
zX5CJj_ucX%nvLuFpZ3p)e;h+lIMDSh_rCfpFmGq1PCTSiYV9LNJ;aQiv}U^D8zNa~
z)p{FtD{7Dv!}9|2I|Ec`JgXy=$z{@&A2z(3{=p+cJze_xRvWVFk-{m{ZbOy}`#tKh
zG-6=}X^gSbn!xd|XY|!Nnx4+`kX7ZM55MqT;bG8M?Q0?`QRZ`f6mucoNz$6rWDudc
zVN|x})0klYHM5B(PO#$=kF>&0Sh`(aKjOMIr|&?!G2g*PqWLrEBUujX1$F#u_U1>D
z{nFTF=;gL*<bgIDZ~HT_?=hJ%+d_OW>~-9bRu%mTwskRtB&SBUF|qsyT^~amlC`h?
zBd<~eJ`stl<E~d}M!;3(TkF~5jbzww(7gC+&AO!l))oFQy#zX*$m)|dTL;Z>vf%b;
zOU+M{C6=a?#`^~Uz6Y4vx+ at QAHNIuJ4;_o+qkR2xTBYkP4X+)dl-q?2s5ne2*G84+
zHo%Gp<<sL=b>}irOQA4}%|1gL;gwiW;l0Qov%zD%L?OfB9&wyq2BTtXweM&m`c4Eu
z6i*E=E_a---|<COqF6)RiW5}&g$`YWX?#=9IC3jovQ!ZS+<Un`4)O(h4KKAq&kefL
zX~J+>^lEj3#-X$!IpW_c7nEEQu+N=_=j>)<W^4MzU0Hfuz8c`{il^XX2Na!u!mHn9
zDT5(Ow0K##!JJOKJ5Rv6r1&s$>RXB|o_L*aH{)Wo>timX(>JTNH-CD{zLA*(2t|}?
zr&fKrsUe^=FGZg*YKXVzo*-)QSWWAFU`R{bZ-x}nug05e?J%=8ttc=oY+80R=(ycF
z+`Q+*L_`=ck_5mAnL;6EwmJSF6~5p{Jl(nFoa`)YG at K0!iJkTSHs{9P@=7i}py3sb
z4UwSVKe5R}h<|o+T20Q_=5e|Oit8GpCM3_wT0H%9NeNzcY=Q&XTeik#j*m{!AJ>E*
zOHtr)`dd}9n at N<AdO{Jj){<yHo*mI*ZceuSi);0w46toIN#Dl$qVvY&!~C47#{}6~
ziMPRXep|MroG8*XJJPdGouTcWA|FA&@_`E15$$BT!$>r!BqkfYlhkD1Xf}oBgZkPB
zb!ss-4`;518QeU=l?c&7LX$rB7w3;hStUasGp`&&um%$f?<M5T>CCs_?BbdeSkl^O
z&X<`uCb$0mb12)s+Oym?$dRuSeDzUs!Qd#n_q}3UORV`Pz;{+Ik+*z!H-Rg#EtX7)
zYyDYVj0(K^h$kBkr(%Q1yiHS*`mIni$oco+s~_k8*7Q4(WyK&tUH`2HZ)U4zzF?Yt
zNf3k`nIEaoWs?Zr1o11HV8poJce at y1g3v-N%N!E}J!~H#)6!g_ADU+a9_y!4(CHt4
zf_my4Mg9J!FJw`fdex|79O55t>DHLw{Bt8#Fi~_(`(|*n^U`cDxaD=?uMM-!i`$6r
zhNCJK1Al4DiJ^{Fts at R^jHx|%YaeI}EHBz^Rr8=wu)bwa+Dv$99XCiUv0G at FR0%?J
zW7*B2?}gi^bl@*rF=#{<(UW at 9gfD|KuO)V)c!S-yJ-6k(=5(;Lj+P>+hcKCwrr<UD
z=c?2!NL+-=>OB0cNuYhYoG^Pnge0If%t?MH2H{)uYL89}WLk4J#6z1V<L~)UmSG90
z&psYzXgV#~n1Ek=?Zu5viKnS>5ckRp>kaKik-Kcz at K}<yAIYxjF`RfLSoiEUdu4kl
zZxGh}YMk+2 at xQo1<N5eNwIi*-5%~DJ=E^7#q at zVple4$!sQK=g$CQV0;OXufD{PcN
z$dV4L;C}^6t=B)bp>Ytriy<`t!bp6T4;b##H*<;vI8N2HVw4|d3hO9MQ+#f)uHD%&
zW=Y2dQJH`(*yA8{=~7XJp(y^L5x}rD7!KjT#}<f|A`;;*-qTwq(?6d9?r79vS__X6
z!;k(=c>K>8pZ|)>pd-ZnqTOEY)GggBb7cIm(3FDo5>d1on+YbkCwya#sM=%?gAyR0
z|3md4`R}MCCQ^`jWYSf>6H%|E+Qc`>D}*tvSm^3%<mmVpOs&nq(u*J_&Gn7Sl5|?0
ze(}jYqh5}aIX+Fnpz{-E*2~jj9b*GMMV1Cod>*4J+W&E)5a^-iBHbe*J(k77;@|bd
zEehqw1Wa9>H|K6YUY4 at E*o~J+p3Tq6OgsmJAyA9~5NUPupDDJ!r#1zWi~kKc{4)z$
z-Lq=+(z?6_4{0&nMp&wQW^|Rt5%TCrwY^;pXS^#)Vs}-<J7$P9oXg0{)Vf)_tJ|Zn
zEbGBxNoD2zR~bB7O5^JF!fHWiN>xP9N+t;@P?ovnzX4ldoQc^lFry5~Hg`+k`Ecge
zcM?33GRKiLSEn3tu<sIx8$O$!a-36~ZJwCns|vZDH8>^%`3KVYo9OT|X^6IL^-54`
zeP8DR<Nd4tT(s<*>F%i`SLG&?lTovLLbhK#IwN2)oB1NJAZ>C#(mlqE!fnMX+8zlP
zo!HwkxIltr^w-p;%u at ls=%I*z1sW#+Xt-YjjrSMG^?<r#^~DSk-KkdZ$HZlE(J#GF
zxu3+<i7#mnXtt^||C;w4579#L{Andj$`Q~h)v)%Q(?JWbicbF$SNkqKNwE0KC_<+r
zjyq_n+yc$G=R1?wbk4>tYyWc2qgwGB-1ZO54CS}9%AZ<pLi)Mc%OU1+5=$^6#!}U0
ztf0?bpdg~FF&n2``Jh2DKcIC=o9ZJ>|I2rL;|EiGjCAzGDBwTr+cHtZiA>T=Q^vQs
zb`y^nlv}m@`-4JWcRBi!WzlG(8gI!`9H`6R&>}}wAr(u95v!vx^47onkClujj0T$f
zf^>OvuupCtsIz`-wvV%%jd{S?_Wi<l+wyrByR6FjNqjN!!#~6a at qZ*fcIQTZO4mw`
z-jc%a)kZML+6B2Y8lFhKR17p#f9dkVRC|YmR%u>;QNF1RonP=qVV&kIr7iJ$KY^hk
zIsDmMzhZl%0*wWRlc6Q_iISTr?X(4nPg`jKS3zMtJA*zqdyVp<xar6;l|7AKV8V&F
zF*EbGce84fZP)YL1szxJ<@2t{9PS{sY+>aTsxrn0G*&bg?gKHfGe4KTGcv)?VA03<
zZe5En(l*Y8ub}-oaTnAc!_L0YNWE6#elaDE6tFg&C42It^VZ8}+NwrD<6erS)Ty>m
z(t=%eMLn~+OM+w#-Y%ZZe`g;$oNbYMmTw}9zh_KmLrOw_hmw{Xpqz`i*tvQ%8vnY$
zZXmmV0L#}1EPL8<?>NY#5y8dxNi56TN9UTC7(`kE9cK7%7$ih%8DNlTG%pXyC&%6B
zoayG$@1|wgqWihpZOBjr^DY5ykCfolV88`VLrn*A6<`jAspd6Tjd~l<D(KB1pNnE<
zHk+;pTRUI*UUl_2GHQPZ*<8oDI25k)*>*L;*o=01C~4`K-6|RcdBQJ!)XbBfQO=7@
zS-OifiK1aIq)cQPdUn*m1Uq%nd-K`NV91dlzlQD*9Ye|jQGVk_Yp7$}WamKPD(mim
zszc_ at c@9G=%|cm;r2KQ4R7H58AJqrffCshaY^23PLn8{RWlFdUY$TU7!&GXRl at JU)
z*qpd7g}lCkQ?1$j)l*}_rZ@#BMBd+@`SEv3HPYkL76ezSl~ba6<~IW~&Q;bCCkDn6
z5HMJ9TE9QBtc)0m(@w$w5Vr+ZHeQ?@J%c<qv3PT08keqho;aFI1_j}MlArkKp#Q!K
zP`}4qN6^>Pi`{rdqhX1cO+A}AfniFV{43S?L)fS;$td%%PEM^w<q<$cb#RuGIWKRQ
z&`K}$_2GrzNE-BB+ve90Ex)<KJbrT#NG?krb;z#Yf01VnDatxNzv=p6`J7Vph?{D<
zJj{7BjSPS816qU*H9yCKmL at oyb!blEH)XI7jr8F&;8e at K8SMgd%(^Nt;nf#od3J&x
zt$h~e8%BTwiFIyS_e`)w)IcKaYhsnh-tujW1*m7 at l$!YKJsuf5^yzNGU*R)DH6(R5
zj(_n~%fsS5hBOB1c2{0t(TMII^#t9&@5S_iw?yNBc0F$l6t%K6=b2OJ#w%gmrXNao
zb3G;xF5WQ4?eV(>1+zcS37V<tV${M9n1-iV5LioJv4j_#n8w3v&S!fWSHv=)ZSY}k
z2Yo+f4bi*y6RIlhq_Sq(XWc3XRQ>LC+<a)O&(G88dgM^{t7M=3KCGSBFUdM2-(z=k
z=%Q5}rC6&IX3=+g5_F7qW`(Y%mR`w;ug>J8W(k>~o4!rANVz8P(Gt0lL0NRPF9e$$
zC;1llM!?g99E;naJW(T4G+l)WbkOGj8xFK|^mV=^sp;_kycx^(7uHS3 at TDuQ1G?32
z8gL1G76c$KSZ7d=gMZw>#gle;a0FpA)_uJ>- at MEU_y!I$ciXMHU;M;B>^NLu^q#H<
zs*0mOk`mWe`-O&*L6^+DG$|-`7%#!qc?A+$I&KjvRQ&_ST=3p8cPS5(!3+E+jH%j@
z-70Na$nDH<Rqq}pi*g&W_xx6Ul@!kBirsNV*c(%SO8j`$Ne-i2egQ3127JEwTdN*Y
zDq31$00b~?sF*#lFvS!zbAUxSJ#CppUc7!5K9^EPBgYTwBa)Z(k^e81sDFn^F6%x2
zo8&I?K$H at qGyKzFgi64&FcB1NMm>A;x00hA@}ZT&Hs7)#``Ni?pwuR98{+8HRx5Ix
zv77$heo=6Cd_c9?CFz5A`aBkVRr^Ety==b~Di4=E`Nm?z>)5!sbmNEA%|WnAE4>=k
zM~`Ck(jp`jLECU<GlFSq-)3DlEb*1i{>p%$xVSC7b>un`zRGlv<wmK<q98=J)+ at cA
zyZs8wP;O|Fr6alq5-+iG=j5PB&M6!ks#;WYT$TXse^8)cH0~8i7#62^Q1wv8#K0wb
z%g^rR3Uz8WU%f}hm;|2U<Di?y+fWye1EXP&A0W!aTeb{e8?}r7B5xNRKRzk+<K;a5
z(4C~gLIZqYJ5Pzg^~zyN5tSqzEmv at ytaSOjwo&Hb+nQiZpJ(k~?b-B;9(?H)Oh;8Y
zD7Im$aN$r!fz9ZtMDbd=_dGL1D5XWc>6H=<kzM~^_;!M`M;npYegokySV-zeZK_J$
z{qonDyTrdmGGm_4Bx9FWeQv6bj*cf#>OX0&`(t7Pe}fv-Gi9VPb%*k{LBl)ajPj&7
zZTb9xA14?Ip|eN>{vbXkj<b6rN;(^nfGY3+o$HIMwxlL71V>JV;FqU6uk}F3d)Le{
zu75wVJl9Zz*?P*Jeq44tzKj-EMO$5yGN@(TH}*DZ2ZC5lH#W%jVlH&TG1ZxBJIOKf
zSIaF0_q0mj1=>_02fTKLimc>)Yq7_RpW2g-7&O<);iFl_m^K#CC2zOBxH|(8w%omp
z*t%ao+o-Z!2K}xJo!@-#B9a?;LdPJ4OCC$R^wQWlii-+ZNDMC}6Vd<?<!(aU79)P2
zJO>c=G51eU!xKfS7=!KJ9$-Hz(93LAb8wR at 0&2*t&gTIj(z+lhgphR((9`m38gBxz
z5>8^L>Qz^%vhHXZ52HjcZVAzxix`*$<>{%&xl;6Ofm^`@Y>GSf*z;K+ViT+3_2>*r
zZA&+TzJ^2D<XEssJlfVGz^g1|C>0Cn(t;Xqj$g1iq|&LDWbL^JC2Sri*ZraZcY$?I
zlz2CkKso*~Cl#jtI`Tm9OX8u6UUb;K`|3Hnx%fVl)Z*>fS+WYi99-y#)>Xnrm!)~d
zYAbzEs8b-lCVNohD6kgwV#hVlbCFrt0xyRI-Y4JFu-$fcAd9V1^J^r+_>7E(K3S3n
z%hKUOP6$F+QU^0bd;N*hVkt*6k2~A1Je|J+mjTnuf~^8GlZ^Gtetrvg0C_rV{&AqL
zAzdQ95VdG|4|_<Fo2JwApVu~<x~_juN=}nzZGIwoQj^x-D2kDnw<uqlbB~R3bFCNX
zIJ$8dvsc%I<tM77)qfyl5N3d!lHzmvB3t%)i{%4HbyU_w4{+sv-V^@u at dn@Mnvt<F
zdzgipQs5-8H@~pGbF|puO0 at MXz|f+>JMhll)2LZoT331K<lb`Mp)5+V=VA4exVEm*
zZ{rtGLYGQHmFr)TBVhYJ=~{4qtvxmK2#JYjjwd)+!MLgvm^twb{>+a`TM)H294evP
zP$hGEt7B!uS$I?SX6DF+By$V0U2*(#8m~msphPW-yqx;4i_gC-{cYf;LRkSu`MyXI
zY?)k}ZjcABw1dol_`J(ZPL%hGz%eAd>&|}N8%Z580a at oTk_X7vBO?#3rP>KI#I#Gh
zY1_^VzBERr- at s&}tmEplr&NOU-V>%i>5NS6zkh9eJq-EXFrNc_K(sRjr#cdGXtu0}
zr>06q+IBl>o<w#77yOFpeL5-cG)Cn~%qEw{b&djxO3uI#%)^Dt%^^hB#fNU1b3$~i
z?+`ZBA#V3-BjW*o^*q-5ZLA))=*}-=+F0+e;Y#xxniu;Wu8)EGb!gOFT8zci_m`k6
zQ^4x<DQ*(I-5pCyjB)<0Sabg3<J7x`Oke}q%B2Xo^IT6KU=c;8DSi(aALo3^@2Fp@
zn|4NUBO4Shz*@P+&pnH2Qca3v^f%Dc>mCX|5<2<BF3UJ1_q&BiY7=Y)ojHGA7`Vjz
zR}>e4mzS42rZ at g%HHXio{Z}1PGw4b4%18)4$g6UgK&HK|9+H(>FFgnDQdQ-q%?8_u
z^f0jU%Y7Q!uPV3JeL<j1`{mpt<?0D%HA%1u(03$Q6UD@{1a=ry7+H6M_9M)}R%#z!
zN9oa$psIstsHsuR6j*Xi<eE<ipyi7ZpcBaJeNA-l{ko4XSd6=vh_aJ(Pm3b?hV4tB
zN!X+0piE<khs=RyIC0Q*q&g028C_4)DZ&4EoU~1#8C{4t*5oT6(27Xu at w*cSntXj0
z)_a{X>^6?;*Im%Q3~L0=FNEMN5<&zh5O5Mw at R>o0pMfR)k97BsUgCd1A1Dt$e0KLr
z>*LP^t>IzU$CJdt*5CgWRd{WTf9~#kNO48bqZFtv{$>f>*iEnJnM3oxE55>9E-bMG
z7!$?<QyCA?W`R+D!0|i>bAV0TijMv5*r?I3UtiCFwpNU(b=oDt5tiutlJ61kz`#J2
x|DpY*dIZz;1wIVLY=L?yANfC1!!Rmc$Q=;PH}sY6Qec5U$bC&Eq=I?q{{l&cxsU(=

diff --git a/doc/guides/prog_guide/img/malloc_heap.svg b/doc/guides/prog_guide/img/malloc_heap.svg
new file mode 100755
index 0000000..fb572e8
--- /dev/null
+++ b/doc/guides/prog_guide/img/malloc_heap.svg
@@ -0,0 +1,1018 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg2985"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   width="983.76233"
+   height="643.91644"
+   sodipodi:docname="malloc_heap_svg.svg">
+  <metadata
+     id="metadata2991">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs2989">
+    <marker
+       inkscape:stockid="Arrow2Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mstart"
+       style="overflow:visible">
+      <path
+         id="path4265"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(0.6,0.6)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lstart"
+       style="overflow:visible">
+      <path
+         id="path4259"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(1.1,0,0,1.1,1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend"
+       style="overflow:visible">
+      <path
+         id="path4268"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6,-0.6)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible">
+      <path
+         id="path4262"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible">
+      <path
+         id="path4244"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend-1"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4268-4"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6,-0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend-1-1"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4268-4-8"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6,-0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend-1-9"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4268-4-6"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6,-0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mstart-7"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4265-8"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(0.6,0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend-1-8"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4268-4-2"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6,-0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend-1-2"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4268-4-0"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6,-0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mstart-5"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4265-7"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(0.6,0.6)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend-1-5"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4268-4-4"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6,-0.6)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#30ff00"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1139"
+     id="namedview2987"
+     showgrid="false"
+     inkscape:zoom="0.8"
+     inkscape:cx="346.31962"
+     inkscape:cy="474.02351"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer4"
+     borderlayer="false"
+     fit-margin-top="-100.6"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     showborder="true"
+     inkscape:showpageshadow="false" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="bg"
+     style="display:inline"
+     transform="translate(79.549515,-4.4031235)">
+    <rect
+       style="fill:#d1d1d1;fill-opacity:1;stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect13505-6"
+       width="98.575218"
+       height="70.808708"
+       x="328.8374"
+       y="317.09564" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="boxes"
+     style="display:inline"
+     transform="translate(79.549515,-4.4031235)">
+    <rect
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="rect2996-1"
+       width="187.88171"
+       height="52.881706"
+       x="75.764778"
+       y="5.5253706" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7"
+       width="634.0592"
+       height="73.027374"
+       x="60.830574"
+       y="130.24477" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.02648067;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-4"
+       width="635.80048"
+       height="74.768661"
+       x="62.169655"
+       y="315.43158" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.85834479;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-0"
+       width="886.87543"
+       height="106.64049"
+       x="-48.78373"
+       y="540.24988" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3.13159013;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:6.26318017, 3.13159009;stroke-dashoffset:0;display:inline"
+       id="rect2996-1-5"
+       width="223.0157"
+       height="109.20289"
+       x="409.68008"
+       y="420.63235" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.90856051;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:5.81712091, 2.90856046;stroke-dashoffset:0;display:inline"
+       id="rect2996-1-5-4"
+       width="191.98872"
+       height="109.42592"
+       x="644.63062"
+       y="419.66205" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.08755708;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:4.17511403, 2.08755702;stroke-dashoffset:0;display:inline"
+       id="rect2996-1-5-4-6"
+       width="154.05972"
+       height="70.246925"
+       x="678.59509"
+       y="214.87654" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="blue headers"
+     style="display:inline"
+     transform="translate(79.549515,-4.4031235)">
+    <rect
+       style="fill:#749aba;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.85091281;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9"
+       width="16.994427"
+       height="73.79715"
+       x="59.561817"
+       y="129.601" />
+    <rect
+       style="fill:#749aba;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.83000004;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-4"
+       width="17.015339"
+       height="72.050293"
+       x="384.61731"
+       y="130.22485" />
+    <rect
+       style="fill:#749aba;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.86642051;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-8"
+       width="16.978918"
+       height="75.107468"
+       x="261.76944"
+       y="315.16946" />
+    <rect
+       style="fill:#749aba;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.36914372;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-82"
+       width="48.412117"
+       height="14.17484"
+       x="-42.956367"
+       y="549.14984" />
+    <rect
+       style="fill:#97ffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.83000004;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-4-1"
+       width="17.015339"
+       height="72.050293"
+       x="241.39912"
+       y="131.17525" />
+    <rect
+       style="fill:#97ffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.36399999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-4-1-3"
+       width="16.981569"
+       height="74.882637"
+       x="568.40881"
+       y="315.33447" />
+    <rect
+       style="fill:#97ffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.95599997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-4-1-3-7"
+       width="49.319912"
+       height="12.752681"
+       x="-43.016232"
+       y="595.7439" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="red headers"
+     style="display:inline"
+     transform="translate(79.549515,-4.4031235)">
+    <rect
+       style="fill:#ff7b6d;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.83000004;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-45"
+       width="17.015339"
+       height="72.050293"
+       x="501.49307"
+       y="130.29137" />
+    <rect
+       style="fill:#ff7b6d;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.84049058;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-45-5"
+       width="17.004848"
+       height="72.923683"
+       x="678.04279"
+       y="130.29662" />
+    <rect
+       style="fill:#ff7b6d;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.85091281;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-45-1"
+       width="16.994427"
+       height="73.79715"
+       x="681.8158"
+       y="316.14957" />
+    <rect
+       style="fill:#ff7b6d;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.86126781;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-45-7"
+       width="16.984072"
+       height="74.670677"
+       x="500.62485"
+       y="315.92252" />
+    <rect
+       style="fill:#ff7b6d;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.82472873;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-45-11"
+       width="17.020611"
+       height="71.613625"
+       x="175.33748"
+       y="131.40486" />
+    <rect
+       style="fill:#ff7b6d;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.86642051;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-45-52"
+       width="16.978918"
+       height="75.107468"
+       x="62.221222"
+       y="315.0412" />
+    <rect
+       style="fill:#ff7b6d;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.39574718;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-45-76"
+       width="48.805244"
+       height="14.612387"
+       x="-42.996674"
+       y="572.61749" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer9"
+     inkscape:label="unused space"
+     style="display:inline"
+     transform="translate(79.549515,-4.4031235)">
+    <rect
+       style="fill:#dddddd;fill-opacity:1;stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect13505"
+       width="98.575218"
+       height="70.808708"
+       x="402.22061"
+       y="131.06841" />
+    <rect
+       style="fill:#dddddd;fill-opacity:1;stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+       id="rect13505-8"
+       width="96.700218"
+       height="70.808708"
+       x="77.587402"
+       y="131.47064" />
+    <rect
+       style="fill:#dddddd;fill-opacity:1;stroke-width:1.79999995;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
+       id="rect13505-5"
+       width="220.21585"
+       height="72.839958"
+       x="279.26709"
+       y="316.08002" />
+    <rect
+       style="fill:#dddddd;fill-opacity:1;stroke:#000000;stroke-width:1.12016988;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
+       id="rect13505-59"
+       width="51.879829"
+       height="15.10388"
+       x="445.6301"
+       y="550.76691" />
+    <rect
+       style="fill:none;stroke:#000000;stroke-width:1.12016988;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
+       id="rect13505-59-3"
+       width="51.879829"
+       height="15.10388"
+       x="445.62964"
+       y="574.00262" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer8"
+     inkscape:label="pad headers"
+     style="display:inline"
+     transform="translate(79.549515,-4.4031235)">
+    <rect
+       style="fill:#fffec5;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-45-7-3"
+       width="49.88493"
+       height="73.447571"
+       x="518.21405"
+       y="316.16635" />
+    <rect
+       style="fill:#fffec5;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.86126781;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-45-7-3-2"
+       width="16.98407"
+       height="74.670677"
+       x="245.17551"
+       y="315.48059" />
+    <rect
+       style="fill:#fffec5;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.02099991;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-45-7-3-4"
+       width="49.474121"
+       height="72.084908"
+       x="193.07074"
+       y="130.93698" />
+    <rect
+       style="fill:#fffec5;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
+       id="rect2996-1-7-9-45-7-3-6"
+       width="51.75993"
+       height="14.072571"
+       x="445.05756"
+       y="596.40125" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="arrows"
+     style="display:inline"
+     transform="translate(79.549515,-4.4031235)">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:9, 9;stroke-dashoffset:0;marker-mid:none;marker-end:url(#Arrow2Mend)"
+       d="m 262.87951,51.152779 c 0,0 148.12631,-3.276651 187.01718,76.272861"
+       id="path3973"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+       d="m 681.9161,128.72302 c -22.09709,-49.497478 -148.13393,-45.873109 -179.42835,0"
+       id="path3988"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend-1)"
+       d="M 386.69903,129.58525 C 361.95029,80.971668 231.48641,62.20327 177.21864,130.46914"
+       id="path3990"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+       d="m 60.546017,172.89554 c 0,0 -32.703692,23.86486 -60.10407166,-3.53553"
+       id="path3992"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend-1)"
+       d="m 176.82896,203.22242 c -47.24941,74.32926 -107.438064,49.90804 -116.0476,3.53553"
+       id="path4035"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend-1)"
+       d="m 502.04581,203.43962 c -25.63262,33.58757 -82.31601,45.11485 -116.67261,2.65165"
+       id="path4037"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend-1)"
+       d="M 763.23339,214.04621 C 748.83403,184.37018 738.54555,166.795 699.15183,161.8971"
+       id="path4039"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-mid:none;marker-end:url(#Arrow2Mend-1)"
+       d="m 769.42057,285.19885 c -0.88389,83.96892 -68.50098,75.57203 -68.50098,75.57203"
+       id="path4041"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend-1)"
+       d="M 682.35804,313.04117 C 652.306,280.33749 539.16892,270.61477 501.16193,313.92506"
+       id="path4043"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:9, 9;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)"
+       d="m 415.42523,202.55574 c 0,36.23922 -4.41941,88.38835 -35.35533,109.60155"
+       id="path4045"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:9, 9;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)"
+       d="M 375.65048,315.69282 C 336.75961,232.60777 166.1701,311.27341 143.18912,205.20739"
+       id="path4047"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend-1)"
+       d="M 263.39727,315.69282 C 245.7196,288.29244 86.62058,275.91807 62.755726,313.04117"
+       id="path4051"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+       d="m 61.790091,352.05822 c -25.819377,20.1091 -49.573204,20.1091 -61.96650422,1.43636"
+       id="path4053"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.54999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:7.65, 7.65;stroke-dashoffset:0;marker-end:url(#Arrow2Mend)"
+       d="m 448.12892,630.25126 48.61359,0"
+       id="path5241"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2.09116507px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend);display:inline"
+       d="m -39.741559,626.33548 c 10.599699,-0.12345 25.528414,-0.12564 43.719789,-0.81161"
+       id="path4053-2"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend-1)"
+       d="m 499.39416,389.93904 c -46.84583,17.67767 -206.82873,31.8198 -238.64854,1.76776"
+       id="path13236"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend-1);display:inline"
+       d="m 502.12201,419.58783 c 2.37436,-10.40132 1.73096,-5.65101 4.38262,-26.86421"
+       id="path4043-4"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Mstart);marker-end:url(#Arrow2Mend-1);display:inline"
+       d="m 517.94842,353.38466 c 19.7099,0 43.91577,-0.61421 66.57012,-0.61421"
+       id="path4043-4-3"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Mstart);marker-end:url(#Arrow2Mend-1);display:inline"
+       d="m 501.71494,363.4321 c 19.7099,0 157.04077,-0.61421 179.69512,-0.61421"
+       id="path4043-4-3-9"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend-1);display:inline"
+       d="M 728.67747,419.79091 C 702.92683,395.63959 592.90843,427.2649 577.43509,389.1767"
+       id="path4043-4-9"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Mstart);marker-end:url(#Arrow2Mend-1);display:inline"
+       d="m 60.975741,169.05711 c 19.709901,0 90.307569,-0.61421 112.961919,-0.61421"
+       id="path4043-4-3-9-1"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer7"
+     inkscape:label="text"
+     style="display:inline"
+     transform="translate(79.549515,-4.4031235)">
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="90.732231"
+       y="36.767765"
+       id="text10506"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508"
+         x="90.732231"
+         y="36.767765"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">struct malloc_heap</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="580.66718"
+       y="107.47876"
+       id="text10506-2"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1"
+         x="580.66718"
+         y="107.47876"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">prev</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="438.12686"
+       y="223.50792"
+       id="text10506-2-5"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-7"
+         x="438.12686"
+         y="223.50792"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">prev</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="581.31598"
+       y="298.638"
+       id="text10506-2-61"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-89"
+         x="581.31598"
+         y="298.638"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">prev</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="274.6084"
+       y="99.764236"
+       id="text10506-2-2"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-79"
+         x="274.6084"
+         y="99.764236"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">prev</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="301.12491"
+       y="423.26556"
+       id="text10506-2-54"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-3"
+         x="301.12491"
+         y="423.26556"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">prev</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="133.18704"
+       y="303.94128"
+       id="text10506-2-1"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-2"
+         x="133.18704"
+         y="303.94128"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">prev</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="16.340637"
+       y="561.27954"
+       id="text10506-2-3"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-34"
+         x="16.340637"
+         y="561.27954"
+         style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">Free element header(struct malloc_elem, state = FREE)</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+       x="16.996887"
+       y="583.24792"
+       id="text10506-2-3-1"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-34-1"
+         x="16.996887"
+         y="583.24792"
+         style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">Used element header(struct malloc_elem, state = BUSY)</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="108.84206"
+       y="161.39597"
+       id="text10506-2-6-8"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-8-7"
+         x="108.84206"
+         y="161.39597"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">size</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="62.299515"
+       y="119.27286"
+       id="text10506-2-6-4"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-8-2"
+         x="62.299515"
+         y="119.27286"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">Memseg 0</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="63.905106"
+       y="406.73242"
+       id="text10506-2-6-4-7"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-8-2-7"
+         x="63.905106"
+         y="406.73242"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">Memseg 1</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="-25.028084"
+       y="192.57199"
+       id="text10506-2-9"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-31"
+         x="-25.028084"
+         y="192.57199"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">prev</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="-26.795866"
+       y="379.95526"
+       id="text10506-2-98"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-6"
+         x="-26.795866"
+         y="379.95526"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">prev</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="416.73682"
+       y="269.53305"
+       id="text10506-2-6-5"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-8-0"
+         x="416.73682"
+         y="269.53305"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">next_free</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="228.00418"
+       y="259.55359"
+       id="text10506-2-6-5-2"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-8-0-8"
+         x="228.00418"
+         y="259.55359"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">next_free</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="356.16727"
+       y="55.376503"
+       id="text10506-2-6-5-6"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-8-0-0"
+         x="356.16727"
+         y="55.376503"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">free_head</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="49.218113"
+       y="254.00189"
+       id="text10506-2-9-0"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-31-9"
+         x="49.218113"
+         y="254.00189"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">prev</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="690.51538"
+       y="236.82936"
+       id="text10506-2-6-0"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-8-06"
+         x="690.51538"
+         y="236.82936"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">Dummy Elements:</tspan><tspan
+         sodipodi:role="line"
+         x="690.51538"
+         y="256.02936"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas"
+         id="tspan13581">Size = 0</tspan><tspan
+         sodipodi:role="line"
+         x="690.51538"
+         y="275.22937"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas"
+         id="tspan13583">State = BUSY</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="541.03906"
+       y="347.20566"
+       id="text10506-2-6-8-8"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-8-7-9"
+         x="541.03906"
+         y="347.20566"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">pad</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="16.661926"
+       y="605.21631"
+       id="text10506-2-3-1-4"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-34-1-4"
+         x="16.661926"
+         y="605.21631"
+         style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">Pad element header(struct malloc_elem, state = PAD)</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="17.290833"
+       y="627.77881"
+       id="text10506-2-3-1-6"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-34-1-0"
+         x="17.290833"
+         y="627.77881"
+         style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">Generic element pointers</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="429.11118"
+       y="449.84528"
+       id="text10506-2-6-6"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         x="429.11118"
+         y="449.84528"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas"
+         id="tspan13711">Malloc element header:</tspan><tspan
+         sodipodi:role="line"
+         x="429.11118"
+         y="469.04529"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas"
+         id="tspan13713">state = BUSY</tspan><tspan
+         sodipodi:role="line"
+         x="429.11118"
+         y="488.24527"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas"
+         id="tspan13715">size = <size></tspan><tspan
+         sodipodi:role="line"
+         x="429.11118"
+         y="507.44528"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas"
+         id="tspan13717">pad = <padsize></tspan></text>
+    <flowRoot
+       xml:space="preserve"
+       id="flowRoot13719"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"><flowRegion
+         id="flowRegion13721"><rect
+           id="rect13723"
+           width="968.73627"
+           height="188.26718"
+           x="-81.317276"
+           y="460.64972" /></flowRegion><flowPara
+         id="flowPara13725"></flowPara></flowRoot>    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="594.30859"
+       y="378.91797"
+       id="text10506-2-6-8-8-1"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-8-7-9-3"
+         x="594.30859"
+         y="378.91797"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">size</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="505.86865"
+       y="563.34613"
+       id="text10506-2-3-1-6-8"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-34-1-0-4"
+         x="505.86865"
+         y="563.34613"
+         style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">Free / Unallocated data space</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="660.39099"
+       y="449.92532"
+       id="text10506-2-6-6-0"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         x="660.39099"
+         y="449.92532"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas"
+         id="tspan14527">Pad element header:</tspan><tspan
+         sodipodi:role="line"
+         x="660.39099"
+         y="469.12534"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas"
+         id="tspan14531">state = PAD</tspan><tspan
+         sodipodi:role="line"
+         x="660.39099"
+         y="488.32532"
+         style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas"
+         id="tspan14533">pad = padsize</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="506.5249"
+       y="584.28369"
+       id="text10506-2-3-1-6-8-7"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-34-1-0-4-2"
+         x="506.5249"
+         y="584.28369"
+         style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">Used / allocated data space</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:40px;font-style:normal;font-weight:normal;line-height:120.00000477%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans"
+       x="506.18994"
+       y="605.30322"
+       id="text10506-2-3-1-6-8-7-0"
+       sodipodi:linespacing="120%"><tspan
+         sodipodi:role="line"
+         id="tspan10508-1-34-1-0-4-2-1"
+         x="506.18994"
+         y="605.30322"
+         style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:120.00000477%;writing-mode:lr-tb;text-anchor:start;font-family:Consolas;-inkscape-font-specification:Consolas">Padding / unavailable space</tspan></text>
+  </g>
+</svg>
diff --git a/doc/guides/prog_guide/index.rst b/doc/guides/prog_guide/index.rst
index 036640c..176f2c2 100644
--- a/doc/guides/prog_guide/index.rst
+++ b/doc/guides/prog_guide/index.rst
@@ -43,7 +43,6 @@ Programmer's Guide
     intro
     overview
     env_abstraction_layer
-    malloc_lib
     ring_lib
     mempool_lib
     mbuf_lib
diff --git a/doc/guides/prog_guide/malloc_lib.rst b/doc/guides/prog_guide/malloc_lib.rst
deleted file mode 100644
index 6418fab..0000000
--- a/doc/guides/prog_guide/malloc_lib.rst
+++ /dev/null
@@ -1,233 +0,0 @@
-..  BSD LICENSE
-    Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-    * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in
-    the documentation and/or other materials provided with the
-    distribution.
-    * Neither the name of Intel Corporation nor the names of its
-    contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-.. _Malloc_Library:
-
-Malloc Library
-==============
-
-The librte_malloc library provides an API to allocate any-sized memory.
-
-The objective of this library is to provide malloc-like functions to allow allocation from hugepage memory
-and to facilitate application porting.
-The *DPDK API Reference* manual describes the available functions.
-
-Typically, these kinds of allocations should not be done in data plane processing
-because they are slower than pool-based allocation and make use of locks within the allocation
-and free paths.
-However, they can be used in configuration code.
-
-Refer to the rte_malloc() function description in the *DPDK API Reference* manual for more information.
-
-Cookies
--------
-
-When CONFIG_RTE_MALLOC_DEBUG is enabled, the allocated memory contains overwrite protection fields
-to help identify buffer overflows.
-
-Alignment and NUMA Constraints
-------------------------------
-
-The rte_malloc() takes an align argument that can be used to request a memory area
-that is aligned on a multiple of this value (which must be a power of two).
-
-On systems with NUMA support, a call to the rte_malloc() function will return memory
-that has been allocated on the NUMA socket of the core which made the call.
-A set of APIs is also provided, to allow memory to be explicitly allocated on a NUMA socket directly,
-or by allocated on the NUMA socket where another core is located,
-in the case where the memory is to be used by a logical core other than on the one doing the memory allocation.
-
-Use Cases
----------
-
-This library is needed by an application that requires malloc-like functions at initialization time,
-and does not require the physical address information for the individual memory blocks.
-
-For allocating/freeing data at runtime, in the fast-path of an application,
-the memory pool library should be used instead.
-
-If a block of memory with a known physical address is needed,
-e.g. for use by a hardware device, a memory zone should be used.
-
-Internal Implementation
------------------------
-
-Data Structures
-~~~~~~~~~~~~~~~
-
-There are two data structure types used internally in the malloc library:
-
-*   struct malloc_heap - used to track free space on a per-socket basis
-
-*   struct malloc_elem - the basic element of allocation and free-space tracking inside the library.
-
-Structure: malloc_heap
-^^^^^^^^^^^^^^^^^^^^^^
-
-The malloc_heap structure is used in the library to manage free space on a per-socket basis.
-Internally in the library, there is one heap structure per NUMA node,
-which allows us to allocate memory to a thread based on the NUMA node on which this thread runs.
-While this does not guarantee that the memory will be used on that NUMA node,
-it is no worse than a scheme where the memory is always allocated on a fixed or random node.
-
-The key fields of the heap structure and their function are described below (see also diagram above):
-
-*   mz_count  - field to count the number of memory zones which have been allocated for heap memory on this NUMA node.
-    The sole use of this value is, in combination with the numa_socket value,
-    to generate a suitable, unique name for each memory zone.
-
-*   lock - the lock field is needed to synchronize access to the heap.
-    Given that the free space in the heap is tracked using a linked list,
-    we need a lock to prevent two threads manipulating the list at the same time.
-
-*   free_head - this points to the first element in the list of free nodes for this malloc heap.
-
-.. note::
-
-    The malloc_heap structure does not keep track of either the memzones allocated,
-    since there is little point as they cannot be freed.
-    Neither does it track the in-use blocks of memory,
-    since these are never touched except when they are to be freed again -
-    at which point the pointer to the block is an input to the free() function.
-
-.. _figure_malloc_heap:
-
-.. figure:: img/malloc_heap.*
-
-   Example of a malloc heap and malloc elements within the malloc library
-
-
-Structure: malloc_elem
-^^^^^^^^^^^^^^^^^^^^^^
-The malloc_elem structure is used as a generic header structure for various blocks of memory in a memzone.
-It is used in three different ways - all shown in the diagram above:
-
-#.  As a header on a block of free or allocated memory - normal case
-
-#.  As a padding header inside a block of memory
-
-#.  As an end-of-memzone marker
-
-The most important fields in the structure and how they are used are described below.
-
-.. note::
-
-    If the usage of a particular field in one of the above three usages is not described,
-    the field can be assumed to have an undefined value in that situation, for example,
-    for padding headers only the "state" and "pad" fields have valid values.
-
-*   heap - this pointer is a reference back to the heap structure from which this block was allocated.
-    It is used for normal memory blocks when they are being freed,
-    to add the newly-freed block to the heap's free-list.
-
-*   prev - this pointer points to the header element/block in the memzone immediately behind the current one.
-    When freeing a block, this pointer is used to reference the previous block to check if that block is also free.
-    If so, then the two free blocks are merged to form a single larger block.
-
-*   next_free - this pointer is used to chain the free-list of unallocated memory blocks together.
-    Again, it is only used in normal memory blocks - on malloc() to find a suitable free block to allocate,
-    and on free() to add the newly freed element to the free-list.
-
-*   state - This field can have one of three values: "Free", "Busy" or "Pad".
-    The former two, are to indicate the allocation state of a normal memory block,
-    and the latter is to indicate that the element structure is a dummy structure at the end of the start-of-block padding
-    (i.e. where the start of the data within a block is not at the start of the block itself, due to alignment constraints).
-    In this case, the pad header is used to locate the actual malloc element header for the block.
-    For the end-of-memzone structure, this is always a "busy" value, which ensures that no element,
-    on being freed, searches beyond the end of the memzone for other blocks to merge with into a larger free area.
-
-*   pad - this holds the length of the padding present at the start of the block.
-    In the case of a normal block header, it is added to the address of the end of the header
-    to give the address of the start of the data area i.e.
-    the value passed back to the application on a malloc.
-    Within a dummy header inside the padding, this same value is stored,
-    and is subtracted from the address of the dummy header to yield the address of the actual block header.
-
-*   size - the size of the data block, including the header itself.
-    For end-of-memzone structures, this size is given as zero, though it is never actually checked.
-    For normal blocks which are being freed,
-    this size value is used in place of a "next" pointer to identify the location of the next block of memory
-    (so that if it too is free, the two free blocks can be merged into one).
-
-Memory Allocation
-~~~~~~~~~~~~~~~~~
-
-When an application makes a call to a malloc-like function,
-the malloc function will first index the lcore_config structure for the calling thread,
-and determine the NUMA node idea of that thread.
-That is used to index the array of malloc_heap structures,
-and the heap_alloc () function is called with that heap as parameter,
-along with the requested size, type and alignment parameters.
-
-The heap_alloc() function will scan the free_list for the heap,
-and attempt to find a free block suitable for storing data of the requested size,
-with the requested alignment constraints.
-If no suitable block is found - for example, the first time malloc is called for a node,
-and the free-list is NULL - a new memzone is reserved and set up as heap elements.
-The setup involves placing a dummy structure at the end of the memzone
-to act as a sentinel to prevent accesses beyond the end
-(as the sentinel is marked as BUSY, the malloc library code will never attempt to reference it further),
-and a proper element header at the start of the memzone.
-This latter header identifies all space in the memzone, bar the sentinel value at the end,
-as a single free heap element, and it is then added to the free_list for the heap.
-
-Once the new memzone has been set up, the scan of the free-list for the heap is redone,
-and on this occasion should find the newly created,
-suitable element as the size of memory reserved in the memzone is set to be
-at least the size of the requested data block plus the alignment -
-subject to a minimum size specified in the DPDK compile-time configuration.
-
-When a suitable, free element has been identified, the pointer to be returned to the user is calculated,
-with the space to be provided to the user being at the end of the free block.
-The cache-line of memory immediately preceding this space is filled with a struct malloc_elem header:
-if the remaining space within the block is small e.g. <=128 bytes,
-then a pad header is used, and the remaining space is wasted.
-If, however, the remaining space is greater than this, then the single free element block is split into two,
-and a new, proper, malloc_elem header is put before the returned data space.
-[The advantage of allocating the memory from the end of the existing element is that
-in this case no adjustment of the free list needs to take place -
-the existing element on the free list just has its size pointer adjusted,
-and the following element has its "prev" pointer redirected to the newly created element].
-
-Freeing Memory
-~~~~~~~~~~~~~~
-
-To free an area of memory, the pointer to the start of the data area is passed to the free function.
-The size of the malloc_elem structure is subtracted from this pointer to get the element header for the block.
-If this header is of type "PAD" then the pad length is further subtracted from the pointer
-to get the proper element header for the entire block.
-
-From this element header, we get pointers to the heap from which the block came -- and to where it must be freed,
-as well as the pointer to the previous element, and, via the size field,
-we can calculate the pointer to the next element.
-These next and previous elements are then checked to see if they too are free,
-and if so, they are merged with the current elements.
-This means that we can never have two free memory blocks adjacent to one another,
-they are always merged into a single block.
diff --git a/doc/guides/prog_guide/overview.rst b/doc/guides/prog_guide/overview.rst
index cef6ca7..5d378e5 100644
--- a/doc/guides/prog_guide/overview.rst
+++ b/doc/guides/prog_guide/overview.rst
@@ -112,6 +112,8 @@ The services provided by the EAL are:
 
 *   Alarm operations
 
+*   Memory managenent (malloc)
+
 The EAL is fully described in :ref:`Environment Abstraction Layer <Environment_Abstraction_Layer>`.
 
 Core Components
@@ -127,15 +129,6 @@ for high-performance packet processing applications.
    Core Components Architecture
 
 
-Memory Manager (librte_malloc)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The librte_malloc library provides an API to allocate memory from the memzones created from the hugepages instead of the heap.
-This helps when allocating large numbers of items that may become susceptible to TLB misses
-when using typical 4k heap pages in the Linux user space environment.
-
-This memory allocator is fully described in :ref:`Malloc Library <Malloc_Library>`.
-
 Ring Manager (librte_ring)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-- 
1.9.3



More information about the dev mailing list