From 9b37d61a5e51cf3d5f07a3ad81ec1a57bc912ee5 Mon Sep 17 00:00:00 2001 From: MuhammadNashat Date: Wed, 3 Jul 2019 15:54:00 +0200 Subject: [PATCH] 1 - Adding BorderRadius and BorderRadius with Stroke to the Button by Adding a Background Drawable for it (You shouldn't add Background Drawable if it doesn't have the BorderRadius and if you gonna add a solid color to it ... make the same color as fillColor attribute and if you gonna add Stroke to a BorderRadius don't add it to the Button Stroke Attribute) 2 - Adding TextAppearance , TextFont put the font in Assets Folder then call its Path so if u gonna put it in a folder called Fonts inside Assets Folder call it by(Fonts/font_name.ttf) --- .idea/codeStyles/Project.xml | 29 --- .idea/misc.xml | 2 +- build.gradle | 2 +- .../main/assets/fonts/bahianita-regular.ttf | Bin 0 -> 136700 bytes .../java/com/wldev/example/MainActivity.java | 14 +- .../src/main/res/drawable/button_border.xml | 5 + .../res/drawable/button_border_stroke.xml | 6 + example/src/main/res/layout/activity_main.xml | 165 +++++++++----- gradle/wrapper/gradle-wrapper.properties | 4 +- .../ekalips/fancybuttonproj/FancyButton.java | 209 ++++++++++++++---- library/src/main/res/values/attrs.xml | 5 + 11 files changed, 312 insertions(+), 129 deletions(-) delete mode 100644 .idea/codeStyles/Project.xml create mode 100644 example/src/main/assets/fonts/bahianita-regular.ttf create mode 100644 example/src/main/res/drawable/button_border.xml create mode 100644 example/src/main/res/drawable/button_border_stroke.xml diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index 30aa626..0000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 74aef28..2d6be5c 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -35,7 +35,7 @@ - + diff --git a/build.gradle b/build.gradle index 43903de..cef4c17 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.3.0' + classpath 'com.android.tools.build:gradle:3.4.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/example/src/main/assets/fonts/bahianita-regular.ttf b/example/src/main/assets/fonts/bahianita-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0fb37184100029d51ba65f530301b06e4a6ee220 GIT binary patch literal 136700 zcma%k34mNhwRY9Lx9{z3ru+6j`%L%D^emZ>%w%TBWNQ+#Cj$Z@1c4+hNq_`G5>{CT z6%Zi{3HuXqM}eof0V?ju^Wl5`icfv&Q$cV60Z|0my66ASse8L`_e`QLlceTU-BYJd zopb6eRYD3OZ2T}pbosGMmmU1rq3;O!@S{S=oy(6u?!*@wKYO2$kM;<0%u~xxT(|g` zLqB*)$T!~+qN#M;iAN1??)|r?gxns*D4WjOv3ck2f4>#*+jk0KJ$cq8d)h<)NDT}5 zz65@M!Iqs{cYJsx{zD=6%on0Qxpnhyz=3 zY`f!y{}J+(_v7~?+tA?KW4cA6vgZ{XkG2YmYln|GWu@aT%Azz5@L(VZ9W-ZSy$|FsBt-K|2*ZrZu) zoSh%~Qu_iS-+L0^zb<@Y5V&NuCqNy)2#IJQj=k%!dB>Xxz%h^SQXC+i?p&_0-VdFVaI_f5d;~qHy81 zMTC9<*fCk@{bF?{WHU}OQ8IfdDFG!!&^ zhFoJxpU|XF+bRr0Yy?nlEwGWDa@_Ct$Nlk?ZQD`H-_#!;vU58A8y_6D=j3wPq@5UA z^vGD_(9EOmHO+q0)Sf7g$yDhDxzv>FOtW;qPfSj#@9H~57PJu3G7gA8i3#EVye1!- zcxbr43~@mj;#Tq6v=Dz$5F&3dgc?g~!gj~{ye=P=8V2R>PHqve>&~bmXWS#c%-?rM z*K58%b@ct>7l$96sHwj^1*1E~{~oE2wDez3>2tfZj@U=n&sTjg<3m!PhBp7u-(7|{ zDE=`m#Ixn^G6Yla&*F6v^-%Aj*PRss?aE_%Xy=YyO}l^SQ^(#f{_k*OgL41Se>Vl2 zJH@XK-$MrVA5ZCVy9^$tM+hq&(a$N<g{Ff3RPeZ-uV- zr_8Mteg>CJL+{u1?d7q-6VpO$Dnr~Y{x%InNncflxI>h@5VW5s*NC@(Uqm#C)rA#J zsbm!Ux!%xpsjaE=LBg!oHOz6P34x+t51AxD1={7>MxklBwSqUf5Dl4l45LJBJ8k(J z`qN1(KRl{-`jBmi~G zAihq&E^u{!=B9)aVwTzC*Jqe=#MIxFA5EQeym_(`XxbBIr>^_-nMUavh&D}@?(->5 zz<#dmJnZ9|HNx!V1I`*v6ylk{7|J%5{BF)Di7>t#kjGZ%8rt`d5rnj<8Js?M_X0D4Kkq~cV=C)`NGsL-tm?1UM z(v%E<{dzl`sW)KitpXgY8Tte!>Zl)@E$KnhK~04w7XZzq8_y~OYU3LU^=++Povkz4 z`nw0(O>l2~XfTzuEYq}7DJUp2my3@Kk1`9Zl^>qd4c%p0$y92n=c2Z`vPIL)Ow&;2 z1Lp^V_5I;+XPeafbPLO2Xip@XgOg#)Fam+nQ?al-sGI+57=QAYzTEnZt{d7rn3Tj^ zVRvAzP2!$H(2u5=#P6`Q0n9Haq-JPx7r0h8c9wBpE5J~jpnH9tzVW8j4@CglsX&d1 zBf=KCJYXQ))zgo;0ki=FHHpSp*I=xR6!>5_6!*vwSRj{YBBbMqp`pRi(V=AS)WN>) zPed07WvDMzCzIy9kW4JxpKH>N&$J(X)kT4h)>55mj^9VSn&-=_-{Gvj zYbl6Bu*+!QI}k*($yrRZUh$nmA}9T(E`@A})PZnGP|t9v*Dox;^jo{o19m0k1@_E2 z0qOUf8-;0Ncfhha(P|o4q0*>x##_>{wUO z-`XEDJ(RT4Y0J!I^ZC*AXnwT2n&x}Tv^}+blP^*?8ZyrgUZQX5pFOiof9)oh*aLR+ zF~hQcmanJnIGJm7*P^lpBzqKv56Y;Q!sS)kREF3me(i;T2BB5*gKxu@LM* zO|J1U6z{=QqFr~lmTu)nM~36Hq0FS6?%6$SLF(}m_{`kprls{^ z`xKvKEr9Q6_!Th8gLXRf<)m=tpas~rAxvP~XeMLmSQkQ@eA~e=1U^2u5DsH2Wzsst z0PU_UwoDV&-h`~wBq=t1qXp5yT+t~YI@*PX->(-w0`W})vY`O0IF(GqBlWP-gU}s* zOf;5CVw!d?pSFk6YNp9_GH0hT^B>T3`}Bd`X`1lBK%mQ=v^-%V`{2?OsXLl%h){WE9j5 ziDiXAzz^jDjS2FQa7~gPQ8qmmRo@7q18v!aS!+Vq^s~ypmg5^9COu*J8zDlKo=8GZ z%>Mz@!U6ry+7shH9E?rI&Y^YVFY^9Bisy7d{Kd;zWeC#y3gTAr&a@CDAr!~-l{13_{@LF^MhsHHqniT5kvMV2q9R9+FXd{xi=;_2F+Oarof6~vw5x6?vYzJ9lO zb6N_NA29a zN8Ynz+bP-;r~C(uwR=DvSYC1_#%d5BEktk@5b2a=$S{;DS(_d^gG`dC_QS@CO+pgn z$i_w)xR8ZRhM8lK?ZSiV7)SS28EeWSX%Lx2XNR32i(~}ak*tq=E^EaTDHtO#)^Pf; zbIV#gf7;)=q(_U@TPv-);QWi8O7wJTM~&Qe>Od)Kg)HB9w4>`vA6I$=Gv<^2vAip8 zl?g9>u>wpJmck0+kjzdCL2INS4$4$5#AF-Ol_9Vz?iK&z$YuIEakT2W4-%r9Ut1?% zlqsx8oft2KLP5)f1rLqok36MKA4wh~mjz1S)t)GQEh4jhnc|gDz|b@=%42!gG>Bgn>f$f;_Vie&+u7TZ&(aCT%zC9 zE^L$K!9_6RywH9j{LspkKBjcPf-Z&LDro%9FO2oVPvdKTu}vY#Cf^3Ka?>g73j8N- zM}z*hewhPNh%nIK`JrTbnD%Mf$|XnTv5V|ulAw~E)jNGeDeah>R;|)R@kMzm5loE9 zz5BJR`Z5c&+1EtCH@tGJFIG8v;%)ERGQ<{M+pGWt%gP_(PbnJl^BPdwCmIWBvQGqd zG@s{~igrx%XZqv$;UPUYBX&+;m9}lx%;FevGkVJRpl4Q$(}>~>aUJs+d>Z1TtaZ`O zTJEFOxJwd+BP}I?B&nSp};;QPeh(>r{CMr~b4w@h;Ou~OG4tl7t zUmUFM35Z+R`=Z9aQ`}MwF-dcLK(BoLZt*}3#2*3i2zy`D7; zD$EK6HK~yg4|b{PgC*px0b9iI>=(gdQl%w#(c0ahpaTXlH4pdvB35fu`%e8 zFc@K7m(n224w&!%q2ISW>v6mIRy8I#XDh#MK(rJZ@p1TaYnd%Y%r-ijPV?7tiQ{~Q z*rvdjA547Er;WONM?SO1T*|_lIv|L@a^Sy@D}Iy2D^d3h2Vbk}O9KY7hjBcEArH!) z8XU8bJ!w!Y3ja6HDY$J%>JUy#j%{?b>mx3ZAoghy6v z2GvN0{{VmT310jj?YvvbJ72w9<5AwNLpn|YJ)4skeI1^zn_~r~dxV5_j1kYG5kalj zc(>B3{GO?acHXV`duak(=*$z)zOQ-$;(QsH{HzFozK>3R*70HYOtvvz&gj7RV>~+g zib?mY($s%{rm0TXrt;tROpeP-w5MIHv<|`wT>CtJzKVWz0_VL@kWLHW7ZI$PZ#u#A zwerv`Ivi;<@4=%QS8fizt6_WKqOZ%D%_F^XUFrX3&OD~{R}eyq3|4r)_Dgv2PI)8@ z*A~ub&f2zsDsJ?8;}9rg&6T|DaJ_(Ob%Vh|+S zbsWz!r_M2t+PpYrtZ!Xz%z?JMUhXS)Yqyo!<-Zp{NH}52W0-A7v=*BD8vILg4bDRx z;9w@Bk=2QZMs`NsbE=UV3+~=x%)=`0(QYn|X*U%wrnSa++7hPvc1#0nEioO{F2{JS z(N1e!ZLyXi=(M9C4$1Z!ZpeT$30H<-&V0%e)m~5_bku+w|uF1G03@F z9tGL3{>ENRYVv!N=QDow#5v(0wl9cTkDa+vQIsqMZQPE>=o8kcj?ooGWp=9j27pAywl5OfAs5N_P5a>gVG728n|Q)4@744S`! zaN{r4V`vKacJ7;B=?4w5A?(2L2Y$z#Y3H*VWhQd|f^E;bS|h2gP=(dmKKt z(~WPd*iLnie^njWPd1#sj(de@njiKhQL^Nh)Ku?#1oaJ@_7UCMB&O} zd`;6UefEjR#RT^$sXj^{atyNEhiJ{anr25QY0!Ea?wJ}xQk0~Vw3Pd~*eJv4W_Hy#S&U5ItSS8NdmREsftAdysg;T3Qz6b>|H44`= zxrSGmqHu-6g8C3n!A&@8M_>{nhyW>RRGEa8=vyVmG1SRsVUx!!q*Y1V-LxL;YfakU zRW{;`d5}yu2KrbsImV(RpR$g4f@X?Mep=@A1b8E^@bdeh{W9rzn9Wg0oi*?>h*e;c zm0%LbMd;=qkhz*nB$|?qbCOvySJSWq2GcME?3@)>!4x|U%yfiQV$Iig*QL9fzL>sF z3#8jPWC)(%H^f68>TQE+;#xV2spP*EGZPi0pQTw zl#T*BA2K1py+N{L#j40*5p2k0+8SEtB)bVgiuUP8K=QcVxrq~}K~!%#Veb5QzI}Lf z9ZpkGKE(r5IgNPH(jQe^0vXH@N-~I-tK;i0lQ2m!g0QPC{EREQ(iBpS&a^ZB%T zq=fj$Q!^9i=3Y1oC@zQ}ViWcdn@;*hTBy#o7J^64-{I3;{m?9Q;P~Lw4&+l{cw?h$ zcJzF+XfE=*&tq(aP520w5Bm;hQ8M>Z^t5xYCfrW;Hc zMEnrxL#Pk7A^b<(6x%{eYG_94VE3HJ%)a5VYs{cbB<--})9wkkv?NM@2z9iSekd>1 zjCbndR_R$749>bxM1(MzRTv;7;5$P=#Ly9?oKP!Z7;HztE5e={VAA2(r|AkRNeYvA zQ0W;8u4G&mjorw&G!ZUOycejv0#v^G56$=+A@UMgE{Kj@B}2d?h?DZX!qG6&b(yIP z!-c28=rZK$U;xG)oR=`(4V*k2S(4MoL!nS(sBvB_W|Px0jVLz>l3d!Ncoe*ADsx9q z41I6LMcp^|j1~sh1v_nDD6kL`W!C}iikV%-tM0b`*dFLLG%X2f|7VleXtF5dz$k_t zOBnee=bDq6&xjzhqH_{aO?rWoL==z5+v2UMOwP8+<2MS7_|Q9;O6v)eJTv+r0<_&Z zgp;sjUma~3OMR$&NCula=OtGrO|zi~l=}81rT=tR?$43_-~~U_ks1{|Hobj;VD%E?4Iw6 zl3_hMr01OwE)Me)-EO}rv%4X3-@eE-eX0G&%5bafjke8>|GJ~}XfhAF@c2xZk2rLB z+G{~O5O1?jNI@JDRX#4@*fKebacmby7lxbYzzAnvk`5X$wb{ysn$zSt$}xv5vdswQ zLjR6;*@%&Lo0N`$g=T!KqoX;TKh%W&!ZV0e2St~v$!WJa^YO+*-MNr+wT!y5g?P8F*zwWGq>YRMG*!pjOo)wsC-bSgB8?dL(=BZ zC>912gf%rfij9_s`*Fs*zp_={uxhKZHMpa3W&6p=6SRqClft*H^pE2U^-o;3=rgHo z@eY9+EWzB6TT34LN-VDl7&8Ex1ylzG^%Nld zC53wYCtaUPcG_8$#Frk0c+5j45ciCdzde`6zU%pFKZuP|_161>b(Xv& z{P%%*BgG$g^{fb4-+0_-5p5Fq?`xoqCFVWsI5w5{80navU?T7a@SSgkxN|6h z9Dq)fbRRjH8==w6>!$&uh-VxB5)K~eL!KqrvuYrH99jpVJE;4$oS0$EaR9ldO5B2=AcJ@E$u<&3~9x3_FNumJ(+d5W#^u zse^WtS^)e+x}Fxg0dV-=IUL8v6tT`Q+Gz7P6`JX<28sKLS}21S87z@r&s`{OgcDF-8AB7NeRN{+!<+JssLniF;mVVo716YrQ$vqVc^$9UWCfsdKchNaBe zXhCtz>W5O8P7;EPMHqg-q$`J>$%!H%FDBIQE5F+CFjPd@w}-F>F=)^H^~sZ3>hIG& zSG?WSZYZ8v-{_p5#9J)YKF1V4Q0)}~{)~@Kr*8#uD=aZjR0a@PVEhiRnu0hqB}T2r zAi1I-4vJT5#xU@8KWhdBahDsTE_=E=_$zc4RS|Q&m*Cg z@?@*dl{9Km|MQeSheYv+ecsWherLb<$v^2sXI^0M!R-$5#$o&5)W@8l`p}v88}6C6 zYR&eGr)sFF=uKx{MXNi-kEcS&ZG56s5Fe7;riGvwHFP&qQTfX%b^x79)fj-_Q)wAL zv{!n%_<4F_#BF>kRb#vORUn!ff;dJ&+zu)c*Hs`|0MX&$m|J9rnn9T#6cxy3P;eULP!~3#u_caF0bL?0PMZ^1@Xn5V2@Pc_Dl*EY(#NCpy9Os5R%H54>4B2V@t(N+XI<&qUyBN+?Y+g6K zp|LV@DeIf1kAP4xq)Fklf<`eS2Me!mI1ky>Z=!@699*S7p?>MK z!$}R<>l^~eu?p8JyOZ^txzd>1zr?q!bI}50!6-g`K!c3Xb|SI#qos``%NPUZyC;DQ zS+2#J^;QtXRSM#uoAptSz$gfkG74g^%+ye^_AC3VtSdnO5)q3o@x|OS&1M6kia(OBuFtW4s zU&oey8)+SVt*i7VQ613&@e_P21dB3+W3PdQpie1H7*=0YmTyxb3?oUqp4$Wr2zYIk z0WmxjPlM2KO1yhXp{_G_^zah7`O=q5&+DjpC@w5*CF=5*n7Ti5s9T%uLJ+@X{!$PJ z#V>2<9|FW5I9FUj>=l2gp>75;kLHsVfMA*O0L#4EukUvwq2-lR5G3=|*msJr)qLH? z*Pr3tt|0E1qU%gRyx^I^?cxRR7({Q(JqY}QqPfsOF&_{dhYW|mVaFyo;xjr*5$QBc z*<2=j$p^mMw(olX)2YQ;cY9A;@!#Xe5It!mrsppldcNrWRvCiMSqkEiR9VrLye%~b zNjL?uPkg_249IB0mm!#*-v+WsWx+S;Tuk2njzTLU{;ibhi-!Fc8_|b`eT(we- z(VgOd{z)IITB+`HI~lNtsl8FS5f7jbW_$=4pVfL$L6A&S5C_Gp(?UF3{w_l>_5R4& zan4Fm9NNk5Q?zr&^w7>7yOwrS$KH=hjp-|56uuPMP*iZSxl{c7h&`xkrMk!MaQ03A z4LV+h*fvl!xeGFnsaDp73Ja3+3SzHI*9rvj5APiMY9->JdXjacdV)))r8h|;1p%Iz z7J~Mzg1Fn!A+>vg{N)Pb4)K5FG zpSF_ti%*Zx!fct~XH-P(jDe_~%E#mF4RwnYAJnO+Ee^+1F^6qF@Zlb0<>jeT zrAt++tde^7bI`-%$j#HE&W=Zx6C{_SQDsNphPCz3A7|4BtWcf)e)e5AiM$vqjH+rC zDe_&N9c`^)3x}IEIAE$dP*RXY{tkI_FdI6|!DdRa;}R}w6sQa(T_H6%Tq#iT2&@xO zqSEZYDWt^Key&mJQNl|<9aSn9oqaZJ35YNhsT@s3DvOQMSsr0lo>yhBVdvJY3eD>g ztO`Xj#tW;Hs8bP04a4cXA*Puck_Sx#UQlTw+j;_JI6D4!b@^CNCZvHH6%OdDvJ=b_ zLfB89pN?c6+0zJU;J9BSj4zNY@4a{5zMq{uXW=K!pei9;Xg-^sWtN`tpD4pU&&k=C z%0^zL&$3)*Oj$0!0h}q;zOHI6RCyv~4s)r8?=&w)3v)6Fo2Js8ZG#gB#ZYi6gVR)2 zv^V5|n#;yWW2Ud2BMRioO;Qnw#YH58qa&k;d{`9m7#UGZWm-spzb?0^H_@9|()@u# zI@Uc*& z2K?2ePH3gd(1qM#0CjkDePPY<-Umu8se>bm>DjXYakLCWr@6;x8LVjn07 z(jE$8YV}AK)gwf)Uh%y`LxZ$@y*bS<5J&Mxk^ZhD+Z90+hju9N@R>f#oPee6Gg06n z{C=?$TNutI$7SjF%T2UrVFm|FRskBAxu zNfT5-g3_$E{w@%(#%GhCp44Kp(lA0T?Dd<6@^J6C<;%l9#Ie^ z>lMV*>X8nt9{IcjkekDWLF^<^4-p53W|wd|UgJ%?2nFNOU^lJ`+KUG}(n~Yl@@-QO6n_+;c>o9P7~qhl(}B?C z7v(&*ySbfwJKUaA?PP~&^H^FqmH_zQ@64i3w27UC7&e!VS-_-(l#{}uIwYzyX;XD3 zknXC^L>-zfi^T|^nL9nTCYD=kQVX`B5E`^&LlBNRKk9}gpPG^Jj8s*SLJ@#VO=w?@ zjLJBuUp}w2Iyh-zb(3;{g3~8zl!A&j zvNBL9Toq+7<7Zc01=)|1p|Zrsit^Yb9b^Dsq0?}!_d`KIOFIy^iZ^(E75PCBCR0F- zaR?R{QJ@-vb6}h?4mx&9Ed(q?f)JEf151YSd6}&@2hvkpG6PgBkIB~OcX$Tw*cB^D z&0y--`%x`Hmf=ov|sW zXgY|>*Y9@j5vW~N*r(1IcYxzPV-Rn{KE*`_IA5ZsIvj$Ih#49}vPh?M>{8!KBr_s1 zVN6iK#pf+8fs4#3Ey3K#Jw^^Pa*sL1BgoTtZ6TD7m`M5k7;l0VF;ztE-3wef(v3L> z>16NVOIcC1_`b;W42T7VdgOG_QJ5lhhFGOE8Pa-%oA*Wm8QP%hoi-tl+wi5hO7=wA zHx&mXaP_krZn!gX0%~6uhCefAmo5WU+R<$;sM1I~9{w7{_fRw!3!=)LLiC=nkL&2~ z>x!xPJPZa5n;S0IcMQ{)ICLqSlHZTb*lE{WGp)KU`M&1cwF8;fz8#wyif>Vc$4kMy z{j0`ya0h>%PQ|hnm{`WGj!dhptb!n^ryvf=n3q!JF^HB5;-JgDWnT=Uggi@z0B_z) zKACb);w#m2pZJM)Y|w{nPMalSuFxKUB$R8EgAlYSr)Yo~Y{y4Pxhl9!BX8#rSvzax zjFyvEA>s0SJ~;wge#9<)1)532n2VSb)8a#4Mp{ge{9~ky+9~s6O1(ueC^te9J4VcG z!1XIQEOxn&1GvFdcdI(QU0@Aj%HkCI9iWimxy|YBfr8-@O`~3tB4sSpLsW194;)R! zrkL4~I@3h7QMqU)%`2yOuP{zqIrGvpd}nE`viK~|PfN?OOYomzZ68JNnSRXYoxHvW zr}#k0Yflu;N8ka)Caj8_2hAkSPu925`MKzs`jkF#7>5O;~MDhOBVPX3y|LULI_>~+85Lg1_o zD(S?*3SytQy!tDm6CTWKD^!47zLuyk`38FK^H5>G*jLjt1&F;A6>-MCQ|zsVn4~%0 z=lS~G;=US)X94j=@^Lz2+<}@`53P}Z{Flj1yv|{P3WBf?$04}}hdPv6sAWf0wp(%G zB%U-C;`kf(5s7#q-cRvH)SVQXzLAWAe4#5(_R;5xqxH_>X#V-0d$3bztR@W&xZ)*Z^aYT=n3&HQ~(wp7zxkoKv^%pxLR=%k_z6mjW-V%Es_ z;d-asT1Vo?H+PUt=zU85llfB2s<_)KoXpaR;pPfIMF8!dr^ogWA z!7hChn0G_!(pR!J)G!ILW4AFe7R8L`WXT?hYv194Q*3u4DUokGffMSSr>3T~(QbYoc6wRpmpmTUgj6CcV zSg7q-SM`Oa0@5AGm&dJeDm?71yl_Kh^B0_B%}X46rV$^)Qhr@qf?|$^#qZF%;XCl1 z5yh7|>serm^Y?i@(N61$uT-z6f*`vPWQbDMq zPxT9OJ{-0eDRl~-!2H5Vt1`5%Q|AKtFV(Mf_$b|9Bk2bJc{rZ1)8uzdj}8v!^&GD8 zq5_Rk1Zu6^O(&Y#l^}cjg44`!f0yh(4>t)sEI(F!0d-V2%boSbL!X(A!6$z`Ni!zz z?b#ex)QT2N?0dg&X5OW!U1qFj=Rkm zQ>|QXv6*(cB-np^0XKnYe=oDjf!S)^u91)NE@NK7F01fL2g^IPp0~@6s`b?1EmZrE zvZiMi`iW)ZF&o+j7B>3~Hv@nixolj(7abuX-DUXGe6sLYC z>f{$yAYi*8AB4DEK_Cxg+A+xbRS*ZKM61+S=u`>_Xb^^A8TorYF*;xK#9Q*P8Qx)v zQV)t%eVb?Cj$Mhj9B%CW;%A2&8za8MC*Epo?nK;T`shhJzHRV{x4OseI4exw!-pOL zwye+tGrem{G$jixihSZ#5PMy^mMtp32?|iMAQ?!8Or0 zJd&`xI^Yg$;(`=Cm&KI;w3E_QmBRaIRIcr6h+Eh7(tfg|&6)MQodS9qWhpzT zG@T=}9?rW(W)(!4uN04v_ED>Lw@`8R%AQvcWHT!WVn;Qiqj9 zkwpq|2rf)P);8I5D}jr+o)?bS#RvBR9U_HjY(UpUS67TK)~b{&yDJ1)mv>~{H&mWa zBQFs|-tqv8JSW?yBKYP8T*(Kf;7X7-Jqg<+g}BpfwVWj57TQh%H4G%F5}HQ-vtsIwFb=XGvG$g0H7?7V(~> zS`b`0geryZQrj5^CrvaY>!@0&sWE|MFntXlr`%T4ZFTm4d&MP& z(As84$s2|b7c!~PRH08GhG@cT1|};*m}dE}9$+{b1d5e_5e`7M-9-f_baxqxh0(GL zt)oiO+V-R5PcHquO50ji#k*Y5y4V}YD&s80FusCHkC+`r{8C%D_8g~M)S&B8+p4ZZMFINIs$73vI+VM>zw}l!a795KkrFP74gB2AmHiPLSG!%UAQkRnT?d*U zUl{t(Gp3vaB)vi z?7W>~&j`Y~={Qv&qMpG*Vg)&CTgR3~Z|J$l*Oizbxut$i>f#61M`f^8F3#*7w|>)D z`ck3?)Zp(jy{>TR^(<4P;-@8u5?iVY!o3g8fdK9)C@VhOc=Tk zSJr5HC2`&d&ojP)jCr4r>)IfVaTeKZVhbbDB5hMbJo4dNNOyVf)8rB+S`7Q_yT^f;%qxXiAK>^ z$lHEsYm|X`O4@l5ow&7~vGb_a#4XLl{Ao;B#TJM1`QbSuNM0b%eme0VD=(|tlZ#Ef zCvjfdZnHn;Tdv)fZd`iLd3~j4?DoRbJr4$Yn`XBJi|@fs>;w`m_&!ypsG2V!A+Y#- zi(jduCdmPqUb+VF71O;Qfg~z9LAP)YSpylC-9xz636dd=;}O-IAOesYTGw~4|Fhpu zHp$fO^H6efMxE8(C|ADP-Pf8a?mQ!8{UZDml$=n-iEt`Ta)ovrzVPiSaR)4TrLqM1 zi+1j`6?Om5cgi|#Yi4=Jijm zMVttADnyEcQXi3-v0g3 zQg47byj&9^fhqIvz0AMmnh>Y`9`Q-$U-G?Z+GEJpT>miS4n#F*O%9GY5Qc_zbsXc0 z#0zp1AOi3FiY|SD`lWny3QbZLl_swP&tI|uRYY+o!xNDdls68oN}jar587kJ_nO-I zM)4TJmcP!j=tidN)LRM_1f8oD#MD~~2_ndAqadcYaV+E9AddV@$oXPeHt-AOvbeB;tUqk6yvjPhTTKeL_?tLZf>693tEL2z`Q7BU006 zzj)@K^r6#i^>^-|1d79cXA5(N>O-elm>tus+0+{b6}{>7rD!$vhCzbZsn?YuK7@N? z&ryEZbCe%eLC_iRjw;TmoUNLndDR$z;L~9Rzn#oes;7&ewjezg$9F$%)H z4X_&GD7FmL9B+|FDJ@z)9V#l21)w0N-l9klK8~m;h^eFaoLVV_NHf)m%LG2W5xf&F6f-O`p0gK~0SZn%q{CjL*A+Ui9 zb@&sxoN*M8aG`SfLM(DhVoQH+l&-`Y-jJr9oj8VX#X3s+k-Ndmyi(b{w>f^ZO1=Wo zpq@`liUuyFE0UE23uV4o;s$ouei@U6l)}{DprwD{5ZdH4ZopZGe7ZQBsB<684OeoJ zJGZ)OK}oZzu+z#u_-88;js3E@`bG17OBQcF7oPAFwT~B%CHfoqaW}AyiffAtBH7cwe#|m3QnQaJ&sQ))`3|QJ zlG#}N2|>m=at#ql){&;j<8oRk`JhoHlW?nKXqJ|mst#wgamo(f{G<0q>~fiSFVu2>}qk1VhK`hH|0Rr891AX%=)z7syz=^)4l zry%YSf1DPgGK1TzYe=z5u>UyY$S)9~Bl&|>QX2=+Yp47lxfVoNyaR)Rc|`pZ2PS^F z>-wiVw2PyK;;z6^Y@N|KOwBJk)Kq8H%I@GVu{EP0+_P#e1nCt8v2V(ZVe2ur48hcV z6v%RgkyFvN>JgF@N;0|8EM{l?pllczsLuVSV0y45IfSZyMIm~d<3FQm$%V&W$}bKt^!^hC`n5X4Ve6DWv-PW3}&<|ZJX zVNbt;*y~nVmE}UY#!CW%XZ|U+S!itU*Y{W76$u_y5X47n>^sH7HTV&y{U2*<1#!oe z>^GQFxKEJyNI~50cp@q@AYVl@ghy6%Fcm%_4%K`Gc;KEog4pgr+))ETV`vPa?z;Je zxPl=nwn;ni_zOdP#2I5(%^38RAVd7ZfwCs@Jt;A`UOyy9(pDbsyQb20VV` zX|yGNAmHGWtI-{GY6gM|2txR%-hlT59AdctU=w_5#7F`c2c?o2E7lQ5t{r7d;NBHv zspBFBz8Z%13o>jiE0Id4S9VL;kT^*XZ-0MtMvvXHNIM$NO>?*@@%Lnd`Iu=9wse+8 zg0mMtW&RggK3F}*ma|}=0N%QBE_jFb8=d!G*GgCs)qVlaZRK|TK)L;sZad^q1wLn7 ziYy%(?{NJ-<@TfR=r@$dyRWL9JWuNTpGFlheZLmp9pd?E+qYM>-(4Q(Gj2QKTb_3X z-^2C0-|ffv-cla#0jC{YiSaHjw?C-xoqUtqDa%;RW4ANECTiDSF1G_4H4moavT{4q zahiE=b23X6x4m74-{r*jRr}w|?R&&?JU&JAUe|t8ZodeA9P&%%Cg-4i8F;o!oL1Nn z12@{>(vJ2P-Sjn~fYn&jh$GKx3aX$|27XehAwSYLfvN+|XVNnrEd0Q}aC@Ig*R+xI zREVz5wpNVV4F2u$BkB!r)hI599UY}uSS>5(T~7YpY5AqcZH%0>xVf68PjEQ;?0l+a zZ0WLN{wZgh<(XdSM6v`=lP|&&PGcM_0reKlbCzW0tJcAR}Ick}*xnrLdAiyO&_4+rq`uiB4s3TU9Z3yR0$ zY8sqc(9XFg-PQg$8>w-2gWZ4*_1T2-$03+9lve2q+ zXHHyX;zf@!GZ4ZB@^{^AG$%@Jjjbbe8hkQfmS)lQVT8-GSmzkzIL<$sh}KbbfP88c z%t(_qp|@|GdMmJgS^2vMike?-csP?)mz&eIoNz#Q<1#Nq_7arrG%z%w_l7j94;3K( zbKch}-{{-gZ5h7OLIezFLIyBCOtWW!8OiFO^PZ;mKYQADpsE0jgIlI&G5)RMp+dYK z2j-SW1iefH*UwRe1=FCDT{jdEcJ(e?8Ut)G8%#@{O-hK2nQmOH=3YZXlg@jfam_o- zo5O$?dK9ENK?5HN6zAm#@NE^XSva+GHr3T3(UvRIhT&Nqb)5AcTHTsHJKUFg&$YpG zoBFD#Hn26B9~<^>Y^^39aa=8xwiA_Hs%lSTmn*7nMFy(NiEo1wL)ba+Os3(P1Q+rJ zzE1T|H|{E;8xI|SWEgf%xG~%ix6vnP!#B^)VG89A<&oS-u3^5Qj21jKv^1rqLci09E$ivhgGWD>_V z0ynw>5f2N28L>^!n_id#MeA-RUoSvH5svQw>Lm`>OyJyMvWP5WXzKRsa#GC;1H9xDxp;l;ZM@Qh1 z%!-a!(KNKJtP&0^cQr!Xmaos4MhQ4O?p2=iD?I0Osh%3`h}9#bgKSRKegSS1a(Ac~ zeh1ks(~Psds-0{;HO^<;cC1Zh9J2Yo&fh;=zx&;OfO=IYn@^4RfYaVb__EEX+8>l? z0A4VC&`vg=YTxb5qmzEkHlJ$W;=B|^lIc~JK&pMK%QJ*8c)%Tp@ttPg+Z>xujYGDe z8fTaDhKFh=TTr#{5ic>G*ofd&vISN9MN|z*dvkIQ_7vHIJz`m5i499HA$255Az1_p z5B|iJ?yGf(9BBrN(4zkX5TtI zSyy4I)ADO@j$uRNVz&Bfcg^=11a|b1f%~3+x2E?_#2mdZ>`OR{AeJ zK)A1iO~g32C1fPBp8duhwopBcVzRI4=CRgdypybL z?uo3&iOZ11e`w!{-rQUY+g)HHctV};WyD2=C@xU-rBN!LflCys!BML1U~OQ6hbbII z35bm-74LSlT$&19P^da7RDv@P2M1*eO&Y`hb2is@gZr?cgfdhqYUM3hvV^*{)`u8% zUz^_1&@ZpOR&MU;>e3-Dcm~_YWJ`3GZ+184fl8FW(;UbHq``^;y{Ej)LYkGS$`Gts zA7?4nIr%4XEw2KO0+2@6Vd15iiPo#J+kIjdMQ6$FxcZ?4%!`m>VHM=TzoaVf>qa8^ zm)sk*bYzXsT;;EqtF>jtms$s~)=e1i9_ADJ3fbQG(AOvbfcCGE&eBx-1uE7z`5M|k z?}6VTKF{#A?c1I9Z__v)_}$Jp&!YVsq%)lHw}@}>taE6eD9>8Q1)38MHMWTBxIM~v zUW&*v@v0y2AM}jBO?;5s(`Y}WL1#GQ?}A^A=0$ius6l5q?R#)Grg1v)mO*D_e62%# zoZ(*p{8verIPe!KD|+&`lg(l;;30*?Wd*yw4ps|ZZ-_=LoH;BF^-Z)W5ChISu<^=9 zjPl!4MPSu$T|Wb*jKSqgNe%+$Po){h2?V~#JjO?L+lT!1I8tKZJ|hjJ!^4cMpC04% zFe#d-LCbtvUc36tjqm)8m5X);E&17bqQdi-)z?UuIJ4U6tjdd%;||Y}KZU4&E&il; zbHhU9C#See zy8q#@Wbw))`p{w!&P1UiP3`Wqj>WLX_S9)Rw>0@@T zuaF$@FVE$V4lbS(7}b7Ux+dK6+#5~prI(-YMZy@c?3-*1lFN^D;LoI=uzv!Md{Eu}ylqY`)NmZ252z?z#!pcx` z+=|H!+Wus=cwwlIC{N;m-<{IPJ4{iUk76fz>LA$@$`KX^;%2dJ@?xiE>S9L|w1P5( zN0wl)UYCpOdAE=k^*e4m^z0wjgw@z#&bC_q~!#?uTKuP%o>!L zWVZCH&KYB+pAqevCjThk2MO7VRhyTDjaP^J@Q^}nNAZ{_DJoN%*F%2drWSrXkX3%S zTOX3l=1_A3qo}1{&gstM*&3(;dVw0;1U4UZ{4Y=ja!5B9TT67^9P{gNeZMasX&7$G z%G62nPp~FSc&QD482;j0oiQ!iVl*X7y`edTA=#}jXv;wb+*1tG2*r8eVbY*tGk#UZ z1##DMH8$6%5Gv3|1M$%jd}tv&J@d>lZ7>`_dCK$rx#H_sdmf*6(<}@}GX0ml%ih4p z!`j!dnzQg((>Uv=uQ}`enzP>2^JP!Z9mqZ=ZW;g|5XR`qBVLYJ2)E;3FYr36_N{#K zAWPwVhL2GmDitN*_6z)66O$TeU~8K(Sx7_X<(&J%jWa#Y7)F}9Wv$t$rl{uIxMyWX z8wO2_ud6wiO!dmm&%Ixx=u|X>pYGSnR8?O~#5*Y{XYr*t9;#Ya?>gxvZ2CNW?ko>& zOL2bnW&pf>XJyV>hfFgqaPAdvuuN67*on-3K6T({5&UQ&UtYa+g94>6j=V5I5e(sF zCs&5LuhMk{`2GHrKRFsljRhizd>uSp*H2eWk-vyeE(ACo^|53qF(8DzuS-7aV~Ynd!W(|f*}^+v_B{<#w!56MuB{} zeYZ0YoC6W{BpXA`4>3@N=XU)(r#)wIJ7nZVV4a(lr~GCm$ABT66DOA;x8lx2lBNWC z86Z(Bb(sT6bHysV->RNt1-EUe<0;dU?GuIDF5HXZaEn}`eH!w+QOqgK=J#QkTc&v+ z1{C zrt0cyu7SNu7-luq?wM&7yl19>CreDh^Gx0GdB3RkofYnrSNT9K&W*GlM(7ulB4_>mXTjmv0M#K-$IgxE+9M-}2}X-ve> zJsQuD|Gg66QO~?s-6@>-D;x3)PG~1GkGADF6Bn+}g#kCF<8IHzdU=0hH{xXXZM;Q! zBUU^CowcM;z+JeSKv7KscL3wPJ%~)kw&vlNYHD>;bL1DSO6irMmJ}k0v1>jJ-+yM=OS$;-Xsi^Uim68 zP5ix``GN7|by?@|!!u?2>%5MN{@!)e^~KJP$Qj)3?47gK-Z`7pj!yatepT{dw2K*X ziK=G7SEv|nRG&6>|MJC5w2x0<&pxK?uv;A|r4&9na(lG# zWUQ;56QsD>1@WwG9tw_)EmYyoJdjBn-OcS;-@FO1=gdH0Ok394SZYf&8}I$Ld=gfG z&e1HYdbwJZU{liTFR1^W^7;#mXP9BOxt#j~93rOKZ1hBH~W@!UYNe^yg=j!!rHwZ+;(AFS1N zi$P>x@vpAz{Uz`H)1AHlpS<@w@ULHc+INUwb9)!;MZzSj5xizxeicUHmu~;)f!>Y0 zD;hlu-RXtC^crfVv46?(UVU>9Zh3{E5Okt=ilv3RcL4*^d62z{_|_&h&+^kNTuDI= zMW?o+XJ_KHWcbG2bz5?=iwi$#c(uM^cJ#ic(#v)`eU(RN9M8sg$X0q%;fR0z#?!uo zeEYyAfmr0PfK98oun@_lk`cT)g!mOC0EILt4vBkzaKRJ5?nE8V#`a~!t)1z_*P03) z41$=~1OTRmDTfmCc%8+@HFPKrs00$pYf1$po@rXYasr7BdC!C+X(y1lp?c=z34)fb zn&EaQdeMWmBzk8xMUl(JXP6@NVt}{(QoP4Y$kQt<=VL#n1u8M=zA3ugQQ+mHNWDd8 zb#hH(CsHXB`G9e3Zm{!QiH6V}m%z|&%tPIxI#fN%a?Z+~c$GyPOl=J>@h{xbxVT{x zKg_b@7ry$^|4Zgk+VfoNqMvqW@H7i!@FKoL@4|M#M~40H+^Y3ue3@?jLzWz}nZKAI z-$fj*NV+}i-X?W-R`LBb0vs@WJ4{rZSqSSmxr9S>xxQON3I!K6V zy3VrzLc+Qi`UFEkp5|>M1}&rtU{RzxudQAetXuLXU`4huAMD^ z+nT<1Vt#31?8F;^nID+Fgt=wJ^@T8eq9!gkBm^CQXg637K6k1!B!_4YQEnt&Y(y9X zNMdH?FykP+qLyh`6GF$kuXv}Md-^gDGEGMM?>A=a!uQ;n8a)u8`Ey%NgXt1gH}Xs8POwHuavl~5CvE00XXaN z7#5uOuBSIg=wqwXJ2F(e1O-a3qG4L5X>A0;ofc@{M`0V72@_S&pu|*Q-0DcvK%Ool z^R4iuz+%ejbjDda1JS>ei-GiG>6?pp2Shl7Yf7VPgo=0a{zMHW*7g?j!PTs~zJ`bz*3p{a5b&gf-JDk`{ z?Ks<=b{GU=(lh>UXPi7%T;ubo8fS~dNdw>IcFH}}sGZKEXosatc+q(jr%dNOdN@eJ z=wE}}CVn_AB%Ow?NasX&m6eOMFpJ4oJ=|JBo)0t0xYQDQDuLn#Ic)1=Y z$OP4J!=FlzpTZHbCV~4Z0HEQeMD`BBy4i%ahK5LFu}$6ECa}D80xK`~s9fLG(A;xX zzq97YXZTF3HG5W`Uwq>4^157$&ya3c>rN3E!Y8Y#cF(-zdJnv3UVx_)t%B!yDZWBG zdDT_>&Ii6>e8?7#qR$>=nY-;JKGCXnS_z`t3_j5=hwMk3H-vLxItb6E zD*fS;Ea_8h4~YLw5Q5Gr7T_7s4`*0!l42DFZR<(r@H*-eae0q>Z1qsFYX6v+r^4?- zE!fSg%GmbrdL|a;F zmd_PGhTcK=bI*evSueJJ8CRNf)dszW(+SPNmlFX7E?vj2B0m~LgU`KO8(@YouB(Nu z0YfDyh5mpHKO=@J7xiBhx#+pz+F)qb{8^#k+C?Mt<|))JD}98}liNxYG;_w0S9qV| zEQqY>+P6#OqPXxZ2^9PmnXR;Y#@R;xSE3+(*f1j^bg~NLi5ILc+q@cVDA@ID0Yz?O zHt|tCTKm`w*V8X)UH7h;cE{4Ogyzfq$}^YQL2BgA4B&f1CJPrJeVug5Tv-;H&W| zmZ#b;ax&#qJMCN5z7y3bM0NOe5v^E;yRusfjfhj=IOK$3SO<|@igTDEPB;Bg#(H|! z`SK$Tdv<_9*TGc~2oxPxcdCy+^?h%mW4yj1O{sV9Q_v8d4%L5l+o_qV@Eql;OHP z5HV*kF>ypVgd?$Gn(W4y9ZSUcl~9Dq^K*~{VL?J8RIZXp@Vo=A-_P})Zul1jG^0nq zr~BVHjU*80F13H#Z}|&XbQFJu43ht<(*j5#0mXPmOtFtS6jNT)Cj9Fa*3hc`0!LzU zJ8MwY{zk5P#qmt8L$2 z)lQyoHU4MZcHsMbdEOO#57+O0w;%9*o-(z-`s^~ji=i8I2yPO-~9_~ zJk@>??R>~=%HDqy-_3v{t}e8Kp$)`#bgkKs7pEA49F^ha<@mGn-{AwKDbh78W*W&6ZpU>QcBb|C6 zl!VqmS!hulocd5%5!Dtr!mG9up*^!A!v3XR@WFZ!B+>UTU`Re#yQ8CHpkqeLj^#)W z($Q(u%Of2)NageCG*uwrEfRR!kOcr2UmlrbwUSZh^0I4#8Qxra;a7-?oAZ3Z<0;_| z4y1~#?EC8ssXuPcm1E}P#Kis|y+v#U30{_+sAZ?U{TQu&xdMT><5irsg2V{AzkMvoxBS&py9#A%vib?7mW8g%%fyle$ z={<|qC@(Ul{P$_w>v9tum&DRN4#i}Y=2OUy&tX)D&?q)Ol1kXPZ_Z6-aw?arOAyMB z)if1aDJ+LG!vxv7DtHS1DFdiNbrgm)X6-J*my>@yMm+_&JW^QrYxi!pC6EL;IzNsY2SgD+-QDn z@Cf_?^XnGhD#Sb5nvu=N&HzhW6Qr6WKL;+wrDmS6)H^P=6502Ur zlvXsu+XZ=T6G!ZW9mHSoAy*oo_-F9o=_t_e7Tq?;*K6kj$c6BD1G-U$LaxSXXleby zbvh<9Q>nVjbr5XOV$oXqk_VFL>!ss%qN7W9jqD*s_pPkO;d2L}Y-9%opdS_##-ubv zvJL@0%Y<~N$T}A_IF5IxzQ!rd4F&B;FcV70ZN4UN6nTj#Wq<`YiaWO)Zq^Y5I7;g~ zU9K>jKewFX>+F2*lrN6lRNRs1TNIFAWo}*unW?a$T84zm!-eCM5?m~7P;4^3j}8w# zbGV;#!Q^J32Ro7#QaTyOg`|!Bail#^X%D49a210pVj!WRr$>Kpn;pHE#}^KUwgk@% zFGKahR^1#4=z;m#Woy%=&ele4b~v0z@xlOV7cQp_VwQ#irb9zjyP$m!R6BC*0>$Cp zSFlYeheqTX;l+E2yeHQY*M&QHC{Bi>7`>{(#R+bXG~Vc;-N-5ySI5ESvR?QYm~yEP z3%r49)7zR;34{Ro7#5EQ;o*+cg5wqvQF?@j(F9 zqwM>36h*GACkqu` z-a3N6alVEc$6J3;fu}r=zw!4yeiY&D=dC~Z8(Xbvyeahu4!%?B51jTX^#@M7xBlR- zEH~8nTRrs$6sgQQ@LoK<^z+sq{FSX)HIBFb;IC}Ws`e@M2hRAO`UBi)unh6hR=OpP zuJx9UcuEfp5(Tfop4E*th?rpGl06GgE{YSNgv0OY!9x-eR%KxOgr?RDi z(u4FOjckqA$Rb_eU16is^2>rF%t^{1^>WkMd2RoXOl4INKlR~L@31|o=I5MMU z?on3ILBe~JgKpoSVfH*}&K)S(eT$zo&2NzH15q~lABenCy+M+y+3G`nw43lL#*rk8 z0*Eybz^F-|8m~c;f6PuM5=27_QeTIUn;u-ZvPp`>#I4-it)?I42mK%1VV-_kr2m7f z0s(Dte{6jAXdp1Mp!g}oE^xsiY7iQUm&9yQ5E~1p;k62%%)^Anhs_bJDlAbdKcFCu zr3s6&0w6m~?OZtH9l05ls65!@hXD?(1_yI6*ar)Pi*mDbv-*26bbD@2J{f|3NTIYC zs$m#9n4`srT_xC_Nm3NuqQDuIFj0;e6(;D3A^Imw{gkaQ5KZ%t75;Pb4{4!wZCr7|LiY}B}_B)mZZf+U3v&>QLZf;p^yPI29 zk9q~BFO37eb-DP;lzIjAEwT^Pn4F~rlL!{Cq&Q%VDsDl393P;HqmhuZ4&W}suA2aQ zISMIILQUC!#zL9WYm=k6{*IDBk+=(V$C-h7J|jI#yP>Upf21iruboyow^YkGv@UjY-;JGJKV!RRbXYjX8_PAn*Ra z(b$vE;a^{2pOI?6fUHNf!?Phi=YiirFSk$AzTIgj+w&_P_}$Jp&!GJ=_L->hx8SW2 z!e^Q}Q7b$tA7GvIBKnc-@d1W5@vjefM&IVN!(S|JVcnxf-z9D-V|hR89@V}Fuh{Tc zA&+vE@wKA3kKwT*;!*anDEN!`9t%17OL$m50QnUbt%asAb_Sg3bO{2s1O7^y1~0Er z#)zY5aIs6yN`HXVN@!6ua9Uoe5n6<^^Pt`z@tv=*&QRak=}?KJ^p%WP2@qJ}_h5xt zc3+9F2g$?A>Gf3})*d+?OOc0_1T-Bvl~k@<6;jf8enW5ZyxFw&nDwGE^>S+MMGmWu z*%L3wMN9?4;z5QZEOb~Z58_W1kxIexs~3njQc}8(_fw~ z4e;$#0HN&Buhcdm*nWiChGnl;l{WCqup$TWWgmI-oq{1um|s`w664;=pn+BX4ta+5 z@_AJ<|v5~9D*6C=M7Udm9Z zyCG}HCG8N0JkR-H32QDo}$`)}0C$QNgBO|@?&k1*!gI(Z|qW zcsvR#4c81pGtz~1B(PCLfVsZ%Ssb@ zgCGV7)4vrDqi9DlF%)g^<_LJ{Ip9QdNQe^)agsiopc@snSPfDYAJa5QRsE8XigjlB zsc3!%rD~agR`W7bR+g&&oC4A`w4=St^#zh=&EWofD^$d5C@>lv>b^zN)uH-Myl?5A zL|@ldat^Wc1`7NSHE*Dl>q>C5NED#czJa1#4aeu=g*naL)+KX6#F2oxsIgVP84fom zihrE%NxlR|1Nc7QH>9WVH{z_{Fs6C@i)-GUcJG5St&b5`If zQt}P{{^9z0&z!H*nbR3>%9+z?pK|7O+NYd3op$%k*$FHrb!1a;J90TF2LRHO&VZCn zfm?W-T#kM~zD>0S4kVvW9muJ*1+=;@&OFy?Xzx9*zD_oSgBzb$9S>DOdjL`74Am9{ zVUp54G*K9r+L{O_UpR?t$XVMAk>?s*$u1>za7@W1b;?yG2NgZ_;drKGp{pTmUD8Wz zGcR+T;+cT<(F>DC@sEmk&io_xG%MO^r>J&5yMkt*x@_X_Dte1cPP==S&%kb?H6d>w&YgAa z0NJM8eDFW9G4=m>dlSH@s`GF7o^!X^_kEJgOeT|=BqU@XNPr9wP(mPp zAd4s<$l`*4inySN;=a}Tcenpm?P6QEy0*5p+SV?%*6uEStzB$uTf5j+-&%9?{+@I1 zOeP_s@Av(`4+u%_oO_n%Jm)#j{z!1_$2*~1L7fm%V1bn4k*GR{0PACxPX-rY#c5n< zH&0{PGh_TvcG)YZ65Mh*qJZiEh}l6X25lo9Br0`4Oy_VOfesoznL|E?fGkXI6Lz7z z-BE-y6UT=HHRL8tc~r3Jkbg|`g^b%S9QD^SY<4IR&879d33vEhY;LbzStu_aXj|(h zYGFItw{7$<%6uMfH@E(`4>A4kajKqFi6xLhh{f*zO6)>K<6uF%yldjQJkQ!4#1c^M z1M93D9!qd8Xu2O(g$8M)Gz@)!A~n?3#DcIJ1rVl-tTLpRi<^1@Q#n_0&jtucJ6Fk4 zmr08>3BEuU=^jLuI)V8WP0P5)dRb?uN0(&-bBh0MsqOw%rl3~}r3+^^v1|6S2Cs^o zLOCxCI!edgMAOq_2Lx~E#_f%`F&tLZUV*I!TtUU3p5|@(bke-xRqye5YCOrjKUYs? z58@JlQbAHFM};-M%2LxA_>`Fmh7VmP6x(F1;hsRFKWKy!H3z;5YmKGfhP4K@H{fUg zE~IHU@E7wz2@GVNf%qz%uYq;2#z4F#&(jOAr;t0#6AF1kk3&g_hq+p(S{`EL1q~yX*>onYXyKqFXR^H#(QFQHod= zqYElF(>gz<2AiG>e|*_|UiQbQI9{4ZV76_d=pnV~1yy?pTUSf^{ zUL^}&-xc(x9={2%e%X9J*{eS#eWVly$%N%D5r?N5Qmc_Qr{c}q3epV=j5wOoE6$ z?)YD?PlQcVpkjcV45Kug5CLF8qZ|Ry2<)L9uD70-BLEtKC)Llb2mq4m8B#%mZtX6G zVGKc0q9B#W!V?oZsWq2tK2w|U{f?8rv62vmpfl12 zKW+PHR|j?{hm7PLQj!xnH(<i&Y`Qm@kgMfSGS$!smbpm+3o^dCYuzXrU5(%GiVw-eqCoD|8>8KU3vZ-_rY3>$@* zA@ely=s;AgB+?-dE-U(gK0=RGDR#;~T8%^^35*uVkP|<7Zgn;m;p5#!x&`RI0V^2Z zmM56rGL0o#v=fhWJJ+0B6K22cJvDS-md}{)=pwAOVHAo*NJ{6zm!7GJRs?Y9)YBX@ zs7Fn(k`ZMO#q<(VZ=02+%6vw$)Go=$X0aO4A!ul~8Uh_E?QFKnj{?e=dNM)N#&O8{ z929?$rODRQ0z?49_#&dwH+O1l&J84(8H7+?i@b}?H{Nx0VL=p$V6N#P)DzW_2yy8u za~Uo-RsmmrDDP=A#(zbCkF^_Vf;I>kSva%Eoktu5upIs@Fu0fF5~`bE_sT5*n(~iU zW0>DHO^a(WT4pGKY&5l2Z~~uVm(2Ktkx6@H#VFiy_@0%c6jIXvGS?RgFj=WdVtHlK z25SUcoGev7sL(v|0oE+CD~kAnDvCFG=~hIBIY?f#u8v`NpXQ~GDO*krFmnh?r41?> zB8WjNGAVqaaSE_iA{gSn$OJT>TcMG1GFXl9l{f}EsrB+A?D@nvhU(|#I0oE1@ZBN( z9_7M<9bNL^`ryMTw2K@(IKJX2$Q!{pky#9V`Xnzr&dmDJsG=SIZ*${z0KJYbEH&FAIFhRN;Akqwid zS4B2JS4UEt*-tsL!R#NA_SW;QV2H-&gUAN){78`v=7@*4JUp`D{aTWD{=|3%vn9#m zG~4mf507lXO(yoKJpZ$$uT{-|e7)re0MWCMI!!o~BOB=Xazqk@$>IcILx!U*3D;zI zS`6>SA|XoHf=RUgI4yw$d)6%0b5>EK>#bnA>*Ak0S!cygP4QZBQtKY zf&*A1&8=QGpI5JOc~$%BH7*xxG~1V>9LzP6WNkh#M>)`Q5#?avKsm~Ro@+v~Hepqc zaxkC68{2AMj&f*3mOeT&acNd*X2^>xC5B6d4@Zf;rerZk2z7`{alo=5`26a8%;UfW zblXC7H;y{&!>Indyc&@a{T+0y;<{AhV=GrO|57_5FVhy^KEX8m{D++xq1dL#% z4w4o0u%JO{o4;f|j3{q$53E_ZTcJH=SE2{6lquD@;FN~@1>sLPR%YNos0DoSs_Sx? zeaTrl>spXjI#!_1S&NQ~Y17O7ioV$!MwCvb=wIym$(SoyNWg_m@%&U)7=KPyF6g$X z{Z`g9{=BN6?PR#H=C5G>ZYfo&ap++4DljOADFlLM)F;)QfGq`?)}Uq>?p}}!Hq7c< zw6e+Fw1CZG4&&dpG2_R^?^)PoyhA<1hC{IRkha{RpmGuHELL(9^=Bw^Rt;_%6_&}wyW~E;>4N#?2(?VdQKO z@1gmKe#CmuvEcA^G4AB&r&;-$&2hhLa+(= zz2L9NV}u9D4F--ICW{?`>tJ6GS_;IDF?B}u3O;in0%u1~K0&CU3 z6sws0{8Y;~J_l(>5+}oKzm*Pv=!c8d)ysGeT@~o9@LXV3nHDGaxn26+_*eoH%s%&6 zks;Fr#0V42=ew;8tS#a>VS@R57b;$hIbbTkkwLc@VFp+3*S^00|u^Z9MK=`Qiu%9e-5Kg)>Lp*OlmL zYi7Yc1!ttkxvSgR%NjSd&#s%j+t{ROEt*gdXZ=ov;Y;eQ*AqM*{VENQ&X`wZYa zejYOz@0-(ZoHmn{v>$8QPgDaAy`Rw(ZVYQz$B)ICkkY`n?}>egOF5}YI3+N7>;jvT*7 zEPAJn-CbVk!1Hyl`BKw@|D72N=PPTRzhEVhOKQW)F2l;4(C>z&d8GlbhZGAmd)P{a z_scej;}RlB#S#$mQT}l}N}Mz)VN72{eM8)ZyO$oORC9vM*0D_s&O3T=V1a)7i>t!} z7yXQ_HXh>7F1@_Z@kQHlywQlc7nIympfcgRNZ2DGw#D%vY28x!i_UW4$<`IfX!e`0h)Mm6<5WgsNzi7KzV&*f&I(flsDXmqLR}5;QH}O7%@4`h;v^ zw=!_hv&wS@t?&KJ&K^JSwC$@xKfLyeRs55gRp0Fl7~rRh%;gQ#i^zQlKoH@yv@S)qx=u7;?J)7uCbOaYW7w7{ww-+ zQ(Pv>55T5PE3$0D=$y3Duyd1wh!z4ZIP%nIh{g9;=D#Mq`%6#nIt6`?UL7d$UEdKC z2R(&tl^;Owc3^u0{0nDGbNLz*v9d9bQ+7yE=61B@Vb1BV55N(^rFk7(cB#V|3NNrC zcq&cV5t|adtu#GSucg9=7<+Dsdlmti%-IehlRePd$DEP|4e>TVbJ=xOmOU<<42MJ7 zV54YdfXnS3|Cx5E{M_U5BKXzY;H85?@jU}a=+O{abh!vAMae?HKJ(nJ-yXs|54LSHD(21_^>dfWlmImg`?CqT0H9OalYj0_8K$t-Q zvBE%k^GdTQVU}_!kPAf)g~4$G$b>}UA5@JQG@UXeQQT6b3%`iVjq+csnW#E=XwA@q zMNhV@Dh#x-Shl_=a%N)}b9jPz=Rg>F)Ppb)tKYD@?DclLVem!z=!2jYUug}DHM75^ zYYeU7W9J#a=YCghZRqpf7RS!d$!vx8F$xfWNLG!vH1;H3T%euPAE#Tc-MR}@oW3~h zoXbi}q7gJkkc|w}5F|$7X$x5r+ym|ba=jv*DItXUa~1vdc*r{HiF@KGKaF!L!VkoK zz_NN?TyoXd8CKh|B7E`JnBJCYPT$=Qja@<0{>Vmb#=ZPmBj_%% zZV)=0Vu`QAnWkB%V2z$G{mSHZqD_TteJl!PTO!W6-H%03$_j8vHShDu^fvBTgcC-H z-0Xt-l&f}HD`itaq2%pIgDoL}rg^d)4(A5R>1=S)2_i(zPxXdFayp!wt6s#-gm7R7 zb6h%A^YH;}K(taMou1y-IxXFjZV@a30n#n55F&VGKqAs+JXg`-oWf+#ZrttJ9QR&$ zmTO0IWZNzQ=Rfd_KKkNBI1fBnXAs-))y!*EY{TV16|*+|@dD;fX_3g9t&j%44NwT- z8VAi*wv#dr1jth5$I6e(S48=vwU6V9C`;W~6=M2=MLk>C6n?{a?)G`g3i%d`j6cmr z-{rHW+;P;Qib5o|NlmcF`&HfM1d9NdL$Y*$DbpeU=rWvw5e^2PY@65)k(Cg$Af^li z1Uy+r06X81ZppMzRwyU~T%;-%SX(~B(Zhh9uR68F>j01Me(jo;GZ3@4_?P3L{;AvU zwD;KUukgYsyz2?2Z)F$Zl%CblUJdF8H8zY>`H1$PAUHIIe0JF<0c#y+l6cRhrNw># zSd+5gp`8%dHA;I5ytZRSIE+YNv>iI|DUM_^0d})7QuCsq@bGE$CRZQf_K5crtA4&rKx z*_330tF|y~lwJ?4cp^g~X~^Hd5n^0%tl$50>ZE*i5(ZHrGGGC$hz?@bs|Xkw&MaEy zaM(8hJAfiir)vXbqy|@+tL&Fh6vBo`ESTUpw9x;TU67^g|J^i7eTT2YE;*cb$NNoX zd<}Geg>ntqdX#KKf+Db`_!AIhg~Bz2;5E*}!y^}(o^TOP?D&a9uFbuUKOLOS4q3eF z8MB;oqr<%`yy02Kk9p_lPx-B`OgD~dpT)JZxZU_2``JG47n@^-t!QF3E*y5FzymKN z+m!T{i3ed9Y+M>XV_F=!A>7E;iimU&Sla&pJ_K!%DxVN7pZbmRW+T-ToLNoR{i-uj zwc!&)02&2Ww(=_=7gJqr$Kd#|{vEc}X57GUbT!T#tz7csXN+z{D0}eV#{t_~slPM>ryL}YM_>*l zjjzNO<2Tqd5gP@ArV7>_${>{dpyS*3iHLKO5zHXL*5EWHcDmAL8sbW@zu=ZpD z)*@o6ylxO|Xyq6j#$dl6MnnrDsw&ebj>-(KC7m=Z8GiWLAb7Jp6G~7Y?3qx{rLE`JF{fGD1<)*x{aHZS2kqeT$fxEeynqVXGyq7tJY?zzgTNnArJNv1 z3SeQ1M*(!}DUJjJC&2@WPbD^j*l-Y#5G<>~U{p9s6{9@}ZXhiH=8i9#Y;o&<{p_;K zZV8QiJv3r`#=$ohUHzec*XR5E#y)nl7yteEIy-#LX`aZ9LmG*jA0w9}$d={u+;ket z{DVkUAe5J8V%a(z-8h^R!M<0*67w|Lf0`OR^@GSw0CFLblaEgZf2>63X1_k`(>Jed2 ztb`TwM|xop4i$S}Hn|buC}>LqVMP7~5c@}jSPLgj9k&O73%X$8 zPEL3ej3+P=1frlLauK16;b6c@T-XKt%`!35@gPP-twE2YXJ6<39o{?7l^B2d%T7G z6`@=9hftPFrd%^}6vpM;g5-|lRVA%}qx+JA`m4s5gB{?kks8zZk4iU^7YC*v(2;?4 zh%cg;{UJIP5(p(q;z>)vJ|fKt5}jZx6+MDV<*2nG=Vk9j3r|`y%e~0Kzu*|{8-itR z^fRClATA_GDpm7Kh~ZMUNl=**0H~Jw;S3z#kWMAcRu?j#Ekx( zt1yr3Scus%4+pJ^?7^04bO;v|m6u@BAw1wM2tR??8Sb7%MsyUb*nWmbG^N zWN7qajc-&&hkxq98*t@fi}-W6ZRV6Bl)3@f1EzxwyFoyPU~FQ@FGM<5YFO?+S%PP* z`P<&Lk3?fM8mhe`;wT!4!0J>ihM_-1cH7zEM6-NCf3VJBOZba(dI8y8zU0vKn9YH( z-h~aLkMW@-QqRgltC1BL9ReRQw=@Spm8A%h*CWrg5S&0ph09?XYt3Y+rWY__1MxP{I$pPS`feHFCvmv?!CB|;^`nQH1|7Ub zwR=Z@?qWDn|HovrMLZ|!rsUyUT3X`UR?dr>7(bpGKk(NE}#bU zNl0HUMPP!`z}c%vNC^spC<&kfRXuiN|67oB3g$x0477uMT5&AQOc)v^X%Vzr-)Ql1 zrvK}-s#kD^K#`90PN~&wPK(2ae^7fc?9K#%9e}6n0J^&_Igce*Ru0u&1k^*%_D+kg z*4^8;yY;Q!_RkJx6UkihfsY@@m~Wxy)wMSle-^H@X|)mKUoZf2+*5QSXwN+qE#d-g zCECwXNDl-b|KZ%hOiG3Xu{+@YkR-_C^gvV>p4K8M0XgSI$&*?B#tp#(J9%FpSo)a0 z?dDnRAIymRX5Rc7d%`#xJ1~Ip>ahb}vJSWaWJ!kW9Y)}|6G2pE=>QPHx?QmEWd~v~ zItXDQ-2jrMcOV6+!Z(B8;pD^>T6aK_{jOVA1 zyrsWw18rxpt(wrXNkfkk_d{$ap(i}gF@Z@32U`PUtNF>KGlP#1vIbUBq@NLIB`jxO zI?31Z*8?N`;^RNwI=W3lkECs-^BRVnmXlVMRv>!?Vgiy#(=T%`*hRS^n@%B-Q4n*1 z{sOEGGIhxcnRP61QJsY{nX0RcMCx*Nx%y0`Hc}f(#BEgO267wJ%RNY+6@_Auuom{z zAT~7%cW)3fe2+#uSS}Gw75BH-gktrq=aMxc)iukdMh0ARbaq7c^ceAayCV~PxmbKD zka5{EF=MQU-Q#=K<$BgCm~tLHLp88-lbdas)^U)}aD!s_^YB zQzF2FiW~xT2)96V15|H8Bn~w(5SJV2&p~p7upS{$rqmWWM%#(qEMjNxw5_t)?%L#h zo%OKJ>C;E=n#uN}Mig_rtCP%0P$sP8^5=!DS*E*OzEAvKrkY&7U;JLCT3miW{9Zn@ z9Qop?zw(*l@&Q zg4qnf&>=OJvfx^AheH5lL->dtBF3k@dGJ3HSWj0~PZ6cn#Z|T8vxA5ln9tkhL`V0h zv*=8kXW_m_%9hg5%M(7JS3pEidw~|@)fE<%r3g>WGOE^<Tsb~O)CE)xh5^}&*edZT-j+r_E|ZUq7NUmlp3u8aB~ z=|~X?&!yf-B#q~y@PV&T@gVMP+);3pmtr6t4#ZYZ7>txDq(}l3B`Fby1==5Ipa?u9 zhLcgamo6!=Y~YPBCkyrJ^ zdlTugmppwbxEP4Q!kuKS2>rOmdk82gP^jU-qm z8jD3iR{4IL;&@#TR8uV-cfE)m6FhYs)jFK8u$9?rOH3pap~YrkE_Pd)nI>$Rl9?{% zL8|0Q>@-(P4%RybN4roFHZxCH+WoxBx3rck^$*$rKci;{m&u$1^BYgWfhm>eB zJl&!$5ovzof=V#K6?KVX6oLt-1|QS|)Gx#_`cyl-5xTJbaE^lmOzSjT=iKac?RIwM zn4C-*-{QU2ET6+H-4g0~5UYU-q$FF@0V7spoT0!hWw~2k3d9a5Bs&ues-tt<-r;P| zIR`Ja> zXDV)p#mSxQ`?J++~Gcw{^3jXN^@uA0%+gxevsxzCzQjkNwDZOdS3xf}N#4>MJVeGyk2YG}Ys4q?8G zLomiIC~2rSrP)vq)OLxG-gHTU>zAtPt0A~hAeyd@U>BnTOGr!hkR}aQVM-7a8Q@i$ z8)~(6&8?fR-Q*GTd!~A?zx;hdrhoHZ<0dif8T&UZ=f}2xdJFCS#1%A1x0h$#Lj*b=gtpp=ch_pAMWV#;j2L!&xTAY9z$->T$tMwb=Z$BHo=2ryLg`trVQ1N zegWhbctz}i76@6%U`e!C3P4CvDh_BRWWb%`E#<%wUxT+89jh=Md0~c`aOB?~N|7oA z2?>;$3Q%7;XZ=!sO#3|>ozsom1nx`)D%feOPeB+r%%$QS1WZhVSBRn_TFb+90LTmc zX{tI3g!Q`xGH8TAu)S)i6)vJNHFYFOK6aI317y4OeVbA}nShBbB!^FNVsbd~aF?WG zKM6}%=-9~c@N^Wy=w_3#V}0s-#*>FW`B_{5sFY=%c3NW^K4Cu=>rBO{Jl+J7*-)RU z!J;Y5ofb`prnO8x#fq`jW(H4mi-jXZZ_>g|NVQdt&4+udJPL>~0qcWCA>{>tCMfeb z(55<86zg3Dzox^Fl`hbz8j@p&pDT+5jl)!(fIDQ{%}U3Y)(OlBGF`3Dr0S3)gTnCi zIMZxIhBV~IGKq;m29@wem2{NwGYJnu*lcAUI-O2u)2MJOR5YL>ha7{9b>z7J* zL&;33wW26_H3>Vu;fO~YPO(L571x0+oqQVZJNIE|lG+*%Uf@%&clytavCt;x!DHMT zaiVA8wBI3Z#73Ao)XD<5nL`a%V0P91gF2I&m6RV9B3tRzGyigMd4YJ6i_ zMU?n%N*}AVZ`gqLJBh0ky|X`}cU?jTFSG_=$R1^0(2$VH3MEtv#Mz3`@UF6+{ZUzO z{0O6>4~%+;=)+F>TvXYXkyitU?o#vy>m7B9$bOjaAg>W)NGc^+OlQ`{^@^C0=q_qb zOQu=z8Dh;k^t#Y|i0m7d`4~(c=45f+wEprJ!Qpx93v)F8VSb&Mz-_o;X^n_wp*c+< z`vpwd43T;|`dk#<-Z&3^eU;lr-$G9Wt7i0bgVm3zMLoT8wf_U1g zte59DCAag_SFhhN`Y-fGlDh}J(d__Pj;fM7iDM!`4xE_@Gg8b|Z3QewLe7Hlh^w2p zJ}+&_Nh@4K0lDMYL+(wUK}`DYZydTUwoJb!^!7*Y88GLL4u$qdmV6R2ExT+Kw~gv! zl#Bvo1Pt2&lJYIFpH#IQakoG(hJZ#d<>(SCB6$O8N_80`Ea_u=;8B?UES7fvCU@&{ z*HB0J*h92JgU^W-{@d@-m)ng{1gp~>qtDx;;cVb-B$zeX}o9x~r zzJZaa-Kt*0?p1HZ8%0*begbIvNoOGHk~@$L6U(E3P1^4A+SpRafRF^JEIG9Ns8WZs z8`bmC>~9a{uerAIV$Txos{BXqX#9wG3H$o-^A^vWzvAPc*fekH(eu~c3oID>kF=EC z!S@L-k_Sp|Vb_+2phm-CGwY2uKwBZhQA&_!mlFv#u;|s|2LKp0X3Td47GjFA&K=&? zCNbN#N^49WjZ4iq%n)_p0wg+y3y|6I6pcZWBQ-TOsT%lzAm;%&SG%Tws^d}Kv9yCf?)fx-_>W7MVv==ZZ%Hrm7qDj*uZzO=a@}QJ2lxw)(P@Cd;VodS z((Ae|>*LQlM%&4TGaHz4=LciT>~T!#guQAnyXnZ763%zcA7nSlM-$`=V~{Wdnghpb)xkP<<<&XM}vq&!V8^fx>8#= zgSGySDM{mJj~TaNjbqP`-G^MZ|Ay6YL1`Yc+adQh!#P8FJRD;nAvp+^`4J?|fS7?) zyVzE;jX)zWD@do8P=p4JB&Bv?*R3`v-8Rj4Y3TrC&d2u4h{sCnlxh4QL@c{H5 zV#)Ke>yXr@tFv_m)NVZ2J(ufo^^(l-Ru5aCCp z%)C=7V*r`qPbGU}H>xM?j9NY9JD>PsomO;VL_ zgV-U9i-p8QNghEb;*vt)WW5K5!p`H4yW@_6!v89FYVSRXcN{R$9?fP`fxae9Nbh&P;4q!h#r0d@mx8hW{SxAJY|za&5DjqIuMeq3-Q2YrJ&6g_~z)Ay)e zKqq(dyDmm2ckw%K{=v}+<#h-n_@$w4@x&<9z zf0iy3Z;QR)g0;nqK2ZeLdWYJhZ5?}F+KqivBwvYq-^^VLik3(wn(Yi76YJ*3oZ&Y9 zL#?eF0e-pT0od{om7S|tBcT54@>bE9B_x;`?*d75+Q@;j1&G_uZIODrf z^#;K$DhzAb4?X#=)zHV3I3?cXpG5z^k|O69M1lfUmX(0NzFbW^*Ii(@zJ0 zodEC;#^GB(b~|g5n?O+>E!BEmu&icl;lxfAyX4`3-vjY_r~ny)cwWNHe8qN1(URH) zLK{JfZwN4m-PuUaMo@Q@ zxy}TbUD88D!OcQV1I&Yt57dvoASrg6p}gbJ(QosnoYOtQrVyX&&iQlhOfX~jwW$IP zH@kwF5q;gx-Rh~p#F@Yvb%%1YzT*?e+fxD?7rQ@w4$)nQ^l^Av)I+walV+BBQNEc= zVJBjA$*IbwgVREuMmOqEliqi#a@FBtBAzi3HuaDv3bTY)K-?BL6I^Om*ks zq8&xFmZQf$E!T5>SACm3I3w3{a4vGYYpxAG#AH3w^V9tFKD{m8^=PoO(AR$e(dzqk zMf(VR+nF?X>`oR0Es9IqOZI?YMaDt3>}`;RX^+D~p@SDA;=?!5oUsWwC!1g^5PMe2 zpp|@xxHTd)Q?()RQ%rHr^kL~jVlz1}EI;`uIp$im+r!!OXUMm?u8Mm*)!xCI?bkL( z>f2{gBu2L{brRp)tNuM>d_A1sOnT)8DFo~44`J)8ml~xfA5Bu>Wl&H;pjJfOz=Q!e z4^SZpK}dZ>L1Lno4MCMMpN>b`0PE`UQu9NkLa zQRMbOphK!Q3getaQdchHcfpmKkx>vSVPrCu=b=B$10*Ic2Cei4dJzFuwOQpxGo>S2 zCm+WaFR;%*9z#(U=bBeuT}6^1sue&ZVH2iYnGAODcCsNdi8x%a{#I#i?D>QcGYYP1lXS#2Q8Y71 z)`xhj)K&EY@^&KT1)SV!Y|jzKqI;vZCJ{pbjvuAG@dsg0kX51A>Ct;|ZRq*>u-@h6 z&=KeaElB>$X2~;W&3Ywql25-_KFBXq4#6mJdV~JM_xkx#J~%q)(Z1HNj;Mq8%US_u zrLnJ$-OCF6Y3K)#MV&I-N1n;C!p9#v0kB9&-8jIbUJiaj*5|1wXQp@iXI-wI z={`d}6zUy9l-_^2JLTuPymMUl!j=3a7&6BGj+6YB&^??Z;QSa2$2j`KN%{eoO*zY0 zJ)sggw1UaN(E=^q4lzbxD}Zms4SksYD|2q8`?CO=kO57omv)w5c6MS~lv~yZWFRJm zNP4|_O_`JdG^5OxfSgxT262}O$}n{snrL$l`N*SPr`oB|iel-Ixs`KH$>~{|Kmo;ob~*L(v7|W`&=S$6dh8f=XHFicv~20t+z| zfCzYiS2G0OY-_9Bq$QfWf`k6#I(hwqK!0b9&1duaIh*S+p3vDG*?6N@?lXQIX7iZw z6lRjfOy*!F4brztAym86lxPrlXMHA(3(F~tp?1I*euzj0rtU!rKbv_d?Tq0>A{h>p z`IQs{<&aMzVDLkvSL6d9>K(9sR&&^pNOy$vZ5;7>+una1I*TA+2p&RtAJjtxiqTnw z=Pynpd=jHpU``fQVoB8vR}cDvA}Nz@DX=B-e6=()+1&V9Uz@|VB$mEdJ5$}FtY$Sg z7;m=JY*;sw&mQDIiKS=k-)*-)r}p>BeJj@mN&wi{-(VRj0cvrw$ile*COfZ(6ey+| zkHS|-E1DHf;Lri%XC#Y?%TP&n^^kCb``$0KdDuQ^<4Jnb3!U=xPHn~}{Yv!){!!&t z{g{T}yioD4$^OJhaxlT1znIZIIC9j?rO(^eoZ{Jc33iY4vM0#XKuvdw)BGr|LR^4p?ZgpA2sfZiN0`CcKaWTS z_|RnKMmi(l=-3G>!$qa2%B`~ktR}gD&qCU{kBy$l56VV>9euAndKSMnS-W*BAoy3z zoMPO9672j)3(Zj~&_sXIDp#;yH-oQ;cHqlQ%K%j}>Vn{}3~DO_^ZnWOxpU84r$qXc zh4P?!##W`Dtx}4db&sCOuQtBjuOLqPs?oEE`@tWU;@<~tjY`j&adp060FIwggl8KyMvIBKrOe#N)UaT?FF7unz!R31#9z0YR61>VbqO%t>MajBl^rBE#t?O?cc ztp>tZ6qk;joK%S#z?DqLEx89vf!qx{luS`1V77$Y6Sx`dr}ZNQH+#kEYYLRmuO9w3 zu9^3HhoII<@92{Kz=R>+_az9Q<@Qi%s;fa>DJ>k>uId?A&rOIdiA174QBQd}0NtRE zBtk%yZuV#%kWF#$hF#%2z>T;qB$OuM5aJ>-@UU|MU_PyxHRXABn``)hHcz+N*@JA3 z(h91(hqF+6Chy=K{k$Zge-Uy`tKbohu`*V2oQ4qYxKkcaK|c@P2f!veS`UKAAdw%y z)nJ~DZMc8SH?di$6C#b(2vP>4_2Q1fDLSkrj&U!R*O;+xV&IJ5@_*BiwHxdTZWGk- zLfQopY#HgAHf`GZjose1=4tYJcAUE8LJcL{!+tRGH}F38UTw(uoikIrtwXtqoz0c^ z+(F&=4OkW2+Bj(x&l98ADIe-1Bg|6P$y|g~0}3Yx0b#O*!~}ydPCtXe0Q*DH$C&;G zye`2ACzz~=O@k?us*&};;}tf`o(wDj(V`c5+zO|9z3g&+g>orNt<^(A@=@7SzB9r$ zWMgvJJKxr=uhVC>D)trXO!m=`aTj_`qigcntdZ_2g4Wn5ft0wt_Fp~7-?Of+f2jS3_KAB-P(O-bibI73rPLiAvs9dZ_~GR6i2 zVKT;&nM)=^sE)%#%+S|oKR08$!?Ec6wn25XFn;l~HnRHp%IFU|U3>?f!4LKegS;et zj2#W})+r(Dk;#e!h2Xt{*V$@fJEV;YSqGPa_~0J5LUv)%M48pBp1u0uWm^BigN}CA z-KXAulfC068ri{yUE3|B31^pLW)(;r zkg<_48V5jyO$g43g6G3aGSZ!4+n_kqF{dc-;o|kmOJt(iOBTQ{uirRi?^p?oG39-J zmCa#a6C;tG2x~Qm!F5|@*CId(XNHWfMss>5#F}N}C7Ie#eRSL4r~UHr_e> z7;sXsl~d645JILGN#tvad!WpRfZ9MkAhttb2t}JoWQr1E8If1mR0p`=AhbjwaWQ@x6Hem=9)s=o^o5VXI8ZJ%3m6u|6VI=o_9;%`O0YnfRaPnhy554yMe5v zg0;qhflUM0ROP4Pk8wf-%V0pjZ+=D$yhPZ?+BPc(X!s)G$HZO%dmV}WfGzs_cZ*{J zdj@rzGUxc7==LmYqSS4<*JFV0y5mapas`AlfsA6^XJP4 zh3>ow&2(L;Q}qqh9x>#Qp2Z)N|E24|IyW?}%Go(6CU&WHfaaL%bxPl6i`b8V9eJu_ z;lP+uZ8(UKYgQKm(LibxAm30v#bvnPi0DENmrZ~7dq#HJ{mC_xe#bltEXcO9D_|9FHoeaL zKv*{HL$N$I6oA_aw38Ah3IkUxL;4Wm0Y?)f4}tNSeKF;>W)Vps_|acHhRyL{$e}{g zVZ(!2h(06w^?UDYN<6~{%?c`K?&FsQ$mF#ajCe&1L3>wO*9 zQZIFg0$mB;A`K@292j9YNNrxPyP|NY_WT2^@QnOa@Ve`8?!D6MY(M+CW{_Wv;>d;4K&30sOoi;op=h$|~3Fyd+!OD@s$YfWJ6ed`UtAYZC0qqI#!rBMM3*&er z11d#lqqZa%O!NU6d>o_sUh?SD;L%lt%nG@+<9nT44G7ag7h0W z8^|EB_K~1poD9nT0Tv@lGE!Dv86I&gbkseSS>WVPj^6CyXDXxT1lvMyAc>7C#h^pE z8)GXND+HMn^&v}(Q7#I;LgZD3t2c@e$sBTt;=)yMAe2QK-IJi#P(>04is(o&2jTl= zx2NHt90}V)_7Fu80k)KbmpnNks=+b=#cVVLV8i1A`BsH>B@EM3@~SvIy2;JGS9fT2 zHi!1qp7>SEHHV(kkO1jfT1g$e z?|P*jrL7ZIlg~wEo7~k_sLvn?S8sO>g5XuLETX_-S)?`qfwP(Gav(puvXNMCxVEKI zc6&#AsyWqMS4+yz@@gF2Pru?pgDemG&kDe=CRTyZ2Z+Pd<@1R44+dt5Xz(-sE|BRs*p(w zqL5K!p<&FnWY2XtyP17QP3^-?Y(d>cjNNN2W>@o^nCVf{_t}?tCuRz*G^AcI;81+= zVLFdx8iNOPA#x-F!$;&6<&>OZ>mHI}zsyBdz+_j-(GkT~<&3dMy|$N9O#h<#_Xb1u z76Fm8^bq?kM}j~J)E_qsO&j8iGz4-(W=Hftfx&AK3n76etcF#HMd^pLyV(Zg=7X(l z&$OqrAF;W**?Hj%LAwZF%=`Fa+~`qcMFNrt{?3kVBwrtadB8caona_d&QZKYTk5^f zOJh0q^C!GE=1SQ*YK=E@)Kglzho8#VfdhfZs}IH0ffQa3x>Sh)fnoA+)QAb}%N6q( zOj0;nTNuJFyoMWR9B6&;;q2+`TzQwklPjGUg)`4i`*QZ9F3%O&XVTxJQCp-n>{zz=XuQ!H+?aCDb%JXi#=|t zJBXm3J9?h7{SdotoPl4=yksh zr0eYF^t^M|1(Y*3%)DWj%aOlsp#9k51>fsey4FrF%sgfOUffiRrP)@$4HDu^QxHQa z=nlIKgxLYQEy+k`EK8e6S1r3@NLevtV<)f^9LBZAV{rFleSFM#3cMgmUEBCI zV8~RWuQ)-b0~#;{ayKVtiDsv_dRb2!bNSCoBH_HzjnZhbNeaMToEkw&%qNN>c z!(pMd!A=D>isf_iLbU#V%$UP&;KogAKOgZL&$Suo_~PGA^(Ass0Adb9{7bp61BqQ7hw7+k$ih+sk2gDz6Fo5imlBJ;0{-QnOg--~_F`wr3*d9|06$-9f*=1}X-jES5~c;U zeR_in`hyTe@L3FnkCfrLrOu8f)eb3LRu6&y!CIl(w%acOF_igQ65C;jU~v2?d)6R9 zHGUZxnA6`kb4IZ@nF)3xQ=SHMJp_zA&MEY@jUWg}1Ve5abaL@)6eoxNY0y;b#W|b^ zhMt?wqa@Tq*Nb1-Ujm4GTeHHKN;S_8X!kdC4)@k?S9`m>=}tM(p*fbd7G|_$3-P(r z_tj*gfq{%WYxD#|o^$+zCwMoo1FmxzlLuHYx5;*Qi(PfB=yb+=+WaH=2A*qZ*F4GC z?s*Wt{I2%p%k1?p)^sg!^zyvyVbkqyy#YbOGO+n`^2`d{PAqMRz!OfI)>1<`yF*O1 z7YlhAiNuHJc6Ky3sR)U|w!p_jr4TdN1T-j#0JOD~Bt=2I=nl!Qs&-WRva1_xcwHTt zJ8ElG!#YH0v`^1YyKy|ADIHuwiBY64G#CcIwPbONld0*G}ys^_3W0(jw- z2&FS?of|J?TV@nmmpQbKgxs0-cJ->;>wAYg8}8RarPg$fW5t?qq$UtFe&Egw1frRm zn^?+qfNk)eFz7!ANgTRrJ|eR^2g5z?CatBWF)1IsbO)1-kMrL8X|qpe`e~2xi)V7T zR$7}s>Ew+;thy1#I903~8oD@ctlplk_GvBYx>yj&p)}bG(P4N_5vQmuYH=V6=X?8S zHcgjFbjx?s>A>FOm{=>*!Xa=;v|gN)PJpA>TP#uw;01C|N9iX4ElodE2*xu$Ibo|S zXnx%lu*-g%W)FD7K}|_;*`~N09_~}awx&dMT3DU4GVN3XTFdH%q3FhwPs*LCA zV*c1^Iy-sxwEAAoHsYLLdQeU_*0g9%?w)Y)^!|_em`CZeWo9s??>P8Tf`^ni#otio z|0_#zur(0ONi$8B6mSG6a)^p}l=4xeXU1g>D zX70yn(DrjM7zfBK!<7rBcxSvhsiI))M*O9zipt12Xda+|Kt-J{P(@vayLJY0OSGT; zxXyUNxAJH;wJ-dHyDwumzHSfN*#?JkG7B7|tU%)8&xM}pJvHeWG|pn**Ie4@qjqnO z4TU#Sv6V)k_*QGh=aoY6MPcz6hUPf*pri^s`%G)%c)}dgc#>D1wNxrUsBDC`c5=d; zBeX*lZZsNAL=#BZ=ST851gyiAfP7W*R3Q}-Bw5HPeNIr98?{V>JS( zNZXH|u%B*c4Y7tIoBo9@3U@o+X|sonKQ+%~Zm02YI<+-pcZhWbBt)P2Anam`!2Lo3 zqzE(-d&bDaIM|pLx?f_#U|)oVosxTz+Tw|x<~DD4zsuf)Lf_|ac4Xo<4xh~Zkg_F`t)z>SVU*N zv1^vIB6oss1=YcG>jQJ13rfETzCxP5+yHTs2wTOS(oL;I*a`{XRKhi zSvWuK?+q#U9=Nkc!Y-{J-mJF*`TO|!CeFKdvHg)O3w>fYG#JLuG;K}j)3hxVS6GHu zE#!i81;kE=9)!D)2fC0(jz86IgG^(OqZ+0PMJ~#|!MVfqx~Z%W`W3rk+W`Origs-q zob3ow_*Mp0U7e!TwbUU;Kc%IQMZIptp*Wx|b0OBnTy-#$E6OTZQ?tl35k{yOvy?=N zEaA95%xr~`u37B*2gR=Vt? z$SCy}S8XzKQC*FF!5!ysc!k-u3q1iuXk57pz}fg*LIY(4B~vZ|e+#!{_+x;NLc%mjgUN%c5Cna~q6~Eq#YiI( z7J0GgctNX&?+*?nl*s%Rr&7qKmF%v1<;;do{_GRa7DVW;doIQRZI^}4#E2XzmO9GXD0&qoUL$zU33PVe!OQ#YM7`1bAV1d zTn6D;MtT|?wdi?^lBcNwcL*x5UU=vI+b-W9d|I(}GJd-1J{8iG8N+cke;ybE4-

cqPh^`7{F-hKos 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 U_Zsn^#p68-8;_Uz0w~1he + + + + \ No newline at end of file diff --git a/example/src/main/res/drawable/button_border_stroke.xml b/example/src/main/res/drawable/button_border_stroke.xml new file mode 100644 index 0000000..6955dc9 --- /dev/null +++ b/example/src/main/res/drawable/button_border_stroke.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/example/src/main/res/layout/activity_main.xml b/example/src/main/res/layout/activity_main.xml index 7e7e9cd..3de1c25 100644 --- a/example/src/main/res/layout/activity_main.xml +++ b/example/src/main/res/layout/activity_main.xml @@ -1,51 +1,116 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 903c19e..1104f78 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Jan 30 00:24:59 EET 2019 +#Wed Jul 03 15:46:00 EET 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip diff --git a/library/src/main/java/com/ekalips/fancybuttonproj/FancyButton.java b/library/src/main/java/com/ekalips/fancybuttonproj/FancyButton.java index fb36274..2515e9a 100644 --- a/library/src/main/java/com/ekalips/fancybuttonproj/FancyButton.java +++ b/library/src/main/java/com/ekalips/fancybuttonproj/FancyButton.java @@ -5,10 +5,12 @@ import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.content.Context; +import android.content.res.AssetManager; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; +import android.graphics.Typeface; import android.os.Build; import android.support.annotation.Nullable; import android.support.annotation.RequiresApi; @@ -21,6 +23,9 @@ import android.widget.RelativeLayout; import android.widget.TextView; +import java.io.IOException; +import java.io.InputStream; +import java.util.Arrays; import me.zhanghai.android.materialprogressbar.IndeterminateCircularProgressDrawable; import me.zhanghai.android.materialprogressbar.MaterialProgressBar; @@ -30,12 +35,12 @@ public class FancyButton extends FrameLayout { interface AnimationEndListener { + void animationEnded(); } private static final String TAG = FancyButton.class.getSimpleName(); - public FancyButton(Context context, AttributeSet attrs) { super(context, attrs); init(context, attrs); @@ -103,18 +108,39 @@ public void init(Context context, AttributeSet attrs) { int textColor = ta.getColor(R.styleable.FancyButton_f_textColor, Color.BLACK); int progressColor = ta.getColor(R.styleable.FancyButton_f_progressColor, Color.BLACK); int strokeWidth = ta.getInt(R.styleable.FancyButton_f_strokeWidth, -1); - if (strokeWidth == -1) - strokeWidth = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, context.getResources().getDisplayMetrics()); + + //Adding new Attribute Background for BorderRadius + /* + * If the Background is not Null ... It must have BorderRadius and Color + * If it doesnt Have a BorderRadius then no need to add it + * if u gonna add a stroke in the background .. then u dont need to add it with_f_strokeWidth or f_strokeCollor + * */ + + int background = ta.getResourceId(R.styleable.FancyButton_f_background, -1); + //TextAppearance + int textAppearance = ta.getResourceId(R.styleable.FancyButton_f_textAppearance, -1); + + //Textfont from Assets + String textFont = ta.getString(R.styleable.FancyButton_f_textFont); + + if (strokeWidth == -1) { + strokeWidth = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, + context.getResources().getDisplayMetrics()); + } boolean capsText = ta.getBoolean(R.styleable.FancyButton_f_capsText, true); float textSize = ta.getDimensionPixelSize(R.styleable.FancyButton_f_textSize, -1); - if (textSize == -1) - textSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 16, context.getResources().getDisplayMetrics()); - if (capsText && text != null) + if (textSize == -1) { + textSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 16, + context.getResources().getDisplayMetrics()); + } + if (capsText && text != null) { text = text.toUpperCase(); + } String temp = ta.getString(R.styleable.FancyButton_f_btnStyle); - if (temp != null) + if (temp != null) { style = Integer.parseInt(temp); + } hideAfterCollapse = ta.getBoolean(R.styleable.FancyButton_f_hideFillAfterCollapse, true); ta.recycle(); @@ -122,20 +148,60 @@ public void init(Context context, AttributeSet attrs) { view.setClickable(false); view.setFocusable(false); view.setTextColor(textColor); + view.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize); - RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); + RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); view.setLayoutParams(params); view.setText(text); + //Checking if background is Null or not + if (background != -1) { + view.setBackground(getResources().getDrawable(background)); + } + + //Checking if textFont is Null + if (textFont != null) { + AssetManager manager = getResources().getAssets(); + InputStream inputStream = null; + try { + inputStream = manager.open(textFont); + Typeface face = Typeface.createFromAsset(context.getAssets(), + textFont); + view.setTypeface(face); + } catch (IOException ex) { + } finally { + if (inputStream != null) { + try { + inputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + } + + //Checking if textAppearance is not null + if (textAppearance != -1) + try { + view.setTextAppearance(context,textAppearance); + } catch (Exception e) + { + Log.e("Error",e.getMessage()); + } + this.addView(view); bar = new MaterialProgressBar(context); - FrameLayout.LayoutParams barParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); + FrameLayout.LayoutParams barParams = new FrameLayout.LayoutParams( + ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); barParams.gravity = Gravity.CENTER; bar.setLayoutParams(barParams); bar.setIndeterminate(true); // fixes pre-Lollipop progressBar indeterminateDrawable tinting - IndeterminateCircularProgressDrawable drawable = new IndeterminateCircularProgressDrawable(context); + IndeterminateCircularProgressDrawable drawable = new IndeterminateCircularProgressDrawable( + context); drawable.setTint(progressColor); bar.setIndeterminateDrawable(drawable); @@ -164,13 +230,21 @@ protected void onDraw(Canvas canvas) { super.onDraw(canvas); if (state == State.normal) { - if (style == 0) - canvas.drawPath(Utils.composeRoundedRectPath(initPadd, initPadd, canvas.getWidth() - initPadd, canvas.getHeight() - initPadd, initPadd), strokePaint); - else if (style == 1) - canvas.drawPath(Utils.composeRoundedRectPath(initPadd, initPadd, canvas.getWidth() - initPadd, canvas.getHeight() - initPadd, initPadd), fillPaint); - else if (style == 2) { - canvas.drawPath(Utils.composeRoundedRectPath(initPadd, initPadd, canvas.getWidth() - initPadd, canvas.getHeight() - initPadd, initPadd), fillPaint); - canvas.drawPath(Utils.composeRoundedRectPath(initPadd, initPadd, canvas.getWidth() - initPadd, canvas.getHeight() - initPadd, initPadd), strokePaint); + if (style == 0) { + canvas.drawPath(Utils + .composeRoundedRectPath(initPadd, initPadd, canvas.getWidth() - initPadd, + canvas.getHeight() - initPadd, initPadd), strokePaint); + } else if (style == 1) { + canvas.drawPath(Utils + .composeRoundedRectPath(initPadd, initPadd, canvas.getWidth() - initPadd, + canvas.getHeight() - initPadd, initPadd), fillPaint); + } else if (style == 2) { + canvas.drawPath(Utils + .composeRoundedRectPath(initPadd, initPadd, canvas.getWidth() - initPadd, + canvas.getHeight() - initPadd, initPadd), fillPaint); + canvas.drawPath(Utils + .composeRoundedRectPath(initPadd, initPadd, canvas.getWidth() - initPadd, + canvas.getHeight() - initPadd, initPadd), strokePaint); } destLeft = (this.getRight() - this.getLeft()) / 2 - trueSixtee; destRight = (this.getRight() - this.getLeft()) / 2 + trueSixtee; @@ -183,8 +257,10 @@ else if (style == 2) { animator.start(); } else if (state == State.shrieked) { if (!hideAfterCollapse) { - if (style == 1 || style == 2) - canvas.drawCircle(destRight - ((destRight - destLeft) / 2), destBot - ((destBot - destTop) / 2), circleR / 2, fillPaint); + if (style == 1 || style == 2) { + canvas.drawCircle(destRight - ((destRight - destLeft) / 2), + destBot - ((destBot - destTop) / 2), circleR / 2, fillPaint); + } } ObjectAnimator animator = ObjectAnimator.ofFloat(bar, "alpha", 0, 1); @@ -192,26 +268,65 @@ else if (style == 2) { animator.start(); bar.setVisibility(VISIBLE); } else { - if (state == State.shrink) - if (style == 0) - canvas.drawPath(Utils.composeRoundedRectPath((float) (0 + nowPadW), (float) (0 + nowPadH), (float) (canvas.getWidth() - nowPadW), (float) (canvas.getHeight() - nowPadH), (float) nowRad), strokePaint); - else if (style == 1) - canvas.drawPath(Utils.composeRoundedRectPath((float) (0 + nowPadW), (float) (0 + nowPadH), (float) (canvas.getWidth() - nowPadW), (float) (canvas.getHeight() - nowPadH), (float) nowRad), fillPaint); - else if (style == 2) { - canvas.drawPath(Utils.composeRoundedRectPath((float) (0 + nowPadW), (float) (0 + nowPadH), (float) (canvas.getWidth() - nowPadW), (float) (canvas.getHeight() - nowPadH), (float) nowRad), fillPaint); - canvas.drawPath(Utils.composeRoundedRectPath((float) (0 + nowPadW), (float) (0 + nowPadH), (float) (canvas.getWidth() - nowPadW), (float) (canvas.getHeight() - nowPadH), (float) nowRad), strokePaint); + if (state == State.shrink) { + if (style == 0) { + canvas.drawPath( + Utils.composeRoundedRectPath((float) (0 + nowPadW), (float) (0 + nowPadH), + (float) (canvas.getWidth() - nowPadW), + (float) (canvas.getHeight() - nowPadH), + (float) nowRad), strokePaint); + } else if (style == 1) { + canvas + .drawPath( + Utils.composeRoundedRectPath((float) (0 + nowPadW), (float) (0 + nowPadH), + (float) (canvas.getWidth() - nowPadW), + (float) (canvas.getHeight() - nowPadH), + (float) nowRad), fillPaint); + } else if (style == 2) { + canvas + .drawPath( + Utils.composeRoundedRectPath((float) (0 + nowPadW), (float) (0 + nowPadH), + (float) (canvas.getWidth() - nowPadW), + (float) (canvas.getHeight() - nowPadH), + (float) nowRad), fillPaint); + canvas + .drawPath( + Utils.composeRoundedRectPath((float) (0 + nowPadW), (float) (0 + nowPadH), + (float) (canvas.getWidth() - nowPadW), + (float) (canvas.getHeight() - nowPadH), + (float) nowRad), strokePaint); } + } if (state == State.back) { - if (style == 0) - canvas.drawPath(Utils.composeRoundedRectPath((float) (0 + nowPadW), (float) (0 + nowPadH), (float) (canvas.getWidth() - nowPadW), (float) (canvas.getHeight() - nowPadH), (float) nowRad), strokePaint); - else if (style == 1) - canvas.drawPath(Utils.composeRoundedRectPath((float) (0 + nowPadW), (float) (0 + nowPadH), (float) (canvas.getWidth() - nowPadW), (float) (canvas.getHeight() - nowPadH), (float) nowRad), fillPaint); - else if (style == 2) { - canvas.drawPath(Utils.composeRoundedRectPath((float) (0 + nowPadW), (float) (0 + nowPadH), (float) (canvas.getWidth() - nowPadW), (float) (canvas.getHeight() - nowPadH), (float) nowRad), fillPaint); - canvas.drawPath(Utils.composeRoundedRectPath((float) (0 + nowPadW), (float) (0 + nowPadH), (float) (canvas.getWidth() - nowPadW), (float) (canvas.getHeight() - nowPadH), (float) nowRad), strokePaint); + if (style == 0) { + canvas.drawPath( + Utils.composeRoundedRectPath((float) (0 + nowPadW), (float) (0 + nowPadH), + (float) (canvas.getWidth() - nowPadW), (float) (canvas.getHeight() - nowPadH), + (float) nowRad), strokePaint); + } else if (style == 1) { + canvas + .drawPath( + Utils.composeRoundedRectPath((float) (0 + nowPadW), (float) (0 + nowPadH), + (float) (canvas.getWidth() - nowPadW), + (float) (canvas.getHeight() - nowPadH), + (float) nowRad), fillPaint); + } else if (style == 2) { + canvas + .drawPath( + Utils.composeRoundedRectPath((float) (0 + nowPadW), (float) (0 + nowPadH), + (float) (canvas.getWidth() - nowPadW), + (float) (canvas.getHeight() - nowPadH), + (float) nowRad), fillPaint); + canvas + .drawPath( + Utils.composeRoundedRectPath((float) (0 + nowPadW), (float) (0 + nowPadH), + (float) (canvas.getWidth() - nowPadW), + (float) (canvas.getHeight() - nowPadH), + (float) nowRad), strokePaint); } - if (bar.getVisibility() != INVISIBLE) + if (bar.getVisibility() != INVISIBLE) { bar.setVisibility(INVISIBLE); + } } } } @@ -228,8 +343,9 @@ else if (style == 2) { public void expand() { // if (state == State.shrieked){ - if (state == State.normal) + if (state == State.normal) { return; + } if (animator != null) { animator.removeAllUpdateListeners(); animator.cancel(); @@ -251,10 +367,12 @@ public void onAnimationUpdate(ValueAnimator valueAnimator) { nowPadW -= addWVal; nowRad -= addRad; if (hideAfterCollapse) { - if (strokePaint.getColor() != Color.TRANSPARENT) + if (strokePaint.getColor() != Color.TRANSPARENT) { strokePaint.setAlpha((Integer) valueAnimator.getAnimatedValue()); - if (fillPaint.getColor() != Color.TRANSPARENT) + } + if (fillPaint.getColor() != Color.TRANSPARENT) { fillPaint.setAlpha((Integer) valueAnimator.getAnimatedValue()); + } } view.setAlpha((int) valueAnimator.getAnimatedValue() / 255f); } @@ -264,8 +382,9 @@ public void onAnimationUpdate(ValueAnimator valueAnimator) { public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); state = State.normal; - if (listener != null) + if (listener != null) { listener.animationEnded(); + } isExpanded = true; } }); @@ -275,8 +394,9 @@ public void onAnimationEnd(Animator animation) { public void collapse() { // if (state == State.normal){ - if (state == State.shrieked) + if (state == State.shrieked) { return; + } if (animator != null) { animator.removeAllUpdateListeners(); animator.cancel(); @@ -302,10 +422,12 @@ public void onAnimationUpdate(ValueAnimator valueAnimator) { nowPadW += addWVal; nowRad += addRad; if (hideAfterCollapse) { - if (strokePaint.getColor() != Color.TRANSPARENT) + if (strokePaint.getColor() != Color.TRANSPARENT) { strokePaint.setAlpha((Integer) valueAnimator.getAnimatedValue()); - if (fillPaint.getColor() != Color.TRANSPARENT) + } + if (fillPaint.getColor() != Color.TRANSPARENT) { fillPaint.setAlpha((Integer) valueAnimator.getAnimatedValue()); + } } view.setAlpha((int) valueAnimator.getAnimatedValue() / 255f); } @@ -315,8 +437,9 @@ public void onAnimationUpdate(ValueAnimator valueAnimator) { public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); state = State.shrieked; - if (listener != null) + if (listener != null) { listener.animationEnded(); + } } }); animator.start(); diff --git a/library/src/main/res/values/attrs.xml b/library/src/main/res/values/attrs.xml index 178d22b..ee2f52d 100644 --- a/library/src/main/res/values/attrs.xml +++ b/library/src/main/res/values/attrs.xml @@ -15,5 +15,10 @@ + //Adding new Attribute Background + + + + \ No newline at end of file