From 9c9de35918edcffbf3ee3551d02df630b0ef1e8e Mon Sep 17 00:00:00 2001 From: James Allen Date: Sat, 28 Jun 2014 13:25:06 +0100 Subject: [PATCH] Set up basic PDF viewer --- services/web/app/views/project/editor.jade | 4 +- .../web/app/views/project/editor/editor.jade | 2 +- .../web/app/views/project/editor/pdf.jade | 31 ++++---- services/web/public/ScalaByExample.pdf | Bin 0 -> 57883 bytes services/web/public/coffee/app/ide.coffee | 3 + .../coffee/app/ide/pdf/PdfManager.coffee | 6 ++ .../ide/pdf/controllers/PdfController.coffee | 7 ++ .../app/ide/pdf/directives/pdfJs.coffee | 66 ++++++++++++++++++ .../web/public/stylesheets/app/editor.less | 1 + .../public/stylesheets/app/editor/pdf.less | 30 ++++++++ 10 files changed, 136 insertions(+), 14 deletions(-) create mode 100644 services/web/public/ScalaByExample.pdf create mode 100644 services/web/public/coffee/app/ide/pdf/PdfManager.coffee create mode 100644 services/web/public/coffee/app/ide/pdf/controllers/PdfController.coffee create mode 100644 services/web/public/coffee/app/ide/pdf/directives/pdfJs.coffee create mode 100644 services/web/public/stylesheets/app/editor/pdf.less diff --git a/services/web/app/views/project/editor.jade b/services/web/app/views/project/editor.jade index 5f261a0990..2193b2a927 100644 --- a/services/web/app/views/project/editor.jade +++ b/services/web/app/views/project/editor.jade @@ -85,7 +85,9 @@ block content "underscore": "../libs/underscore-1.3.3", "mathjax": "https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS_HTML", "moment": "libs/moment-2.4.0", - "ace": "#{jsPath}ace" + "ace": "#{jsPath}ace", + "libs": "#{jsPath}libs", + "text": "#{jsPath}text" }, "urlArgs" : "fingerprint=#{fingerprint(jsPath + 'ide.js')}", "waitSeconds": 0, diff --git a/services/web/app/views/project/editor/editor.jade b/services/web/app/views/project/editor/editor.jade index a0630b9588..394d432c27 100644 --- a/services/web/app/views/project/editor/editor.jade +++ b/services/web/app/views/project/editor/editor.jade @@ -4,7 +4,7 @@ div.full-size( resize-on="layout:main:resize" ) .ui-layout-center - .loading-panel(ng-show="true || !editor.sharejs_doc || editor.opening") + .loading-panel(ng-show="!editor.sharejs_doc || editor.opening") i.fa.fa-spin.fa-refresh |   Loading... diff --git a/services/web/app/views/project/editor/pdf.jade b/services/web/app/views/project/editor/pdf.jade index dd73044b6f..233a5bbee3 100644 --- a/services/web/app/views/project/editor/pdf.jade +++ b/services/web/app/views/project/editor/pdf.jade @@ -1,12 +1,19 @@ -.toolbar.toolbar-tall - a.btn.btn-primary( - href - ) - i.fa.fa-refresh - | Recompile - a( - href - tooltip="Logs" - tooltip-placement="bottom" - ) - i.fa.fa-file-text-o \ No newline at end of file +div.full-size(ng-controller="PdfController") + .toolbar.toolbar-tall + a.btn.btn-primary( + href + ) + i.fa.fa-refresh + | Recompile + a( + href + tooltip="Logs" + tooltip-placement="bottom" + ) + i.fa.fa-file-text-o + + .pdf-viewer + div( + pdfjs + pdf-src="pdf.url" + ) \ No newline at end of file diff --git a/services/web/public/ScalaByExample.pdf b/services/web/public/ScalaByExample.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cc5a8575913bc17bbe2e6af605bafadd6cd21d93 GIT binary patch literal 57883 zcma&tLzF1cvMt!O?L2AQwr$(CZQHhO+qP}n_P?X5ZsU)7jTfz0{ngqtHi^8jC=CNG z3lz!x^2jiv{0OKg*aXUv!Xd~C|0?E% z1M}vpdm^rf%Tw6b6W8{9<1%(MYH4Zf5+~w;L7O%)o*@YnA&~;qrz@HAvbuEIE?&EA z_iSEwY}a;D)@p=s`Lb$%8b9^B!SlKslJU9zz4p=i(bm~lAMw*)2EzLS_*CMX0UeK5 z>Fkl*vhXYUMQE37?YE0mlecMS~0SG7UEZ0tIx5Nw zBTNbg^!(G;m^oJ7MnMrN0%XJ!UY`+ON$o5iq@6%SHx*$DJ8RUPgD}RA2z{o{#^RtT zEnXZXy6D(?eo3+?yLK+Z}qLltES_wsm|)or?%;hcWAWQs=rDfx-Fo5&_G-lKhK|-UqWgG zgd6|?0pSoC0fE@ih$)ybhrn+uVm%rk!i^l8^aBru1Oy~lcq>^zoLK=H4w(DV9td_Ar0APLt5bQD&07nhtny&Fw4+OVAZwL_J!~YNJZR|@8pZvOw2?8dxt36Pk zS3aGmAMO$c@Vwmek)S7m8vtSY6&>;T8cyshh+9D3EFL!V-s=kAzcLUPAXxQXERPEV z&_$&4sY58o&*JzG70hRvl3t6XJqj8m)S2wFh0lZ>2uL)q3;r+fkaJ*PmwtJVii>=D z^)?Mg3tsJajJ`YzTv+D=9^8iTvuy@95F{Kz93nCz5(wWGAe?PI;7<)m2v2R?4&i+& zdUZd}F{BIVdY%#gSDp*vQzY0C+(QsRJQ#c!?coSt7=8e#u$j{lD{u;qJE$0Ra)9$j|@pjN<*~@z3g4PvLj%_wNp;!jqlrZk~ z-Y&d`76sDvy(;dv7MQb}2?cB+q)W(ehXX)2-@o6_;Jg8ttKbgR&AG)_2;o`zhp7Y# z2Bz(Y#W#?!5C8!P@R2|e9j^xoFyH^2qb0=s&(;or4-Y0*xC>zZ@f*<99%P{|QxXE; zeW4_5orr(7Ro+d_EPjq|&<=(iZr@F051ZaB9A^>C((cbr_z?cFtM|`;ctQ3SmzK8g zZs9NbJeK7z3o3xWn?S$N?#RAgIo-%b{mG(akcVzJMIfWjnrd{8 z!$V;Yfd==i_`M<G!Xw~Ea!tVQsJ!*eYp_MzUnn4qdo0tw55PhWf?Pj6qs1Aig&o&*G=Y;feFA|-S zKZ6E>G&|;FHuWD=r(b@ToSEp9zmM>P$2*{;1I^7s4y3Ze!1k5GDG1jZ77NFd(U5*| zk{D?hL=0R5EkHY;{;XQlQ13Hp3=86n|nIU0SQ*fb8I@vaKOuOhWC{?6&kn2ZYyjA5D>sjM4h zjy+QO=xUd+|MKLBbZ3&tL9??|X0h?JIuu}N3) z$?|dyIeKw~r=5~{i-=VQ9Md5t4_`qsyp01hUWuPQsh?~Qme0vsp#|0*$TC6 zq30GV_ZB_Gvia?|W$jyweT}^sKhJ$Nh8v4nTHRwrv)?2nRF_yXrU}i{wlhE?nmabw zo5*P`wyoQjui4rnM>AW3@#Im^sV!;v{=JmWM=yKmPD#wE`q^vM+S_c8*P%%mw`*9` zn?9ZfE10E%NjBOZRM}O^Vg{?fBCyMbF4hkiLa)1b=`I3p3&NM=!e`i}2rWeWMgKa# zZ&WwKrv9>X{)>?$!Ku%=+>MhX+ILejF3^siVN6tMbViy{QMl4JymP&x$#hWQGPBIJ zb+#77LYN+v2-b%V*$>r%W+l6@G>BEIIt#~JZ+9;@eTSr^0sRuR!>ve<}E$@J`G&lNTxwu69*h8-;DexBF%MjX^ZNu}V( zf)ye|PF|;(R9j{wV_kCV3Jz(V*`j$?z>g>%jQ&8TsW74F4@Q!K$_NygA9aRK^-oX= zgnXUZMGT{uxTuf&+nrAcx4opTk-$`nB8dZ{3~;kri0B8q%l``L6lr%jIbUjBDRRt6 z?vjyvFIrr;a9=(kXE^E?J$53AT4i5!q=GtRiW7%?f>vca62f+}pI8tvz2mLk7Ur< zrf83F7HqNK?f-6Q%mEU(EDT^kUsNj8jy1f$um0tHr{WjIJeJ#=kDeDn%z$pzomo#* zIF~czZJeoBVmPN!Ckme=@jqo;&E{#e%}D4U-5$hWi%997p!PQZoMq@A16MJZ)P8M9 zX)xG%hpwosLVSk+0AzI~(jTpFfUopUIoJvR~I_e^|Wn3 z2<O}E69tMXQ`p=qJ4>fO+8`t0-?>CNR}lA8eNWZn3{ zwq;v3@*^9~SQSE|O}a{)`|Ew9EF~nxGP~;GgU*4 zZEHrYq7i~Fcm43*6^e@v;iQ8QkymiYyKT~!m)z0Hqwi^^mZ+aK2?ctSPg_wjHAt!7 z@&(5zF%Sjg&P6R`(%Jj)C%$53k z0FfJPH(zdi=21O>GXT0`w>!DriA%SaNO3r3CX%F*PF7)L4aL|z22_Y} zZc3M&>isS~Etl_uvKsBBb5v$-5TD~&X;ITn3W5-ry(IuEH6L~OHQ6Px#+jo;yrzA0 z^~mdQYal=Zm=awrz?zOYkTU~M-vvY@kItJ8{;BivDw&~=-G}rR&%zby8tv-xe1Qhs z@WH90+z^#~Df*@kM=kiLy=mPAm<3ZzLSB^s&brrlgRuBK1yLRU^~Ue|DKY2Co2w>= zII@3Y(k1~AZri{}(rw2s48wtC2e!b>_78ggKvx1(Mb~(3oF{s%_X)0LzNshj#-6TB zi^nH)1yl3OX{PLSBgYQp%?=^?X|YATGa92DlC+%3?F$+;S3mYyMMjgc*zD6pe4gLA z@YC^~eqt*G^0K`hRf;>5Vsp|J*Lo!gd15lmBWdDjwv@Qi0v;B~t-RnlFLyWQgP$y; zQq-i=*&TJYy-qdgqALb5hLLrM9w3v>ubPb6fPxU7Df_ahmMg8<#!GJm#$tXFE@Qp+ zyy|{=n4$Y6G?uVsCeWLMJYqHs&&cOge`wqW+xFTD>=zgRaIX7xFut^*K(s41o}Z+H z-QYSk;VP}ZlWan!u>86*`6gW}ucU9X{78FLPX zV~ZL2>`Z?BVkyGxC1MG4WI_SUQbU}l)lzRk8vc5-^TZtT56yP&{*nmD?raJ|t#{8t ztBL49>I>yizXF?_Ei7&a=p;5MgAt5jwARL6NVBM)cIwpcui89m3^ug_2cAy6G4WmjqbfZ*}HTk z9gj=ec5;7Lk;BA2$e}h?!x?K~%e+%~@^q69op*-M{5z>tl&V{2o2^PNKX}KIBZ9hW zl%FMfw#7f#H?R+us`vNr#8HgbimfPC-5b|CEjrtRJX};n7zJ94qKbE6mK}n z9OO^3?KJMU@$H!!k$qNI-YfE_psuZo9bGIQ9|u4B@&C}SdYU2@>QruUUQn=1=uD_( zM#$S4kw*~=Jl6nBje0Wb48m)R4voB~LA7WgN8$Ah+&VIys{mVSo*~sUpcz=71Pw^8 zB4c*h+X#$@#~%58z;VR3m+b!q-ZMododHMk>eDTr^)hP|@A$+5FpBH!tkuDj9Vd3K zQdmMN;gunQ$amEGsX`X?^|XG6X4WlJ)QkOSd;qDh>w0?kT+BW;ABrAjY?O*%r4q6j zNwkLxiK7+r9U72n5!L|AAXcd~|4*VI&+?`8s; zKa99wGSIAo!}sKxIf5;PN!CjoC+=~K*TXU)z+#s$MWj8&g&*lou3odycs`#*#BtwO z+r=b9)=wPxduscg=# z-EuED|8C&fP~_+&bHYy%Kt+8du=9ikRU0S9a#0Dl7`8$2hOh3Fvg!QNKMU_A0V;IS zhG}_;eK~KN3;Voh(beC^yd_cVguDziWPSKAt}I!{P?KuI8#fNjC|NblgR=Noi4G}y z71V^?3`S`nUk@R``XF5$X6Tnu-@1`FIY&7eAIJJe!5T8%hm?kGcDmc5EJz&3U5DKV zivhK*q3agSsvr95TOeN_%<+D5uuQb|y7@=>w9^k4gR$|w7CcvbPL}1G%unYm6A6gk zu)nvfE~Ro+-e%;8Njmuri~*qcbW?JT%DT1i)Cgn|%)wZ!h5DQDTBA`np12es@ID zmo)EH)GkYwuiSmi;z>z1EXX>Wn=Ep1v~MqWM%?SGrMtcO%R9d9wXlw)xkLeA++~%s zL~Z^?b6T(vNs(G?6;Tj`#2eSji|!%>7h~V#nEhkT?!DakwLrz(J$NThb#qDI!A^yL zDp+OkqN!-|=AnFJCn#aBr>{^MSCd2q)TAaIqIi}&Y$Kf5*TGPnH3(B#6ocBnp4yiNwa`3M= zb42`^#Zi`^>Te7xl5f<|Typ{u=vJ?mbCvB^UGBw6iW*0p`4 z)h1&NH#7LD#gABE7n_^V8wSTf^lWs6bakgVX{5Sz7ZIbBi9?Zrdt^{MyavMJy=tLH zo_cKHo96wJPN{vtyOtc(p=l3}Rcim8DLZUHMdj8z*Tk%lN}%E6qw6TKs*5bs%DQBI zsV31gxzI{t!hP!Go>p>ll2BO(!{+!DRCN6%(@!9zVndVo;cOp~JFX19EUUh8E7Js= zRW^*sl?dkd%1}h8B487st9BVQ@3exoR=W^*p@8dfw4O5a{COm^5=vLeF))|sv%fN> z#$b!9s9N!ggXS=2dcriU1eSOK9XvCdtSX_qo%eDECt_cdhFJz;YKDCTHj~2FYBAMZ zuT1giJoa{#yyP6Hc1Cudd={rGOMk_SdeF_y6s{RXF=(n+BB@_j%>!%&^4Fjp0;<0-%KT?FWqKUpY2GWP_lbxn z64%1E!}~^TGR`Ex#w39~R#M4!C2mBsnJO7$SYi7RdCLZsF?_29zfDWCZz~c5DH_}E z3BYRJ5wB#=IO?;$Fn~zIrBWuH4Mn9!me7!Z=pa@58CaY9PHHoMu!!1veJ+Tf>@Jl`)5eboFgWPHdlbV4YeJ z)v?XYv%_YTUGhh%?6NE2w=eRuz7Hk0A!Su2(z3X(5cV>v@^H%3Q54IRzGzDJL2?Hg9`G zZ8ZxXGUA_zIFPO>9Fu6|1}B2|pd}Vv19K+WYHUoXjR{mQA)ewX1~cp3ahYHxA||jR z`=xlRx04gItOMof(c0!jRLFF?5vDObGBdQ%SqvF}ab<|&34v}M$Z6_;4T}{Fltl^! z6M+^mQ|9shJ}GMavLZU{@gq&^C08Vc8q;m8 z;R);Tq&pbg<84zNRaN4~);Rl;Pv?Ar9?A3NQ;KBr>bkGdW3V~7|MORn@KTuBH_vl4 z$@Ch-+751|UTb6;Cq2Ba8h9oXth2+eV%%S0`gl~yeLpE+$@y=99gdsnEPG=U@C&`w ztQft2wTE?C{k7B=%-(y3m7>)T?CAsguNfX!E;J*5jeCHkm*kCBP9$-Zw7Q*mMtsFB1{~tUVpacEwaU8n_0n z26%Upb7x-`>c(->@^nmeGeiNPMUZ}xb+F=wq%V?D6+8`d3b$W*9SOV0b?~D{o9#$H zjm2G(<&b0YsLuB~%Z8u1W9LYtQMG>CcRCkHlG)rg>Vnm0Xp}=(>nx(mbRfU_)0aa3m^T_*5I zO@?hRgwQkndLv&C-;`EsF1F?61!Lk7)BM)vR*hL?@i4ijOocLNUvg{Qx;yi0&vZDN zLnb@7;e|b83wvC)+ZrlofEK#$4w?@SS#tP9m*TddqvjCtJmUsB2N~&hwMWehlTQHL zILQ=hb+sxP(sTT@@v%VL*H>AyZeIJV?9x*r*JoPEtqpaTQ}RgDC8e(wD0{z4yfs4{ zQWhs9mjzEKL#)KvJ2BlG+)`nwkdTBeE`O@(Hs%hM@?)1;Fn^v>hpzUOt+9KlJu15f zQaH8|xn6kf=v0bl9TZJ|>BcUsN;x*lia?Al@9{3Xs~=6JIl1(L56)!yjm_`l`|4al zTm2Bf<4yzxK5!MoZ@ig6XyChcmU(W?UDKOJ=9ZUu3l0|I&J;BrZf|v}u<93ScjA5f z6@kix9iD5wTSy%-4>@X#?6JTzCsjotXfK_?^i5l}PS!PS55IvWli?ag6C*L}RWH_U zk&}=Jjx^r*K(4+hg__kArTw)o`FB>fx==6fn$rHqm`VeILqQOuQiU7 z30*s<8s0~;;3LTxbE!EA)wi0B#_FTt@o6B%ys>`6t53 z*{ux>vy^T-4UqO2k@jce%5oqBwilb}sn=@ZoefXD-2FWFeyyLW&SsNadCAIa^B~8< z@<@O%XvHm8Cs3&^I>^>c1QI>w111nC?m=9&yglz&S<=SPrN6Pvf)Qt_A*%1z!-Pba zq4Ay5XafSAk?eoma6n~hohDWev8?PD?1rg4wlFFtPNWA)kwQW3n+5kc3{X@@iT&B` zZPyHI+#_7ZRvlF2p$`&6z1{9)j6=8!ot4Cx!^oxKZ?+xI%+>5re^1ogaM*MkWURAM zc<}{v3ARTjr_yCab;lWQpu#t1!k0;J?(JE3POM=hrrPPsVrl76ikvU5y%Bu;YbsYj zt+Q+?6I?^7cee?L|Ld@tDLNHa1&F*jy3S6RE5pxdW#)SDiuntIsIC5 z4lks?^^$UZ#`^rd&~xY9$_B6fho2bpZWY8S40=ofZ}@wnLG3nzMsE;PpWTX{tY@^o z9cG9^9Iv75BEy*9@Z0I2*LMxX7Z22}tB9k^0Xw75QgzG6;3(2=&{}dE>_wyN2E;$7 zMyY08n;lSexsY#otn8R z!NKsq=3KY`aIV!B?IHnGID}#l5E2kmva=go`EoxD{W8puxSOP;TU#@;IK_Vk2MGyE zobB)2_3mzOkHadb$+RZp?e@#__R4paOB&|iCUzo1JEk(6ZQLP%15gOSVr69{K0W}% z@c{@>2V_RNvp%`j`JSgBDG&J~B3K*xrylO2I5|eh>V&_7xtK~j5C2694ZtukzyowZ zE+k+8fGxiKy`31lA_P9LYoGu?Wi|jwJI``Lyu`m)dyzrv8u@chKRzJ!X$?SpfdMl) zzc66pn|$$fj&Vv}MFd=RiS#K78Qie%E=vd3MMQ08UlfBe5=%|EQ+^lK%d761J(dw)R|8`>=oE zxz^!KuRh0sWzN;epB>8w7pM&X_G&-p`&czmp#pjuzwD|Ap`vw>B)p`U7dZI4v-x-X zp6SIn(xFib0fjQOend+9$^vQ)pqs)h`*95VXmOoU5Z?7zpKmj^^6AjUo~M5q18^3i z!asR-^%zllEdOqWR(G-CK3bBty}tqIksw`3gq4739ssum&QC)4b$p$0`$sI`#R`M~ z%%^h!pxG1e*YZK%7nr|FK4~DKfZC`365Ra(XoFF&@i2#DRNKFa9G?nH`l|mdC%#dU zB5ps}(&m4DY5sbd^5xOXIS!tQx3$^(J1O%&niUf_GmLD+LCn}Lmi@Dg$mcNdR!F!k z8?lRWa#@SCso8cQ6Pa3Vm69CUXVl*v_j@&E^o}OIrUmHQ3?%H(SUjA(t+-czf=?HY zcfg{pe?TZW3j~ePL&0n?B)9_Dha07`E^5b;Dq}0u%}gH&JIo{lW-M!NQba5$QJ4cg z_xdag{>^y0tiHohU2ChcwF z8X-g~tG1_!hN9OA+R>iPnwSiEq0!wLsF;OkC zN7>K2wJ~Wb4r6yHBQa9B@t`nfAxg)o>=B`P9hR>pz$m@9%fF_qic+x4Z@8Ft8yR0b zrZ^TJP959=q?T1O6t0z2?eSP;XcA^q2hwNdDwD?7PBtnPH`sb;zMnZWZI;gAG=aok zIrX84H(IVDQl%rqm_IV$pBxal29l&)?H*MAtOlk1eXsAtym6l8x2QyVj1~}1^9E9H z+f;bY5|Pk-d7}@%RE%ENaPKuu*KEYzjV+=tj@!2*`12m! zsA`$>gOHdhjTbd;q|B~~IhUj>AVd?kR3|c%a<$vw zH?58`ml)QESyZVA7i6$qfuEiIcAe5?1gtuEseob3Y0J?--jQf1Sge7c(jU2dB@)zf zh_+Fa#sKa|Ngxl>T59RC^~?mpdesD#uxchjlnaZnV3lTx2|9Q4MmOo&`?EBXai~y= zb2%;~n7z+nWmT7r9+)yvc-j8Myz3YK^6Mf~Y^T(Cu^T&~?+Bgc>%1mlE;eYn^H%n>7i84=`CVijN|&%%Pw5Pz8o6%;cM!YtOFGjCrocaRd-@e zkKk9rF)1yfVm!;9dK0+7xbO}l>}G4{e0ME*3(Bd@=8WTIQS}*QWuch5VfDtDA?OO6 zidqA^$Cq)mo^O+Yxt_Bg=>dz7=d!_3B+-LM3h~Kh3rF?tHkwx>Z#1d)Mq?W_Th#OD z>N9dQ8!;0~plKhRKhJ4;=>w}?y!o=br4}<)13La)d)*Oq_^65>3x{q;cV);<@i&3m z&adHVnA{Rj7Hv(}ZEZn*!7PHReL|(q%DGyij|}_V%~Y?R8_T>5x;1Ajji!b`1YIZ= z#B>E~e}NFlU^O%2kyB{X`7&=mz>GtQ*34lXzq9dpo;Kb2L#a2izgd%M;YAqLz##Rn zuKr^Rck|&VO*~Z}vcajd-R{2L6CPal{fe>mRN7DMT6YIgQ?(e;vfz3@{AV9tvCM?U z@CEQVvlAJpMx9KJGPkZ#sxJpr=>gHP6wv}2Dv%q8K_}6?5_v>qJLDd0QR!XM`H#e+ z03F?#CrqrZK@>NIBFnBe3jql?QpdM*IUp|lv|(Y}>V4VoHuH?>2g3nAjX}dL987y( z=_F~kY~m+SES#|?w^Qx7<2#(|{CQMcE};@BDsKd&;`5vt1Qp`p;USMsbqns0l`$+J zEzSepR@lt~JYnK4N8605I(mbboLsK&iJm*#6Zg=&?zQ03m3B_4b#qppj8|^<(0d>d zJS8LUePD*A*e!pKO^Lgx{(aBUi}DNDP5POVB6K(GXa>$6^|8(CB@E!rrr1!|O>gTq zoMVg{!#cuS#T{2+Bj)B%c-3)k$xJ0Sh~Y({5|aa1swOKYx-=D2vc2jk-D-+?OWmcHCLU$=oH|76`&Oq!-hi^WgaD1P_1i9 z`D*9Vb*}l&@Z`}ls=sCZO-C${Ox@3UiNJ(^r$=68W-iQH3 zRBC@p{p7||PF^688VlCaN3}+`jP=OLlUuEQ+MLVk30DMdhsq|6gnDRgOZ6-Ka2De; z>v!^H`T4B<#)VgfO@Dv}9mV!37H;pM?NPWQC;Y0MqE?^7oSsheWlI zgGUZ0v}_i^7<8yTWoNWa37jCP>c8Ss2W6TX(mjXTHn@_ENV2qbggn>{w@G9LnKSH{ zD>D@Dv^qQ`=n+4U%pxnnfHIMV+d zCZOrqXnd*bGmvskI%aOQe4z z__iq;AUDW*fLHrVy+Q2F)7)JWL9U%+==fK+;Kq7!k{<&w@7F!i>dKv1CeNwpZ4Awr zJ?oP=%o&x!g`}C$fNsDnBh$ELon~09Whg&d>iTJ{XnOGs71o0e!XLe+M zA&KUQeiOHdH1QA{$m&oZZ|opbaTyV?T>9>1DB>C*_4~L#>|xaD&{^*u4wT3}PI{rc zq01cIoVd?pv=o569yQT5Oc7}o!|(oln|u=tw}(A7B&h?rCf+HH>n$-5(p(9~t0DDL zIE)=eX(2?*ibK9*lb4u6-+qWt`O4P7+~_zbfRP{FIv}%1)8@v!V_?y-X+b+A9Q5{o zDEy3>n`yBHMBd`yYdKgJ$XWh$yq0bj-&@TTWhVlf>YOg?@mlHtMjeNv()3R`qd<)_ zTh@yO)^vXA`h3G?%VjIk0{1*c_~$E3A#QhY^P00j;)FO!T?e@PpDV4Q{2Z#bqy|Zm zMyhhHw$M6mUdK+dOf|5rTp%JRy(SdJX?Lk3vW7dDMdo?wKJ#`_dZ2W_M1SbJRr*P^ zv2hCFb%T0ZUiI;#0SXZs%bEd28_WP{T2>gf#R);)z^py#Q1)G~P4|juaqlmM&xCe8 z-R7nCVN1)Xl~TeML{WTwRx}^V1M~0wWs%=dCQgXITh@|K3HiyWdYr3BR1U|Sj?=ke zIn05sU-%YNsyQ5*Lrce}QkWa>X&e4~x9h9j_W|ImsC8aE#V*P&d=G%jpsdT<@g z?Jd=5nHyZWLD5!>*;SwCFXyKhL1-v8mq-m;K|x&n;Xe4dG__(4X>s_SF`qZrMg_bx z3`AyM{h+KPzGbQm5xGG|o8nH%myl;#K*)~=?c@f#jqza5Z?3J6gSpy5<}i^_Tkpn$ zUS-?pHQ%38J~aOy*3E)&Hkw4Qbkz`XvBLh;wNiG;poTS8gP9oM$41qoX{^JyA7H?a zx75iBnWH5&Vvr$>#Qjht$_D)$VImrog|{wS8&o;mMj!SCRJg-<9FKN13~0YPqgR*S z7`v9j-kZh{u3DAq(`BbQJC@ax4z+`L zMJC_oE=T;Br}E>`3YzMJ@y|>YB0+A7C+}LlMAvHHoVccOh4Pj1FirJ>z98*M1RNefRTAzT_XWNBC-xV$CnYT$dHk7IbDq%`oF~lJbL`O5zHVA%ik7VUAix2^XlInKPzIQPBwWqmb{^d>CvS6-sfwW5&WUSoOLRg zfem9ogKa%cZ&tQ&*bNp;F>RD0G$n72g;w5YBXg{+eeDO3V(AzotVBKYe#oeXRD$jD zX~H<*Sl^3wc@tWqtfVAt_2$zWhd#(8Zai+jA57a%Ww5c*}Aqg~GZe^+Ca4aZVr~Pv%PDn5r z$8NyzM&Z)I3am%a*cBIA-ObV=AujBWB4%9^%58FIe#$)EAtV*K6NJVsRgA;dC-Gqd&neddr>5G3yi={w;r1;qCT4m+ABW9{o0x4x z95%8$hatu>Ch^|a`I)YA&Yz7K6MV znKeR~&}|FeT8;mbIdwdU;M8Tlbh_?M5Q6xuI%MOMf#m{$acP9Pi81gcyRv4 zNPytehL{c!8wG1-eJ(JGP#RB-g&Q((N^lAz#j*%OBza1`@(y9tTeMx#4OxroIdvf3 zMcK`&BXN(|CdlP&Ok{z*7-p<`c$pQ+Pxf>nE!SUW&>j0r&u?2CRdVY(QjyU-e3L#n z?iZ_ujQWaw6ZEs6cMIUq8*eK8dkxhZm#nKg$l6W~S6Y)NR&Nl}fnFWI(Wr_DYDTN9 z)!F*`XlcLR%Tj;NCBBPlOtQwFGQt>;HZ{(0C55Zm!k|Lem)nnX<&H#ioJUNA)qOsZ zU1J^<>mFSX_wGiLeRbB8|F(rb3DCfcctye-gcM%fH&|eZMEnEOq*7Lk8hdXXO3Nw! zhHSB=v&~T+dI$iscsbQ)!D_=dG`uxUk7x!{q$k&|od*ktE7l*Ic6V)oi07IUAWris zM-j4$RsFX=!uHqo!$MN1&1bAo@;btg%7fFzJL@Pj`qq~7gUwd9LaJMW~ z%8YcJ-@8Q#(c=ik<>!W{QC%t~?Jfr)vj}o2={4?=Gy#}R7A!zI8o#TWTR+G35w&-(lva3?!bCail6rE9IaKC#!>u}zH0eNn zXUDZ-pMLq1j|UViY6Syv?A42cWHLLBPFJKPBQsouY8-#*&o|tCGq}H^UVo)4?%kpa zY_tkt->s*CdpYMMLAtwxig3wdXkFSiM*UFo`}D;0R#q1EOPm$-?g^qu!$vp{N3COG z1ebwPWq+2vnbE{oL7Qv#YN|1vQ5LKmN6BvhV@7j~mzoy(5{e%8gtwf5{> z2n<&K1>$!dilMM+V!5NwHA;voN`yMk<~&=!`P_?+ZO^LeG-ihsUPQK64Nsbd#Ziv* zM_tCRS7v$nx?;n8=AJ- zN5NkW`15k!K!^8MMGF3$-ZG&15Pn@(e(%gszui*IlY)Bwk zK-aeDoVI!|+XG?vBnwF9hBus*CPCYNyT(f{U%+J z%7Co9c@j2G&tV-m=em}L^AiehgL@#rAk*`@tSuDq*q(V^@^dQ zYIUp3psvI>^*QTW1o@~}h#YVR>932-Hn8E%by`YN6f?zLcs)^F6wJfm=3p+2IYw-A z2;&XkxbA=sC1%Y4wJIgN)z!w;^g4HWZ;M|-`Z^=;v3 z$92zU^Y5Ert(Fxc#EF+665UkD4U+H;foOj@z1`% z9^-$tuW|Hw_yZZRMLv&(Ci7Mf0y+^mcL+#~=I&O=xc&2lqzG2rfQPqK4N>x-n_IwpwSvn%7YnXe+$b*If=>0W26@uBDyD;t+T_ z+5=&tHzFe$K3z>&R2R|RmhF)iigs@JxNtpo}rh%dx&>x+9K6xK^#YCrv1880KDXjbRts~l`z&hUKi z*!V)6SXluCw5Ozi4En#j`SI&mXo=Eh$ z$qddp#z+-7f88T1_lVINR5{1O=x-*$2R4WnT4*cXzKvd)qtOHU;l;t%`^s}@AbmFQ zFS>W`X6Y?*Um?x}D>qyog~}k3#LNz+)`1#Ap=oJ~mM7?tKiusQWb+DdJPj;B=#c2y z(U7dDwz|rsCY|UEC8|B~IH61_I)yqi9oP*K<(gTQsIj^IRsvKW(LiU`F5jv$b}NYW z3ugyV!{UFv5+0UTR`_?b9id9y4oFS$e!&>Sj?;0mTqP*%SxEgz_W@4bjUz@bZZlZI z*rfLz)lJn?VFEojG|;BeFo)8j;^Mpcx{cONxgMm?yje^nc?-JT?_XR8S;5hH;*&a4 z_A^hSBK`ssP+}ZqB}PBrbZZ_jVCshJ+w5*OA)IICkT8{HWsD*#I!3XR}!Kc zumKy3Iymo={&!Vo8ajMD%)RF=@oh*KD{^Pduu{g}u^c~m!u|BqTv&-P!R z|Ig=ZMke5Xh}jcoWunjXz1_Q`rhxG+pOkUwZ>J>+wIwZwBA!A!x`577$1UO852O(4M-I+gn#x zw;SKgO*c5Jhxz|7b`EWpXzj91+qNog+qP}nSZUj~D{b4hD{b5M*{$398uus6XZGF^ zF@l1lA2!St=uBk0&^}KQYLCJ&fPEbM0~ebCn5KUo_~d8PA)sEwD{!j-sCfw595%G8 zh=z9$sT>!G56`fm6nfq%aL}K^=0|=H;;RD}NPywjf8)F2XB`USR}HSQMU1m6V2_`% z{lD7v2^jbprOg9LPvRC365ay~^3hS8;Oc+1YeotrtlYcHBcg!Dod0Uq5O0uqT{XDV z;ODcK2reJciMJNGPjoZ`#4u167L<7B@^_CuQH&hrbRQeOZ+;FhOnCd?ub(Ds1A9na z`9wqn^giN_8C8&~a`y@_8)A3ya|BUfP@p5C;3EM*Wc0_S}%Q)M=l1*Il$dmIP9!$-%+J3s$B%mZ+k@0X#i zRHGfm2zofH%e!nz|635gA!vy33z97(fj-VNYNES7W6S@7LgM~vTMM|K_#hocWD#F2 zTlws0bdCP`BGC5H0bi;`0rgNoM<);u#Db_GcF>?-Zwrl~f<6BC`2AzB5=0ARK&&S~ z0r-Qld#738AwWJm_4)ik{?9GXjxHjIKVpzi^L^I_N#Vjhg{@#qs8Bi+ier`Y=BlB1 zHJEc31!%K=IFqUY7L0Q^i0c)s50+FDd(Tzav2Bw}_+OJNafB_$dP)u_6n&pHsw^vS zP`P)E)DCMbL8#>R@{FTN-}2`f6p|MXX4%E#ERtxQZaa%5@x3SB%2`V4q;7Z+}hAQFDvKkYDbqca%32zjK*wfJy2Z_+I(Pi+7K+Hr0o9I5uwP521!K z?59Z_Efl+2ZYAINml`W8_dQG!KNEsY zEKV73y>-&+jJE4mcSiE%T&d37&nuT@b&$dNYJEP7p9ypx38DGlvKvj$;_sPUx_Ho~ zbw;ie!DdiA3#=2%?|wDZYY&uHDU`|R3OhDyzfa|qetW}?2?4EI{D0^HS)xH157CRY zs5A4Xo(gVX8Kp?TfvLgC`;kY`JG_x~dYzZdli{6DBnH|sl=1nrRV*t(O}&|o!pRfR z>4nB85~CnBc##XKwqhA4Yr{{NHWPViutJ2k9q=f|C63vK=n5~J*vFvmkf|R6Wi=%s zuk>rT7NC_eP}uqFD<1n+j0B)X<6U4N5_L`v_MIa>4JK9`x(^=$OsiBiD*l`8NBtZi zbHS;L6^c_;BBM`=QgNkR0o~f>xkZp~7Xe|dX=hS( zR_H3*Oit7u8m^1q!!26LpzLS+0q;j&x;ER`aG%09@p7`_9#1E{I8*mJ!tA~yXBm8! z_ysQU-<*4YA>&!8!tMiUcr|;$CSNX0!fVyqdn&fhd@eoDm|o8Fz*u8pitd_kK!ky; zR0s_^U^jGlB3z#EkmA-^-kwrWPP?||w_P90duC{MJXAs&tzp*V=+JH(8%GVFRhat9 zSy`H`y2Fb0YhlTD`s4}-k0XxJ*ygGJASgFiB>aWyd5w(6NG>`paMi{ZtJ;tJ6n4}M zWb~mv+F<9dj(d<3Tz{_x;|S9`_KciYbA)*8xg%-dIabkJK?Cr#X*-pvJKM-^8FYJA zCbQNTy_Oagm{*~CT(-~tjaD1bWxg=1+NPD$j|b~BkFqR8+r!Y|HV{c zaOfyCmbp^APAj=g`N^0^J#CqgHPyRFHi||tmN8Jq`8B?-*a#u31ZC&&=2h6%A)9|y zoU0aybGw-D57o&g?Q^+LO`i+&zpvmt|8uj7un&B=PD|mS)u*k*N@p2>U6R2NQ>V_nJX*i}Y-_?b*hw6Ip(Y{ezG~bCMMn@` zoq$t;%zR2Lugezc1V$27MIS50e&mu8D(!)iw_bB-R)E3+e8~~wH7jL^pOPO$z(x*f zPkf`pt5)exv4I?PJLnjpWy|`>I)0>zo4u5NGO#kisl)AQT}+js*;T_-xs0Q>h4(~F z$zRb~(b?=iXckuiKRx)lP|sX_`W9ymG4@6mT6h>}t+II{+z@;IR?CO2 z;WrK>m|QP;DlTysZordjA6q#ivRlW%@g8N>nhl76xLS-b5)Wpp?rJy1c-4@Et7O&> zKbUZEBU{0v_@AErAUV82=A^12r_jAK_&OZ!uFasT>-Euk z!a6u2=E%Pc;0$@f;d@mit?EHDuB=!jLCT1S4cG%1oTRI7@0n)VXcx(J9sTbL_ zfs<;#nG%$d0D70^61%WK`&X^62jp8XTPHNg-}f;bSZ!ufT37EeDI-1O%3(7LtH+Ge zYF8dK228P(fPd4$X1MHYRK5wIy8Mc|3YOdMtB^m4h@-4AmGx>#t}Jfxn^^FrbL@z=yS`X-Qoj&MrpW)+H61H}f#U!Q%x(g2k_=RA zTiwoOUOnXA6Krq2uxJ@rT^f)pImY!(du*zqaIio$vU=Y@z{%yS@|E*=%Zd^;6hMG8+)3yj*R@G$vPqd zpnV%e{&I~Ax8B>da%*X@`;wwM(Xxo)f?~-J(NjnLhu@p&D!{?BmlJlW-o-Z3njba# zwrKGgkugve(`nOH+G8pQPu_PoF<^GRX%`d-)|>I~oOZ#9Lx7%3`BnoJT*^A5Bi#L) zWV;2MGdX9AVgcAsb&=;w*3L0;U5)Ct@G8;rIfGic?c}U48gABhg;^`4tprjuN~{7K z`pawT^`v%dLnZ=uqUm|&0H5X368*1K+Tg;=uC-n1z5#2QEvmxeG20x1Lq?8BWcc3X=TyD_XsH4R+P?yA1OmCF zEz|Ng_;##=rpA5$xSpFI4WL;$vWn;%GP+f9IanKD`Y8+A{{|E7bXQNe&7 zSdYU~*w5%Iy-ay-~fvwF5Q zdc8)p4EM#=#3Ozy(4%LTk6F}rbL^|j{~1FF+o&?6 z=l4;ddC^Kpc;Z;srfQY6J{ zynM0rtATdS5qKN{pL~N9NJacPj44A3=ZEY@HQS*^dk--r!@PSC3&2l?aqH5$H6`_v zkppJo^#n#jZ|C58Y^EOMozY^HjJX{3gdXuM=)8c=yrJASRYaJfF!TH`mP^INo=KF- zIJ{1Xi?c%y)x#hc$dGD$d#G_JrDkK&9=<-{v2C=z(SASM9waGP8lR_k59BJ}0VW-t zF!f!vsEON^2rVE+fy$Cj*J>)}zE(T`k|8oPubE5VjZnGfsoPo4Y4yRjm2>lO#SQqX z?xE&e(d6>Wfo!o@O11q-$SkbhRMSC`yxHJOS0i@HPa^vXls>eSry$oWeq_R*{;D41 z&=pZ@{K!&V^IDz1^M$ZkQ3d$!mOEu5n11xInSJ8JIiFcTR1+aiY;7y-BPSk?g-k#g zWPC%U^G6hq)ie1&jAwXs|D~+6$$GbT-?pz5TDg?B`-ZKSTd|(f@#Vq0`O|cf<3Wqr z`&YGv0Th5c_2KYYPS)gNYkKvJvBZ#Wf!EIJ19Fo)hJy7RG17ZHR4Cajs{=djwUCmA z;#g`msYv`_&uwxAVu!P9 z=FiNh@TJ?d55iQcb+Lm~u2YU-`ix03|ARLyxGzhU5ooqTd^M$>$mGGRW~48JzJ3#M{U9FbfN$Fs2GLMh z&m6LVJL{JYbK*0+e0_Wn`jReFV|FZ^NE0Bm81mq%Wk;=5on&z=rL&M@D=3#KPwu-7 zzkNgveJE0yeTIQu@^o7_)br_{o@XybG4hei6R@fA+e#DxbFA7_gYJAuLXJQELvRtI zh26<+%nlCkN|>(zbT~q&UZjR*f@Qk8$k zkb#kBZ__Auz154e*C!yJMLRFkS;_P4aasC&YCk7K#dyhRrl7T z{q|y*3qI{gLxRuTAx&1v5%mngX219(x#g-WKOR{fa}v~&j7#L~c@>{D2V>PSag#_T zYrue>t~u45V!m(0enqvq5I`94N2^h+m-4g_-%bO3r%3(_EBTv)r|LdYkI%%;`Ths9 z83*)3)+p*ALQQoSttg?#AwjNoH)42K+ z?EFHu0Sz5jI0I#+D=MKb)@@XCW00C{BtWmtQ)v2R(n{c%s%n-n@O7YxEHa`qyd}7+0U;6EpD?Qu4|cL)J7=CkIBI zi&s&fp0qGXZVoNyWDoH^6%9}T=f!7MmN~QLXubC-#y?kXz{<6x#$B`aw6?q?ecm52 zNiB>w{D{iq&s9{(wyt__()%km`(_7>pi~JK|1u-b!Q1*c>&9qiSHGtKN(i&j_)Sx` z*48AQvHlgo_uOsPdenNR?RxwugtY#9Rg|)w{zZJ8ckSA=EAN1IhKA=M2r6xUGr2T$ zI={eYCf@d9t>gNbjn=5mFX64~xL6?cXxZ&>bt(kOttlU`V3E;}l!WPjjUAGOCq5N0 zvRQJY6>>KEsw*x&ktT-_o3h)MS}^Z0kfqtHGNIC|3_RYD)rXSsD7O;^%1<~@Uh_U* zD`IRo`Fu2QdmrH+)V3>W^qymmL9ryodm~Qv%I$R%P7q1^&ZaM&bxTpizY)8rhmV6N zH+N~w8Be8HWl&~J1j%XgU1pt(y!AGjfv2>)edLTRE^`v}3k)PmK8cOS_B^T`$bafB z{$qwxj)T1f}0+Smxl!x3~Bit4TU|?`u3S%Xlg9!N=-%9%amStlk|UD?PM0w zAJ6KgCi(WG)77vvew1$2cgZqUCI-xbFbm`;UTs4|(c}Wov;Vjy6}I%jmB-CSW-Rl| z)l{@7^mP$q9?fXI^Aa(aP;R^Q>&vv||5H;OV^QB&Q|K7f%JKGjib^sF(F9ul(E1yX zEv9`t4Nap;rX&`iRLSJMowdapo&=A`-NOM9KnRm%Vsl6yIF{9g^}-$xgHLhEZtS~? ze=vQ3%A>1O@cxiJn=n~3G@T`a0p1;_nMc5>!mKr+A*ZOiiVU$vNS>s5^hI{JhT@^- zJNe*xpDH(>>Tg_6QAa<@9O;K}Y>Xd_5zn4ax;K5{&3>qn2Z<5Cv*8x7K8o3;cNLJlo1FsQ z*`{YpWE!o~m`2hmo7!m2N%Zs+@R%Cgj++J-+kKpNoF$PG6vrlOSF{xVIGTY@m+rgq z1lVo0JANLZ)Yc28J(qjTkrtZbkWzL!1sq>T&s24Xhv~(=#5X2Hzd!2(E4Legy?F$Z z7$L$v_3DhcPV1d$6ZGI1Tou9KOx-}7RMVI4sBK?&CqMoCSS zp5^=apCk7kw`d>Y2H@pX6QvSPQa*furN`1Rxe)OD!awdI&1M346HAS7a=t>z}2v`r%aIfxJ z+s$#+7d)b%<pxJiDCnnS#Krigxqe!QKOGwdGW zZ1Y>D&D@3W0Mu{tr}gfVPR@{s#ex)DH-o##MK0G$mYE}Xr2w=Bp?7hpP zPyJ~Hr0x+a9bZv*f!QwuN|Fz+?=(##62x7GJ3}F3tgnwtJcs(r4t6IY^(S+I*u7EX z20OhKh222Ty|~)Bc>4+$i#<7b;@2NH0F}Y@pT9lP+G1Pe2Lre!j7WbNvgTW%j*1M= zw0_AcnF8+U=>`d)qzk_ai1OpF)Z!NOg?EmP<`aN|Z=mo}72kqTB(LE*aHg%x|q7dr#{)61`xp zhi)G0Yug}t(-3%UK3&E%0O=X>tD^~JJuiYq4pQyP2H`4@=Y+Y^^Bp3_2Kt7EB@G3W z$U9JQAuhQ`6v@lf+NRGBYIqZIFQw-X+L|T@CeGopidh>CuWJewW!2HIZ_)pV z{;9(6g5gSnX2^LMXtlt7p1DDlu;ljn6H8&(4nR<{^+QSKdv#z+-mZ=%E{o6Iq~a!s z3Exv*YUITuf$Bez0hg(YsHtiW$^2Q9OqLWltsQDo>|xz#Xx2Gas`g zq;AT~FN|sP@{3IO%I#|m<~)rL-J@ngiFq|LJoa`Hb8dJZ=&_O4Z5ci30_vs>F1fB* z2-luAn9kNCBQnl6=JGpL2?{cLFT@=^5%}Xth0n9b5R`r6^KW&nWHLmyq{@qs=ZH;g zg32k*&{?EsG%Wl}rc443&fk6!;Y&WD{s)g_|6e?kjr0FGpP7j`*%(>>7mws(WBdP? zK{x-$BXw}uWrHcV`CP~5sbVGF|N9Cck!hsh6v?*clmJ)i?d|PcX-P>b>9O#!$2^W7 z|C(E!YBt{0+|SNeHwSTTcsu$39?7K%3=!%A(%~Tr+*n!35DLW0>!Zud+no^;!;RF= z_vXMtUPQ3A4h|9=^&=5b&4LBy-#ihx7w=TbNGUk6OaOEQ3Ir||DEya~7f7FgAkiOu zFh>m7xqt&nCV(1K5E=r!%aD0;5RWg1c!m9LjQ#fmtX{JoB!GlO7|*{1v>3mC76}#! ztpFxyGXS4}M?2sOc!LoZ3hU9_1k%>a*BHDtl`(_D_%hy;soLD01SlF6Wjwx zumA~(=;>|$dsppe|Ciy$UyDsJp>J;V@ivH|P@NGd;S@1^Z2voYEW6Ka;Nf+$9^|Jh z6z585$`EL(uf$>aPru3i8|at6en6k{&#&um*W|C<$FDaLxQ6#<-xjU^`>%j~0_gD0 z;cb8fRo5WlsxbOXJKp>+{4(UPmYG^T+3@nde-Fcc!Ps*`n6`j)4(j;a$k6W?f|F7} zdoUdvkt1xjfbhqv9`8$ixZnT|Bj)%m<|$Kj_^H27ypDy@>sw_z@6H+_=J>G__`bj1 zjRTyYZsRY1IPX6Y^LKAtPjE0`A`6QI$de)>f<&Nx*tho9G{e`vCxpF|puxR(ssM@E z9Uz(vmXli>3^X7|nP2vAp&%gpO#cKV!hp|X0ZBoy{_plLgaUuseu-=6;9pSwm7p(3 zA6oNILPe;4yH`XsPuGoKPq3ecd%l-ou7H}~BG3fP{_8iyqhmitCePtY!KncfBwglXO zBd=$JpEQ@>6LZh8?bT*X5QjJ6eb2N3(l}*fZ=Pu^L(IDD^}?>mJv0@r>sr*7^9=Ik zQ_D6@uUzsEj;0)0#9@YcDc4rldsF4XKL@Szm=mJ}v~|Q9uFjNO$qUqHzne&77DTg5 z-&YIUfE(_TkQX*IO0Spu3B1@cdIz-Y^o{}M>6v|qO8(()U*3UZky21l?J2~%=v^^a ztucSP{O(Cug~lCkw>lFk60PeQaU60N8xFO#xwkEMVZbSSHJ=3US!;6HHoMqLj{K6w3{rr7!3ofzJ0nO0H3B3 z+Jt^!R}}D3Eb?TkeVi^!Yof^IMR}yTn|D?(7E{EbA=a%kgeJ&K7l8uZTevVr*n7o*z3Uzg4Sg#pyFIvgy} z5|ekIjMdBF+krQrFZ70C1Ktmk5;_0RILNmG@u}fU*)|15vFU(J#RleNLKPy$Ham1KY%57 z=$Y7UPx+4F8;uawyAle1=)~lnIWiC;B3=)Iut5-`ITF8mH?)iKm^)q=@lbcUo#NiX zM9WoTW7@9y&+X=_I2_HCaT3$7wN%yrb18ZCohJ3Z?~qK{Q9yNGTNxLX0Q*_KJpaN z_7NFxo;@P+-oKMQoHp=L+XBNu>%~T;5f^>fwFH`_-fzm0L)O_jY!&O>sGd5k*XoZ< z(HL7u7{uzK{B;FFl;xTgQ3U6A2dM+W5hu8$GG(83#OteKU*A^wPqF8XGlzluRv6a* z9rJG6vAO*H{^|;~d&cQ4Crq-s>Thmkym*oRKxmchp>%9Gnik}?!b^l!q3ig;+h);y zR_v}HJdtga^aK?7GJ*mg#U-G6e(W%v#&@>Ybrq~y32=cuv!G9D#BdKYs=5@H>8F@V zojGVU`^9Ifs8wE5w4blCDyA?Qd*0Z@$8+k-)+vPVd-qNZL9W%3djBwBY%_|fv%32ICgg)H^c2-84QB~SM>o%A9A%}1HzLC$X=RQ?WlfpQ!We@q zHLmR^JFemzla4I^HD$aaVY}h8`k9ig37BZa2eFVDAXoIYwuh_EL*cpY3Iyv5sl+A1 ze>mF?-H}ewnWptto00!o^NN!59cZ{jli2B_20glT`YUSqO^NMP6lV-`CXtMrc_SA? z2~qX(OnTWnd?%m#4b<@dGO}8J*wqJA^Ml*Ge3Jh1_FX2=Cvpv>aO_xwynl5w7tS># zdcjbHE9CYv67+r2>nk7d4?3_@!e8RdG&0!8%x7tcWXn(xe=04Nc#O$!4UA_J66XAK ztxe}YkHJ?;DVZ~m1fdHmn@Op*OH7_zhXB^7NKnyv$+?wEhaoG_L?@$~ccSkmSspbP zjR|26qa?dd`HRJtebutbT&+J9+8Zw^b@~m_h-b6~2e!bd~$6a#+@ZB)I3R)N>19_DJpkQa-?U zlB^XSDJ#q?|B(tq6i?ads&cq_>ZcF5{z0D*N%t5y?qJ=I;>Jw!wDZk?t0|#Y(ui(+ zz;nj1YgxHURbr<D)LL^jSRCy&z!_AiGivdetSLVqX*&B^)WDIfD7Icgwc z%=kNU$J)m_$I;E$n_j2v3Y}mtylu0zId7zqT{?6o(uT_BFm0q1;^I(6eu$xFlg+WrvK*HF`iSM?(lkiG>ck)K& z6^vR?`)|M}O_M#HS3GM6))VR#bEb&fM(Y7h6amxnv;Mgk%B0w%TmB1e0)fUv9=7aP z@~MF82U2oE{V%;GtFJ!BoKesqvzw+8s7dF_011)7?ScH`XG0$rSOb>v(86^Ltb&cc zHu5U6`8KxHSBxg$=7HCRwfC_5E*IQvc$8qS>f7^!{4piMW(>xH*``-e$GU~o+FU^R zp1nad_i5z$#v>{~AqN%W{f;MJ3w+~Ms0J!JBS|5w(cp3M$*al5nzy9my``zHk@Ro9 z*miWceaS1^1xZ_KpZi`2q2b;VhRUoqo8NSt{Y)ftvmke~;sC};{mBeUSu}p|3b*+h zew7U~*BxGR51&G$_5gF9YfM86^%u+XU2D1MFQSd-as+$`%qrvzrv#sXu>^VHDv7*| zM^=5hz^%Q_6N=JbHP2X~?FEeh1PrjOq)oQnt~PXa*sV*Lh1n4eEJDZTr=6|Qteo7x zc&YqCyo7$6dc*GnPCMTt1KY$87CGatu7pzNPuEbF>~o&RpOb@c2~$OSano{93)CMU zU-9sZEsZc_RFPo_`9ZRIH!?k^B;)z+nRYQ;KJrFlHnLm-Wg+QYTx8Lo2en(N%}y5L z$(+`UBJ7hts z%npKwIbNPlr-Q~S6#i6(FdY7=N7K+Q`92L*c8QrHb}97mF%*drdoA3Lol&$$WTrX% zGrfJ99wASjZSF+jx0;#@<)L$%QMK5UI3xdlqr?r6FV$*g56HJjx7=~N@sPJ!m+sQ* zObZG*-?t7vme&d|M_mK|>40mG*hK+>GHF>}8eNWTbT2WM*&wmbqGad2EAI|~gyG8% zUqI~w(HxRPOZoQcNo}VeD=CL~=W|lW2&^IOow{ctT2FL(yT?05bt_)!2AhE?GW8{g z?V~O#j)4dKd#gOx{j&-Ep0p_7U~xtI7#Bvx5Wv{{bh89m#0`({`^Vu#9QbNSPgijF zuWgux7pvx1Ldiaj5)XArv>xCFagE8V1|GGG~O(CYN7{i;MU2Ja4LOqT0yiCc4N~E-k{1$Df3w?S+Be8O7nZl(Q zT{G7F1d?kf<9L>Za?})pUB?otn-_gC=zmDQ13^L7xb@}ZrAP38S(dbO*k{TEO%R`0 zdj&a*WT(c~9+mZwOaHqa{yS*jGCcb7F^DQ-`?OmbbEVZ8YLakSvv&a>fwt35RYRnQ zvt(N*-|6YEWNp-ln~e~qz7L08z;(DX!#wP&B9pwFuv!}wVYMlqD!O;Y2q_biC?u3% zs*f_0Jhs3MVwazW=&G<0G?NVpO|(=h4MR8K2-HU*9j`B%@|j4m8Dj z$qH~CfE$C6F|_5!U3=0^8nQ+gg`3FzU{2`n``AZU?n=}!JIuo?EBXlV_$O+jIInS= z;$$`%?k7jSZP9`I{XJ~CHHTw9%KPcC+S>Y+-YpTsN!%EUY~s#I|VF-O12nbFWBb2}a2 zOPjWVv7^xE0D$AL87$)W{ATSYep_nMZ7@Lr=Y90|6z$tfB-bSqf6z1@qAaYx2>XOa z;x;%>F~J;J!6n4Y0be7kPQQ;})9|j~VoH~EiotuL zo~tCe%ksl|-v6Q}c3N25QmEpxcQOEQO#wif89z@Z{y-JBFHf_J_ISSSdFBN=r%Vzv z=*_t#GKbZ>QZLj=kQwj#&MO0%GXXLlKr~^F@gq`-nOk2fJRFX{PHIP@^{RAIF{uzH zUd~DFkwZh*JKiL3vT)>1?%QA9#uy~07sp%q$Gt{-vY~V&{vhV}el-rSMqZ6D3Knd> z-IOwdH*yV)C!J?n=BYrL@St#fSI)5P%&==a5mzfO;4b!RIlzrR~sqH$Aqy=j&zani~kQt2G*V9YwGq7Uix4&|HiPC@+`mZshSvP zAfU^y67#1g7W~^wtlyq8`j>R|5(-FJ*hh}7U3aml3&Ed{e-al~w z%{-$<%6(%I|2K}Z=1?52FIFn8EpppO;qgd3Ucmhj=RI5|JluKfxs0Isgu_9 zKEEv(469o`w~X$yd&(6{1mgPge!N}K(fx{KuCP3-IsqC((?#%y08{O&O;xciBDB!T zQ)*%g$Efa1wY5%2Zy!Q4_53|Vim-J&@CT1ZI+sGM@M2Z_KLh2T%ZIGKyQ9O{=sZQ^ zcyrr&1j*zMhy48w57?PL*0-({x%CVB0eC6;D$$0-T zDq@ic6WKSk%6as9%V1wIODPSFeLLE5DbQcZ9(@T)L8C?YZT$SoxCzTN{?!I&^Wv0l zHNb*R|6j8o8bX(ON4Z?xcCiCb&egIg7K42hN3X z;pt{?@*{_ecsVgvJrcpvH*Ce-=RfZ&Pzh;lA)Cd;d~fos(5-Y?DU}{xkS5L~!5QaYI!1)|m%PD>ab8_p4dFCE%{bz@n`!+4_e9lu`6L^XU=3hQL5<9=+RRm%&b;KD>=-+3fOV6Al8NPwSocb}I^?@Q7rEE{9_m_zhKx9i&=PLy8b z@Vo*(e|dU6r2y3ZNGahp>46u0iWE!ch9;6K%8NQC?Pzs_*=&dXI$=$Pi14EX=EdG> z4llApF>-lMRr1|ibV_i!^2j|WkgvzA+eYT^uFnSHI-Rox2Wi$wouITcS1u;w?6$*gmjK;n5<9sR(36bfH}(*C^Rs-E zYtNl1I3{7nJuC&xmHVk8E2-Q_)4^g_-vbhUo#>Gn4_r~2+I97M0tUKJR%R8W^3n?p zDkm@U4Eu`uIZwOgAse;5^1(hI*>0xOHnG-=3d)TwZ_)$5ewkN(WLg-~hP4Vc{Hzoc zwl09-v-ee`^-K+H$}5gFiF7Og=V9bdTu#g@s8U$*zh)O zdBNl@{L#E^>xz8ffo-6+i2>RN$k*$gNE&(gdE_hS)hde5oXwNjzs%AON*sxCl8%vX zX-v%|t-t0@--;*pSp}&s>%PbeEFx-*VbOuTHkJ7pyr5aLIRx#DE8@Ft$LXupR9)yP z5NQQ99>hT;sP19E&7bgww0sqF9>t5#oY~b#mOT` z1-G$fr{}2wF&?bd9xuW3s?;5*o9e0`3gFj;Fk8tkRF=rx6o9#AMWP;Mdnbulu7BvufX&DaLj<c>)IB;wh?wcBW2RVHbo5;v%URtQZ?N)fI@%%4m0 z@sSTi`+~VNha$yH_Te;8V!KJFvBy80qKhQbQLK6QuCvZRUhWOGCVKyAcHb+ zt1nGsI+I56AedR7#%49~lv5)f#<6iESYu-?l{xU0{w)4}?01+>oaHD_RX~RSu4u(k z4=ydW5r5ZhaN0OM!mj3xfa8Fy@;QBoWwJo2R_w}M@ z2S@o$bmZ)<5j9zQdI7a&{rsF}YAkzxzQ@NmNwO<*(qWNRh---61q!q0T*4ux+}g#B=mS77S;R%^if@m>Tfby z^X$43ZnYquee;F#9RAB~AhEG7`l%Z)73?;JP#7H6jSM`PR2Qi_ODd4f(4eb|N!_HK z58T{k&)=MPjV_%V=bBiG_MVES8-_7>8m%(%K1%vDnD-_RhZNM2i95EQ2HRT9#aIUe zP#;oHFyEejyh75(ROG&BOqy2{^7rO4vbM;z0O2lYKWW(XVmHyfoVUNR z{-OI~>9!^_Yot?xo=6vYrDscLbq((zsS4E%i*BY+C85#&rT`;w9>sCraaWxMadA%-P4v4#r(0Ke94AyE`$yPenmOF%x~=i1 z_Fwf6P#Tp*O2lecxv3v#-MqDms5I?C;+e#lv=r(zT9Z97S^I4O(m(orztj{GTfa}i zQz`CT;R7C6Y1q{|9a60vr&WH$>pI<|@1_P;TI6akn{?pabGz@%{G{M8?l6m9r?Bu0 z`$V1L^D_d`R1`aB99$E5+b`$UTj`>cGAozFVC`?0d$JpX`^$5Xz%+kM}?K}PhCJ!{Z z@hQ^ZE2;&b8(=C2s?6MO-s8u#wE#9w@|(DlGoiRiaSM6B@5jB0n$l|07==Ca(S>`( z+#JF9+9=bDtS_JIZ0Ii7LbA-x1r9VNOEaz!EA`KG1F8a~Sq=^5V^?)ASTP&^Sy zuACP7k>hfop?I6j^>mF0ww~7GPGI=hDA(M(+ka6&mAYAkbeHGtv3IwI(s8E*lw+mb z-n37bd48htl&~mMr|sKAmf42(gRqqTS$@lNDHHX8eBx_`;oGYkZ*%+zHc3vYN@_w! zB&*@pfRB-JHbJNbdu+hPjfDIZF_k+7X(Pto3R=Rz-A|z;W%ftRIYJ@C+gpU{AJfp_ z3Tu_?o1H7`s+E9bCrn$AoxZ7_ZiwXP(n3&MG*q&GV0tVW_gJc-uo+6x^n=x&*C&uSbzRQ&$ zMo$x@kB7#yR}iyWT9EYSPlnR=aTShoc~(1#m99U0s76ur6rRUQl_}*;gXvvzFe@2+ zCu~O7XY^(bnuBQN9hX@~8tg~cBP)ZAmSDnnX~$oJ+#Qkr3)}OND5b-$`8AsKJOGg| zxdn(VkZGojA~UCYNM5r{nV~Uy5NBGvk(chTLXN9EBEP18EBu+SB;yI@BafaPU+o_u z)qp zhzvu_Qg%P8nK0EyLQCCgW8(m4#WJa;zH0!V?hx|(HY8}M;b`@nkNr@0afSP)W0Gg-E-B5`UJV&R{ zpE;-8Dt&X}T63$2sI8rQl^KUL*&Wvs%& z5sfzS9DfPne9xu+%D@b2z;?I*e^0BL6`$gE17V?nqX9dvNnL?IoCH{1+2H+J_pWvh z7IJ}ISHXVIm!u7z`=7*{wmzObQk551BJy5;Y_ojm?Y^0LvouFA$+*XUW4C~$&GePM z6J??Ry2YT+&h)+Yhax0o3*%8pJRSv?*OeJf4fQ}dHn>d||1U`)NReyWJ~e$A#e#e3 zyVp6t*oq>X&`)|;EUw6hj~gTuz7XXy1L zH3OsB!8_i@3Z^yQEd@975&B_9pY>r=E?e&1WHU`6FwMO)coqO$|DPEO)1N)##JI*@ z9R9x5kUqj3as$S$ncq-3RD;NF?6Hm$hYNf3=vOt0E(2aq;nyKzH=Q#1Rv)<~+Agc5 zYEk5Z-}1u@DIflhYSlNH>^(n)+&^5qzLyXN-2`?%*ScBr(Zz8}dFyuTL(P)Tlk=$3 zpY|*)MiQXJA5?xT$~uJZU-B}=M(;mam{~&dyd8JO<#b&O>QQfq==QNeH43FTDlxM| zuac}4W!g$@bFhN{4VwlsvJ13IYh-wHdQc^3qZ8_HXGLXA1Qrz;z^I3X(Mdwp+_S@NhO4K&ZRE;IW!Tj)Zr;xkW zbv@;`*VV(0CpXf3xXkJ;Q13zo#1)$!J4Jy#uv zaeN1kUlj_6Z4l#Z`uO*akz2kUb&VHD0-2oQ)*f?A?N^wbI+tDmGu2wS+^hl-zH}JI z2DdEQt^x@#-}+N3ZB3kiBoD+dkj({k-+2o-;pa>QUV`P%#P zFLxH<*^KUWK=KCK?d-U~y5-saO&dI>OdWuBLg$_taaIARkr&#vai^iC@5Jq=WOG;cj5w9$(Hs(obkhm@k!&6Xt%E_nLq?!n(!FJ{82=>8 zlssaHba)ke*%8h_)IeZ{@_bg+wphDf7Hx zS*05{!_!ofIHyi#-G8uxS^Xbl=M>{f@Tl#vZQI6Wsxi-m}pnS+J(e;@xZSAv;^lZESlz!ETw;#Rh$4yI->{QNL3 zuFhsgb}*jnu`S?=Icpg7G2J?jI3EA5h~0TfkgeH{ZZP55-D?ywFqGhK8^;$xM-MMk z^XsY2j~}%gbhYXBwwmUbH5)>0X?QzzDVqjzMFco!vm?_3BoN7JYbR$QPR@?Cf48Eg zmD{BreqcbRlI2q%5~dH6a=ASTM0L5H_rbk4+#At{^lVNLRtEbVzOw(Q})79pmWd3F?61Fw`y@+M&f8DL&B| zROqUXRv=InMxDFhXgX>w9UjoSA+1kA^-6#eQ{-xA7dLccvyZ1|gBE93LlAMBaSR<0 zqK^hoAjT{>loO;js6PjsVzVRI_Zl`X487p!-|ZuXZuZrYB>)HrSPvH7Wo;l)dO93O z0vi&DCl_8pZ3W0b%0=)uocbGUAo%Ud77*te=TF%O?FUC9-)X!lEG=zAaWeSWB!MYx zL!$@Ke=8tXb@}wPfG~(Ic7iYv7fySh)LFn{xKCAgKX(M}+ zt6{UFdjU5XYXJ*An@x0M+Blb|P+*;11)p^aBLpBV-kt7@&jOSm7+}vpZ=c|{mqN?z z{n-ufF2*b1Ydqb+|11zNUd)A`Ce7eo|K6CB^A)@kSkMA!c3~p!i=#I#9rYHG^2Fgm z2GXBj-jFhIS_V~6zz27CQUHw*6V`)h0DT|g@!_rgpdT5Al5${udjj1Mx}_De@DuQD z46*(hWe|?o_yUII)MFWsI&k-KbHkX7>7^ASgrNTu`onDCE~aND7P2xG;QraJAPsW~ zeQR{I2h`wv_iu6pM92Ib0dD%OzWV}ye*HwK0fxTo_rHfLpqhX|!G13Hj_$t~B0db7 z3}0=`uz-L3f^lBOCIx{20`nZlyGIS)Z+rip81GM@x{GE;X$#ID6`!6=Qs;@e8{dhkRgcrzO_oK=6)AUUZ z2%oH_={qmdQ=6d~EozSF$s zAH&!=KL9C-=gs#!J@ygjub;Cw1 zq|eRIoiNYgXmjEV3aXUyYcB`QkQZBs<6FQljjF&DA{3RX)@fO2~gnzJH+2c>bowTS2G zFwhqmJx$wN9aR+xEWr`8yrDvc9;}tz$`_yAVj3<K^zquak_FIk9Sczv7%a+WQD6>Do%=8x%ckF-DdVzwccsnJeXFx#b)nqd`A-Ne79t71G$t_kj6XCV9H zxdeER9)1b=p_82{iRwHrwXjO9r8J{b(da7H^W&P8n;6()fHNugwL`N)i8rke$B758 zqh*$jUew3R@h=T6?WRo^!L^KL28fDh$<{h7j1%qpke~Q+lY4AhvP@h({WI z!4Bh=bm+0^@eA-4H_9TrD8j#)iEQDtf$s@;UwiR$&h4 zycH+ZnE~fz6ZPaQAO9<+H)@YofWb5u_BP+g@hX(E#TnqVQ+^>WGPqHWx=7ujzAP{M zuIGiEG{gI*lemCW&rJx4!@>T2sC42~{%eA%Titf5p6grrD{$vyfhH@%B(-K=R_#ok zZ8YIv!LgjU^0}{+s|UaT8n)!B z&Ndrs;6>9w>x2b3-J=$yYKmYO{VJSk%l)AQFa8ioA9~5fm}r_@hcxxc=S~l@ov{XJ z>~K~_1X@k7XWfFp)vV?tnQdw9ew(8-*eA5;>k(Q94iG>68`0g`!;O_+=bRHLMpa%D z-J{w{!q@ZTec!#ypJpk9Z`3}@;eBB*H8dBXY|tsygbDJzY-= zfxZQ&N!LsG&^sw+U76-mKx_g!&eLhKw3!@My}lVQwAwd(T?xAa_XKWN$QcS+RdP@vWC z8T|@I-5Q!C%6ZO**QJ)Cb2*xnL1*t+x%Du&j^xyqCxOXr5wGri4cOoR>`;7 z$hweoM#B0yEZlF2#k(M^^=JNMO0D+nA5f@kE;Tsj-%`xu4{}tGV-H^V=?zN#Rqb2C z3{kjf4cSI%{9Dckq>WhAgfI|xR@P$M%HXD>LoQ12DZsSNChrCR7 zhO$;w^7o4D&XTohsp9P?iY@y6g{oI{m_t9#Jr*U#E#BQhI6MfT_J=4<-;MC34?wB47t zLJR7%caRDzI>WQKL}P4YE!Lg6!JVwjNwQBp(z29KGO-os1z&g3O(T$+QU_XT8X{#Q zVlKq5oN~Nku|`zGA@BTA4`X8OPj)JdphS+_3+MfP#!_#)G&XNf!jE7Tw>JM``u2YD zlxz?LcbH^}u;WM>$2px2wz>LuDz63!dyaFSiG)fwbv4ii<>+gMw*p`N*Gr}WX)9q`^zmdx9 zktw@8IKGM@g|4N)PW0MsI$Ob>+$w<74o@n5DQUh8VS@hvx-H%qaXO~pLfIe(*Rv9n6SSWCr689CbJ^Wz9!mr zY_LzuhF4_qQfWbKT3j7u4I{v2Q$|}ANNv>$s`8RF z>R_+^i`gn}_PuINW?tKp2}&xdG$PW!XNGuPSjakC|Mq}Kt*!LM02q;=9_YKu7Rl_ zyJN0d=NkO{35_tVRs}1YfI$!A_E6CO^2#f^-{F8)UBkfkJ#`}0vnyK)JrKqz%}?0r z`{&}4PXM%6Kg>+p28F(xz_pVX*kV^p`t^^`bODKyw2X@AM^BTm@dBdf*VAssC*>$D z(s@>?N=9w8coiG`Md+Q{)2S*%?(awyTs(QuGEj!B8;_qD?w~E6wxH|7`YHBezis`} zYhttu^H$|;wGd>kJxtyGYn5q9C?=ni>GWn~J&0Kh@Dvcyg|IlP@o41GHiCbtLn=v* z&kg6Xa1{M@itlnGE+(tgb_B!9OoM!sMCzpGO=>QCkAAUna`0mM`fdEw@j7iRF^G*# zOV4{Sn$V;Dk89#{fkkM>iR77GBkX-;CmFrlzxe{6Jz5$}Wmz>$!X10E1adqr`)b|D zbRH-N`x@3s-n{i5MiG3!->oMdm5!t8$AkB1%vD>7nUbh(<`rULW-L7YlC?1YIHTW;s~et z=Gh!%e5o0rdm8^H4U^=%E!X~E$snv-WUI*3YhgP2ZFsP~U; z@V4e2mdkzC9YEQvGBOpF-|%H6j{NueD+F3&iCzS|T=}cx{_oE~sgdW~dad>+F^fy) zp~!X7N6WGu#;`Wsy%hfb#8tpU%_|DY$nRekMM4~b9-*Az!(9Gt8*dUy39ssp9USE?>@GZ3K@b+{0$h$j;@LJ} zsolcVT5d*6kHw&XGgCfz6faUoL6_{UIjLBUOhWA+WUQmf)mF}SW8~5V-OlIt4^y^y zotQcU9fcS96)|d%JO;yHXR5W^gF%8t`XjU!lKGT9_cK$3M3$>MwM1Jt0Pve%c*Wvp zLlLx80XxVETj0BI6Y>Uv$*Lr)?r_~^f*a4O0q*^w*&wXq5>pCeHUTCDW@t1qTM%uw zrx}zO5cD{xAs1V{kQDj>WV1qFs|byGq=;w5{`l% zNGU+}ifOt`m3L*^C(hS-F459b(v0=Ta)k?0<~_Ew6Cg9FuZM<{%uD5&9v7GF{+s`n z)(??kziicev+>nbo=5g72GmFuG>G@Ecz?uywjCU}?h6xHCD3wntDTrfC7KojiE3J2 zQur9(0;cXS9QqzyB_3}Kr2fLi-Mk1TT+=4eSYg(9&A3iUMmtJ^KiL#0RdTPA%dVWN z3r;kNno=2IIrevz3<>Crax4QhG@t39nuJ~Qse5!7z#vbxq26=8?s%rB59V_@8!Nyg zxiu3#iTZQIFU*EltVix!BHKqL;wQU73d;P!wr=N*rxnS=b=20gIa_`2I+_nP4iebe z@*EzPsUY_HGQSd<504(=?Wx%P)&J^E_2BD&r^HWEENFR5O)e!r5YnerS6c>le#yPId~1{bgDiyE{2*Imds zVz3L$%&DVPMcb)hHm)Ldjej}gDF9f4DVdC)~U868QELSTP?-MoIp!l! z-CCrPcwEf;$YH)p#;rE@Qe02d%ilZx{+KI{sgfvemg0pX!P34fG7 zVsxF6W%O=WpXc=lzC)J#z*8E1UgDnh--cC=XCzlGaCd!5bqnAU&~i}}8tUZV2s*Mo z^zaK@QI}oT#Hy4`V2P11(~%z8onb{{DX%YDC;e)F;G;eGHv}d$JGfaUY6I?!N&L%H z$HOp06D0Y#=9jI{MatEIo~o>L^!g{(6>Rw7l4MEu?WhCB-1w>gl*~0vA+yG3jP1vE zXlQdFsdr{gTDu(JM88_D#w7A9&O5O|n*1o!qUF$1f)~^}=KFlN>w;bII<+;gX95oP z0U-$XoARxEh)v}=oaLm8p(BXavipTEBj4V^AUWV3A(h%CRq&t>V!y=V@UrT!RAjFa z+FU#9jk$z$D7ALvmxc3N3z&fjy)A+c!lDVonG8ob3Kr z?ExHFw6QlZaV6Su~IQ@>1ZosG|P8Q*;=7z855f`v-})G z9jPl7Go{C;wZs)Ry3$60N#;TG8082>H`^C>XaNR6_Kh>k&ZRNt+Hv3M08^GVK%pTi zB8c~sKueL-pqg!LKVC+}K-Hiar)b3TpYW=er@T(SBRc@A*f-aO&)1tp_k=CpkNm_T zZEp=36{I@*3Rlh{L2(BYnT9c_k|$)iJknY=5u>ZwmHe6LSAm5)A}bNQ9^F{U*q#KF zmV@jOYec;3RBiX}mJj!C8+p1FC=agzmV0HRHuo46E+%y#_Gf`kir2}YrkimzE?ejg zFL{gkS9sT{&l8G&34W0ap|z5EGb~o_Q@1F{ZOf7JOqaPBhR>?)fwo`>kG zy1(_uNAxO_EMEjex{*}Fw5;#9rxZ7~wDJ=c07>Y=3N z-}7Y0mx)6DR5cDjv%cFSA_x{4fOw_M3En@lq(T!lqRo@#pRMWLt;; z1|c1t+q!RKbCb~qy><%->OkXcHZw^|y8Dn0S_AZjjD9K!O(De7;4F>-pSALEoh-d6 zmPB8WBm>UhJQ*&tW8MNQQo*3?F9$tK6>8>D$wSjDPuVDdwamO^Iu}Mqwb(Zdh z00RX2K^`g&m7c&u|9Z`Nz(&zsTINI!kARuNq2F&?6>icQ&8pes`s3Mz4#P$MO@OdB+5-O0czs+k2OG)qGn$rhm^+8(x^tv7Dl9dkS|yFbI%>yl+R43=&YDYTpLb5}cd;?-@*(3#zk&X)2lLokydXG0lx_Y~79o-(3&NTjBG{pN9 zcDj56wCC?eD!goSIa1Yc-z-Eq5{?&!Wz0XYu4HXl3j0F50^m#0{Pi=|9hwQsg2lsP zS2!*uaa15tn9ZZ*YkmifZjtTzjw_5N$jRm8j-b0y@#4JJN@_J%9Mw~Q8E7ybhfp-A zt3Hv2s<(w)6Hs@^#L``s_oR&LCNVuAIF@Eo>@K&H!g?VX6|HiOLH0?YyQPRcJ)d2K zIJdtm$RFKSM4iENZr^43JKR<9Ze}n|aZWQXW&6=)^=CP4n{KcM9}GAEPbRgc>pj<{JuL1!16Ichx(5ptN5mq^*I`n9V+P2T1xYCLZz zQam={u*SVL?2H(DLY&2>JPOL#B$vj=*f{oXP45lfu={J(MS0;XF)Lqg*pc^Unf@n3Enb$F-@4|L zM=bS^DgRps=;v~HRkht?{9-zl`9gaqy54!=5dG`XX0d#gTKu zjTBwgZ4cT><_;rOzEf|u-AKtB|6n6C%-6XqIJK?R3XMmi1*@30=D%Ydvjn7vQeWPE z_xHU};YGt~9T~Lsw!e+vgJq(fADtnxqTFZDbPJc{+d%Gf#7b^6qCsu5N1x$3I0cv}AubR( zoO(!7T5%Z=cDRJb>mzc;U^uG-7+V>c^Of25*>+)(^Ew{3EJN{B*LB=`&vzYFwS`JQ zXylHF=^@n-a)~%Wn#+k$i_p^%j5YSg|LIX9R&(6-?R&OTy)b{DwjI&jT~oP>Dp%U_ z9+qX~zk7dZAD9w9T$K+6Z>3TYsk#&OYh`KFwjtxM`?hxK@0q!L!8o@V#>SDy;b4uq zQ3DOT3|DW$Z;YgCkyd}6I)Poc z`K(`lI}`PGM>)!1pLktExHMr%FQJI1a8=a?j3Dk8_jea(j&6k-ZWmU+>W>j@|3l$4nwK@&^q9b z(EPLU*~+DGPxBd8li>@bym+jtzdg4s(^45Kn!4D|3kz>WJ`rFOZ{9Z(AmX;uYiU)iux`+@bxLEp?cTqT__Dk)Z zJRJCVVnnyXTL1gxcjw3TgLYL^Q@3hCf|R&$>qlSxwFpfJf4xVp4i^_`&|8LTeNPcf z#m7dxtdzzq3NpRyY7?n3Zbwh%R=l^vYmyRer_rpgk0F4nKn^NYSy2QY{Orkf#)ak0 zm~06FXmG;ikEU?^Ve0T+HS+Y6Va&+ijJ_^KovJ7x`40QadSXHj47&HQZHG%2BO?PP z+(j9+zJRF>PF#%kUj^z#&T776R=VS`JKVd3i`$BS&9q(B?f8PwbvZvO>X*4gfDmIt z^O;LlaIZcgW{JPu^)H;M8U=2g?ge8xk3*&p5Y!7*`!S&CP40&nht-Tm4?&Cxf3g&* z+G^{^x(Jwx2@0QEo#1rH$P8BYg+Dj*-CyR zq`&s=D8qwKe`Y|G&XfeLn9y%y4*sz#p0;o)Qw(XM%M_KT`nN#GQLG!=J}a0>F`d_xLon8kT53a_?-4PL>V zaCTS&p^{^0qh(bun55^tk%pf$xV5o=2A6Fq%UKOpRa`W_B;!3#8^J2Wh7$M#n3 zW+n58-Qzw{Uyhf&c+!-rIG#^r^dL7%<3JEaj8%}aRbSVi;;OmHoi%LfoF47GPp^v#YO>Llnc&)>3QO zmRjWj)d$`W1QVoPU+})q$?g^7_4(9`WypGtiHOJf>&-AO(_$Zz6+vajQ8#xbf)Z(- z9ieX&IJ}yC%zji$^#JoDZCELQ5%kh_*dq#ZC#vK^?-SgFHeN)kw;V+VLHz)L022MR z4rkN}Zsin-1yJkiO|BAp2$7oI_d5`xf@<0SS}3k>Xr<(;6f>%=4$j!IU13i{DMyBuc(uHQ3Sbl+t;?K4at|uJ60-z z9Fb=Q?jSYC$mrxS>()iQ9007B&B&vrXVxuLJIJhk@-pp284e5^KuqFvJM-toK077W zy(|Xo_Aroqii31#Vaae4q8;WC!pZ%z^#L~f)=DctX~U<;OtYo+pg-jMg+U5KhN$$s z1{Djs{XCJKw`7oQp=oM+e2vTn@tb2Eny~G+Wz0u$D-rs%hHm$MdKLzt~ zmAbxC0>z{h7FvUsbZ>F?-FG?RWADJgpFo6PG*=CB%V<$s7v7<#4uz_zNo)2IzBOUt zm}HxsHhRM{CbpEy$(zPFq)LdVW*C*PF@z8o&4GA^S^TEje7T_yi=WLhmk9-qJ2P8x zlFYEzM8S0L4R59%;T^+BdQ!xL3VL(`2Ryt{q_P(-_O9KZJX;=j^soLyC>}*E({EIK zr|iVAOG|Jc_IB~vTVDD*?bG`YG+;TUQH!SGymT5GDp1E!fA!DXwU>;lK$qalx6K69 zGJL1B?1=5$&afNEDm-1ImNswHcFgH(XX$nv-@<=HvG2Hp&07#lf=Q5VK94o;#Iqi) zW31cnjClpQxp;!uNtz6`&>gA=4Q<>WN=h-9%QAG7ZT$W&k(Z}UY$^x`M9e(%cI zBS?Xor+9Dq7+=Dxs*c8rMQpZhyJjrnO7L&6k13kzO{xMv+;;KIqh0|dgdKgKk)Fwq z@Hm*NOyYetXe~u+F_ozN#5;7F1e!y|MGmQ584x@MjGS(^DbN9B0niBVUux{GCZZF# zxNRh5Eoeg9Eyj#;t80ljsW`l%76H{t%?DQ2br0O3Tvjoh5XSM`2D3zTRCaSRM7zeE6VckWw7SN-Fd&RC9J-& z<~*oty`&mwH+=q7Hez@ZgL>>(y`4?|717HfB>cm;>Z%}6iZOG#kK;zcaY4#2e(2u1 z&lWvR-NSla>nSla0VWg&#is{oZta#kq8X%8Ku5pI6|~&1jFGqe8c0|$c*>!+kxB0J z{q%pIQqiW`JLxM6FQUB_b9U`N{N z3WrCmneBSO#WwhWTm0snO5AjfuZsfEbUnsnehOK{3pzT0bEu!$&yah!n89HaD2*YL zCH{RuOfSy*cVhwc6`XUcY^k1Zf+50X#J0Cz2it6rS!l)gp3x)?Ye-8VK!UtJg%C!K zjkf&wip(A31Y)=MyqdH>t2xbY)?SF3^BG?}z^tqp&j>qztoGg>#F9v~PK71rr{nnJ znua@2&Ku^*_i-h*)5dW=9pZ|=30KtU{e=|#B9v@QYLUSRF-dsYphn?3$LqtQ0}Y|@ za9&{fy{_e2;AqIN(}+SO^~jPuwFPK_&mfhtynS!TfOcCXl&k;e(eV-l5AWubQMWH& zPCzhVdoel#Gx114RjPJY^fPgJ+T|u|@Z_etqN}E`trX1<4Q!PzPF#C8@AzD=Q3NJe zWs^d`8(a2Ssd*XK$twXc=sxe0pU7B~%pbexD|SQnh;2ixTLglz^PVBLPKO!ZSE9=> zN2R3mFVt}6t3?dgvpqJQUyG;_<5a|L9WQb0wN3hXKIWgC0t*%YyK;#fZ}A{&^t!HW zis-loaQ@m+P2bfR{SUx<(N{B%kyFr3DCSwN`d2>hk1z@9{-}p>)@ zeXh%Ei8lLwV9ND$*=^mLl5#su?oe~I>80Cs6GS?Ql`7$ipyEwQ=Ah!hQC?frRju%4 z9wlcrEFo~d_)BJYwKVRXqe%F?hW7mIx<;B}4vRe=>Pr7%gqHS7i2&~`$?Jo!laOfC%uEfLWG_d!_E@2!Sf+J z{3&^xaJ7&g;14F}D<$0H9+!Ur#zC(6>7*k!gqzFVZ!6?G;7vRs;#6D6<<&Cg*yz)!Y%p zGp2#E1JfdBe#b3!s;d5N{@T|9_^7q`3p<*ipQ?%xd_cnro%Uy8^V9{91?S6z_846p z$W~j6LAt?bT0(IAi`$-`)E+&psMv({<)%RtqMRkFQi=ien!mzkiIiz*#GCP%k=BDx zaGylLlM*Nh`o;6X=9znhT@z;Z8$y5Q@xtr24K*K$M6ESY+M23-?wKKoPJ4a@iLMf@ z1HEs;eQ=XI*`~>qqKh7G)U|uC-Mn=F`};x@RW21=$i@MJYE`+eTvA*%Gir3#IsMcI z={OhEc)d|FyK>?&EAh?%eor%)`zU)nvTX^!MC758=8vWLw0gN_#9w8f^e7+m*XvX2 z5q(*1ls)A0my(x0y5uYGy#wcI8cX3mM3K2m%1Idc9RMu*CCQw8#KMbBiE_&Q9)E+U zAMtM&fRZ9b;U2)@R^_Cq=f_#b+cEB$HGDheFvUS9!|`qUlY`*RO1Afq_*O5Pzm)wp z<(BO1G~6%bi~eK7a$nVCwEhG{dBvh*#B8pw)Id3cW{wf1w(kVWLVQ|PkNvfnQ}-dw z?Me}<8s(IMM3Q)V^W>y)H+hNQU7!zpSv1E%_~$3ci6hEbgO#z)y?=5 z2>UQH`cJ(1>vJ9g3SL{7B^Y7kR}$ojaJKJw$l8k2{Ek>_Qj3O>6v)En1QNFPknkwb zR29W%TRoL0EI$&~k>9<>9~7}L=0AWqaM?1tEBPvcp&xD3wX(ar18K5%q&XJsj@W$oJ@~E zmkqnq%-0x9!~P+qGV!Iu?+PTq)YS;Vcj|^|wOYI}LH*8khGfL-iHyT%zb$lm9 zNO08{PHfDH6*dDKuE{`UKEcn-J%x9Q(!NdbxNLWqOTz>*<7dJXEc>zGBBxB#c_|RX zTcE+90akh2Aunw^4=^CpBM9!%D8B@pwRt5)>2!LHx`q_MP+2v|rIiJ2=X!wQ-!r?X z*^E?ZMMEq~6HDm;zkVf7ok;Ht?AT2o4vG$YAfGws9Wfs3{rgJr)*Lb%tn=TJX8Lzo z7O1=qgHqe$PD_Nr{%Ym>ue2b;9Q%c+n7W2izz?RymA#@!el^f6+>^fN+)*2vb5m{^ z`{u%UU0V`zP(s+`99z7SPRo13!a;o83*Lv1=+m1f1YYaAIx+1oL{ZVyYkiBpGC)M^ z2=E`3IaEWn{zo^t>gGyW1FZsJOP864a;+Xr5c`p_)eLBO?HMgeV#Y*1dEBX$5q#_n z{MInZ>Dn#XhmPVrb|0%5kB1(va&!l)fy&Mwut=R#chaRxf5xREafzPYh7JTP>GP)fJ9%0zv1(cxms#*BpxQ0I1zdp~cmF7a6g)J>4IEv%Y zQ9po2<6&Ibq_L06LYLuA7WgnmPbXi?!Y$%I?dz08o@A~Bhglld+PPrvHzpl-hr#z0 z82EEE#7}3XN(B}7`-mZoM%?(nkYSm;?0w+lvJ);$$yJLafU#pFB5r`2t7!L@ateI5h!l}yhYq(EjC)tnwwEds$IM+OW}bpW7;UD zoxdt!ZuU9$)XqJ}(2x3T{cbv_0!D3~0rVg#icBPi!9J3W7_xuK9e+MUcEwAcBa78? zb)WQ;HLe$y_o(0UiVr&qVm$Am;D&iF43dE7)iTI4O(N!#dhdQ9p|)`={@+pxE7N}} zrLg{AwlEtP`+sB$vvV=A{eQbo)ge_?^qNbhpnIwG>d;Cl3q$68Qp?b+h{=$MphFc! zB#@ENODc)fx=4au&xnZTOC%E+#42fs)bt;1Za#K&E_&ToCipC#r}CO-rZ&+FVaqU3 z&KWcQ4~I|Xq?T|OHWD%Gs6igIRpCA}v1|i76fiE&~=nulD4`i?~FeVxvA}6V? z64tE1r6?=N+i0Gq7ak2z2QV=^0b1av_qYBUs?Q{N^c~#i=$D7n;Jf+=&T*S@Kll&4 zm8BslP;h7pFA*_0EO3D$HML+~2hvOPAwa@{A;T(cj)Qmcag>!o>!U_#?mS3+D8LW#YxdXc*Kfj7<*>PTL? ziHu@c9@c{up`hzmxhETFy665hZp-RyL?f@nQfJHhb@`I$!>vu9Bbcm{ z#oVPesA}AD5DKKOYz91?UIy#hb_5N8GngH1$&CAMbnqnm`_d%)cJbs?nqd|VKKhzJ za>I?(3-crzK6=^D;Vt6t$$rCD>@U+L7PpwqMK2%kzr~tcz zs`*LjHQaiQa#7h)l*PIZlQcOxN-*|N`Cnzutm2D%(|O+5$hkRxK-K%#+kN5za%Xi8 z4CuMI3YK@mUS!Mv=t{Bn0nXM^_0~%ay%fQv+n>s2t#TK2M!`J`+)K*1X6q){0`gi0 zw*<#j9Z#8OTz>KOX|Otv9glph=e@t+<#k|93+myvtj(1KH*|%*J}(o-2UGL4?q;2? zUtqbG9|)-LF9GjoZZyK1qt(O!qk=mb6`8bnd9mLjGcf0{Px;<6d`wH26)8;SQaGBu z1iN!Hvlz3Tb?gt`rZgc-?#qII>3uKWhDw^U-%a0ae|V(H%glqoY92BSzTj}d=1e_? z+5s8OLhES@3 zrIx9Bt#VZJ*NJ$NuN6IMWORp$i%@A@+scy+${T;44kthU)+r1%Z{VKRddr*gQ7&O) z5Ip!OBO#P$uHwj$J|bke-XvpR@D)Qkc#)iiz>UUw%`v{c-y0lT*b>GsL~{Ao;XkO< z`@#=dzkDyk@6z5KXzeuA%^@mMUcA{q(Ogigz3f#;50seeNIhg-B8jQq|6KsRo(UY3{uP|fil_UIFT9_wRl6W~#Y|A4PVSaAaLcdNocGi*Z5`+Wir2JIK(4wPt zs(M`yrbn`q3&bvefm?|+75^(=aB;n|ubiX53ixdJayZP_v2e8Y2kZ0%+~liVOwPId z{3w&{Giaf1+6F93t_pdJrOFbKL1=bhT)FYmRRWKQWxSilhEwkiBgO5P@4#MDs|;nj zLwFr-I6(&Ie(6T}WM6NTSH(8OA*;oBt)5vo99XX9SD^P@X6Up88W9COFh)G85^EoY zpAOkUQtIjQIOY-`Q^cY$#49Yr%;qp_Gk~Mj{#;EWkH%r`U>n$WtdAxEGlL@)YSR2E zG3zaPHQheF23>DtK(Re3a%g}Ku*Cl8a|DiY2XZXf>x8O#+heV|fTH*MW|+oI3K7^p zxY+F5^QO?#gR06kF_?oDEhK!>zKlXyn1Uvk?Y&gj7E=OqHNwNv2gXAcSsxuFSu(yW zrRjxLTdwcX5;gOSQdEXUbg@G!C5{bcb2q{78gk?+Uwx|jqALOGVc@*DMP%0dRqrVh#w>>3}{J;9}oub4ZVcnj{?~{V%JIR+6WNb3bpDwwD z#m(PH`R~FdX0e33p7p1?4l}%f)onK9tGH(%W8Sx|U!>9_@S#2b zw(ZDUi#3uJ_(sXy&7^3RB5x@%{k6&?SMg^ObruTJWnqI@fbk7yV5Xdn1oeyeEHX?L7U2I(i8laZdc(S%Cc(gx)zl}(h-LtFdV#N7@cmr z52WeLvN(-qEGYdQ+%aK=DC+cd-5bND;+6?^{G8-(3}4Z-t1y4CJ%=%eu49sZ<*&l1 z=8qA#i>X?)aS-1F*xYtG;*PoV0q*SC%N`B9vGJ;rL8ZdxEu{}3-|lwT*pn$?iIkhn zXL~Dn&m`Yz3tJY*S z<(58nu#VBh%<`Eom{o^FEiVl-+qGp3at8KL0sE_AI7ADZBmu20n8TTvQvGU2Or#6# z)AKf;U*eMIG6=A;TGUdFgtn$VT?PYeNAH%{a;GS1+du^<_IC-Kb!Q)=s^ZjyaIluD$| zQ@HN6tILm1Loc@yTj!x%iA-Rk+Lf`f(_p%?_IqWOG_j8L2vRX;rt_gU-=h|8ps(J> zC^akgn`POW8?z<6Ae8Nk)m;^L^vHZPdnQyxW*vGs~%TY^Lx{SM^uH4!MB6Ex3SuBmW6vp$)KJNv?UTCv1G}5Xn56&?B zk+K(FwwM^m2dS=6ddTeC!_)sAF&&f6TwY!BSR$~)N~5=_M^WA#fDA^xoH9f_F>W$N zBr(bzZ%a9?1FKb58dZNVf7tVG)RRka*T>6UL_WRCG|O9*`k^qlo1^X4(sPcfO}#)T zy;VCN0eY(!M z{pI{`pT57_*zXSNd+Kt-CunAAQYS}Vay;2qLFaHi5*}|J<;qZdn6?nVYZ_xA57pPg z9TncGp-B*3OZ8wte`0gW<$6APYr4=VnnM;g2Q`0+nx4EWVJVKNC&;PaI`kW}qvE4X z3Lw$*s}Y(Bo)LxchG9y!MshKnp4cu*dnhGQeU7;tDr)yEaN>NBpdz$d!BZ6L{5aKZ zFFc@zJvIhMOH>rdXu}*nec4oYV7$z=ZHqfwh?AJ=nqx=?a#WMwc5|dwKc*Go z^^Cf8o*g8gsV}y+Wq$CI>qj{S-;0KeC*7ctk47+dAgBY+cC{XHFK|^;DU#gk z>TEhol#AW9$PHj<$8tphFF)0z@PCV3Tn@+9xsWL;=+-{X5V_JJdY1(|I!s@?b2mGO~mIu3jlSsWB-QW)11QeWf&i z5bUePK}Sv}jRy1D13^Ngponb!8$X6rbme)nZe?FTQTm&)WX?rh9<^{Ap$C?miy6D9 zuQP^BEW@LiLrQKn{tjmomxwCkEY)z8`g`{r;GR9)wOeTS>NLF(oi0t@bW(y$n?ysj z?34ODsfMe=LhUmC8~Ga;!MUH_IjeQ_NB>l|a?v`}C=IK`Bt%%<4hE-$^S1=S1zEvnw-F~JoZu$Kd8%xk5$yA%pD}EM{_K;? z2zhCgeIp+$=Jna;zGN||_bGeY*$it~__A)DF$%pQ{-Yk@5Wi?_8k3dISl-9vcT;UC zfgESISEzK99~BrVoM$;v_j~Nx4R}c9d?H$Z2n6*~dbr7bmbAHK1CxJsvAZ`Z5I}HP zCSsO_UNa%z0>d)-_?!Ru!t@XyLg_^I>^owtN(-ML_5~R4?{175?-bbs}-zy^`4)>+V9g$cDke z0=@G2E_{vjUIWlYj~7WblytyE82O7X6%NgE>e7lt7PH_YK^75I%q`~@mGst4%-cnh zf{%0i*J$_1fPXvHonbZeB+MRPeb-<6Jy0}mzHevy-l-@$gZUB4O6eXH%${EpvP)lH zfX=6?xf@lMEM(aKcuSAE86dbgvdf_1Yk`={9oy;OKqIPQdAn-5-SPLonIE-Wo4_W54PT9j)rIyaAOEg;QrWY(f5 z9@t7pe5ltd8V~2pU6ETT)tzXzBZJ>znH@}&c-#}~=Vk`^l`H*kD(_5KgE!|l78p9S+Q@4~>x8E^ zN}j-;>zl)LOTXui@7yydnQ9Lt>4k4Y_`_s%^bvKZh+<#O^G_3n{k)?ObHfpDY9N<$ly`wg@=WmcbaG zo}@K*i4`%mZE3Xc5c{S5)Qif(eks&e*;&NQaZ`iC=}}I>^XX8d!+TekA2m#(R*I2UK?4OnJOUkS&^3p9eB3v-Pij$LKerSw;6UAJQ1L1ae?}mZ)@T zlafi48}SdN{c_S(v~_QTLyd5!>z|#mb!)*&I1IWT#%{V~C!v?FB^2eEM2Wdg5FS#4 zEdgQp0rN~tf}{4f$<&(p`}(%DQv&&=#6CiD^^s-x>I%Q2(6`JeMs{_j$dDk}8-CQ) z<_bZ@#v~1_+I60MEr-vvKU7x(`t06pr{FxB)f2OrKh3z53JjwBa#wnGdRxx04}o)9 z=+w+I=Oy#BDj|th-{5h1`yHd29Nuwi~V=Zv;8ElRXwLn&XCD zZ5f%`8)ybyVKs$leH^s6gP;=+&#?P6GeWZpw4#O_Ke|ilQ(v$F$j4n%i65oFKhZR_ z8Hvzq#Wz@Rhb^)%IDhwV){^?cPLzZ8Nn6I_j>@@7W?C|)dn~82R^~f?%VDWpM43dV zCk69HEftLlHzjXRG0W1hRB4{(HeqJdeT=0TXf6P|gCHJ@rf{H}w6AQ+_t~(^(Jyz> z25#dGBi892Smh{X^E`lrj@(EYTfxe*x*q_8(>I+w?K38C@%Ju%aOzv{vcA0guGx;T zo?6rb-i}ZZeB;(4m$(|vp{^0aw(bq`X`O1I?c!Ie$Z9-XZx^ni|sCMTlWo+oe`bH&#*b)3H@aA%YDxh6423cn|9lLR{%R(ClyX84xe z$Uc|>&M|Ws4Cr*)HDH^&l(*`Ns1B$pEZ2)!5&V>PGOZrgS@eonM1+ey*GFveMKybC zS7|DGD}2eAI9MW&9Z;jB|2~AWyjHa7Qrw-JLjy6Nng!nA!({_sjvcrTu9~`z`b=r3 z-S~}Wb`OrItuy2-Ki}+FD)8fPG-N#CqjhL_m3F4MM~QOUKVr#o70#X1?;mwF>v&}K zTyhjoVqPsPw-^S~D{ZGM3yvACio}e{g`6l{%-nKpIUcIEfmn2lrSB(`6_l>V6VR2d zcT8hQXRBMEKLi_B`3!{{m-h{WdJ&eE6gTsg)#%_v+CUu7+hMXG;rET~S)C z$W9F|sE)4P_G~r$>DLa$e59=>)8rp94WI?RhrWyKU!>k5xiJ|E3Cm#FC5r40#nTNQ zZgsEf6ZLhgUt!9&RQC#xZHJVlCTvGHzElt4vpu~hq-S3pPk!xZ#lGq}(r`!2&DnZR zcHowty9mIA<-HI2of>{DsfpYTRM}pS06R?NZfz?(M5)J*acBPs^&h+pm~z8!)E7~d z)taYkV9Gl>O`MEL^lHBkv-_o$9_zSe}vU9cK4}vhy}29!|qcI~#8`cjgCS z5q&0!e4qDuVuX9$)*m@xN&~UL37d>B zO{IU^+s*0EG5Bs1M3q$rNKW_&DYaKqI0jieCNyJD83+b=(}2v~9+*{rZ&_()w>awz zJ=;H{Zmm&s=lUd6xlPt7|plB&U;Uv zHTM&c>YIo(yyAw*+Z0J;SGRfYWN!~n50M75;=gmcOj)bFKAfdM2(h8_M)3-#lgUpS zVm23gPmoi4hY`s9b!pPCLT!-2V8&4=w~Io=<92^)SkH~Xb0=ylqHcv&#D#k0p3vIW zJ}})DIK@_Xkp`!FG=ITT@}alib# z`+hg`uh6cL4l82Fu>c|)UzO3aQhLhqL28hQyX!dd=@7*YVM zoDT4-5}jV-I;TUuM16|lQ8uiX-;gcEvm}*xl9mGgN z9fU6;TPlh*Y0dHGtg}Faw2z4X=|LDzV1((uGB@_+^q9Fl)OmwZO6{YXs^qsMbxC!4 z8FYXDSPL|Q{Wf-TI6@S>KuCz|6(!P|Ui+s~Fm7H#7YdWH3nRbnrsY>mG<5Q6V!ZBN zY8DlQ60;A($<@3klKsCZKC7T2hQ@_3^OH-+pZ*}Q*5mhL+5yX&cj=JRhzWk%5BgGs z_7;YSnQXh#gGE<(j}qbRwp&S7B)sq8-ES_DDH4TzL`52^l7_9crbJn%d8y=O7TnfF zjz+Ut^#ID}d(+#wz=bb$%lN4no-6@0rJ&%f4;GWzBSYD`y;zm8n7r$acn$)8q}l4Q zGtJo!8v46Qa-M|$xl0v@^cX>%NQ*y88eEptc@c+@v0lS-6N3Cn4;C6ht6dhqV2u>=?)S&dLpS%~n zn2@mNGcHJT!vNH~MgJs6Ifqypu_Be8m{OHA{5gwDDYjU^m5+@Xv%mYjMn8M>X<}WQ z@P7A%{1|?HfHy%;SHX?v!iV!6*`>bH{tSE(qtzSkAi0jwrlr|0&o^DcHqjfC3g^V` z>32~NLYGtXJ5)vB5nLJ1`C~_u>XT*eu&Tt#P4|5bA9?~Jsf>5QB2<3?Lsy_wu1CFz=K#yf$L(+ggc{`DKz_k|?$ zDXm2=mz5?q)xg;m0cSp}{Sm{dMF-kTGUh!`p|b+`WH(bSS)GAM={g7b7(ElVk(>fZ zmW4cI&i4tZ>AF8SPBoNqYCvG#oF^D5L(BjKVlLXcbqA&W6?EsbRx10wuzoYrV(8^G zF1oT(TYc^^%^M-mf8r~>Q@X(ImF8zAPw3i$+6H-ZYPK(-?y7_Aa&;=$vR>v8eaXDf zw%Mskn9bTa8QfH3;csB${uDm}*`?TRXImjy7706hmJ1F`psS_pyJa|ZK2IH$DIh-& zk6kX}DdBmV=@%TI@qE=7rOoXo6;`SA_|P-#QLlWmAVIpbJtoNm6inrn~AE3#vMYej0k{1&i` z3qId?#-8pl5w zB<wvy|9|Ca7=Rrrc`m_hMf`ypG*jYYS&@0R|gNsDJ;GSx+aY|J1nh^IhZX(px4r~MGR z$bYe0A(UGmJ=)*)_2m<9MUwka(K7PTo4TJYc09X{&&6B>5sxx&3^%myv>z`5xX?x8 zWP$1h!*7t=FXPB}SAR8$R#$X9A9gYHzaLFyy0u@1%vSyG2vVE*Me$47E678`z9Ybq}*`~pZPF??U9b`h{cH0f7$*=D^jtvOJ zX>%U0dBR5wMaNqND%yNYq~$}W#SGUh`o70Hh0F!?p<)QJKZe+Cu z(CtorpFuUY!4~M4)MKLBK!2Lv;nx(j2Qr{$tTde#Toq&D?s$6zjcV~wyw5^wg$3Sf zr)oI)v=+OEd;cvSpgp{KhHHF2oTN&dNz}2J&Qo=)qR;x{(KpbQSQvyv6wR6WZ-fia zzX%sKHy2A!ix&tj^E*pxEh{~CE)FOs2N#qD0G52A(0aJMjJ$OJvuWqzEcL>w1u;tr zLO8jgoV*bJ7cC>e!)fqhq3mM${~y$HgS~raW%&ZTg*m!g0l;cn(s~>+o{o;@FlXm~ z_}8+va|gX#{}l%tNXN>}{ly)K`z0DK9svk1JA{MhpW*#yP#`5cFDuYX9Na7*hj%a! zTX!oM$m_qS@p5o+aIw7LbU{|mmM-S@04}b7d2B7;cUB;I~Z zI*Z})DZ4bgcatlehhngD-$6S|bB4!>A~%$ntQ(LYJfTARzMce5nj7*-6rD;M^Q+|W z78_J_(!7lrPQJ`-dmoC;+eZm{onnOsi&5^jhlzNYMa9UVgB`1=e3)Rgdu0KJC|B>ne(5SzAwFMbZI) zfNm%1YR~1;=`;q1JcZpwTZ}G(a2roJdZEiEG+xFjShh?5j*P%JyFA>3_crA0Y%XdG zBJ);*bWj~;rIB()s1&;)=RSEU==3>%>r;Xh>-$>L@iCt058AWRKO}x9t;rg4=u2pH zYsQIWrcE5OIY1-RZlKu%nj|bT2(0CFIa#x#f|OyI18$*J3JI}NcWtyIW5|)L8xiO6 z)%_^STv3#YCS>&yx=9E?-*rh2)hu)om6-8xH_)qkbSMfn_XP3=i6iI@@W@Q0+#nG_ zlujBip*Hn5N>rw_fg$6%KaRuab=rW7INC))O~&zIpB5^pEY*1!CgJL9sEXyG?d$fB z3_VSWL;TWk)*+^9go02$S{zzL!xZL-TtYM*sW*udd5p*^49K<8pJFxBH3^-x#E7U4 znVgZNLyPbvw(^V<%0`;<3VOxKj?U8E25iQVx2kUwHckeUJJUW4$?4+>G)KZ&_`d1e zA>tE#&p@S;B8UdD&{FnDnD1jzchderD<5`aPBpE#OM=FIqQ$3}Um+r$YF3K0HBD{) z6~2=IW$>ZP-vyJjm+-afZGVU`)f9UZEp?2_*mcQWO6i-oy`6*x1P7J zvY+dl5fTwM^OWq;_?psJ}XNn_9S0Y{F^WLzh4 ztt{GtWkbyOt6$GS1j?80mAZwM@pk zn)h$LV$77q`s5+)$17IEn%I*9^SrDD#&M7!QbFDl2>JZD-gbe?XYRBBZ*elaTkLOR{kT-ERLOL}zvoNC_J3*eIUr6M_L;<4iYz4fij1tJHcdAU0Zp>$&2TA?|SPTjd0X4Vg{kidEiX9Qk7||G1oWAJR7Bf!NBW8W&liL&k$IkIIy)L};XnQamjkl=F0^Mnip^W8P1!hhuXMX-8(QjH zEEc_-DCTM_l!t$=uJ{yndpSN(FBFco*)_K9t4JSxjTH;87@hK3TJb6p_H^8>e|Jc< z=xZnRH~2W2yxM-D(kh*geY!nN(9xyI-%_Yy4#M7>;&iaI*l^gek5eY_WZ|j!SLk}H z>&~2G?2b9m$XKBKU2{>s$^6uP+<_^T`@s0W$=r|Fy*d`rkSCL_@5^ z!DghP>uJ2_b?L|QwIR};5X!x-GA z{hqnSMkH2tT+e^ro0@gR5FdZyl=EqHl>D+ukD%SaVd%tJFMH~|a{(yB6m{{S}ai1`2j literal 0 HcmV?d00001 diff --git a/services/web/public/coffee/app/ide.coffee b/services/web/public/coffee/app/ide.coffee index e5395c9b4a..87bb3a78dc 100644 --- a/services/web/public/coffee/app/ide.coffee +++ b/services/web/public/coffee/app/ide.coffee @@ -6,6 +6,7 @@ define [ "ide/settings/SettingsManager" "ide/online-users/OnlineUsersManager" "ide/track-changes/TrackChangesManager" + "ide/pdf/PdfManager" "ide/directives/layout" "ide/services/ide" "directives/focus" @@ -20,6 +21,7 @@ define [ SettingsManager OnlineUsersManager TrackChangesManager + PdfManager ) -> App.controller "IdeController", ["$scope", "$timeout", "ide", ($scope, $timeout, ide) -> # Don't freak out if we're already in an apply callback @@ -52,6 +54,7 @@ define [ ide.settingsManager = new SettingsManager(ide, $scope) ide.onlineUsersManager = new OnlineUsersManager(ide, $scope) ide.trackChangesManager = new TrackChangesManager(ide, $scope) + ide.pdfManager = new PdfManager(ide, $scope) ] angular.bootstrap(document.body, ["SharelatexApp"]) \ No newline at end of file diff --git a/services/web/public/coffee/app/ide/pdf/PdfManager.coffee b/services/web/public/coffee/app/ide/pdf/PdfManager.coffee new file mode 100644 index 0000000000..07ae03ce58 --- /dev/null +++ b/services/web/public/coffee/app/ide/pdf/PdfManager.coffee @@ -0,0 +1,6 @@ +define [ + "ide/pdf/controllers/PdfController" + "ide/pdf/directives/pdfJs" +], () -> + class PdfManager + constructor: (@ide, @$scope) -> \ No newline at end of file diff --git a/services/web/public/coffee/app/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/app/ide/pdf/controllers/PdfController.coffee new file mode 100644 index 0000000000..c60c14e55e --- /dev/null +++ b/services/web/public/coffee/app/ide/pdf/controllers/PdfController.coffee @@ -0,0 +1,7 @@ +define [ + "base" +], (App) -> + App.controller "PdfController", ["$scope", ($scope) -> + $scope.pdf = + url: "/ScalaByExample.pdf" + ] \ No newline at end of file diff --git a/services/web/public/coffee/app/ide/pdf/directives/pdfJs.coffee b/services/web/public/coffee/app/ide/pdf/directives/pdfJs.coffee new file mode 100644 index 0000000000..5011fb805f --- /dev/null +++ b/services/web/public/coffee/app/ide/pdf/directives/pdfJs.coffee @@ -0,0 +1,66 @@ +define [ + "base" + "libs/pdfListView/PdfListView" + "libs/pdfListView/TextLayerBuilder" + "libs/pdfListView/AnnotationsLayerBuilder" + "libs/pdfListView/HighlightsLayerBuilder" + "text!libs/pdfListView/TextLayer.css" + "text!libs/pdfListView/AnnotationsLayer.css" + "text!libs/pdfListView/HighlightsLayer.css" +], ( + App + PDFListView + TextLayerBuilder + AnnotationsLayerBuilder + HighlightsLayerBuilder + textLayerCss + annotationsLayerCss + highlightsLayerCss +) -> + if PDFJS? + PDFJS.workerSrc = "#{window.sharelatex.pdfJsWorkerPath}" + + style = $("