From 4e174661ed2d044ee5862d214c66beeb999b993b Mon Sep 17 00:00:00 2001 From: Mazar Farran Date: Sat, 5 Sep 2015 12:19:55 -0700 Subject: [PATCH] Readme changes Also added static function prototypes to prompt.c --- README.md | 7 +++---- prompt.c | 6 +++++- res/text.bmp | Bin 0 -> 1329538 bytes 3 files changed, 8 insertions(+), 5 deletions(-) create mode 100755 res/text.bmp diff --git a/README.md b/README.md index 4f889df..8b12e48 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,9 @@ Text Editor =========== -I learned ncurses and figured why not. -Posting this now (9/30/15) because school is starting -so I don't plan on working on it anymore. +![Image of the program in use.](res/text.bmp) -Probably the most well-developed program I made this summer. +Functional lightweight text editor written in C using ncurses. ##How to use: @@ -20,4 +18,5 @@ Probably the most well-developed program I made this summer. * Code could be organized better * Some arguments/variables don't do anything +* Tabs are always 4 spaces. This is likely a permanent solution. * Need to add copy/paste/undo. diff --git a/prompt.c b/prompt.c index 3885cbe..cae663b 100644 --- a/prompt.c +++ b/prompt.c @@ -1,5 +1,10 @@ #include "prompt.h" +static int center_x(int width); +static int center_y(int height); +static WINDOW* create_prompt(const char *message, int height, int width); +static void dest_prompt(WINDOW *prompt); + static int center_x(int width) { return (COLS - width) / 2; @@ -17,7 +22,6 @@ static WINDOW* create_prompt(const char *message, int height, int width) werase(prompt); mvwprintw(prompt, 1, 1, message); wmove(prompt, 2, 0); - waddch(prompt, ACS_LTEE); whline(prompt, ACS_HLINE, 1000); box(prompt, 0, 0); wmove(prompt, PROMPT_OFFY, PROMPT_OFFX); diff --git a/res/text.bmp b/res/text.bmp new file mode 100755 index 0000000000000000000000000000000000000000..9f78cf085642d8c230ebe970194e8912429f3613 GIT binary patch literal 1329538 zcmeI*Ta0DdSs(C5NnTJMlaMDa0^^a}*e*LBk8g}J%+0PI+anm;U?wq93(0A~24jL{ zw<3WeHJ-tar)+bFOlU48#6`sRSc;tDCK-Vu8DnH5kRTBcJb;8EiN3Ytl4{= zeNLTIm;KfLmD=N7>#V)@TEDgT+5ffcboG6Y{Ky;r*`-@wcbEU&RsQ!=|LD@C|MeA@ zE`7zNe|f9;(v{nGadj9Qi|l009C72oNAZ zAeTVNv9hcjPk;ac0t5&UAdpf(mQ6WrxfV=%OMn0Y0t5&UI3)pDR+c3|fB*pk1PBnw zDj>^dow-w5+-Q~n0RjXF5Fn69K$ewd2@oJafB*pk1hNXqvRP*?(Sk`=2@oJafB*pk zrz9|yWq<5vf6*TT1PBlyK!5-N0&@`Prr|YNcJI=jKLiL6AV7cs0RjYe6!`L&zx)q7 ze3dZ0WtKhiMW7Mb@jSLW0RjXF5FoHj0a>=mQ#Koct2d6yC2@FdzbQM#&1GJGMooYK z0RjXF>?k11o?<>r-Lx#bwFt2oNAZfWVFd z=ayv;j>?a)uU@~rcXV{PDv@ncr|i3b?XXp7e=L6eW;x1!eRX`ewG~$Nt(I@t$*5n3 zx_9~dxEr;#iH+E|j-_lI-MCuo4_-aEQecnw)l!s}2U#|T8AmUTPYh%lWYEt#igsMK z2@oJafB*pk8w%vkvg2SB!;U!HhO^4CUn1bm>yh%-R@fvAPDi&v3lkA=P;>n4-j#zo zirA=GwhfxK&ebx~qw>l|Ut@}^SFV<(>cU`f^sATm_Ad9ABGVv)cFG}Q6t&wn2oNAZ zfB*pkn+xR5vhhTA@R+k?sl#ix(rU?P2Uni=SC(OiQ9mq$^6Ce|#*!+}LlK=q%1PBlyPz9#5YzZgR zzp!ij-^n$Rcxu?1uCqlhjEGhfTRl+SSX-gitQ*svjPzW&+l^y=3}E6Y;V^g#J5j&( zyl!+`XmkI#wQ)&pZM&CR8QTO15FkK+0D%n!CbDb|Clhh@JhNhUFq()yrGN2i+d|#0S+@Q(JYK5hb$Dwl)S9a{y4|QhjxT$a zAK%v}!4na1Rr^ssK@l&>vUT=t5FkK+009Ea5$I;w8mmf#ZMVmX_9U}xpto^zBEXey zbss&Jr-?O3MupOBjgoaRv9Y$opnmt;wOO`Q*uQi&{=(U5WZAC6G~Hkz-4;BTUCz6J zkrE(4fB=EK0^=-Ob52dJ{1^|4l>!= zJh!$&9r?t@CXJMj;l@Z$Bg>Y)#m9UrW*nuQl&eDgcsPR=s(iFC9^=G7#+B>gCSJ;W z3F$cj0t5&UAaITXtFmlOtFaMjWKdYXJ;^K^nXEolE#F4;iC_OzjoJz|wAEM3MjPP9 zzX7Vo;uzA}3Q=w1zZ3ba?iKwk9h-=Nwenyi@_IYK*lq_BeHhefD-7Bkf7_L;nBy^y z2NG$x_MryrIM&)x)E#XQAV7cs0RjXz7wBf$ab_(gC6kQHPcq9!JZhtA8=-3GY%4@g zYEx7jWaHJkW1!TBxbbTF@7fBrW_P3QWVb>T#s_l`Z(Kd@zm>2y1xEXWFghOQMBm0O zlpK6;RDPZ9)y<#FwzE*EW!cRyLNy5xAV7csfvp9`S#}&)CrWnBvg3XaGSJ!tcJ39r z&qT|(x|zEa?p@yBVvHLm=5yDW?!d$-#%F>O0t5&UAV7e?T7h|G*)2leba*<0S2xeH z_0j1T!<f{%)}E;<5FkK+009C7#scS-Wlt&|O*G6HEf6Cgl<009C7vJ1$vvMd1t1PBlyK!8A20a-Td%w=Ci=|2Gi1PBly zKwx(PSyq-MK!5-N0t5&U$SNSqW}Ug+*D+ckK!5-N0t5(T7m#ITSpozI5FkK+0D-Im zvTW9w%f5=ze*y#u5FkK+!0rOFtSn1_009C72oNBURX~=_I&-_PW3)hk009C72oT6F zAj`_K1PBlyK!5-N0$BxQ*{m~{eHEqu1PBlyK!5;&-34S>S(X3+0t5&UAV46ifGnGJ z=5}AlXn_C$0t5&UAdp=^mX&1*5FkK+009C7vI@wuS!XW$DoXze5FkK+009EK3&^sv zECB)p2oNAZfIwCOSvKp;?Y@rD0s#U92oNAZAiIDpE6WlfK!5-N0t5(T6_91K&Rq6Y zl>QSSK!5-N0t9v!kY#0A0t5&UAV7csfvf_uY}T3EeI26(0t5&UAV7dXb^%#dmL))d z009C72oT6BAj@W*x$LVb{U<0ucGvy009C7 z2oNB!yMQb!%Mu_!fB*pk1PEjmkY%&Z-0tfbEf63;fB*pk1hNarva&1z0t5&UAV7dX zRsmTy>&#_eMd?2Q0t5&UAV6Su0a;d-B|v}x0RjXF5XdSZ%VwRq-PbW%AV7cs0RjXF zWEYTSWmy6Q2oNAZfB=E40?y&vMd1t1PBlyK!8A20a-Td%^dow@9*DE%iufB*pk1PJUdAj`_K1PBly zK!5-N0$BxQ*{n0S`#MGo1PBlyK!5;&>;kf^EK7g@0RjXF5Fn6MK$guqbJ`cHrW z0RjXF5ZGNnmX&1*5FkK+009C7vI@wuS!Ztdb&M7W5FkK+009Eo1!P%SmH+_)1PBly zKp?AtESq)avah1_p8x>@1PBlyu)BaPE6WlfK!5-N0t5(T6_91K&fMS|C7x009C72xJ$KWo20c1PBlyK!5;&tOBxZ)|tz`iqd}q1PBlyK!CvR z0&)%G zj?n@E0t5&UAV46yfGjJ^5+Fc;009C72xJwIWwXv)_EnVr6Cgl<009C7b{CLkWmy6Q z2oNAZfB=E40liH%AV7cs0RjZF3&^svECB)p2oNAZfIwCOSvKp;WnV?^dow?oDF@Fb7%CZCq5FkK+009D71!UQ*Gq?LXMhgT8 z5FkK+0D_0KqV%5t0RjXF z5FoI-fGjJ^5+Fc;009C72xJwIWwXxQ?&}yW5FkK+009C7vJ1$vvMd1t1PBlyK!8A2 z0a-Td%w=Ci=|2Gi1PBlyKwx(PSyq-MK!5-N0t5&U$SNSqW}Ug+*D+ckK!5-N0t5(T z7m#ITSpozI5FkK+0D-ImvTW9w%f5=ze*y#u5FkK+!0rOFtSn1_009C72oNBURX~=_ zI&-_PW3)hk009C72oT6FAj`_K1PBlyK!5-N0$BxQ*{m~{eHEqu1PBlyK!5;&-34S> zS(X3+0t5&UAV46ifGnGJ=5}AlXn_C$0t5&UAdp=^mX&1*5FkK+009C7vI@wuS!XW$ zDoXze5FkK+009EK3&^svECB)p2oNAZfIwCOSvKp;?Y@rD0s#U92oNAZAiIDpE6Wlf zK!5-N0t5(T6_91K&Rq6Yl>QSSK!5-N0t9v!kY#0A0t5&UAV7csfvf_uY}T3EeI26( z0t5&UAV7dXb^%#dmL))d009C72oT6BAj@W*x$LVb{U<0ucGvy009C72oNB!yMQb!%Mu_!fB*pk1PEjmkY%&Z-0tfbEf63;fB*pk z1hNarva&1z0t5&UAV7dXRsmTy>&#_eMd?2Q0t5&UAV6Su0a;d-B|v}x0RjXF5XdSZ z%VwRq-PbW%AV7cs0RjXFWEYTSWmy6Q2oNAZfB=E4044S}g0a;c= zBe0=>EIZR2v*G-yc7X*-mOVT=^kC)!PqCp9SS8@{UnQfQz*s<*m1POcRKU$_{D!53 zz(NFE{tKCC!#oiIS$3v5=0s*!BdG=4%u-LE&J);0z~#S-o_&`lAj`_K1ZFDWX127q zW8)=I1zi4>!Ulo00h# z->{SrScrhje<2fXm?t72%g!{%oXG5IB(;E>S?cN2c>=o#xcqm~v+vRbWLa63z)S^} zd^0aC9venKi5p@?HmMT*_q~;Ih-8&aJ~XdzM09g=X>rs`nd}%`SL$^ zd>u$9Aj`_K1ZFC*;A)waql5ixhi&^Y7kgI@YT?0^QtkHFc7Gqj=W~=LU;gu%1wF|kAj`U+5tymKl5b`;%}i(68j0Hau^n0V=*HFdrN~B6nB_hC z0`zm7W$V1ejKn;)&tl^l?WzUI1u$7Vge718YjIQ{Fc6SsXPRRM^W@tF3M~0%)&|gt z=du%7wr!zqw@oeZj5@C&53=m-oO+{7%fa(j7k8e~MnB_8?ckFM=QV`0Kkkw*|FhS2 z#OwmHtSn1lrUFa8nbq`JHrfDM%j1dNv9fG^$mhB28Q-_sEE^waE{|ZZUM?SNzLjO8 zq|Q$5TTE`uel1+i#*#1p<;=2?o|J$rJJTFR&L*dt#*Pd7EYH)7B^~lN%e?ZRQz}ri{{4emd8rmrd$g;95 zftd;{`DRu#Yx`KP{p&#+X4%NW@$NZDx~KG(s@btX&9bo(a~IpP?3gP`mVEiIGEq)o zm4GZe(;TyE!jvyZV97VL$g=U5fokY!f8SQ*p+P*Y2{<+)$hLd66_#@%o%={@mc9My zj%Pm?JDAq-;v^=wUCf;OK+duQOTPTi(%G>thJY+9%MzHWz>;rf5jx|u0r5CCvQGVk zz}hU^=HNEM*6oY&4xVBZ5nB&$mN_}9pCzbSwhW=oxOGJJ(+IU>Q5#FX{1-LR274j` zvg}NA%!$mdMp6qb`DRu_PeF)Z2U|+w5nbe-t+Q-tBtlZ^b0b&hBes?qj0Hw?zRj{R z%k8UvC)biM|6HfH-p)ZlmX&1*%v4~>H?xQ}@ zp{EU|5pn9{*n^|;52AMd4coyk^(WeOzG`NwB{oi5AY$ua`7y|{r4Q}gwa;izyLR&v8 zCEv_WDZjSOUc3{=h%S=Ak}v;@G>^t|HUhG&EK6Xf0&Zq!^Csvh1ZF7U@}J?P=+bNj zWZ9YKnAx5&I(B9PZf0jj?LY+PCgAd)+l=VXoCRcAS(d;|1>DT${MM;&1Wr}J<$tQY z8oyuyvg}NA%mq8o3}*`gH?u9!>_XsT2)O(&#ylFu*$Bw8vMhm_3b>h_&6}X35SXEW z%YTNGqD!+CkY#6@V`h8C=-8PFxS5?9wF42Dn}ExIZZo1ka~6u|~^INCB z5ja%=m;b5qYW#u;$g(rdF&FGSGn_31+|0H>vkQTXA>i`A81rZpXColX%CZDzD&S^z zHgAHCLSTjhF8>)$iZ0DoK$e|pj+yNlqhn_#Fus|^KVjeg<5ji^5V#lu2S-PHm#)^g zm+|FaU$Q}fz(7Ejm1POcRA78FlVvYPYB34|V*y!qkWPF{U~>UkcBVOI^C?vGq6&<& z>_r`^aSu|~c<1sGfr~BR^1s;gYjh_oAj{4) z$DHgmYb~RIn_0$L(`N!FBH;2r5k`$HL_n66WeLnwz|CwS@4|*jU@YMBADbv4uu4Fd zooS9)HDSt^BQWQi+2OVQ_+{@`ZetS&e8V3W&24rwXVEoO6FkmOb|=&;bG`A|T7kvIJ%-Fy|~A z?>_sN_Kt2|KP>-_{N?K>@_uwt8v!-XnU!VdIWKxe;J5;^>`ZgaaVJv!izm>{vPUtiL}PZ>fBAbQq6Fua<~;bkMEV?$tgr-1;Z2ajfp6*$8m)QH1g1+t@K)ExSkM zwS8{;A49I~kM~`Bh($qFpP)V{E09Z9!?T^KD36d=Z1=7ljFnbRR@+X@OWD1hvbEdO zEeu}mo^{iQXwR9_w?UR&d&1Pl$0qfqvN7mqFt!!SRa^?EKikl~{M$xs6Ch9pWLa63 zz)S_YH?wm0?LG&MU>eb3`bJwW{_(vwlE?JTwZ3b#8xaoLU=**mu^<{R|81+q?fkiy zZXO-oT%W(|q1#YW8yU!~J;V~AidZDJieKq!&>TPwJjY6L{?u?>CuQ7DJw&ZDy)n_k z+B0gps7<6f3uFEc0Z#?g>>~x>8O&?+jP%+)b;ppaJB&t{rm2bOqQR+w1s&g?`>Soy} ztl$%Kx9X+o7N*arRc*HAg9JG^b&qvUj!o);rbkh$t=;He{%iMAfxt2aWLa63z)S^J z-OTDexISKrjrt?ki5qQso9hOV?cV<4K(`)k-8iU8x*nn}DTQsX+U+>>xa7E93YHqF z#|>^$(jN4}K$Q$vg6YwX>w#0C%BfNc`E40D-yTm;-8YUnaYoge zt2VkVwCkVo(Z?mV@$Fu!yKl0w>hj-YUv&s9O+c2NX^vUiiD54!MyiVU(sXJNYYAxm_+Y>Dex)iNN zH`+;`I7+wicHrX*-C@Qd#+B=#Ctj*`;=-A}+*V!wwGkTx2vh-CR+c3&Q-M`Cv%xJk za%9aV<=URUo5riVXW2oLD9`z7s)$3>Fcfb$ZT)c%2ZO5bP!k(5@H&t|GT7u0<2vo( z;?>%IyD>OcyVrQT9e8>5jG;oQgx9ihQ2ut{rSi9q4od&y+wNcgijmgo8!L4uYg}zi zFW>fCZJ|Af z$E|gT87+@1*CS56RO^(Da@p2PxGk^S6PJIjV}k&J5RheMSpqW^n7En6{j$WkxZMtJ zit%d6dG$f*psBcp*RayP%}>8Yj*mOI@khe0PmAN#8a>DN`@!zhM=!6ATNvyzt}s5t z5}?}5R2~VJDTql4jaUhk)1&>1bc55Qt5iPaQYSa$$KZn*S^MpD3)5%R+Qv(TK?`+U zfiOP$_=KrP8CTxqrCKL83VUH(^^AXT%?|eUEdc_pfGj)H9Mevc?PUr~-^@xbDPiLJ z(JB|xFje~e5pZg7xC2hpKE1}@FEJ&dCa z_FZ-8L3tfr#Eat|qU}a)YCNvIP}8bqTs4gaMK`5YrTBYeQK#-$W@L*DH<-r_TbMYb z1`V$Iwr!#0;P~`#ocwi|^&cV`>$PV>acB{?b|`Ij6Z!PzziNQW2`p1UmYr#iS?1|z z)UCku&8*&)yEnqN9oq!XKwz8&k9*MFTR83!Pow_CDB`7d#tGySkY#6@V{)BFdV3lIZf2*Us!amB3zTcKJWoCDk3_mzcGX(c<-hwh zX<<16vaBpiV5S0YX3KdaHqu-I+hy5fjnUw>2CBn+v%7H@8xgfGj)H9OKj^;AZ9=Ah1{g zm;Yj?-oUpIkY#0A0y7nGGuz@F%`OBkhJefeV$7paoQ;4iJJTFw>2CBn+v%7H@8xgfGj)H9OKj^;AZ9=Ah1{g zm;Yj?-oUpIkY#0A0y7mTH?#8ZWY&MQ-39>yixMao|K8>6Tin;}LSShEvg}NA%+gLo z;~fjgvWp5X21{TdAj^*56_pU^3dpjuECB)p2oNAZfIwCOSvKp;b(baz2@oJafB*pk zixQA!Wmy6Q2oNAZfB=E404umH+_)1PBly&=rtnWmy6Q2oNAZ zfB=E40f16cQjnfB*pk1QsPA%gV9@2oNAZfB*pkSp{U-tTVT$C6~bxAV7cs z0RjZN0lFMKT5FkK+009DB0a;d- zB|v}x0RjXF5XdSZ%VwRq?$Sgd0RjXF5FkKcQ3A58EK7g@0RjXF5Fn6MK$guqbBkJX z87u(;1PBlyK%gri%gV9@2oNAZfB*pkSp{U-tTWeLnkXbdfB*pk1PCljK$ewd2@oJa zfB*pk1hNXqvRP+tQA;j^B|v}x0RjXFbOmHtS(X3+0t5&UAV46ifGnGJ=DJH0g#-u? zAV7csfkg?(va&1z0t5&UAV7dXRsmTy>&z``$z`wv2oNAZfB=E6fGjJ^5+Fc;009C7 z2xJwIWwXv)cWI)K009C72oNB!C;?ekmL))d009C72oT6BAj@W*xkW9x43+=^0t5&U zAkY<%Wo20c1PBlyK!5;&tOBxZ)|u-rO%xI!K!5-N0t6N%Aj`_K1PBlyK!5-N0$BxQ z*{n0Ss3n)d5+Fc;009C7x&pGSEK7g@0RjXF5Fn6MK$guqbKRwhLIMN`5FkK+z@h|X zSy`3<0RjXF5FkJxtAH$&$hRCJG4kY#0A0t5&UAV7csfvf_uY}T1u)RN0! z2@oJafB*pkT>)8EmL))d009C72oT6BAj@W*x$e?LAprse2oNAZU{M0HtSn1_009C7 z2oNBURX~=_I&+I!av3ZE0t5&UAV8oiAj`_K1PBlyK!5-N0$BxQ*{n0yU79E)K!5-N z0t5&wN_ND6NLl_5FkK+0D(mb$g;950RjXF5FkK+Kvn@+HtWnSYRP4=1PBlyK!5;& zu7E5n%Mu_!fB*pk1PEjmkY%&ZTz6@rkN^P!1PBlyuqXjpR+c3|fB*pk1PBnwDj>^d zow-FVxeS&70RjXF5FpSMkY#0A0t5&UAV7csfvf_uY}T3UE=?2?AV7cs0RjXTB_PYn zvIGbaAV7cs0RmYCWZA4Ux2PqT!4e=qfB*pk1iAvUtSn1_009C72oNBURX~=_I&zWLa63009C72oNAZAgh2Zn|0^dow@GPL?HnJ1PBly zKwwb8OB00z2oNAZfB=C-3COatECB)p2oNAZfIwCOSvKp; zEo#YSumlJYAV7csfv$ioE6WlfK!5-N0t5(T6_91K&RlnCqL2Uq0t5&UAh0L_Syq-M zK!5-N0t5&U$SNSqW}Uf3Ex8Pq009C72oNC96_90RSpozI5FkK+0D-ImvTW9w>n=?c z5+Fc;009C779}9d%CZCq5FkK+009D71!UQ*Gq4umH+_)1PBly&=rtnWmy6Q2oNAZ zfB=E40f16cQjnfB*pk1QsPA%gV9@2oNAZfB*pkSp{U-tTVT$C6~bxAV7cs z0RjZN0`#H8>=eBx&G|WB5wWX zxC^-JmrI`y>p-HlK~JU+(WMx4zJ9xE6w!?sMInlB2V;rCLEmc2HV6PNQ6;yi<@Q<9^BUB&K3Wy0ifLMy5+~6py=n|Zde=HWfaj!JC@q{+Wy*&>39&k zpL-|Qj^eZ{c z?on#thNC#VS;lcVxO!#T%4mZC0RjZN0&%CPw~x3(4T5ahvEJHh&2DSm!Z!c4H{Y@y zx6ayl`)c>r-)+AwoWAkZ18p&ia+L8vj@8L}^mdpvPSjD>@Pn3%+dJI2cCTDQu*Kbg;G-X*<`>mH-i8-crF`f$)HZzasOK9hXvh`*Y>1a zVQ`3=o;N=oOAF;9Ke~AsS6~@Jd|O*sdx$PY+w*pNViff(-|@U}4`-VI0RjY;CeYrC z%T1@;;_4l(Qk=+*X4UPll(#qf$fM&tT{|LgL{3q{;>+jU5YipIQMs(-6S4#cRW_%j-5Q#u}-h@sw~?k*Rma7 z$pN3qCU=y`rXrO&{X|4Dwh_@8CN zE@w|%{F@vi>TLLCF&;(qVX*tEEL(OTjJJ-(1_1&D2oMN?dJ8`B2-pg5e)}6|vbLR7 z+p$-0W$W{vz5YC+o3JtW{Zd@OBd&>s};- z!qYqXv`l~i0Rl+{A_kRv?%?KfvcuW%_7~4P2ajyl_GFOc#&^%PElgDC_B@WbVLvyC z2NNCGmj;J~~3j?d1(5pU-vi39`SLhz1 zJNK)mDlV|n;oD8!`6)(e3U-tp@$gN<(GZnJ|O zH~+TVTKBk{w|Oo#S7q5Y&aMiwrTo;h>|ps)qhVmhxAi&V^aON6UW?wX5I=yZ-H1b! zE2p0QZ42Y=vU?4Yan(gr(M~k7_7HKl-Fnx!^E<`LC3kpq*!_KY-BAQo9Yt-h(nZgs zSA)Xwpp+0GK!CuK1=@Q`+``5YaMg|GSZ>|0Ra=O=YPmVq`)qw_?MB@1+8v{$-YBDm ztw+)AdG`<#U0oXw=FrKB{-4=P6InLm>_m_~|12A)MXbr{e^;f$;@EUm$g4G1Rfx&1XVS6G zmGU>eR$YXp+t0pq>z`VgK16%=mrh1c>ibCTe{8H8MR~RETi$f8UoPzoe=ro?Sk>Xd zfqYAV009C^6R5GN4Sey_`N6%T);!itbKu$D{su3#-yZko74^rr(Q!MwjAERy2amMc zA*|YtE=?zpbMNG;&YxNNMaZ%nVoij+Xkl%I4G(m_)ixYO_w%wFzH6NC03DqG0RjXr zwm?aN@nmY%U8y9ztIaQxk2~7<+3@))4SE%083$;c++9GHeePeN-Y^C3j((~wY&Z&8 z_Ecv<;{*s0Ah5MSeb5-sBL`1>OS6Ngl~HY%2f$l*b$ZA4=f=^=iJu-%H+6cirs(AK z@aLOlr~AF(tMNR)KAayf+SXRs@IdEVZHrOJvgbQxj!u980Rn3U#y|A0yTo0r-rr{! zWTUHXQk-FsP1MOc_2Ug$cCTIuWn&z6$7C}sIjJl=!=dRC0RjXF5FkKcLg0dD*@=;R zi2wlt1PBlyKp?xo`DEGhYia!5FkK+0D%yYWo20c1PBlyK!5;&tOBxZ)|s;!BS3%v z0RjXF5RheMSpozI5FkK+0D-ImvTW9wvkoIbfB*pk1PBn2Wo20c1PBlyK!5;&tOBxZ z)|s;oBS3%v0RjXF5RheMSpozI5FkK+0D-Im8)e!5^6CHabN}tXANS8MeCo5-3Iqrc zIB|gwK67-}UGKc>`ClJ--vcLppv5-$uBVIe15ZEk&czBCH~|8Q1UAaDPyWI$|GRhp z;CFrBdynzw-S7PmH$GfKa3Tv`B|u>Q0(U+B(Gp?@F{`B8$L=b@>!b7Uf0iB==Xc$I z*VE7ZYL*V`CjkQ63B2VkpG)+oJI0N&?2mlxr@!!pFZ|x`{oe2V&hPyCumAcp&ph+{ zzyJGx_Gf?g`Okm;Q=j_OXFl_p&wlo^pZnbB%71_9mwxG2e&ttw?bm+o5B}f}e(YmE z>CtQ#T_J%P3Ox42(Y+-jKK=gMxAJiA-tus+DJgZ@9N9h}eeABgKKM*YneU9}qmekD z|K#-6ck$}Pj^*g%oO&x%r~J0s;8aH(HsHaZ_Il>dJ4@iL<4e)KtR zp?%dh0RqPrNEBpCSG%LzG|T?UpZv+;;o&Dg`N=>0!#_MaI{NgdKV2ehNwk0Zr+@mp zzx%tt{oB9&8^7@z<-g^n-~7$reER99OX`(nyW$E7%u`?-5h5qGKf5n=O16k+qJy+l z6HL^PR|hF420p!GsWa|L>{$9!8>|^Ff=-RjZEw3x&23OIw84Kj$+A&ru>2^tkKJEZ zBPWn$W10pzvh*{KTXScWeDLwxAMl7Xr0x~pmUE`g%V2WHM~R@^wqGW<&U-oBpoIaQ zZwU}MuE2t_><|6W5544NFTMOtFMiSG7rpSVyI$~(-}nvR@C{%0bzk>2U;8y*-TNvp z$+E{ipVTLCjsk;-5Ru~E`yUv@h?-?1)6|SodLF^0mPCabYwFO}?l|a4>=^xt7~NJV z+mAi|Ks-N=U{pI0U24mTzl*YO6(u+blb`LB-I<{~ag1L7g&? zc3gv3PwLz8+8}1C#cz)_n8$c2#!}Cd!Q>7`+HIk<6B8G+KWL%tfNcTo1MIzVa)-@&zw=!H@pvk4B)CWw$t=>_Xri1=@(vMwT`y zmO3@dmaaxrtvPZWL?R5ePj+K~(>u03sUW4W9;kGwW}{M}yi^YneW>ZVZEA*ts-qih z3=-bp)$ZfZL7nMu3&p+Vugcx|By`A>nXQa<_clb9!a*>t)ncRD?P$EtS34uM!8%{7 z+ArOx*?rK$pbx$!K;XCn3(B(Z{lOpHf76wR-uUqS4?ghHm%g+_*|)#_?ca6ht88Dp zcI~^r`@8FtSy}eDCzJXF&R3v~2<>(oP)d25WuwCpOiOuu)zlKN#_ruGd8>A8k6ukm zVVh;!2FoGpBiq5F#I~t+dnSV_q5KZpt^cod(Y^MiI`#rGNQaeZ^Nm)iu#^Kunk+NY z9;hB`kTu(m#dZYE=yn}N^k>l9b{0y7b|UJxgBD7;EE|~qOW-sF7L;Xw;JrVv|K>*? ze&ZX;#|&Qk+SisW`=KX3^s0OAdF3l#xwp4hBW&Hc`|i7a#^5y0Ic*X+C4m|;BIvYX zu|Aq@bI-UNgVa(hL}smdsFv4_!H(Udl*0Pdu-z_=lsr^_-$I+x%1fnY#H@J^stOD? z1_>`Z9|MW;mcRHv4t#?~roRpIl0>U&v|LvOb@w{^rDQNuQKuqzUmX^><&3O@qYHqG$sT+fXmYU}{sM?vq zMg_0sVHiVR75Hl9lig_LOUrGnj03eLWiAF29lZ6d7)-=?q~jI_CYzyIXx|MyqD z@PB^wSN-Zg|Hk_+N2HZyH$2HyBQO(z2pJ!F`u*eI;aVSRMvSOQu>_I&%b3b2+DthZ zR794VKBsq#p4@f+^Zwnb=tGS}ak#iQyzBA1N}r=wrR5rVOP!eyYM@lV4X)}ONZ9=W1TU+x)vh0`dd<|N=Q~c#Y`PSdoakU$p{(jkazvn%Vef!(?-*oF^26wXT z6OVpz|3Chp4?ObZqpyGT-j~1n743uBl4YOx#7}!J+gjTuFlT{?2=990{oQ}OG+uq| zedX2X{hM1QXOxoost-rYFe9VfdF8qPubF1mj%D9CR;22(XN^r!USm)fvoza2v77&( zx}z8;yi%=Z*&r%1gRt8+b%I$o4mWt(+D>1c)964PI;Omw5+5w9qu#%j&{m7eb)ri< zZTo{m_fC)J{w0ML!8U;lEO6@`p!qjMCbrks+&Wecb{xmnamiqpExzrJbmJ`h?svca zJHO+xx4-o*-}>n7Ec@h#Ui)fB%YNH zGV6xzPw(3u>4q(P@rk_k7Ry ze8<1}&bNKX+rRZ~k3IF&Qx87);5Rj2FM837E?>S}e(&tZKmPHEv$AZLTOonj3PkK1 z$HCg+2qm}P7N2-$Ej+J{_Gi$gOYO%S+Aif9RPA|W*)p#BwQ7KMQfkeK8LaJZu`!O< z8#Xe?vN0p|6pB~tw;Q&p8UX_3lHU+vZO!d6<-}e!&Q8?X`laruH_fvD{@S&7{M*Oh z_Kt7=wzs|Y9glzKCqD6sgO7dese^-$KK0ap{^&=4{KFr9{PD+M^P1P(bI(2Hld`XP z#Vg9jhkxqlJeTdFD%abszxazUed$YI_`(+se*VA8vR!nA1PBlyK!5;&tp)0%!%a4(kJ62dTNIAN>$qf# zW(T`;$FfnD{h8nT%#*+H%g6omvBTf$9#SCz0t5&UAV7e?)&iSE*ji`$D1)%L-M6b^ z>#FkYj#BpOj%A}P+uc(k0RjXF5FkK+z}XAboVv-zboaK7mFKc!cPz53U$RYr009C7 z2oPAPz_~=ytq&^8F7!0*PP{?_1PBlyK!Cv3vGQDY?9P|xvH~sv0t5&UAV6TD0_PG* zw?3#WyU^3LJMjt$5FkK+009D9$I5fru{&R$%L=#z2oNAZfB=Do3Y<$M-TI)i>_Sh| z?!+r3K!5-N0t5(b9V^de$L@T2E-T;?AV7cs0RjXTDsV25bnAmoW!VyG{UJbr009C7 M2oNBUPT