From 10f9db8fe4d8eb1fc83344159c2062ec1e4eff00 Mon Sep 17 00:00:00 2001 From: Jehandad Khan Date: Fri, 14 Sep 2018 17:45:15 -0500 Subject: [PATCH] added na graph --- doc/src/Getting_Started_FusionAPI.md | 6 +++++- doc/src/na.png | Bin 0 -> 48722 bytes 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 doc/src/na.png diff --git a/doc/src/Getting_Started_FusionAPI.md b/doc/src/Getting_Started_FusionAPI.md index d7419db01f..e67728c9ce 100644 --- a/doc/src/Getting_Started_FusionAPI.md +++ b/doc/src/Getting_Started_FusionAPI.md @@ -244,7 +244,11 @@ The table below outlines the supported fusions as well as any applicable constra ## Performance Comparison to Non-Fused Kernels -The following graphs depicts the speedup gained for a fused Convolution+Bias+Activation over a non-fused version, all configurations have a batch size of 64: +The following graph depicts the speedup gained for a fused Convolution+Bias+Activation over a non-fused version, all configurations have a batch size of 64: ![CBA Graph](cba.png) +Speedup obtained by fusing Batchnorm (spatial mode) with Activation are presented in the graph below: + +![Batchnorm activation fusion](na.png) + diff --git a/doc/src/na.png b/doc/src/na.png new file mode 100644 index 0000000000000000000000000000000000000000..b36fe04f162f4c01cf1c160ca82cc34674c4f498 GIT binary patch literal 48722 zcmeFaby(Ev_b!YGh@v8jAdR9R($YO{B$Ni}6r@X>Qb0PDQc_}Q1`I&Dq=r(u zk#0E82e+~JcRauAeg8SdlRR^Z{1g@z)|op}x0SH4 zaKo{%uoLm|z;D_MA18zV9kW-G{0l3$m2w9BaPpy)hCLP*>3QhCVC_1%2;(o+^4*#Sytv9o$r;WRZu9}+Tx{^+J-s+IOfXe!? z$L8?n&_JGYb-AP7-Sfw=aq!R4!o0Bl`QbGk`}Gk~!@5Ai)6_y+!rK-h82^kGMoW4r zR+Nm(v^~eu6Lt3hP500H{JirgT>p3D%+H1F#y`0yNn(B|?Q>oDM8szjnO5PtAc`o_ zb*X>9*59`)&|lF%`-c}wPV~~Z6TZBA62q#%>z<^iz`=Z_f*Opyj5YK$=5J}EEl*>- zqZdr)*t_xa+cz

!n}7@gKYUeHo6pIN@{W8~*UEPea|m&g92le!h54CRh6Eam+i7 zPfu|i^Ai5M!2e$-SflW_z`zcP)Qe0N%QuJJx;oROyC&mo5>+*fA`ZGr@roYotj)~K zWF*P0PPRy=NQTHQc`Uhgky~VUc!gc;pzs!4ETya3KwFrF%ktcr%PG;d@wc<|#bGV| z;xq3&F-CLff;Nt`BEOeua06F>V%Kx0E2-15S0}1R$9c$MZ@FHLdY1d|1J^GjJ}0Bg zS}}Cz0xc}r6Q5bPl8@jewlP0H zwOmglzvS9mQLch&M&j-i=vnllw}g*R2$8d;+=f*D(kE=6hT~<<2^3&SJ1=3)h`kwk z&sf~Mx~?;6MV9>q*%3tS@HV&MaFLbJkW^%^ZUs$oCBJN=@T=m{)ydDp&dA$IQ{LnF z?Urxf;h8NCmNEJ??{n`j9Uj>1bc7&YL^5l1=002gDjEMFn!~X3^Bd(tvhjtRF1M1S zu&ehb*b2{&mX~%&P^hq2!Am1Wz!uC9=xzPwbP#7QlvTU$7~!J}UcW4zu~be3jJ= zC&Mk_o#_;_PtPy+&o{sG9a?!+lD@ya6@Aie#ADM)*8OmIBnj^f`RA8qM%9r{jxv(x zc;#28+S-zM7C7cp2ocKxda0rZ%ONx2NqY}8ZEG*ase0Pn@F%nwBah6eSV9T5#Pf4j zttKor^K$RyGw*9IeLT?!|12o~-OR$|fhlvlF~xVZ+DI4Wnu zi=E|9WqD0%$kobd%v!xY8K;rFNinh|vC|oadV%Xs;qh1X;r>!rgqm*5#obyq1cz** zP+5n{^*oxBdtV7XO)X@R$gmUdkwsaC0>(!5BmP@)=R$I%Xtruj6zJRSEmSo0|W>>u&yli0{6>?!Mbq$+iPDoxy;Ac@+! z-ze%HKi!ts@v~AHiLU0ZUmueec-dv!QWRdINbqk;AWq^fr=D0R^u|}0aIF^{R^hkHxBoZ?0bftBjgkKsi#74=fxUrhHb=!seY=B~xA&|(RvH)z39SsB)^DAl z`utV1=lY0&9!Zi~H&f}Vqrb@`?~JxKTJ8LboNMMr)6kS zx^Wo^&cpnk=tYj6S3_<~RmvL2gBRrL0(iWm8{#q!gf8&g7^=~zX;~qQmQcIJMoHWj zssr}&_-nUmBUKurRNwG0@i#iKEIhMZ3Vzn#5IRc1MRd>lw!aa>!IcvyUCK)7Agwy8yo(HQ*h1YHx zm<6h+YFrbX|LR90M=10SR?H>QY@Nturc^8>f#jB8ntMhub^99|!k}*E(a8%+FY

%#~`L=RjxIBkY2En9}v%k@9MR#cg53pSoj z*bfywt8T6ojOJ^MB^M0YE)oR>Bx@C2uG7OA8~xyG;C~PtlgQC(;4T->mp>~rI?A!0 zIAw87616py6S>obfYuK+t4RZQJ+{ft>#;vQFte@Be)iS1_yHvVZK9?@dR>dW*pL5fyY$9@| z&oD%mDf{hT6S?#2z>bIJmX7*opXt8&u{{0+jr+rvIOg?@t*!E9_*6m^F7fKl7`-)- zOrRs&@XU-RL= z;ofSO4=w?ErEZyKr`->&%R739G)sj?QQ}&m7K^e?!CW}W8=XDDYVtV3Pb+w z7Lncg@M=r9?6nXq)xB2W-#x9G!bRVxNT8}?An_o2Q1QiwKxyyn#V+7|_d5uQw6ph4?d4W1#)_=Jkw<#yD>0`qwFMLgkNG|^eO?zZrX@i9x#5X{-neJIK*MmS4$X=&5o7uXv9&3?%r%m+GeS?=H*KpgfKEf*S=BRO%E$i}S6^`h^E{={*tJjNp z(dgIJR#j!iBm?98-_2Q&ml3OL%9Q$%Pbz>lr?x0pYBZb3O$?OpT;jwVqkljo6>P*Y zdgcL6)GBddLMzx4Vw=}Y%7a`Bk1oiW5?qyx1Ar}W4LB1%D}XaJHqyAyE8c+E^iGUIU;drS+(BNKR?9BUT zG-}jBY;j4lM#Se82Z2C5oug5mYs+62^VfsNqPg{A3?{YLECylB#wXsL zvwuj9DH3M?f)jwaY?>9A9gdlQ;Vnb=gHh7z>#F@<;mzofkq)8fg9$e^`OjWyC*f5L zgsnWkELK24H911!vb#{C?9O+-@D82S0l*Pg39kCdx@TRc(Sl%RInYCaXa`5JHNDg= z_G~+P2VIG*ytEeTu5GxQ+q|q+W`vrB)|&XiF(ZyIdQ6^7CG~+jdzwnxH?Db7_j*O^ z3~9_RI;Jx8W@@fa&9&B#d~8LN6>g2${FOS2Ea5eL6*?7~q(_%$24rAzVflOHNPb!0 z*p7}k;uaJ~I^vF|i`$O9-a@V$7*v*hGP%rst=e35QDb$-9k&BzKtC2k7(5J%?8EHE#JD6 z_^O3>@S)gFe;Xq53ZEuRZRgd{SA+(Ex%qYE{c~G9?|4zmLCxI8k@csS3=SW}94yPD zC}HxArW1VlaZ<}}G#2+Iu{i2Fu0?5wt=l(C1=GU!&eqFxrvwY!(9&cGerD0iKNTOo z&ngMyw`M1&p>|*pKl~WjEQK^Kt4FEoNyhDZVuc{=sXlwdrRO)#|+|&8$m%lOvl^Bm(=@h^s~5(=(01=8p+JvNS2uT@xRpFf$>*FtD%O8)s%+4Yob61nu%_ub`ggeUlhb z#k*lBJl_Uzj#UI=$!)~KO?Ue$wim~7zDU7_ut#V=#BkI-MsCXN9Ha!nF=NalW zaNf{er(neP>zFiWG@htC!H~~fZLo{}Stz|Pwv!{tcS%hmLr<;<5=cN<(Nu=M58(u?58ut6UtD574 z)d!M=%kfXVD2CZ>eYE_#MHNiUIl7AY#N)7>^sq&l`eU0ODUFr~i`8T_Yoar9s>M<| zU*6wCB}XR*O~UCoHozY`y2(vbvMdnU^~@&Vw!dSuMS@sLE}e$B@D{^Cr2N*d<)PHF z=OcAq)J@+rnkVs>MwfkUghu*8)kG;Zp*M5RNTp zK6fnkg1it%9EV0FktU92^-4tE0}DeE8&=hvFY0PMJ6{hEN7yM2)}o+$F+l z@!emh7e2h!PwY#*~?i|wg=pwUzH3OT<<+|c8+Lc6!AS4i2DC$DDaNST z7juWweTg_Rd*#w4#-w-mm`oGe9t2h9M_MITm()*rzmK-1u*#0`zqO$WCr4IgLW9DYl7X?7c4P0Sn!fS2zIS?@)hP&Z_0!zZcRDI=PG z8uzVMX5&%?hcACyZ@0ioUenaO&|GS@7&g5tm+KU46UG|d6RLta6tniXci!2$8^Nm7 zjpdt6*ZDqq_6AIaiLxzbt-C3&y;;8{sjG{uALV|dN>w|i>Bz!T{IX|NB4|c)!r8HOJF{PkbTtVzOxeQqquwDIq&*L;$xE_1QyU* z5?onC?Jh=Wpd&SBS{zfwUJebOTL^Sxy4@}qS>9(9rGt)m?#V~t{dJGx!otnZ@Q&9U ziW#w%XLdey0emA|Ror8dv451_ORfMpl%b2^NstDRUpc3@5Tfy#!*^v$^blTbZP|P^ znETlno(0El9>beU+JRnr)H1;}hN<}M^=excVg7n~3k%D(x}jITeEvjMsKXzUIQhn? zziY*uDr$hlmm9f4;_I64WX9~-5lCD(lDV#h18WmnZDuZ|o4c^=75YRE4=S_XX>ztv z^2icSYi)|DNKf?(?>60^1#A`HUXE2_&LuN^rLG6eRAu@_DpyyJT&J_eL`QzW9BgX$ zJxeIE@J>H@`#F72P!N)`O>n7_n77P7Mms+qCU2}(cRE=}Tm#-{qI8z*W~x=OEh-Of z*gStDmuX;NY&FKeMfXA(y3Em0i=`=-dL+WVLlWMO;$y1p$*=X2voTre$xIO(Fl3oj z7v;A`k<1hiSkIl4X|>5!=a1t^I;KtbU{-D)KK!t`UR{lHbW~0bi z*Rkg`T9g9`EOcR0dG3}yNUm9{y69Y?YR$a3?nr|q;@wQuij@Tl%eS{c{x4u9$|}T` z6S?GhxXWmarRTm}Yc=4ub2T#OQ{J`wy2D<8(lfyT{1W7P`XWSZtmF?Dx&Jyq`>IB{!Y_(ku$;feQr(>WTp#`ihC z^bXnW?r5U3Iff!ut&O$(=k!T;Gnp1FB@%&fyqL2u?bTT5;LeHlw}Nz%9b}5bPu!IkAOt?@ zG?sVtyNDCvV_Dh4ced3W#`+Av)fG=YI4YQZ5ZiH6xjh{NV`CQ0ik>(!V}t&Mhzj(R zQOi<%)P`fGQUA2-2cA|2AMSi=+iWHsrU?uA`UCD>?LyV!bnB3fy7MQNk+b;Zq{@RX zOvSYa;qoG7^2fgz)(5wUynPCLAYbQ_Ka}I5yJ6d|RcPQi@-Z` z)Qkl7AFj7nm5Pdd^e5D(tJQ2;KBi_evskgzDzfEoOG5MD;_7D9oYY=bfDyBS$9Sp6 zeddc7tLZjJJUyMvA$iI=$T6Lao^IybU|H%dauwMC>1Zz)92YODWJXgCl7r*2w2{T1 zlylav(0J}GGwVlAF^NbdZvo8P$Wt3vI!d0t&D?`OFPkJ%<)R*yxVf<<^o`6pqiy80 zS{7f=P)@{XkON9a0)=OftlV}D>)yCnvi`Y1U4kxgiiaq$MO5assx{8nvANbz1F|sl zxjPUaHB&jczRadAKcE0R9chb3!5y1B(`l2ULZNhzwsTPUTnX zb!9p|4?2<%T1Y}}^9q~<60&CF9nIkg@)YSNNgl<KjKnTG*qJM&P!(6nZ*@Xa z$gIC26BgjYE>Y9A6(7itI2J5)o#@z9M$6RPhMyMSV=A%J z+N=5$6+$M8a346&9kH#sEP#4^u1V##e;Unb9Vk^YUk>%`BlmP(CHyd2I;<^O?wXU? zi*om5HYA!NW{fO(>SdRT@6uboZBAErJEheSUY%}~FhK+1!b{Jg!a{*o0x>X3J5jK~ z4k6mdM&l=orDMVU>Ct5lAj4;@m%xI07R((q)-t<2m6XI5Nu$0b;d*95^(?*a$_fwUimQP}PW-TCK%S8e$Wmz#btLAwPcZdwe+;Ajdckl!Oq%tMC`c0( z2yqNpMCmxq$VLo_@EC{JXD{zD^n43E*eUVcEy?y!)W?Yt*?LD<%p_>dOvdO_Dhhr; zV=ECc2d+L73Ghfrb9d4jf9C4BSutYdJu|&KO5Tz`x%Khcg~C?`fuOzGtqFIu zMF+>lu+FT~j0I(zW2x=FUtGxRubeK^;L}dz6+{-ftSqxkzYPvAtDJtBL1g(Emq}|p za}9}&3|%s%9#e>h)bbMn#0tpIt@bYW4UC2GPe!i+_{?qL$vmY{mMT{1y$|XVY(`I|vzhn$>G3Mz<=3k&S56l%UMuic6fH zKx7KNmSuT|Uf}K;G6v$GstbItm?Duj?bnzWOFH*#FU|%9C;1disLu-OQS%Hd^Pmi2 zmf+Z9)^q@>XaWQZ^*65*DdbYpgmU!E1=C7;%Iw=xa&8Z9UJn>wf{A+eY+a zb2X9GO!l6;p8KbW3?cQH>cttuK?PO>VL+k2o06)C?r0yO`?$#l{Axw@a*6s&OMmuoxq|pF+X4`f#3EEo%9wa)KA^71MA$gDn99 z2|GD8pcq%6KM2z2p`&mkf3N#EpRasdXFFVBi>Mf=3g#W=VB$AUCoy5GKb;PwkT32l zrICtseyjB$&H_k|x1i`L-o3}4u035N^qjIu%6;ntjodQc+nXR^8y(}0Hp@tJuHGG5 zK+y{Wnt^4HLvt%D;<11pO<7+sK2BZpP$QWsQFcg7Z@x_qvd6sejjDvMt_}0*&GHp> zOR*dZ!aDL)Jy2fiJlI_tu@1cbjdq8z^{Bwpvl(%$*i(F`wxDE@*vb4 z(e4#UFRcQ#nIJ5~VlA9E{@zvBMH_>XOqER-BfUOF@jqQ8X!B${;FpjpD7tRaCV;Jg!un=rzF^7a7;=DJzk4F^?%vrOf|w%hr?Asb6(S~%OJ z9(%R!K8LBYrG*ecTuVBrR*Q*)+{$1=n$frm9MlFRt|se9fF=V0nmjn!n^>HtyPYq3 zFnN2V&X2d-c-J{iZ}*0LV96Fc7lI+c^LV+E-X3c`?-K*#4=UB zL8Bk>mQtT;)&VabHuz{|cjOS^q?`YsrANzV=&k+Q?ubVth+a5#9=^lv_s)OxUe|4* zd;c%Wqm(G*F=?@hWQv<>v1Vj4e*BJB0pYDqDts6zZVP|BlBB`kM!V!Y9ll4OJ0Wx- zhyJMQf`iW`0g9p=!FMnJ{WD0)Sa_?83HKBSJ3v+Ereo{n3b<=hw8nN*yn#U?&rqR1 zm_|(%UivF5BG~cYvkK6Hs?R@-i>NCf$=`tEyh!W8C-&V2b!RsV@|UVd2_Nt$q8Bcq z+t4ZekSl;C`@-C-Tt1xPZMLo{1TeNT!-A`tgoOPx-+=YQGM?ws?_h zhw)qX8r^2@Z*Ka!e1Ugqb$^}Pu2=?TA`b#ldcYtu&{ zp8JtH|My>bA7iDB{_lc+?&be{!gi#BTM(`)G-;C~AZ48&C1PaJD$f2OA4M1$`X6Tl z-FRP0-&E9Gy4tc4WHv){Q9H9-fR0zZal|qJu0#r|N)M=Rj|1N!AEoPRHZjTNIQ!Y* z{YeIgK5NY6u$@A1s0qUm?C+Y*%1e|JTK>rFLV0Txl&%|3~JKGB6_!`CeGsv=d@ z?>~0{O555u_3i3@Ly?Gi+o@WNKJrK4D7ner;_4mvTj2=OWbni!fM#lJH0 z@WYvzi6}j}-T6ZKAv(H4kIkVdKyZ0c2NKmi+V(A64?aCFugA=-^FE*ldhwXLY;UEh zD_f(m6O@Nvkg#aJ$nmXgVy$p+eUKeR2?sUDy`l#VVa!W?`G#E}WR2w+uq>1dL55>o z$G)t-!f>)54Z=l3C<)LJPz__EI0swxqUof%E|*)9L`9+MYk%|j@w0ri5Fq3Zie%A> z97gOe6pi{brI!r5GVKrXiYo|MH#>vENGd)v?-lX5tA886e?Ie3&1=P!9h}inN$NYs z^v>Q+5Ik#IZ;(ga1UOJ*2CxluV};;$v3#}$1E|q(b@UZ%z{Rj_e8D(VbDU6yRL4OP z;$3tBQkQn~@YocH?q-(r&tCmuSbjTeef^VbD(w6(aKbD2RiB)tigg0zA})`ewY9CW zklxeuYD`XR(;fYjj|oUs2ZmCt=p=*ZJ8X~m8~u0OM$#oEP#3$;2Y&fxTTc}= zYV5Xz*sSQf%arrNxH&r1y7cQ4F2vrJr53C0SP*YIlzmNb=)7YFJci6vqMJ1uYWf>z;f3q^Yt(h6%Ss<5+99slM4(2amUWqt zz;v=Ny61K<6-YcQWk*of=YYt2rjaSH+4?={0NuGN!2L)Aa?0CuVF2^7z7Pj8)c!9S zf}~`!B`ym02~>o6a+*x3JKZiOz(v@3aj@w9DW=qJH9ehkWtp)@35I_k;F`0yBsKiw znXU59I~)Ui)o@*tZKhu7;NBjtMVV$1Ow!eOrTw7Q&d3bubW|Gq&qGuOWUsi!oST>~ z#($v@?QM4opFXN^r06?2>EC=>SwMTWzERSM z(FH5WfqIbLMw}{?gZg#Lzh6H24e*n)6RKqYu^8x28yNvruNBc{j&VU;Dqulx25)>P zoBV54Fn+KXP5m~Svj6!|D1!_Z#2cYy^slSFzu)x?uowKhvROZ2_Ix z|FIb8NfUqp%4$+=_Jb1o&!@)%?&07)>j=zfBp&R=#60g$9QTiXhW+<&e{T4H5BE1! z`>*Ey(v$yc?r(PVe>Te^izU3nE_5x4!h$T?rEfzll!Sh}{+HF;k<&LFxme{MwfFIY zd@AIzTcSBq&KLx+6iZ1`+TJGTFt|OyBmbLF{<8H7c*i)ycV9>4Rv+v@@m>Z*2iTwT zJTTe$<|i5tk$4+WgZ!^ya1dUwk&}P`B3Ud+<#>;r$5LHu<^sKpl=G0IT18Bw zm7wsiAosVcVWOmftQsQl`jS*@mU_8^nI3z#m?RVsXyro zA>Cg>`D-s=$)|yd_vn*`2x;V;#xk*@o`|Ea1r;@&2ohH9=nX&*deTj9B#rUO_}(Dh zxK8#+-!7>my$H}-iy{vG04;}wVmM9YY|c6}V>;2}QZRNnmcwNGOR+A9T9q!Jlt>K< zK~HeQC4(vXu^i&Df4^*}q=sd)va_0^FQ{js{PAY!(3h|X$Qqx*Hl`F6VW5 zxVuY%0vtwN$>XFyK4$+~zG;!)-lb>1}tk;BXr3Tvsc`Vjei*?-*b$9-Wj0KV=fml)g$03l5p z$iwpQ1MX#``O{wru+yI@x9QCmYEQIH^?qk1e6@4HraA!%TL84{ zlteN{{#wS5=YrpOFo6sGP`-F)?t1 zm0tGS?|#XU>0~eAe$D?t*AdyWnh>Hb!_>^cPsr#o1X*p^F!+0UVfg&;3|wj0;i) zxs{T?bP_P`#q}7l7Yzb3_81q`ehMr|^>r5JVDQ=n0M9i1%vgV4$4|SZ38iIDIXYtA ziw9sYuFbKxU^Y`sU_n|hbLBAZ#eWa?mt=bX_i%p--~Wr6d)i7o?H@`Hatqd_hEC1} zn*)_@Ru!t%R&h^$1VFREa`j#)IHF2@S3~be0`0xA7#15bI&z?me=|RU_~e{_+bo_n z-i_H}oQF){>q4$0xAaq?e|*R}4@_W0r7K2@p>PFQjPs6>>6q1C1u}tQYHU9b?e`CN zuL2YJsmfPBHoh6=;hv`}mZId%ztK z$}>Q2uIR(T8|94j3vzrfKR8kR*zAA2aeETfOS{$zbxcn1&Av|Q{Py)j7ocTF9;`%F zr$R|c!(jgO$&S3L4NcAak1uv!_M_}%Z7a1MLsxD1{4yKA?Ya?gXt`a|P&$U3-|m4{ zE-1-zQGt$%nPImjs{z%yJ2>$fvT>>wB@6#}mmfgndXN`)_?&|Z;Nxo0!Gv7brq@8K zwwJ%t8sjORrUVGKqCW~`hh^GCb}iBRzGr5s%N%App=wH+x(U2Fn!^lWSQ)V=r{B26 zWA0O)wgGZ9G#?6K6VOJWWd_<67uG(hv%w+YxVPFSFCEF;uo6rq$V25i{nD(kg=cO} zT@dpDj{woB=%AAqUcXlkrHnxvWf$O>_s)b8Sq86%0h&lH^VS|9*OvT&F z`PbOdb?$AiQYZ%A{Oz<%eY_5vabi@t(@V#F;`7?HkM9^&E1_8Zu=mzMiyEB#G ztgC4l#NEkJPpQ25`hT0aED6kg5Dnm`T0w)@FX4uXp8IyViD*9=`#ez07yA8iEubH@ z`xT(~^{BMZ0{Ue=K*ysDC_*kN28`Bugc=M@NTfAV;P7N>PyB*I(|Xu!8+ns!Z@CW+ zhs8<}wtY31d~caiZUh`lBLZiBJq_fe9m`p;tMi#_0hB9%*_kvc-+l|9ZbzqfWyrUg z$Fbl4D?zgY-aU*_PnT-rI|EpyTvA5lE#B;0gy;%8W@tA5i5A&3NE07w7&`TGI8j5tas0( zhRfZhur9q1b@p~am1R&0teVGjhuY-^T${of&+37ER;zByzgK$n8vi}q z-%jJdhx<$T{;Rn^fC(T^{2$ZY(^fj&Rax7B0VjRby-&ba`Fyf9Ar7i?K}nE(nV6f` ztdQNRX5aMlSB4n{G1r0)85GL(SD-RAs9;vEO{au7O@9DoJ=TGZxRE{joU+N-nJ>PC za>^NU3(wo|eo4XaHe)&w_9lIiRlAfu!DFM}%6lAwiLyNXSFI`*ip>BLk<+rw7bh2X zb)f$SkW&T$YbmYp`e)^#3!!lsZ7Gfb{tI*C6{r?%+!`N~@DXrrA~pb8ECRl=MDR_T zbW}QMF=p4XYq&N8%677V$EhK(+RQmHv5Xmm;*>KeWX3dv2(3st0pwMpv-6Qbq~r2) zN~(IxV_``A4|(n`?lqX&dg{i!zA-C^@AQG3Opl6tNr{FXb5N zk{8ustN7kd@(V!yy|ngcus1#pV2hocZV-?#PmjMiu<0GG4Jb5X9qqo6m94~EjTwT{ zDrhC&dp8bn{N*#`T-S%(S6iUiAk#zDbHpC(YC4n*&M9mafCgVAOfEDf*r2wJV};$E zhBh{gC|+PrYz?1!F^lI;bSXG)aetgaw88qV^IC^w#!E55#J{q0_CSZb;DGbiSHI1k z*OK-1nk~J$ZdN;h!WwDtCJ5ih21wM*+Ye`@0cm1dG3F1|=`0)p2?MR}FxJnzJ9Bv% zExaQ_L!O8GGoUHYzBsUUydivm>IjfS131J3NYb8NU@(T$d2*Z~yLlC=>8l*?0DZo2 z#E@gJkspoYXGLfr3)J2r4K;%o2te%8Vd90OmgJvcg%+mIPh9#nxc~TQ_9ogX=a?>vfGLKfmZWVYA8U_fbzWp z8-0ddRhz>D#Vr^9E%q=qT-Jl-=3L{2-ffV`blfzh^p=B!gIdtZQmjXmTFB)gk5;L2 zjP4>cURcU&^n?Db_#fW;);iKwNens9V~|62*fF z2fd9acyS|IdlCgr$>;*eG{OmN*OSCLC}Pk|eE*y9P75A8^js3uy5_7?!#7_Z5${2# ze|jS*OX=h|6gM;`@$4zGmwip8B5((^>;hzBhFn4{*zJm7GS_^g)_DFZKJ@R1iA%ZW za3tr+K6`g`2Vf1xwTw(GYgc?41wp5cvrZV%>p2Zb`7&gGn`A z_%$#U18x??-6K^`X)i+;(At=(9ar}C;`Qf04FRnBoJ+o5(W{am5Pl4wDqh+0=D-tc z=d%RysMXMMLrQYrDykE~4DABmN-Z)6P**Jiv}!v@TeK(Nf@lIVAD*0<>#+^`MCrYh zhgi=tgR;~CdV2;*gKIY6sDn&1e+#G9?7i!E;Jf8LLSTzxl@FV_+3WQC$o=;1A35fz z96e5F&Z-Q5P15__e!e0SeH476RqWkx!pAcD8Ldl?SSIk*$+U1e0mdLI!Qy^d1)AT$ z!!J`wP7fI&U=+2`E@MH0!rPD`gXk7Bk4bfnh<@m290PdcK0zY=ia@RbU zMNf8iqu$;qDODygs8wCZPEfYruQ>DTC4b7zPFBqs=jO#c**T|*4WLifG-F;bfRHbm z`_;BALZcSayW|8}wAlEun_A?+^cma2ta}(1?k#embgQ0oH+$ZglsS5kb6F_|^!q6f z0-|;&G*qZLhEsVEUmjDK0!sgh1gHD-?VdAh6*KR~2)liedA9^t6U1B<5GK9!yh$6U z9%{*koFPPH>d`PsNF?C@aRJa8bqX7P8Z5bANvs-C9I!0JWQrCac?0Xwq-}jT;*tR5i&QX@L{&7r+9v24i$vh1P*pvT^`d^`xU>W(bVK%d ztftdHu>B8xNuI+_J4Nq#G^~K`501+o7mv3@0QrY+$sp=Qp9LCo)I(3O)?~yA(W}ygXnrL@+@ve2Nd+IKlYxJeT-=l zZ!1qh4>2&dOX-AaTwmVpuW(T~`Zr>H04xc-QcMF#YU!atw49l^2e@uw5QiV4nL*=p z(t~)=uXRv;i1lu@3<%9o!N)_*{HUBvOGXI(ZOp%K%cv<}w*H>v2R^oHx`$7eIpl!|gdGwTGj*Mw2z?Oz7`$9X`%5hlIfy+a5rorx>( zq=o&Tkk}2kINZ0sIRMI6T5SMnhDB~!`jkL0Mh(XDmVx{}H0de`0R~R#mFz-^ha!+U z%7BCss{L9c$bRbSKRzTELuezf`oPtRzA2I=%R}O^FwyPcG>$|7&EBiZV+>DWpa&KR zQ8hG|s&$Fbb4yGU%xBA(BIgX#bNTuh3?)p4IAC(CXp9A|W7r9h5DS56Gh8m;zHk8& z+`NQ4)ZeBFYPl7h?%)`@SV{)NT0!Hh3nrNI3QeOPf1eqMGA~eP&vSUFyes&2=f#Vi` zzLg=mZ&plV$Lzce0IBn|KbXLl290#6ZGQ0V_mli(7F{8vY!|->&|_5bkkbIf+~WcR zK0qy*Elqvc005(-adpr{Gk=ZdKg@&Vl1P5>Zk%tuG=Dff&N_CV>&ah?zn<~?Nh(Mu z-{bv~<#;}Tlr0z8R3T{k1i)y-2|!P?s)tqq1N;1m%AjFzQU+kJ3)6 z!UJ=`+zYmea~IiM`${~Z6S%Z!+%Qm|j@bY+*Bn42L;5>k!NfWs%L!H?{Y`(^p*6W= zL*ioRiS?Nd=MfKQS8#Ecz+84XG~lmj1hJb2@bF7>c6fw}>K(`xf-!+jh@GPQr!c~* z8Z5{gZbKQq@-b*y7{CTu1KgnW+q!ZartwFg1H_qfj#iQ!^wveSx&S<*fdXpl%vde+ zhttx5R5stR-q>V$G=NQ2G|oTAwh$!+^xU|Xnhm2!!jc6ct+N3bufJ>vP$(VSIIJs4 zZ%q-=Nu+kGYUTV7N)ELz`8z&es$6YdgQgNe&Bq^NYQso~EKy+CO@W84ugD*TnZ3x_ zk9Tt#OxDT(07D?bwvKEDQv3~0!1^RUHV%$G9ZD!x0d8;qoT&!0O+MIs?vhY*jQqVC zEaL0k&Ewya09jT5gmztk0TAt24-tZep}?>uhBJfZc_kQHmjNM?955=XA90Au7krPi zxHJTDjhRBntQYn zUG=9pb_s-M_ubTVlc+(2?VJGx8c-NH<3qqIb>vm=`%z`$g{y&)oLu+cKjH#o-sUsp zDbgQev_YpIdMn|ECxQ4mTktI37cU4VmFsYVG7Yml&WmdpuQ@ke2Dz#Hvv#S=WA)B6 zfl&Z)O=y9EP*E#Qe>jHj9|4vV2^(t5V7>57A35(_K+$BZh3fqB4}ABp*s7ck0%Uj; zmd_Ig04mhnq#UbrBXXby3@A;I9hses^2TiL&5vLih^#WyPi%wSh|I`NPf6!snZ01V z2D2H_yGcNBXC5HsoeuxqX#aY8vNN`ro3o332(^g2ivXA@*##kr17JiSK+}Nl5Wy1p z?TrNvw#K?Z%_qJpII?zy1loLiiZ?tM_v|zbig(T)HiR=|D9a0TTLEUahI1wGKmB9x z9}{%N^V@?VG@y{+Au#bm8KTcbFKiNGmZ3H60F!XQXYJ;1iEnL zp;?0d8jXMsBz=KFP6leCP8`DAM}WVk1i7=lc;5a8;l!eUvgkRmnaHwft+Q#E!dRg1 z+}@q7GKl&7`c9}De(gO0TWXp8RJu`9q*0UhMm{iQqQi`%oxB-dR{#B zf;D;%!UU_Wf^5(jPpZ~+kV|MP-UqW-??9GVVC#!7RD2U0FZ{!?LusNn6;SCAXoVA) zM>gI5vOl%~gu+&6&@tXcqGcH>5kj4C@}ulFNlEc=4`W!%E(}QH4o)?&d`Wd zN{fH&q=+yB;cY}*CFVr`QP8&y+87#OCE#V(p2@qvx?!CiUI_&dV5kAV$5#S9sY2tH zyBsNSFcDQ{)!A_j9D3J9HSJJ?I(wW<;Hdj&UV;u-w{jp-g5%GOc#nE@2dsWeu>3M= zFi#TTSm7Wy5MzWBFqZ}j#=Kg*{65w4qWcbL&{Z-=rR3;|^9o4QtOH268S!of$aEW1 zs!>x~2cM~59jlk%*3^2uufkpjoa_++S#Mzax zqr{nK&S{8QND?SA7RcENie?E2Ffy#S5q;k+dq&6#U3B(OZ{Lq|*YP+CO0Ct#et*K<1|~aBOL)&q+Nq&7o)zjCqvdLxaQ%Y!xAKOJuJcf z_1#K;C)8@2zkDDRt<;QUwV}BAKq_ig)i{u1qgM9#QuX1%+I(SK`Zejud&bL{bF^va zu6N%gg&;i|qyP)Q%qJc0O<9r!07FpX8;rFGbvQ#^H}rDx(Gx-X)*RwqE^We_%|0!) z3qkJGbJrv(T0sv^G40Ba2Am<=n$WIcY;O+B)9FwW~o4SPpnZ9|8Jw1TwD`? zbdInLITVb@{($Co)(;dje5;cYIbRFv)85vUk(Sd)i^ZBtes%g4axDD;AQ5$Zh;P2X zoe5waz+5yc^l)>^%n>yQ**y(9KnU%7TemhbKl_AR>DG6g2y4L2^z6zCWSBUVGnz+M zwj3pt;GU7ow)%nZp7Wk<;yYO3Aq=!NJw3UvQCAP8x`x3MwwSulY`Hr5w+LqTfH52- zG5`X(2>@s89{z`(n!g~6E_lHM$Z;nG;h}-r^Wl%xjb9PXKn-&tB0Hw4pP@2=u!MpO zG-eUBcB(?NaYL;F*5i-#wDS%_8Z@gp0qC0+0Sp@tfYGf znP&W!Kl=^CwMSv^3q(^k-4X%_5K8iWLS){$od_&1JqVbr%w{^%G$QfW77LnK%?|fB zu!m?RJZ0qCBgXJB#7^CLIaQc4A}!<-d*8j#9GTiEy^cZ|@zzqfBn~`4Wnh`hEzzCfy05kpyZG zD?06xFsna@8l0dGEQsiwuXbz#N>=LtL%q%gidT6sGS7XFDTXBr^;jQO7 z{Y2u&ub1k>j{DzMAiDVRn(avKW7sQtj=L)}VhUG7O}U=Zj|NNJqO-nUdgAo6bK;|R z5h}Q^n9m<0BDyHzDZBHabuflsnA2oZCTX>2bx@E~cu1w&rhBb<+u3p5TZNW?se0as zjVWeh6nHZh$N~2Q#m5bGd#8cP^}(2MjCrE>!2IObr>^D!AU9zf;-)R%j1xEqvrCV6 z`AA2tIP`288u`o*+WeZJ;ZJrTEhf8=?m-qh7_)+YFr08D5tDOnSM}cRXd^=hK!dwg zte`Zc`8^xwZp21mQiMF1%+Ngwv^|{?Way0m%6_8@4as1Isy*AFzM=>Qg@T~L(Pj~I zdky~S%k0CC-ir})&1VAl=ZI_=T68K&j7tQ;$hFmL48kDAm`HH7mx;#i)8+1>^S#>k zvJJ9pn0XQBF6rnS`!+xli&U$!R*m8h72ParQ(1!Iqid_=&KYNT`jRcdNRaMPAWsFm zR(Y7CGJSmSm^1Vyv;L_-Ssn%rZ3E1veO^IsmN&_6xMCtwYem5>ex2l) zn&x3IHsyQsz*kH_!_~p~K;=x@6+p`3DNzF>z!7jjFcI1;-)#V%M~kJrD`D~8P+;D! z#~&7$TvpSJ7hXuv=03^U1SQDrK;|>D6}AGvjpA9+y>A6TTh|Ank^(Z`32oNx1~rGa zIWqqtTQ!NzNhQ-NyLEGCOEJXtUKtp%l4-`e2lj@xO#hg7Ox3Xw?DY*E z%xG6e5zy!T`}{FR`!Fq#{v1Ht&0;Q>F#?{9Jdu_n#+Nk(^$t5NEx9U;N5?Mit)k2< z4P9!QP{Yu6U^_QEnD^dqzR;?=g!w)!#4kf=vGzgKg9S#Z-Ru$~IEv=zoX zzr6}*D$?(B|3E~M21FE{g|uRfI|bhP-T1ZpYMALh=xc!Ple?j$g)#79eg>*aVQ-l* z^KKR(uBe*Z8y1XbA9))b{hhvxmNDn60qHB?K(5Z8!b~%&02?{bt!s{% z-+B$un{>}RJ;rzl$vR*o7tGm^81GyY26#qn|MwlQzDh-ARxy+8mvECq7mfLq%e$5p z%o`u%&e6W*!VZ2cJ(l}VR&6vJ7;P}}A&cySOVgXER`no>tYG~WQ|sa@urE%>>i-h{ zX9#9|tA>lTu>I8R?;*g?Gxa7TJtvd6jHe`wQAC=3fQT>``3U@y<=+5-ejQM8lS=P< zAsA!*LR#>m1Ubo={~?@cTOhe)HniQC^Ipv0u-g7&dX0HbfU!0Zzd8yj%$AFt0La1r zlS@8z#sN6uNGKP6>KY?vN=7(Pk;K3`?c6N2JXSVP*KZ2YU3+B*#*^ksI2g@o7EkF^(N4 z)Ql_I(7J3>i0jcp7FAYHW(#N1<60H0=oKR@=tE~duWBDGa5;7|l9USV=+~@$V04NT zXETSdiFrKi5UeBS)TZ`e*WdX{T+#B16e+axQlxa6%Fv&THALhR`~E}!A>)n!P3nCG z8tt`Uj@r{vk~F8I5qz2@95>-yB{BWxKvWWA%4O28kjm2!Fiw^44VX11E3;U`*WNv! z@l#&l3()RcnfBZHa>Y5|jd2NhhfixC-Z;gJvsxa#Luf_qy+SSU4i9#|-Vl=blp5?~hTgnC?PH$Gr(6>3h&W_H$zs!YZ!XRj!WxAeGSs z0uHTWw0YLa2xiP@&x`{0XEaWgUl*igCqPGBT-5GKhIoZ4M6)5aaw3=y-Rjncx$@Xt z04{x`Id!mE?YaHsgec$3K_kpQW#&{gC%k<4E=EHHV*)l#tKaelW*9RA!I)kxGmOsJ zG!3|Yra0L&jBcMD`e(UjT$zF}Ze0#&ptm+Ee8ctARR8`V9dz3X>DZ)UtUM=2K(tp& zo(PO7tr`cgpp3a3E{ytI1pPxY5iRMR7#9?s3-;8ZD&l{&_uf%WpW*wkQj}6xD|O() zmOTU{0MGzA9wCs(5V1N*)RfJ#ygdtmn5J-S1Az%U_ zzvqK?obSu`{pWYybKXDNbJ_zvA^GH)_kG>heO(*xYg;fD_0@yc8>1~$ppKALQQxy+ ztl4D(#==%3-DIO=$|B}H3+B@{M0LRM|G?6sNf{tyA6 zzPV@tf!zUn-_3td^S^)aZ~(_*RKFH5^dSK^JQv7EM&Z^f;3gMj02Lw{@E|%?36wrb zNshjQu>0BkS)@CFosR*_JN6WT2pYF2VRIW7Qinj;-(;u=SP|FUL4o4fx?IpR#?1=J z*pt6E0pkNDs04%t1%+|V`(;D`WN{+K4{mthcs{&!@Z%28;?DS{P!6LSkaRk?B-HSL zw)=&;w^tq}T>M|i4z|%C9Q@`I7ksJmu~9&=8n9QS+5pup_3KJ3ryC$HvfWG{2~=sN zLnvDrh%7TpL)HbM|L0?@cj@l(EC6s&b7=7G9UAs-3Qv4el(ZtyMfw-FIHwjMCr^IK$*n9{Rb z`p( zp#lg+;oScEW}72RRrmW!V>!>kU&KD+&-&?xD8vs|3g*;7*xQ?wv_C(Kl)KA=!g+CV z2xD9407bGHiEAfJ^peg>bY?N{=hh0!ylbGC^Q0pG8ZJ~RPCrF&VAt7e0*675^$69L zN0sB)g9tUOLL#9E~+FY$tS~0~Odgn~)u9Xx1ihEV!B8zs_{a(W2X^`pGyp#ekS`;}21H zU}2~Lu=RnFeqg5-iYBA7tRQliHA;#&A5^IbX}oe!jfo;TW+1lPafvBv5pt@X2$&mnX&E}L zALawQj6@QJvzW_>rRwBF)3A6S$Y``05C^vX9Gtu1Fd1GK?vMGcu7E+UoX!La*->}< zqb5W1n>12`%inKA&5F|4mIA}SDKDJ=pWA-@s7y%!(Jn4$&%b&%{}n%IfFrpc&*{zl z=l}idfVBeXS=R2_D}P6+|Nf!N14O$T^;r!YN4q9qM69B1xBu(y{&~J3B@pdS^;-pR z9PNT8Mzl%SZyWPF(;-B5B$To7Nhc3LI}6cE$N%}Pe?7A&B+QuZXfe8RDkBZPki3!N zy$#302P|G+6th@o!!J|-TE}&zJzs8!Fy*`fW8veg7xe!?b)lEH-~d)wC|tgO!?CCZ zSKNP-`(+NJ{+ryt7a!R5|Lxqr2q&ul?cBfP?El+iS@&*#BPdCB09L@sy9qyT%)M#< zwk*xGF5poMU}{*I>vJaq0A;}DDAYO!nLTuv>&yxNy5TWezFSodeduw(Cj32po(0tP-y>a7TjI93(&#iOgnLk6e zq17+9qbL3y`9J<0L!3HkRAQ4Zi1 z$ueX*0cMO%1r&E2z#|92P(Obaux-OnQ6&kLdf)?m%E8!<+S>4;PjK4@Ae3V`Mkt-Y~;!JWVP1WCdWimJcGq*4I?2;XE zkV)YO%mBPpSf~9?4MI6W)s*-Cjt)t<#zh&5U0r2UZ}gM$cip?Dwfq7!KYCx$Gg3th z)gJVzy_m=ZAZRUo-l48tCcW%wc<&YnRW3@eyV6)V-{`N%z+aF~4%0bSEAWZL;1^qK zqaxpqWj%KS!Eeznax_4#x0S12I(%r`SyWBm2T`SD{rx|*{qd5yk4nCVhXCUtJ>;hj zNAOHPlkgJX$*3T*vrWu{ZgUto&>rSK2y(@}h{fJVSxBSDrb3xI*(A2UMtOFPIj-Y{55scrdSHl{O^R;MHY z$_zO`hGP#6NaiUeI|Uf8r<@Rm3jx2?pbPSux1aSttv>%O{isA`*Q*P6LR*0Pt-YGT z0^oUGgc=>Hz4}T({Mm?u@=3^ET};8|f2j(@w9K(pRyA0lG4@^EkMXw(Yo7~2eV6Sc zuSDfG)|T^3Zvg~*`(HE*ySyMmN8yFve%^R_X>CTySdeYW8xDcJ2H0sE)R@0+0vVvg zpsVGmwQ&GA2o);R3u+}deCw195SC7Q(>87^atGV9$vdqlcEfneH2^vQY7#eAL`VX< z6ARVXOmsFRSx2=)0pkDV7mky=0k&h}Jmz*aWKu!`8~AN-BGfiVYcp8$2P_gtUImr; zXkNRwGOT=XgkKjp`DtTjzf=AnHe5tLYJq*=Y$VK|qc!uPU# zb&|WQnmy(z^kTL7;8J5%Ba0ps>{V^PtifRx3~M-7k_RTP3a1^CxaU&}7)ljRL47tf z$ip?)MDq=CCY11NGiW%taIH3>GBRB7z%<#3qdXX3=0^HBm(YNz#|$| z|AUNzNT7+wVeONI;Hh`ROaY3y3aTM;65zkD77zn?w{d z$e=y><2J;{=w{3>EYQ+R177s#Wsg3lf8AW_le=R3_7`Ml062;UnkOrozqfh{QtgUE z;N*9Q?v~svsBs((tb?4lOs{>86Fk=i{G}{MS%V&fh4?rejC|5f`E5q?N(@prS9kKK zU8#!5T%W4}wUlzK89JSSwZvKgu&c6dYiRnkLKLjnjAu9&Q?QEf4IEhz zS%5LL?7&`n=@-FtBmvr*Gt_vr0GM+A?;1GiFL1|A)`GN-h-^D??f&Wy@vL`#k?i!o zr`JFURRyB#pn7n;Xh&4id+b4QMfzaA$)!{+7L7^n$j|Ln7ns ztYzGJW&G8ODiPgxoBLRJ(7=Dy*I^l3z(qD1Cm;7(8(o>j;ieSR^@$bGa8LzKPrYA{Mrm}W#_9s3cwD;OV88u_q0J+2$C^2QKl>Tr| z0<40LWU#ZK``emDo4ttSC1beB3>p+EXaEl&uTfy!TMvN%QqKoeXmRv?gy}QVxh6VR zJMTc2;8R=5bjB%cuuRA#=FGPz=49#Fm`E+a$0vaSv)M8eaFYXAM+yMT^F{+fCYL&J z*`W7C0{F;oKCn>7CW=1)LpFqBtTWwqYE3?_2AzktNH4MNrr*|v!GA|ag3C5G0P1gG4Tc?CmP-^9{pbD%6rV{<; zdWnPwhF6HWq~}q~J|&rj9j|ZZlrO{vH|0WDAS$<7n=})dC594}g8K3wojtzG>XjTf zc%Yj(CS*4B)A$qMWQB2zT+EfQ8E@6v3-w;x2uvl=^Qdgcdo#o!Gx)Uu8BV6{nmiI0 zQN*M_B^qLH`u5OwKaPBHaO}c-NSltW>`E|bT3i6S0FBzsw6M@Fzh)UOa+i!VI3bqz zEs;+N)qD&-%Xqt3KV3wWNKZO$zP8OF40AH-GG_eIf?nTbum?7XH|Ie0Nv{~FJVa{S z=NY=)E3`9wWq2IX3>;RI3_jmBkRz@%5*acKJG=4sHGjOz79uVKqbySP zYI`=$FMQ(Q^|E2Y(Og~wwGeo%dtHRHc9=|f>&UsV%-}iK475NKL`ipwmR7ueTHv2Q zoW>howI;&K$@43+?3ZeW9FCUh%hj|HAN0?MxlWQt<$3=(t<8! za45VR2yh_@{=9*c!v)^g!lR&GHHMg0t4(1>%Io&~0$!ycZJ#N5MLbG(IwWPTCwYxg zxmKc`n&`88)+Zt0lrP|_ssLq+8|rGIT^hv`z<*$Dq3gbWZNo1bx$bFs1@19v7_7E^ zAx>rv_|WXbJydQen%r;a@>Bd8kI%vofzz3byan*KCROo+dvE$!j@L5t*b;@?`M#H< zWadWlD6|k9$uoN~Pd3p>FA2wLzI=2Hcapd{xNMbt4+o| z1}pfZr++`(HDx?FH*#Nr{x&|@yTP0oaXmrs+$xzM`<388#)o6N9=Lm`Zk_<1CwUGZsOa;v_+x%hTc4Tj>+tjjmI+`yF$P4cf)oro{;cmee=~ z&fpYGO+Pn@iR(TCEH?#CJAr#ZHHc|@AJX+aa5ttb=QAv{j3)CUhdW6*6ED}#Zk>{M zGv5o%7-U9GdS8n3Vl^MQ^28e^uot=|PRr0&_YNIpBJ8q0-jTJoyRB5~Q$Ty|NrzU= zwsLJ2ADRL|(;rRKid}h!)uN@SMv!0yd!hZ;1XE0Wvxc|e@H6N1Ud_aez_kh7@m<{y zv%p@&8)uisVIT)ZCoQe4sb5~78ZS0muqePPyJf7>Zw_G}h???Pu`J2mG=a5PYy4=={+bWHr;1Y zL0B3pX+lWegKaqv|D|unO=87<&*Pax#ZE*!1O26^aplo4e4Z{l0;xRZguvmASs)kd zFI5jcw0^YZb~qHr8|rn`4?LB(+BwO1*m*w#dmyto>);6#@U2T)>U5tNWd`|Dxw=L; z8Trj=ixh*^7X}%@&(30f(sAI#Fk`r84qFr`Pd-l9a>s=&OaIC_VU-!xKyKo3#{Gwa zdiVv#YlCh6OHZh;+2Cv&eiFu<*H6Z-rtX{uyl2m#4+d>5Ao_UI7w9g2(ZHKQHW;>O zhKG1_d6vpyaC9Wny@#)6l6CDq zustxw6~BnDG)W1is%RlcP;P}WX{H@TgpnV;0E=9r)LiR&7;ulofkeY~I$WQfO0mvO zLw!TMOg%Zg(=mzDwhv4MZYT4y79%~`3nr}A-}NUVH4gMXx6mnygYOkM)aZQyR+4fES&MZns#(T zQiA*Xr+V)?ULM=ecH4E@$pO~>eVLsS1DRVnmQdSOmOcQ+xOV!CYvU!V{OZL607HCEK;zOO!D777q?97C}5?#eTWUe_I;!vJ=x> zYxm;Y?d%ob3|8^oNMr%otbeB7&#d030YMBciW zjw(o+0tM~ocv9>A(c2(9E4%uqC%mE;Wh4_Pycu}jvB)Ilv*UZrf8UE4WYI7HcsUMo;SmJgu`Zf1*61ovKYHn^VWuM`8 z)zY^oxm0Git}#MOJem6lr39RE-ju8*(t=D34hG87LJ7JazXVQ^A^?=4&iXunH;<)a zJBc+)6j|BF6OIwP>uYcgF8y(tEDn=c)8n`JhTMPY2xWzXSFCvcdpIj>ytMf&>t=mp z;>Zmxq6DfkCS&_~uO0~=EqiXCLay;zd!dW?Hd?k%{>wcnFNr!l{@yoPD*ddsNOvWi z-~)qHo^41S51xn|P+ru5ajt_{&&>tw;iPU#$HL2f)4}2AjLl+GXNX)!X-(pr@t4M_ zr@5dv`8pRE_#m=Cb#|HW2qvrD?+HikcmJbt9;&3>pPo4%id6n7wYS$JE4V?S( z8)yCN%1P{#IzqR3#(Hf&aHXI^C6ajm$lK$|3sTcbw|p%Lk>poX==l@bfgc{oCXM`} zrfEj1-OKHX08XCHTQ*TyfL+Mmvf{ol)2ErfNQxZxz@N~IvIzemW|N~4^*&}R!<_R} zm4sRih3Z!URu6@ZtIhb4(d|JJW-gs_%ZFg7;+s=kfSF-SNhHQ9>J;R;Snjej+_X#5 zXht}j8JUScCl=DlT(t+6M5gTWR@?q`H&G~~p#fonnFHvn&69ca+(od<9A-3mQwQD* zGPdw}PSI83cUNzT=;lBfOrP;{PJkbsn!!gkrohrKK1KnCnXI;DtS#*F?|m+jgnw$P9&lMR%J| zdWr=$sN}H2djSaCKkn?hH%c*MC#VHes%D^gpPNqPrhAPwfo!%9wK-Wk+cfi2)^bx} zB>t6~@?nd|s>u%rTGK-F!PK!oo;)bDjf0JuH*Em+0|P}jrgX`p*HB9^$rP8Bp@E90 z=I{qoA}+j3%6lm1D3B8=%B7lH9p3#AVZ9|6mfzZaRzk1JrQlX%1nNnomglg#f^X}e z!fPBC!Ly8j4tW~rI~4cg{d#B@%tT9G_He?&3zl*){yaxl&}X%$H`g>yn^A;czK2f0 z9>Oa~%JXY<+#MJOGpqLrGcLh;1YeoQuKuwW+={u30@=2-ybX@66at28)03-YqlSs>Q3k@aG?U0*wTxL0B;O@bifzP-Z$y&c+cgCf@!gwAt< z+fEVBz&NeXi4r1--BOs=$@XO;u4{66G_U!(4hFe2JUkz?S9>XFic0XIhhCl-IM!M8p{XEq+XuE1OOBX=InXXgU-k zg7bC1lc~fd`F@J5KoA;A_~1Z1*^8LGl~jCOtw$kh(y3b2TN`v#mKa=s<3Ei-_mc%P zPPr>DJC7yx58l={*nvxl&&FS~5qiPx>G+mR#=T<$rLZN1cXdE?#TL2Dyco%mqlEHf zmO6=@cZa1OQHiex>x@UsVD?8fJ4mzv{2i|p!)x$*!Ml3Rs-n2Nc>EblU)xZy^}{N< zcx4!BvC@>rY$%utt*7ykgQ)?q<`FrXvm3G=IjBhIc*CSK%ZG{%9`5C5CmcsoA(yyeq@>nX00->U~K|$B-p!^Q^UshF0t7qvAHpKsg8HTQLDL-yq+(1!+|G znSC~ukOej4xWvapRl7&tdX<)!pwZQ2Bay?_P+n;(U~JzV<1k&Iq&1xh!b54zmyAOk zJNofy{|p}y8k6vH-|JN~GoG;!M%+2${3eM{zn-<0{A{j0lUGs+YVwFa&#q7@BWF_R zi7?((U+u@ZoIoCuXPZ=rq0Rarkk+oq?+eL=EB@=D#wh1wXh;um@bMz~ zG1~JP%#*nZyHm&`&u5bHf0oYIXL7G<-x*2yot-kmjij^hcI?*_kgIiBDpePB^2%Y- zCb5_C(LYyGF}tsxzoA7fx#~b&)A4OowjMX86Zc0DG1o&1zXD%}WKlg6&a65PSNOx=COvR_SwH6>$^j~msD^&87Qauk+AMP>jc~;x{XTqm#y`;Jpmq$;I z-!+Rwf+S{qr}}8!OenwOX}G`eUTu9T-=4*kRMvX|z>nl)Gj5#XXrA|dwHzN8p4TAn zQsFt9oHjKcNI=j|4A!-46BZB;NWxgVE2WfaeR|KI!nfINhC8*5#q(1SCb&-`*NTd) zd`~{U*p?|TQkK`IJ9V6vN(uK+k5;K09NetWEUPKG?GfGmq5wn~ zbxO=Q*~jr&#^CG(ov&2~QgIgvqN@eOsRAM3`SRyTt&k1;u%J(~jM3!pmPGilr?N99M5PT zpLd*7wsMnDHa;Qez8#Ap1{}*)fikEL`Q(zRds?X|9qQ6#0@&Wt<1dWOR#>Y&ei(Jr zMvY>>;B~-ihZQ`S--NKrG1k$XLG6l|K3yv2hBv-eakRursFo7iU$ZsV)HeYW+rFMt zG5MU687)eDXd8RR8ceKy$*6V}`pw-HhVvr^7Q;%~S)DS>#o@ShJkv!hNhQ`0J8_!o zHU)|hwh;Jcw=Dmfa3=vO6fsOb)dmxLPY4Q_9EHO6IuM~IE}J-M?8{u4bAMXDC8v4f zgUO#&l$xI&pD%%(QkEQ7Gbw@ns{7`^R6={N`xBC6Sl_h_pD-G7&|5SQ;}O{%KB$BX zxLM;O(Giv^(9oPZuZq8RU_GCr@*Mm=39AL1Onx9;r0Mw`t_-WFp?0`651cKhxdVBE zxSx;Dte!2VnheV%>r5rk=Sz>h@=pnDG}ji)uAJ!D-xiYZmo9b`SU?M=rgX3;;bsjn zU|aO8oU7z#ClYl+`^v|wFJcUqNR?sW0A(ptm}^2W)&S7^_n_SVYfvmKa%PUhB93EV zbdynDq_UaU;Fm$D`D+jyl3FuC?3Vv*?jKq1zpL2b2l$WYRMB%k)IZzUHSXK8qoB;T zr}yp6jm-dZ0bM&z0jaZLE$F|${i{O0UWEMr=~zYCD0;fgDSTZNuHC{Akh=h&-MVlP zb033BU4y`#ssnWDJKY53yfccY;s35Fr9jnx2d^DLU-?2%>DnF=eZ)b6A?ut%$T$+B ziIuiFe9)SIKG6Z80eFS{W~f1Sk13fQ2VhWl;9#kI|468(!?O+xWf_$7%YR9GmhbtP zY<4}}{N*}zsAXaI>*=w2!kkavxp73;&FqztLS3cU3p&VZ*E=P=s+h%DrY0 zc4-h`&86M#;^i5O5`s?>G|+Kenk8|gWit(&*JnB5(t-gGY)0>AV9?-P2Z*HAprlke z=~2rPPRcjbABQyN@gVhVR$8W*ueVA>z5G!Xxp2j+W%F>0}gF%aL z2ZT~XlDGl&jicoqFwCp~M7TlRzRE~-OYw*Ji_z`IqTU7oyEz8c?D4D!mg9Q+HWvux zSwaZ8!snFbq%cTx=)wg^Xn*bk@!=zyDH(A(QIH*j$4s?1zoQs$b29YD7NmjNlN@O ztR_DKc7SwUL&TS+517=ALHFcDPy->VK)g|PHPHDU=70wus8@N1Jpi{TGo5@mJYi_(@cg5|LJ2?#}80EMCA5imT85J@?-0tM)|iEeRvH?vmc zBDD%uSLp^4Ax<+kQ5R#_TD-Sy`nC~mi^IzZ_pi#y)fcU(j+a>xQ z#9Z~=loGIBJp|?`USkC=z|e$50YV0N(x{j!7nEil%CW^-M;0F6x2C`>HMz*0WS~Rg zi8#V}DEx=oo>nk}7(3cHmmI7N=n2>OH`RA9y$1z5Cq5_vN+b&hK(@vKfQ3pfAK*>` zYN=Nc`wytpXY;WpvN8-~HH8GIpVyx*1wX784WPoDLXpJnm=@Cu@>ai1ZvEB2!;>(7 zP&5)q^`vP2tYy?VBq@o8Bq+Ta;(Bu*826{!Iu?}4$QKv~RTZ~uJj9cMuAS4CA0|?{ zcSy8n@BIbiwb`kHQkay~(Gifm`iZ0xal3jj4pD z+VfAKzR?81LW&TIGVr;H{x;3+tYz#D2Nmi{V4E zm5$^uf>8Frq!w)^cK&bnUa#akHJ_IdF!|)XS)#Eh$t8=qAmkzbNn2rLt^o+0R>X8 zmy8L~?V`^;hGOr+neGQ}YujU6!i4TaNBlT=f!nzYdbzf+ggW!gmGqooWv$9($>e9U zkF&e`Q&*mk%MHiGM!Zx+9N+hma_((RlIevSbBK!GPSmD(*ghLSB}4TkHN@UNVpTYD z?s(MFyu9*OpL%;1O{xVbHzVAaq4H1K*(S11D{V1uvHR_JQUhvObmwueCs=2!JUSFV zUrROb6Rk2m7C-SC#E=@5A2U2nI`)W*b272!oKMB5mk2;;SdRfnm|4=|7`&ER z@Xn?()JA>iq+~qsDxr9p+!ihryMSgoj$hhh&(ul-w--GLI`wR-ehRWsRnh#;wBy?` z8Tr=X7!5PkkGt01?J7y%F5~$*u`)bg>eoz2fet79huAEl6BmCMpK2pyBz`8dW#P;| zXX`gUY4IJRQnI&j-9wPtm`$7Tec)`<>s33pGPc~zfIld<5-NjkS@-0N*wmXxH3wHl z$N8fr9cbeCxdp_^iMhI2oBQ+bqCGOI0v#e-=QM{BbJRk|0LXn*z=L1O%6=0th#6W0 zG7-Kf&X@=}ih4rT=?o@vG^mp)yg4jC#+KZ>UtTA-LnJXXh^)6f;&nB|{6wBX;Ydt0 z>qvaF{mMWonTkk?FB)V?tS))@aWm+!%ZkJ;Z5ETq11dabon`of4a zT|4E_?L%T}nP--r-izZ8#T{~lbT7z#UXNYO&(TWaCbJcP{*YdJpn)oPWSe+!QhZB@ zK59^d?VJNs=5zxhsUl!~9+z863UL7$|C9EvE6kXGN+$#Ers0@;K z|FYk!#O@cyyTabSC~*zQlD(0B{tvNEGed=-NQPB*TK!&i$nwVK*7Gpj_3w;Zt^?*j zLQ*w#lmAo=xX1x6>abg>^c(lV`*~2I6$nfl4P4f%=3CafcR0(rPogagj*81jtES&_ z^3_gxXU#L=ITUO?m&3U3vT{kC@(IXmX{rvFrT6+>!WtbMu&O#CuftYGp71cgan(hv zsPos^UYOmk$vdV(kAg0h@k`l`C2fcH1tc0S9m}R=c()e~3BQBbH)ZxLdb;c`s#K}B+J)VKA#_m9~jt38rx)b8=PxP(Jb^pX@ z?d)%z9PzG#<&RS1#7x&A0lO#Q4^dg`h+|A?LB{sZ zj80Cikweyrva@0n!>DGyfQQPO$onc&xCn#^=KUrPe@RbVqlHA9rM{2H#fQHrh>1Dh zQPipZdN}p$R8x3w?h%`S+eBg7?&tGCsl06dVD_7BQnGQvxv*;G)~QIUeqfS%CtLU- zR+}zXUQhY;T~oGeN1o-BQ~6mduyW+(dHLk?gRtKkcFHU}V&2kfhLVCVs774I;o|4S zgR;9>sW+u^T~G->`($(z;(+WA&m;YZM9#0h^B1clG#Me1lI}Im*lMv&Z{)b0-OeIg zsbtXv8T+(%SIjj63;mZWbt*5q&`-TjsjD-WZk(p|O`6~G+e4eoDNe%%It5&&eJ%aGcmife(CtNdmd*9 z@3|s!U5CVd0ZNnP--|x);kX~J)Rw7)=8+RWc)xEos#)zYq1h9ubi;^&OuxN z9+SyvwkP^7q+F~vBbk2>cDDB8j8!WSy@e+I%{|WZCszhC2Z}0DiH6awgtfy!bU?4h ztVJ_70UKa*`tUh2Gvj3Y;t^3xWZ-NLF2~LL!v%@^Y7IJ)J+POjqenQR59Y(u>MVqc zM8{;LS%(fTsE}micVBq(Ab)>f)O(zjg@3$jfMvmpb0udfbad>5gG$@e(27MRR&sTu zP_uEWnyj7CRSDRF&RpujqML=6b<++ExKF|$%K$qSl-ilEk~pD2>R@E}rRCRg`$I_l zQ&P@3_!$r1iOZJJ;i=1-*Sd8Wq{v$tU7h?u&n0B z<2x~OBBHP37cp;7m=6XyaOj0D&iis>8p$-euXM|EF^O8EN{*cz6Tk2qoAOu@=DP+Bu?PrAXP2dGrL2~ z4c=&occ%w2HiZz?s&)AaZEIzYlxK*_Y<)pWn{GjxZ$3g}c0%qIx2({7MuNb5RTWgF z|7B&xLM+LrHgjU@zj{6}EcpHPYr^HTQSQD}?H%7;lDd(0F#zvxH8q@Z7pHYs%+$O~ z1GNwNi<{6uYWmUwNu@F?PL1{P`ASj_H+^ie0RPT$M9swCQt~L1M+RdOJCw(>6f}@0 zbo*uH8BHrRn>e_6jObxiyQ_zdc&4AJsdk z**MV7ti8CTX{R^o@rd*2`x@uyGSRA=V|Oa-j%1R&8WD3;{Mac7d(XM~u|MB|6)fcbcA?B- z9iT|c1(eMIZ=01br{<-fFNk1aLaLIj5W5zx&N?KoE%y$qg%mqyZsJh$m~qfk`c}dZ zHvmvPue2*Y{%8@1S+a&KfoB zu>Py6qY#h}4Guz8I?1dRTSSzkY1SC;fCU-C+uem-riRPuigRNcl2Z)GZMxSYdG@%` zVCRdpTRy&BiAO`>lCp-_^dR?Giniy7b9?C6hnOmI5kGN}X%)s$1j3crW={Kvjnr@(@r+uNU*-hWI%PVF-PXpnmo zYBF4IIzIjS?vAJLpBHFtm42OdP(|i~lgMKxH-TBw+d4VB46)^ufsh{~?=1BoydM=f zpqW<2cJ657)gUlS$<@joU$BH4g?C%SYlhSqXV#aT?JYyN)I5M<`m$tRr~MGYw-hP@ z8RXd#t?(K$0kj)>^#KxH>4A%b*BgO>58+bAJ2-XI*~;*}*Byjzi)y$Fd%}6r-zK(D zZUaDofhHOTbX0z$g3ih@3+6%TqB2lAn}7KTQK-y0aWtr_0rf(=r3YWeMjsAw@QfWK z`)FrVyd3*;3t(;YmU*4x={S6?h}jlupveQo$_=QXhh8tqD*GlZd=hq5{Be!bnhD9ROH(iBJy$>%o)DhnW+ngalNRR81}U)=Az}7$>|v z=TJ<>O;nnun#Jm`< zFo+hZXS*$O#RWdpOxI({Llnwq(*O}0`hCkyh8i5*xmpaVl<#RG$#p@DI@+_!2%kOS zy!)8X_ZKK2Oa*i`t_kH`h_Ym*-_#N?GW1lQjz9m>0@M^3<8nbA8sfzcE?#R8mv+qT z#cny1!y@^iCefYsVK4XCS(keBhEU@>Kp=G7;*wknqWnaZK<(}+cyFNrWEw<+=yOe$ zYCB#cL2luNcxTi)g+3TWD595`HTI#lAQL;qS0LEy`W)?(nyf*9kSw2lTVmCf5}C$l zElxk9bHYEQmP|nmBhKI((Wj;d6T}qFRxp)KI>~*q32M7TdvDHnR<^TEuf^l=32YTR ztKRJUp(`h+uDbH*#8nc}`XO_DBBnxY$6r^DH6sjiKe3&=6wNv$eX_6-sozQ3JvjFT z>M-;JvTlnvpMI4&OG#*fkh-;T!3w62w#aqU&wapF!F17Gl!=vALi;#He+X+F0UV*^ zbqaFhINz6>YrxC(D*0771pH++KE4i;>c6IaAL&faJ0kXc1rW>G3ng}h5{2K#UpERr z1a4Tb(V8riDyZAmd(RE>8tv8P)B}=6EyCr1BD!L2^gh&l>hjW0$xrEO9O0Khpwkb^ z;hP#d_0Y(Y$HEU`(uPFCe*KkME9d#_cx+|JOU06l{djqYrJ$~i+MvV8XUD86^CDNA z30kd!9%Ve<$^68hZ1qaCnffU`$sxDQrS_spVH)G${T+^(BNvY4s=|1@6t`IU)KD1; z3f4@^$l~=D+EOjAD#V3n^;k?izU2d7qo*uDWZyn|N%m=>C!(L}uw>VO;12o}o)X~; zVX=*%FdP(nE!6^0-~!zKsJ%F}rn2@yr6X@@$t=5LgoHQpg1aCk7(cXTCdL_=pQN3P zUrU?lQkB;{XjY{?_gFtGUAaI{EeKwq!sy#2OS_0617YNq>akGfj+%r0Uu4@9fm<;8 zjCy_MmtSk-ACvM0OMZg7a8Qh`fV;>PJw6%$e;|F!AK-j74c@v&B=RjdyjJEjxMRX| zzN_e^DoJ^!zdJ7kCq$=mz=N7%P@Bu= z1DFGxi6&FQ@);%U@;V5G3x;p?5U54NG`EDWg9J8Vw0P3ETV|+q75MkHjmxX7pTQB* zHm|K@<9Kr*mmOptD0L$-GSSdVZ@`yePEhe@nsS)Dr!!%h%svV%jSnd?6lMgNsDDtG zexfQ{H{^-ei4d=^f=&Q;EhoE@n^*c#kyPL6zR9hWp8 zPC~VfkGa}4p|rP5Evt+`hxV)ru!!mpi9H%mQGaX(DCHz!lubl758Cb9kC1K zq8Z=e%Z$fM7HNTwOT)>bT*tA6Bn7#YVoNo(CLNlvkq|x8Cv`3Unm*5gMpz^uz_MCx zbU}JO>^z=+3mKgh*>51~kQI6D{aBZ}Z^#mlinDDuogmY8@9vTgSL)mB1xBewwbER2^8f%D&`Q>}1`|$mKa8*A%$oimzc>$c zojz)JT_m!q`^LfV3Q+FWj&$QyNS z)5G_!3GOcV^dK@!himJ9FzZ=l;V#rZCB+D?vg7qE*Z1Cvcf! z`$lC|Li>U;)OdYiI2vKLkv*gTq?;d!Kw_Za7~lPZ-#;^tglZurHZ?w#)|6ByOhFC# z3?Rf3Ui24*(|YD&Vo5u; z z_3Ik?VCYl8!c9kmHmow=qUTb3E_{(4^^Cuzg>~$;FZrqlTI+H&Hx5D_ZH;K1KU^vl z&QJ?LLkxVV4W}*byC-Do#D{OM?(84QIY!;Hm{u6#ZxVmraSKG3W)xskQ4RXyxZ*1T zl3K-wg@B3onIKDx^k=z*-gPsIB=e&vnQbyEnZ$(k*lJVM9_7ae?W8v)rjNK+48?fh z{#uXF{jd5E%!ua0^54zB7CwIa;kD9wE!njz@LIXl3M2JYEfZma>W^b{mnyESip z`0{yQ%dLMEh`Y7|q*0?bL3`tt+Xp~&A^G{{AHU>l|9&)3S&q^Gt$y`S5_>n2r`RlX z9*8|O{kbD2);R==P5Cyx1?_?4QobFS+#<@L1Bmn_h0%V+g)65LWP% z4%$$AxMeqpURC_Rk<0oYZ~CQu(FYjM`<_-T-q^e%$sXL_4-OiB+VHVFZv!ETgO`jC zZ#b4!e}cz4KeFk!4fP%j4?^0oT_%i;y}_j+k(3WxFX;Y{3HmZzkSx*2e^dO|*nlZ6 qV<-!N>kbn!`M=1Bm)(dG>{8u+tZYWa_U