From 57bcffea6c85b93635cc4e4c9fb802eb7070f70a Mon Sep 17 00:00:00 2001 From: DD Liu <liudi@media.mit.edu> Date: Mon, 9 Sep 2019 16:15:24 -0400 Subject: [PATCH] Update to gradle 5 and update support dependencies --- .gitignore | 3 +++ .idea/encodings.xml | 4 ++++ .idea/misc.xml | 4 ++++ .../.idea/caches/build_file_checksums.ser | Bin 0 -> 532 bytes .../ScratchJr/.idea/caches/gradle_models.ser | Bin 0 -> 138311 bytes android/ScratchJr/.idea/misc.xml | 20 ++++++++++++------ android/ScratchJr/app/build.gradle | 19 +++++++++-------- .../app/src/main/AndroidManifest.xml | 5 +++-- .../scratchjr/android/ScratchJrActivity.java | 6 +++--- .../android/SoundRecorderManager.java | 2 +- android/ScratchJr/build.gradle | 5 +++-- .../gradle/wrapper/gradle-wrapper.properties | 4 ++-- 12 files changed, 47 insertions(+), 25 deletions(-) create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 android/ScratchJr/.idea/caches/build_file_checksums.ser create mode 100644 android/ScratchJr/.idea/caches/gradle_models.ser diff --git a/.gitignore b/.gitignore index e423d44..8e498fa 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,6 @@ # Gradle: .idea/gradle.xml .idea/libraries + +.idea/caches/* +.idea/modules.xml \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..15a15b2 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Encoding" addBOMForNewFiles="with NO BOM" /> +</project> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..d557a56 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" /> +</project> \ No newline at end of file diff --git a/android/ScratchJr/.idea/caches/build_file_checksums.ser b/android/ScratchJr/.idea/caches/build_file_checksums.ser new file mode 100644 index 0000000000000000000000000000000000000000..3de5b8ea7ad362d4875e0ed2815b286773eb34eb GIT binary patch literal 532 zcmZ4UmVvdnh`~NNKUXg?FQq6yGexf?KR>5fFEb@IQ7^qHF(oHeub?PDD>b=9F91S2 zm1gFoxMk*~I%lLNXBU^|7Q2L-Ts|(GuF1r}<i#MFTj`TnT;dMa8(f)}9Fm!vT3nKt zTj0aMpIeEdv4nx&Co8cmQNOe#Ge_SyvB0{bfPsNASA5Qf`#^UIg5>l-a(W(##Th_( zR`y#54~r#SWM*J;W8likPfT%3OfJbU@?_vF$tX%K&dAS6sVJ~_U;qK0at<IV0K{xS zi;7cAN;31(i=n<MEn;Abc3SgU{0AFH$O9$@29V7R0?YqN9iEuE^{GZwTyUDcs&om1 zvVLfBYEiL%N{T*It3D!J3Q~(oGE<973mNJd*g*QP$oAaqXV}E@vVn8Pn;%YfB@8@C zpzwm(3Rn1J1LxdZ3|8DcOnXcoRoA^KVGzj4PfpAMg*Jw%oZcPh?c^lyIq%l^a5L0n zYYBrO9yiFj-uC2hn;P5Qb@yp<)}KQ_qZ11X^s&2xYYJPt{uSlfac3H)a{pd)ssaEX C;<$bQ literal 0 HcmV?d00001 diff --git a/android/ScratchJr/.idea/caches/gradle_models.ser b/android/ScratchJr/.idea/caches/gradle_models.ser new file mode 100644 index 0000000000000000000000000000000000000000..f9f5c40cd24c11dab093d4482a4680cd619e9406 GIT binary patch literal 138311 zcmd_T2bdg3ng8FLcOB(yg9A23VB_7%NsfxP<dr2P+2&+yxu?5lHPWP;nU!|o@EOCI zoXrsp_K^%WKGGkXj7jE9G8m4WL<W<OaG3k?|5jC3b)0>7dV25of1badN3%24)$d#J zQ|Ya$yMCpOb=ulyqgkKP8)my%HD|ibX00<*H7$K+uC1FjYo^t1?z4>UOlPrS%rxd^ z4BgmU#ozV#Ynj`{)2&U@s&zE+Z+KW6p4E=4FRq)f*39jCyIVD?Expn0bhTBp`}6~P zV!m6gC1$Ig?)kIY@%2UV`a1S^zGhva*R8I0w9DsKy><RV3t>Huy*<O;o>|*&>x)dp z!ZW^n+N<x^ZynKwHfy7u>Qk+S77NJ1QTDljw~le%x=iovg|xAWZ{GKb6R-c$h&H@Q zJFM2!%}u(|ZMHXSQ{BC7tFyORGZ$JHU&174M;x5Q=PLXk?rKvzjkex3_HJoI@MVJ} zortU_<wkkRAwe$XX)lvy*J8{1N9_idsz>m|Qi*h|NTizHm`m*JwvjI^otWS8K;VZC zw6*h>7vMU}&Y3MpYgZsyQsCdnuy(|5?ezNMT2W+#kE^TQz0LXVReHP1GJ3amxSjoa zxn|93kAim;g9;M4vu<&Hvr(ze%_AMF&4wMZV{HGMkn&c0yWZW~)s7Oet2Psxsx=Em zWmO&T)?4_|-ZtND&3C)nn%QQ1F0s$*mfL!@(Mhyw^K<O4D7^_Dlf=e_?q(Ee@4Hf- zD=a+ahGw;+n4U)0YIJuro2=NL=qilso3$D$1cD9;C)XFZ=<V4mw6_;GSS_nzS`DLW zaY?J}=Q0^Xo*!LboJHo%>vPtub-=2z)HuwS&5qkn)WOZ2&b%$&&gvsI4Q25pr;yK9 z8~ZKOF6!BjUGbDvwU0eAtPLSobi=SZoo#KT@q)XUXsV2B3ryM(Tw1j`!%}{9`b`^; zI`T(<M-7|RMq9`m9;Ag<S4$+W>{#ti!ZZ_?R=bIgs2uy+2^%O0Rb3KgMuUUHTEY%C zubxgNJ<AEdlfs>|ccM(!tZuWh)9RkLW9_TX`PjQYim1$L6IRWtBZs=0yAo_GGgt{& zT(opy7loW_-J(jmE89hJ*M^3*$yp7>bK`<hn>VcuRbDz}1_N`KT8*8}`L^MIgm>_0 zm(}U|-Z{3uxWnp%y>cX;pv2k!St=jJOMR$(l+qC4Ckoe41)QOeauS*|v~#vX={MeV z!ACy-obfLsfv?eq^saW?H7>xYw4HBjM~eqDb_qHEj`v@8%HNV>K)=T6JIum<B2T0f zx>{=arNnM_csW5iJi`gByHsqfx4InuPrdh~_g?VU*MFDmWja^$52^T^Wh>?i9Ra>? zDCrLP`7>U7CcD~*-V(r_;yQ!a9R_wUT)HI6CRUV4#ePs8aJ6c7K?HawW;FnVH><2( zGD@<*pp2kh5bsGhKm=ZGH^D^a6%|K0UxkWm1Goorz*|-v9VXk_0QX&bXFqGGd8~)* zDm^XJea*7dJ%RKSXmICzR~uc!61J`7S<=lln}EO!zSf%!{NVte*<7#BcX|7QUclKq zEi^qfwEpI%X1i{unZ`@<q>Tz5x-%A9D8F{Wo?$KLj9su_@`WeAVO8gxnk>UdbhRYY zF8fBjD2hDdEVJ6YiL~LrohNcvTg|fv*sHd>>uY+a!+6Q_kv~A&W_vsj4VUa>ae387 zwL4?CUo+hEX1GZ2=Pv2}>Nb+gk-ggGS#MR9)XS_|i{)HLN@Z!PBFIA_gT!95oA`Bl z$C58(U6NViv6gG53=c}jY_(z;i$=|IzjmhUHFtpAe%vv1``KZ&n&><<=G>ki*Fzvf zx!d1aJtMfb)sm4)Gf#FQo2z&1uV~l~RMA|{T*`|d3K;(>UmDBJq-IjAMw}~)eV@4D zud!zEhrAj5VOKkumHIVyfpd2ky4sQAQKw_o(WO#e?ca7zvGxEBqQ~n7t2{r~)sFEv zZfaYQabm#D_Izge1CN%|!~I-|GAn{%N5&2z)3^f_5k;k|Jtpw3{m6Oyc#jwL=3(5K zm(;E%{O}(#u~={I1jo<D#(`?P*$^FtQyq5}8Xni}ZEM|p0|T9|CL+Y8xdQ9*u*!M= z3d=Grv#T9$I|&KW1N&vC<k2n<BGF}_nI{ztaKq=3zwb(L&Jtv=_5{MCZ295!(P3Vd zpwq&hy54?l*mIddN{T2$WuAtvWb0~v@pcxf7tipCx1YNL@VIavfgp(TE`s1IC>Wy} z`@7l<m&AXlBzL9lhWS>lYUo`{1y01>`$Eu{NMEn7t$G6hWYtgvUp=)$7L+0q%J0vS zBZ@qLijkFF<oS<vtV7L*;ayD>ZSJgk+^&=q_1SJXRSL*D!^SIJ&5p8YTwOWo^>vC! zNihmjlGawuT30(e{FxXhGA0Ob)08*Ha5kW1e~qqo9_4=r8+ElY_CS-{)gDiI-?>+3 z-k0N(_tD|=tWcT0aLPpH15}kX-oV-U<V!vkq8^WBFwPAPhO7_1;DqOf^ejdciV<i4 z*|6G`?LD&8F2z1wvh4VUcq1<W8&svD-_wIkfIv~OgCk?*3zlGNP@(j$5<!65_K4v# zije>}b80p)%yd-{F=61a+gm~GT5nHrxKq^YPgbNx0|QpebkPXIE<2y?XX^#TWFfR& zRSEOFDsXHx8=d*OB_>+dcDwDaX4ks51<a{e*CTqEg+Ye`)Ud3Egbrex5MfaM?UY{P z4O=yTV{6mc&${NA9FbiQ(=|IHyB^AIadV?no!g6a7rh4gpv&~h3=j%Ti*>_1krvq} z9@vQ`YLd0kZ37`|Tl+g06{u*-wm$gSj%8O9*<*XaEGIg;ZIcbUkTilYb5_H`6qb{i zt{|;Nr-v08QC^qwDIm^EOIH*1dnxZ=`c--j6F|%KEGv%aG%O`q)di7qL9cd{1myyc zJ@F8AAmC>c%HDk2+G=%mQ}1GW;fcJA_42o?t)ozMs|V1RY9Yd+!w~T8N|N3_WIBkp zHXuVqUO+SOTmnPpYmX8jy}4T69!Vj6D#ZeQZpC&{lqv;cLp*p=J{T}tOd#zA4?^VG zKK-d5%y(O|EB%-9BXb~_N46Z56oT3zA(M$FljNL0@v%iokFI>^nK06?QvWEARMnf> ze#NCIgWiW%TjiE+?3V+GDgNeOjIrey1T)cHy;gI9M~r;@?k;r5zT7@^elYf6{IeTo zdqg2((&Mp5kSNSOe9CxB76!f9i7AIBJv}&*L;}=!`*{RU4EB9fbwQ3v`A<3YlAT%U zsPqZ;GUuzRNIsT&>Y0dB9drGFI$QqP&StSXn5#D&63f<$@a9P@QR;fXp+X><;kv%x zLI^gsn{|=>-u6WXGu)GsC0ew))t&?67F@+d)TF=zPl!cJ>Gq@KiWKCJu=e2<Z3m6% z^gZ)P7h@Zr2&KR!M1|V*x~!oB@LWikw=In-X3xa*A}W_C**$%`YO|nfPoJto=}HGj zzul0Dn&_3`3y^3Ey<S|Q5HRpQR;pd;$5h)XClkglL@X0rPkrh|o1o;|B3uFRh0pe& zf*=Nte8y4&iQx(}b}BLCRE*!<m6viF!S6*<PZU-EQ$XPWYNlR8CFyD>aTvJ#sDdOK z<lqx2T{L^a=U(|@a;(MXaxf<DYIc~~PDEW1vi*p<hj&zB*bhXqyB|ox*&am2vpv`` zu^)*-<$dIPTXgQ>rKPv6SwN2Wk?nNwxB@BL=gYNf2Wz3CZeXQ=t>38-yJEEk?FEX4 zoF7`kr|jf+HPL`B;nh{v?2PaQz&kZ6+b+LE6*d`5Z!DYu$)xu_cZEW5$1h)|u+k&= z;PPhYl0UcseYQU(Nc2{Mf}9}B99KcMMYsYjnwFrDK(J*o<`x&oN-+k-i<sK)@<|%O z4U`hhi1Q++mep06kn=FTJlWxs1x0uhy&tTx@@`)RD=4m_B?pho@M`x_#JFb}{#mH8 zKFIN~Oz*Y|cS;09Z+j9P=p|Sv7rC>PA6u9hLoMY|CGFCBx1#sr&81)jmMKciv@ab6 z=EshLs29DWz&wgH5d%@mpDlFh%$7n`gqBW5=3RLeh;C!8ymr7dnIQ;_8H0u@_Oihc zjk0`Xi;@pTzOaW_P7<>tSGTKO%RMz9qO+7APt_1y?BQL-L`+fJzIO2HE30>hkBm_D zP~pWQP3K@07Dl_8A}>UH;dZ-pZC4X*dzY={VQre%pDvP4j!@Wll{Atw63_CX9XjW+ znDfDuNu$FMV9$oLsaSL&Ic|_ro_UltLi4iU@Fbn6_RCVI5;E&mcm-y!4xkk+cUUO5 zvi_9lMET}>E{^h=C$RZGC8!W*yf3PD!3nTvxxEQ{QG~ZV;XOZs0H-A6`g>bN_QFW- zIeJ9}m`C;G1Lw6hEGvl4qjFQlT29LcpLh~Ni~&5JRB%Oq<N)jjFd=2_6kKpA5UlF; z+@nVH0}e8pC;?bv=IctZve>M8rCu+v3}AL1YD!ErYs!xuQlB8f9KR>8s0G-a5EfAA zSa8!$K0=U-{k9aB;mPO-v-pFh+m#(qQy65~hJMT-jT<Q0NwHl>>}rKsqghu*V6Z1m z;5Upnymomo%JaSmi#ixbandlON7xE78xyw14%^4mm<<+aaj8A=YKm4<4IkYWqrfR- zd8{Rw6xg}I6mc6yCT)bNBYSb%#i$4q?=Ewvbufj+k{iUpqzVx;=Z)^Bntq_!_67@P zUUsy1E@B>{&T{&E9(}a(R;^aumq7om0gHwNrjxC9L$3*swsE5GW#|jF0z09;xD(6g zY^}gfe3>+e6imTfj?AuL=scb;(je27kiu4H=v)}rl#nSiGL$oRC}+H(oDrqN7fQ!C z4jD6AU)*fk$%~NeurR%gxqlTtW+*s*>5jD<W;e1g+_sf@S9TNAeVGeM+b|w_-8NiC zc1ru8Ibpag!W}4Lo9iuUQ8hNKow}J7lC`a>Z44z0S7D>D6E(NHSv#!0$m}TBqdM%? zreLfoEIl`~JhGF76;z&QYxP!lTZ<WnqDg+drvjAOu+(bXIqvd^+-4SCFtXx}t+d{P z<tP;JdLW87OD>psNu%mr%uG9Azva{$<{dI1dcBxG+@+&s?Amz*=M7dxpRZwcg)L@v zwe%99MKqnFj~BY=y;^Mq90h;FVneT24SUL%+p|C|s<5ai8>%q8U^Zs*2~3;W(8>;! zO01bB)Cc{G8p1}-O2AU7?ed5>Q9eO9tL9C-@wx&HY7@dQ`V}mhjlImS*iKM{ANK4W z%XG`Y_{9@`6h%op)`P|pMzg(`5XIhBi-16huq3i^hE($MXEW$A#}gW6c%Dp<p<(8E zwjJsAwpFQen?!^k?siiq@>lvtN%vV0a|7io8+H%d#5#-LfH_DOR<KYlBw2XMEVQ-r z43{O@619=1oP!TxE;=$a@$C1!mAe8<+#G8;72BzBH+=X9n_l(O@?FE)7@DezUaf6w zY^`=!gC){nW24(%#AXBCG_j=A1cZ^1Y@-1tsaO<X7<mMm|7P0~Q*?G!IUMENf(f4i zL0v85$>*Mx`fNr%`z7S`VT~p$@JM8l5iFaAF4Fi9w-I#fhPIY+r=qRECa{YdZUuHy zYRAIzwyhnt57kRpHEwLoD>F#;5D=c+uzBa&b+a2c2$R*!Jd0%x5{A0kMGk{)$R+Hy zIngoq!>(TMvN1tNHtN&qqWn6u4|Rfxf~jxD5knb-!_>`X6pof5U7ShIWVj?JXv4Cd zT1J6T092TA3fia#=Cf*p0>if-fUX)W8WS7bXiSs}WGwmxyh9@TA*iAU@S;cw)Dcz- z`Or>2=%ZKUeerxzV%F6@{Wc_q$0l`&il##9q`|~)*4pu5`y6YbJxQ`#L%V>%lk=Fn zY=v2BWpQJJ`8Rnt&~4P=c;3u<i0(%W&UL=2VK-|kc2`?#Yp7wiB$QQ8Szjt5XpTiC zc49K+3Hq#t-jSz|ymP+d@bDzQor4)fw2>FiN<J&H$S7o^>Il|!!(y9%>}*8m20`D7 zmJ-RbU<aL5-|1P++h!o`!eqlz8i*E4_DmfFq7AoO0fq@zKt(P;@X%c+`>QA0k&$C$ zux(WFHPjFqJDYmiK@VS}jqbM=dF?vm8f_ed8halJvxsJ4V<6C+Z{Wq4$!teie6L0b zPUmdlo3GZZJuscKxh+04|3m)xf7$)*pFYUVr&~iG``0(VR^->nP)L>b3{95Ed~Zz% zsn;XEl7I$F&WW=0Wf8NRL{DX8k=h|reEY8^&%$P-JvLzWu<4OKGR2oc9d8irGK!rL zNBTmBlEjRvu(<=h_-5PLB!m(n8lB)H#Abca6=+%CY6ab)fpwRH4_Lp8ueEi8&sdMh zwpnEMEiA#%)AW|^Q@m9>C`5Ecg6^nWDF0&ZKll{EvKOoT&qU6A^QUk5p0DhPvV?}_ z(*7EnPTP>p)h^^O=T<^Tc8Jjgi?!3{C?%WYP{P+6msGPU1~vN{)&J`{;>Z&QnI$8# zC7#4$bB2x{6sW6WkZbptWPO@hsEhK2jjuLHRN?DYt~bUIjJ7LgA*DKw;)dR=lX@XK zX5)y4B*&7P;wTRtVG^wL43$qm<6RRl@85%Y!>-*TuqMO$&3E2=b+4?ur2jaxwq}_u zS~rk%8bTKjBA=qqiV7bn-AUf8A23}4pxHKvz}|$JQe~-E`E(8OmNPbEO{S8WAeb^x z22(JJz(iNTmqn3*ayftx>r1zOxhEzr=s*8?Kb-EaM95%UGL47xqlTJ7!-@%xoX#W? zA{2I!&Pa;@4la+Hu)R>g+No=MF`&<#xr_lK=tTXGoQqW5UmG=fAXtn$RI47=!;hSm zfjYnar<bhS#*%$#*Z1$Z;YTg@?P~V18zbq7w%Gcp9QU-e@89vfGkc7X`2b|7eEt*v z@Kg52%eh$Vh@bzt&?{df_73dzMH(#|`p*W2U?rahOoWVfYoIW*!r})^e-b$nn?RZV zVc>bvU|HG=Kj<~P@}*aKjo4?C@gZn5U}jTHiZIS~B}rm=WEwEX1AMaH`i;MQtygwL z=sC0n(P(r;$Z92<#>R#HmtrZMLdFV;9w5C*R75EJt`rIMPqs!+;9iJeZQ8GT6~zeM zHW_?^3IpUPMT7{$2NmdL^-~7OR5uA=IH(JY39R2?j@xrG%@Wh_Slb9O0<h=0aYT}T zb#3XTF|k<U2!tj25-Y17-B@-DSy(%FiPyc;^Y&WW`kQb2g0BD$v)@DIXMeo<P4>m) zKdoavJo!qWM>RVfq0P4we;2w&G&m#lxjgb|ct$8yZVePbS6KXj=}&?*LJRCmod8TD z^ts$3*V<?9+3Pi~`Q^i1-g=eS2o14IDm4Q%U}jT<jnL=v1b$hR9Wck;q!l!|=5^bS zc8%bsckkHKD|aG{pjoGq#z=%_PY9;@5n(ogi>AP_QgWlFF^P%@{W+Ns0Y*ev(BQIq z!(o&??^W(f{rB&<I-;``H47;YM1YtG?y>+7H6J}SzpZ86W?akdRymdfNBJxV&|mUc zw}2?jr~$?$%EHoig3qn`!cKF)W8XM*AvXkt9gpLTJ>5(6m>hFh^tQNFkC;glMmYAl zt-LtFdIlOj#)eDx<vd;?9afOSG}Q?kVlw=8ZYHw}r8X?yj}}K<Zibz08%8~_NM#m% zJLYjPO509{vzPF)wmrw+;xP~wK38#zj16u5ATx7<`R-B%u|ChX5h@}BlU+O6nY}PV z!jj%`ROTq$xZ%q7o3H+F?<C<U+kMVn<I{$FTHm?%H8^qj1a{IL4mV<_4)1Hr!}?k+ z@h<-IFT4Bb%!fz7>CF30YG9_JZ0<KOgI=~5k%bdB=CEDC39vioTWm)nP{z)|WsjzX z1;;~otW8N%8p3!9Ci^{&mv9_u;1EY>;U-Jtm|b01SlDZ}syH^XF8<W`pK;|Zo{n)} z2#+`snjijXoB4nKG3^__`ntdVnje!p#*L$Jkf}J^bI5w(D}Pe$#m@+B3d`peX}5*o z6=}D*=oM(UmnAo98m~mVEdv}!yUk_wYPV6qhwtuH>LRq-Tv`0Bwh&90gG6YxrQBsK z;zVe*xpa4{&7c)nvW4A_BJTm%gtDy+_O=;&aKX;X@3rw{OJJ*m!&v`>2`uV2HjJhT zJ97p$wC-%f50CqL7>~0<x~kZb!q{p*6zyj4p#bk=AH40QFyOp$*QV(rPAN{!6j*Wk zHA25!>w4F|30JUpvnHFLvBg?v5x|bGy8??sb_8n;`$Sw8g=i^u;)ru>kaIR*vDgfY z07J)Ow#AH2Gc(zlv^ZIrJztG5v;7pZ<#VUFv%g}-v%g~BZ!Y`N_dfcB9}a6U6rQYO zcf^6Jb&&1g*@=x<INra@TCTNfFThS~j`bsWWy4N@BkNoBea*J*+SM-cbe53g)c%gM z?S6nQf%grzR*iPkc3^q&UtCWWTMoRAN66sHWB++i?@9C6q*$ricFAy>s_)Pba>HVl zNQa3#4>Ww|wz|E{YkMV_FTfiPe(sn{FVEeM`v^9}6qKu()yC?(us6(6H`3LHxVirD zpOAa#stl!B3i4m0_=W6bKY!<KaP569#~!-vO@DsIvx{hOH*0o-+tyYwVvGF?SIpPT zR{Q3=UUAytw|xKk@=#_m`Q|e?8{T~P4?efXhe~@s@AB9E^ffG1?D@Q}zVhZkE$1)7 z0&p<9IJWDPZqzU9f3)SA#t=H__I<E<46cQ0>i-v1#E>6k2VgJ@Uzt*YzQC1(XLGM^ z0nQEZl?Y$KSM$?@%^&l)5#5Ct3IR3Vk6<3-OP*z}x5iKs-2DlbDMRJbZu2+ni*3Pi z_{n=O?v+~+EK%6RhCl*k$R1&G))7wgCPD{HiKjrblClR$a}q5PmM7ea5@5;|{WC?$ z>kX4h>8Dq@j5vL~9DEFtwG=lZz)z;cGJ!Ej{`yHV{I=gVjycaa9aKS&g2BU{4m#tR z+cw}}+R*7B+w1Tz*qs^6-B{<$^SL_syf2R@eCM98V~+_(JP{X7Az*AEf^iF*>}trZ zR;n|9oOaSnUencvQzd(%ij}XCGBlm4ojimSY=+ZCHFt$a!|%l1Qum1om*M|`H+0Cx zQZwn9BqynL<_R~vp;r-&Fg?H$jP9*PDEmS%jm!x1<6Ja_%axKFHH}G3Mu31!hyWrZ zES+#!z3|A2?Df4$U4$tZu8inYMa@78h!Lh>L~vJX;e<<fgV4Y2bqFk5?n;VhVZp{3 z_F#_t2nJkTZY^RXvd(iA0P}8i1mSjKZ>D?Rf-P_`r|o*DbFkT#2c2LV<f@dd)x9xT z0PwD<wZBJ4-7Z%f*fv_|MRBq%vjMj=o#tFlZ3t8A8MaNAY2=2>nBBJfvn<5J9~8ZN z_qhSw{oPFVlYK>%-B-v`nd^sLCi}ianC)?&Ov(_ydxj<TawmrDlOJ3MslWi}a8E+- zW}B+n`V6kDzzU9>q+(YAB8An?bcC6;Ay^{WQ0?G^0rw#s*tE?z*V{=b_w@2`W7!F7 z68!NN%oq5d@g1!=AlSZfu&Wh&&ENQU_xqG#-iFCyr;3^4L=%<;Tl|Fv21y<pB_2jh zBOwiTp@(jnVye!2Vg}2vi$3*(Tdv`AHrK*1i{;KVH@5d>Bg>pMJ!Zf}4D2H!HmmcL zWZYeugv%w5@nzB^iZ-_7TP8m$X>GZR={oyB47Rp|EO4gCu)K!-{OrtQnFZ{z`vhcp zC77M7Jr*r74aoCfEGBNMS~Wg1!*<3a9mPR?K1n#TNv%KauxVtU`owghG~iSNyR@-j z`p)Ta&DZ(!+j$9D4K>b^A~FqG=L-n-SE~c(u+Zh~;Ks>7;zCN9HYnu?DW5mvPGaA` z2U2P|kT0T%nN&p6rxJC81w@^6lU;66cD;2z4qGTJv;44$+wj73w5Ra!g<+?3@Y9Q& zJYl5=fMmPc*=<$6IH6?NM+<rmH^PKB0|oY=yU(HNYPsb`+5H;w6S-x}^XW&Oc6&t` z8u@n~UggRz&TH+(I`C2_zSP)-o#}-CC1}Q)xhk+CW1Xa7#T9h`RTT@K^ZYh8RuWh# zVX1~hU`Uh29LE^4!zfrW$EJKhk9W({N+&-Q_JU<4kR4nocE63#VmY0ka3KgM!V8}9 z!%SGHcKCURif^+l#ItDsE=fP(6i_SlQc}eG>$R`#e#LjrJ)O<!%GFqYumn473(r5W z;a^_yulL@Q9bxCz96SQe)GGTvTMcK)pNf{4m#a;(ZL_(}$~>=bXkK6FG_T9q>{w<e zbS2nXXzjXXR&g3&C&9X|MnW~9E+uUK-*YU#>lw>FcD5t?Ya|SI1)y9UTYfckXOWBH zxC7GPqd{e2n$Q*Y5DDC1&Nyue#|yfs<oAaT5%QWH11LSAklC!?)~Lyf$_n5rk+qM1 z`u{n|{W_EIqkZ%qoWL&H-8A$b{1ykn8p;l60%dVlwpvm`$zdyRvh(C#7xK4?BGyu2 zNWT!Gd8?$(vGaBd@z_o!mJnjtYgZB0A7sbDpyIMhi-T&-^-XjWs|{9$x>{*jl@qmc ztA4<0xL&m_mH&9~up6-|_5@v+el8%&^8R7;3Dj3yML3hZ1P3v((e}u#$dKg{-><iK z=b4?9XZNX8I>C*zoUcvUiG$R-wB4L<DNii<aKxgswh0G&g^a%<3f41TH}O$)gPceq z+Q)@N8%u+TC!ZZaoKHPx|JRw2)w1Hh*s1vTU6u)UXF2L~T~vnYbfUs8@|jN0q~w_( z?qo&fmdTpn$(l%2(uH(7S<V*n`BI^n%H|5Dl{E9oWHDRPbNFr*OQmGV_2x8xlbwvE zwjYjs_^zLP^6Q?w)Z4~hWN6z$R<^BalxCdkvj*Yv<R#0|k3amC)bZ%TyZk}Yu_}3# zB<A_kNE|NY+OHpYj3;qk5-o9*bi`1FGr?6P%9&IyT`}_6Y`SQaGP!Ifn=PBgQZZY! z4AV4{rE<QKEU-0G^(sqxob}~Rou_^K@(qa7w2BiJJjG3-Yt*+TlPG`e>%WW@d%tH- zI;n>|o!G}0*KK~qb)H0eO|(Q(q7&+y9b7x5jC{c=6q5zBWSDs)lP;A@W-^^BmeZDz zwQ|XvX=bv?av|`3XmX8hnby38snKW(Q#jlps=oTcz@q%|`}O<Yz_)@(ZxG~EHRo-W zNcTVd@T#UKks?+zM>eXS)NWTZE2HNt<#Z*R#J5Z_o3`@hLbj03r;BAhYgpM--ojsY z?wownSIwLdI*rp=U?D#|%Pv<-wG(RvWWCJ=+NUvJ-xvI1<`G+T*)v0bf3|7pHMq!j z6b&<)2!7hw4%r5y4~JeUztq7{T|5@(qtKWwcdEk<q!=pMw8r4>2wxb{hO+*5*V~1} zkWakGwem5S-AP8!Rns~PqlraN*Ap@JdO-J{HRbM(3KNOmEm}f50sRlrhNHhBPsedW zV7IMyr;@p&i4{XAPavQZskW09a>G`^g|PNx<RcH4b{|AJF0wv>ZEGmA9GCj8Ve<>q z@=o9B8gh$Sjjl-*0HWk2x@tL@tdH+H=4r>`lDhDBpyb4GCCqAtHBI9}>eRD7{wdik zUELEZ>Hu`KNUoMCWn^{3$dn7oTqS3wQiY6O&X-X=(z(2qO63!*W7&0`!h=rlT|JeA zwSD1nU`IWMBve8~DN)L2in&5o&m{}#a;BU#vq@7gCM)?&I&YLJX+2k|lv3$Z4>8k1 z%nXuAHH>VkU+)?6sL8VrRZ(`oJuMAWw>@rk|2HDT%D(r$do%86C2ZKpI;(aZiMd*& z<gVCNw(a3k>l@Xr56kLvUF>Rj`GAdDR}~JVr)>g=cwHO2!j|0{%ybvJp5k&%{HoZs zL54@s$e|NYy6vMt7e6+e<fD!gau<QwP7grt_})>U$I<*=R;ZWwAmnF^q(5gLzqtK# zPZiUKNZ7tXnAXdcOrCcpEi+Rt>V*_e7%$}XWT}uz8R;+(-rX}vBZE*yPLj|pXN_bb zS1A-SB_m(53_Y1Hl#;15&KORWiiKRs)QwCb?IWR*6B`Q21d11hlsZq@?wjkBbj-?x za6JYTl8WO;A*oWK@a7G#UK<&Oq?))<NGgmEg|w<L6mEOm#jLBiF1!ci>ne8jxjHH> z&SIZFke#mL{(v4#{Pwnc(zsC1%f#T@emK78-FH1-=560_OzG)z%1r7ROGiH}S4`$h zIV)|N<w_nvDq^e@>?M9IemDkWDJfYhV1l4fF)UqAXOc+_?95CiYZi-@VlinLDZOG= zGTBnmN6DbT*l<ZEStwy-4)x!2BywmlTt<sb47el}$B#==rNZToH~+&KGQ;}sIT9Hr zTA(<4j+Daqa7iX%D-4$#u6+0&;F51DSbooODO8R;aI=Pm94{)Jo)LqrACu=@{jk_O zAEggj!o*QIYw1O!l1`RVW+s`#q*At&O`~gR7|Ae9-WxwAy)l%CESsrxu2`s~tW3^G z6>=%VsARJh(=x1bR>yEUmo1dcqTxfNS6FO#B$Fy$JW}cg!y_eq#d?#Z;`s4Ms#JLF zJo{<+$ao~x#NC@D6~>20T2&YxKlZ-c{|r3x`CAf?Wf)lW=s$kp){z5P)A2%)`S+u+ zaqX=mGXMJSF&3?|VX;++aw(P6jihOm%f)goRWeHHd_gaSq3})dqmac*0<ciAaykM~ z)KkfFCYdcJldLyu<WiN2S<o#6(@5sC{yriT5gYc%WQiAhl)AyNM@e5X?2(G&#~!It zVNd(<ZLg5krte-MsU~jhkqYC(9<3@2d$%3vo&)Ty)}>{F-fCe$jlIh35>We_Sbp@a zuIzZjDc^-@s`3RXu9a;0u9`l)|KaJAKP@w^Z{8W`R%L(@OULpA)?X{dd@7Gc`~p^B zi&#_%<J}AT;$1KS5-Mu;(q<-yK4&(G0Dx&3vzSkpO$^-2;94b9&YPB*E@kscY)O!@ zw^ud?UMC@=A1~J^b%Sw@lD=YGBNfNbHBzPG+CNS;`6d~*u+=x$NHuYDjZ_#P*JxE? zT-#WG(JMiu<xLKvvu41Qi2q@m>)YKPox6{J;Gd@hlY_yx{aw9}eC;j&7#V%ZVmfV< zj8r*^c{Z3Sr8AjiDyw5?Sx#n+tQm&B6_^|h#!`0t@)a{_<<h2AG_r*<Y^)IA3|4z| z)+5ZASY5%Ace3nXLJ10tts6)tS-iNU)D4D9O8Sc7l2jZ&E=iRNmz~e<J6%?(zHv#a zi5r)s!uW7Ws|v&AtABemTUK`8PiS|DW`brnUA?ov*OKxbZ~FG9V1|au?J_^%FZiMO z`u}*$pJWd9-5)HJ%Y{NJjXqd0naLLPY+ld9yv8hGSZo@V&=r%n^wl2>UsdwW-tmY@ z4yKCfQb}j)BH3cu$YH_T${3|=HgBZ$l9kdk<xC}0v{GR*VnZL9F!7>~Qa2d-DCsMP zK2mY~=p$7s^qqKH<6W}i^o>4JP2A`s6~>1?T2&bOo^kH(J<CQPHbZuMq3`J1?}l-= z4}JUvKl&cHB>PO6gMFh9T|onuH0e@O$I@`AQYsoou2jsS%VieR|7+;u5tHc4!KNph zP3ag5o8@#mTTWIilPwGva_L;bGE=z}Y=Cn)ANshA*w9BNOuXo$)D4C{O8SbSk5n8# z`bd=ueP8=)@+Mhv`bHnACT{eR3gbf`ttt$CN1phXlYqWuE(x2RY3#zq24Z%CU5^3s z-yi>m`+`fto;Uq4)ZcjL(K1i_hGEJqmor%K$?K((l`a&EW+91f1_kWQNEv!L6E-+r zi6voA3?&t@eWs-AWo8;vOk#4doVUt4La7@CED@)%1IaAu*g)c=qV5qE8y?A|iWiTR zy20>BNnbHMl8WQUBdJp1aogml9w)0(-*_a|#EnN%VSIR`RfXa4zWEcG#mw^dqOf&L zcKm1$FuwGow|qUY7e&6~N8*p~JN9syk9{K%`_Ph@BP_zMIiJ=oqk`38OdRHOISfTB zW+@DbE3oB6#!bSoQp#G%a<P=bp39tx5pfzl!$PT;H?Vb1&!n)pQ^Nj}tPh4#Ol%k= zlP6vbQtAf7ASHdpFi0wnAA_Vyg~4q74bPC(r*90BYU0KqsW3ha(yGER_>1<!=Yheq zb-6@bX~USBp-z1XT_AqXz4z?xYLn6vL>v<k;Vch-=M8^S)}DPc58bJ9B?;q`6n3#? z^kjiexS3gO>cFI6K5c|C@40<V2L?ipBPB#C*o(utO3A9AV~0H?`CKZSVmn)MMKfQ{ zSow51Z&k1?k~7j-^<G?S!(`m!1sbJpFrZP=R}5&R;`o6^s#HMxjCJsw$Ur02#0@l3 zVSGTNRfPfVeK-B=8=z5A)oEp~;n=)PBk{$h1#3d#_R=q%i#tn>Q*S!{S!Zt4aKQG! zO@F;#W?tW5%VXNi#7^C8E|toZ%dn`kO1WGa8|-0vl1qnfo4YL<*i=+p<|`@@Y{==k zLI%CHaw?lQ^RR!(Vq<^Gs-%*cqM0lvvzbb&hyxNTVItz<9hoHY@{UqB81E?QE5<ug zas0d^RVv<Hefzo}$tu%#2aZ$|H}6P=@$rsU70SCi{!|C=&QrWIaYvTb#u9CFzPrZr zgB|D+I7i`c@130JYDc&|Lfi?V;yCyCu|5!V!x2yanasz&(Fglx>@LHpKlutQn=y5k zsuW8pBb86)GFHYchxO@R5e<Frm?b<vczPsEobX~4taP%F%HY@roFi1m06Ud4jC{(< z74n5VmN+tc+Vd`Wha?#Mj07?r;^iHsZZO_a(pQXkq~iE_N2*l3tN!Tl=gNB0H}6O_ zar2H;7$5IwRbjll|GX!E4}fxPn%TWUEw=Y}jq@#(boV`B_y54AS^0t#$EI1i%D&y$ z>O%W_YNnxYz*WlFEtc0|yOPdUin*+1Ws16PreM}=rE|H^Jsc5jnpMyf&NqR!RHc-( zQkh~pSt-F#rBa4P4Zan!$pQ{V%P}Ks^z>l7r(TSUYh?7}<r<}KFs@P3SBz_<;`q5n zs#IJ%^}(mSG&0vnHF0x|R2U!EXjNfc8_yTnL|jI7ylU2*ZY-`5f2KR){!ScMha>vf zL98%T3G2=sx&PS1aRo)sx1d5^PP8y1d^yBx-uW-L$Sm!fc(7qEmkQ}@$;=tKypA1f zB^<4i!mm=gU{o+{44!lFwrE{C5$;6KNMb;X-dO^t_vH%7WHy~j<!}O4K3&2dx@0M7 zR;+R%WmXDs&6O%fZ$WY4kW8C+aY(5f42P8T6~iH^IDQ<GDisd3ziTg&b*Jxc9;qg7 z9Fhv-!y&CI42KWh`7$=FeT;*{rjBE_*VM$HQ1<OS`eXOwWIy4>3p)Om1G;tl{`MxB zS$%^pm&wBlxqyyUzLY7MM$yzWC79=xGWn#D&xM{;@XUyy<Ka$-7}-=S>KHQT4J-tM zX;^f?KH+4>O67_;loKcZrH!(I<F^V)`>nVTM#ef`gi-1SLl`A}#Slg+jvry9N`<iZ z9C_WZWUc5MVWgV45k@ME4`H;bFoa!bevu)}Sz6VNZuI~z*IlE&gktRUv;Kw|xk>2> zBAlgF>FA)WaOyvPTxMF|C^ITLb}m?jd@fx|Rq|#wk3JJ@H`1Acp_fvjJ8vT{t;&!m z)ECi7vv7PsK5ODItW2eBl`91k$4{9RBa?)kakhYESEG<DR4`z+Q!g%{k#Ua~Xq39a zfJRAQF`$u(;|Ch4QUR^~oA*6W){VY_MyiP$Xr#jUfJUnd1KKGsKK2=)QAzd54&YJ> zT%>>n2OW3FtnvQDDe=`hZdfqG*H}wmJ{^}2p48(Vs5z;J8i~G<```J&%^PI)_Km&_ zPMON4aoju3M8+xaSsXQxE0!#?m?^-(Lk}IUz9U*M&Kt*s_oqrGdlj}~m^#c_QaGkR zhpoT`><3Beu&yf<^h&;*!=B)*g){r}y~F^I46Fm6N<gMhym+M44TeWb`ikL^R2)AZ zNtFtZ$A9Y`H^}<aHy%kfapRFx7#|*KRbhDi^lxr{A-LsOo_H&|50BwgeC})C^_;GD zl=n?$bTalvhkL(z^P}G;^Q~|0mD0r|jy}dlg;E+vu9R>HayC;+q4R~K;$eysHcj{1 z72uwYJDmAa&@=gLrBcb^_?1jfPwRQ3oGKIwNj;S=7IAk;C10xeaTgQi$kd3Ja+JEk zC`U<OG0KsO<EI>{Qc>=+fB1>Gbu-G@E2NsZDMu=dk8-rCFv|V-gYWwlDCfHEY93di z*4YZ;8pHV-I<ieX@amtk`=gXM2y!m9ahxUU##Z0+;=e?nsKZ<sJAS^BtfVsr&Md(h zD@mL&3WE;a!i-rq40RDN&2hq>aD5dc+)T298#nSeDh2k+*u$Gd016qH+F?^|(#pfs z1gGTV7!}u>agA}w6o?mZl)Az2MoC{Wypf9I#~Z0q;qBJ-@48NQ2Kw&Ak!s?`8>uip zywR${@b<dL-p)F4r>emxTX5xfzlC?$UVr`HCcD}w^M%)r^t>i9Hgf-OZ~E$1nMr;3 z*s|#)u4pUaR6O*BjEtVm;oi1NvXs}8$z&xNdK}8rqxINWH25uWcJHiQ!c7@i*(hME z0}lVh4lZ^+U#V=CaTr0Vgk$4V7&z<p&2cgH$;kM|3oT0BV9=tZuNbsQ#qmRnRH>kK zWBNUxmGz--Xpw5-h8C$XK4{UZ!k~5kJ<mD_`ruMQv)!zk3o{3-b_Z9dS!N6OLRvL@ zb}r}^y8GemAO8Fz^vgnIc)%F)+yUMrZ@V)iGq`WynYslllBAx_Vde|)E2hmdP6kb3 zX`o!tQ=!0ndo<vML;@qtKtkC##EOVvpzmhk^y5^aoP%i}yKc0C0}0sPSJ>BCI&R8f zgVlhDxaQ@^#EF-Vl)Ay_NJ(EYI+BXxrz5FS(eb8Fja(=zPv3MT)x=FlQek{_q*aB{ z@wqpD@Q)yuyoDMU3D37X&9-jpE!-uJL96>$=(zPsU;V{t=-hdHLgI;vx1J}Gf@7;M zdEV_$l^Gd<g2|MLi;E4In80keoGIpW<uWds$XGZFOUK2?L3_GaMWdi6_!x$|5(MO9 zrgShFPT>lm46NwNMGU459R8Wb^%q&IpzG)drZL3L;e;yh%W(~3O`S-JxS6-Kx<Q$@ zwDc8Z9-(+8m`A8o%)8;wA6PA`N(AN+YT{=ep)gM7QL4h2_x^i6%EqJ4T7<gr+I3Sm zo3q1Zi&o9P&)jzg{O1pybQ$`A>dk58pC4)RpOSMUUpy*z<tmwZeRB>Ib2-@QmeM-z zmCge(xS>3cEwB}wI%lQRp<BTs?t)cOaoyjoB4u9zj>GrNBrY7nC2dLEm}}uA<`Rxs zF;c}MRwJ^w=%SQOrEt@Q66U0feGB-&Yp-OI#LGKM-C(?<q^}t7NX7B<j#R05mwU+* zz9_3q-@GH$#LYWWVSK!!RfX~H%;$doNKYS6)lL`h+VeQyu5N|X?yBn1yI^Uj-kY|4 z`&oDCN!7Q?jO&|qY3u<ra%R4gE@96rHb`I-LNc4j^|X}|_MGB!iC~}Zb<z5CDk3gW z*-^4dm&VOydEDTGBUFl+GR_@HqHCGT=aWSkGZ%_D!Y-YzSRT^Z0^;HvnH=$Qj#4)m z=P2nb#yL`P{G20ID$bpB-?q=l>e4soNHuYDj#L;Q=V(=7oO|)NZoL?sOQ?~js^%`v z)v5<9Q}5~k9mZ~#__}qgpY?<UcD||?r=@on>9EJ2zx#&#y4T9w>l=1@76aE@76%5K z1q@_yw`>M`O|jI8jS3aE-WdYB*T)At87<I`jbL$HaWYvjOx#tGGV>VD;%+tUShEaV z1)evu860g=)Jw4Y3nmP32ML3l)R74iFYYLHgW-;nzGAo|6~~V|Ql-M(g$JG<{oY1W zP29L66~>1<T2&bC)}8n)udzu-2in-l;?^41*U(A3M_%%qIT)Kb-oQ=A*u-&`!`QLa zx83`PzelEBCXa>LLNb*}m-KwWEM;-EQQ1slnKqTeNp+!HDIyx1IAKq?zKV&uyqUo! z+*C1HG|YSfN2%bB9y6b;q)OQm3{PN8XXtvqWVqgpYnF~ofq3yosT&M$l=KzD8>u*c zypbvu-hTIolV2=rNZ-9VQcc`=BNfJnH(FH~-riXGW))P*E~_`kxBiEB=}!97-W)be zg!EjvT?!+dnynk(`|`sVPn4P1cc%_yspN5N9S*6()vp;H+fIvS5eFn?l6l=qg&xLv zNBo^So)~t|E~OU?%PPXMFH>QYhv^Kq9H;V?WImrWOdLf}NW&dxO7%#exVm>_(!|R@ zO5I@mqol7G|47C0^N&=i`1jG%KC@d^oxb@;s)?I_q{8_4N2?0s--W;V?xo=0If{R< zR@pnFEbinKTsZWue@XVUIJl1amLB;C_6xE@H@^4xe_Qh;nO%L84qL5Y?va5FaTzC> zm(x}e8?ka&d&S*{*;4qr#LJ?QPDPvB-pSa=fora8VP9IM#CGIje?&Hq6V@|0c>r5x zvGpI!#VJqaY|8U)TudVqAzr3Y>IP#PC4I%1Mk<b<X{1WUw2=o+-7YIh-%KOb#LYBP zVSG%ZRfRF_2QS@O2h*JMII9g<nY5ZU9b0ABcz%QqTZeDo_iSLz?GfUf^EllPB<aRh zAIM)*l9|{y=?XC2fHhkY2VLUy5KPWl*np~+aM2fx*>EC2*hF2#!#LfcPk4Ta;cF3= z9u*k=Wp&&#izSg_4riH^^SE~rfx$TdM!`&_v2V@uZd?OcG9BWD9i?tC*iq6~40fdA z_+dw?RIqE#TzF8{lfGd`s)-wRq{8@MN2>~h-M?+$<At5sH0Igu5tS;=1MvI^h21^> z=P?X+ZjT<=xgR*N8#Y&~S%|)2S1g-Wsgf(^^imnUxr$Lqqi?5U11ydnF~jHSBErrc z`h@3)Jy(~<ezZ&$2jnFUvxxIK&75wg%?!>7&7*^fjk;DUi5{ru-MC;!rbE22qtp!s zJ4*VB!H!fMKkP`A3U;@g`LyWQXp?H<h8?LeKG@N!!eF=Og72q5r;F5RwbnHBTDgrg z+6=wZt?Lbb3URn=DE<yT_wm=FZx{LoG@ZV*CI^TQX^&3HR;_O!Vh2~sz%_<uKApr- z#g<hm!YPZvC01^66iHa`@14=cxuFroIdvh)XxklQxj0)v_=*`^MFGQOD__PD@daFZ zhWmd2?@Y!paPg59E+j5il1UUVD=Bq@v67O$Vyq+;$InVqrDElp_kQLIS%v!U7?Nt@ zW+kaGK33AI!dUr%nSIxK2-a$2w6{ilhO+RVrvCF*n4NGRc=IU5KJMbM?s5O{>UYSD z>YH`>d>TA4^6bjiaw=t5$qbB*twPCwU2oY4y>aKpXsqMGPKZy@-7Da5PMkS~v-S*Z z;4SmJVqr{d7P2^t-NHF6RyLo(Nde-exY$KTIbL>A>IP#MC4I%%MJkS;U8G9IuG9YG zUCK(UZ+4Mt;$|1AFg|wCs=Vw1WrnWiA6@M%qgiiZ6uYTySsSeK{G6S`yR1%kr?@<f zLFogXwpM^wxw~uzw`gMpqh4<|X6CTRtY*#dEfzDIO^9h(4P3HqEMD5yTYEd2_%}4H zjcwKrt1n)rclNHwevDb|g!<xop<caHwK(;L_`~hGu^*kykcY?B7q_>Y2M`K#wpwoM zZRfpX>x(=0S6eOrlLZ#zi?pL&d>_7OtL2BC5=`sJdk!9fu&%oJ5+34F$=^K=8ZWJO z6CI<ica6RK+R{8Ru~WEgflI5ED9=}GW@652Sny|=32_G-9(CmlEOBv%qGcsamgF8- zyl^mOdeyA$5gPa4W~A19caK?Zb7lVQ#Y#%gtX~T;3B2zK+T374v(tem&-!MgQk`2) zdfYmg(l#rKZDbiN5MoG|9WHSyeHK_j8GiRXD^fWWouRJwSegAx)GJxM+EHT2Czb1# zSw#`+*hOqpvxc~C(GTc5<i&qWrf^%kXgO87W*x9<X-~~YZQERL)p#}0wBcaQMkTaC z;;EjiX0@a1i!6kG=i}>(Tbt&5El}C<3ZCr{dm6SiYK!Y@%%GMh-l~Px^bz~V`S*-U z{<FZU3;K(gC#;Khv_^)t<2}IItc}+fcP+L+t|JgXR1uNlEZ+~C)sBH%yIZZ`1mCr$ ziDrw33lENR9&7??nfIfFE8hm;5wc1laf{xTz99ps+_-=hmWEzi+h{al8i<1rq=L!% zq9X*Nr&t=h-##1;jjH1Z0^w&Cg$Vxa;KR=>8=}HRB<?JO^;R5jS^=(XPslxRcWz#9 zn>&zMG60DBcHYLQf@k|@S?8)Uo)ADGynCFGtUDL$<z~$l^HoU6oh-hFC^L&Z{RGWd zZF|opqQYJ2R3f`UO5obHy{H@Aw%+Jen(caLI-Ot>w)i`fN?>zwp^!?OxGM<jKLxBe z>v<epg%u*h!nyZ2eF6E~)pD#L%{7~IXyJ5m?!?Soy|bo;o9CuGR{KEJfWWTa*^iq_ z3epfAK^*<puGV+QoemT)F<niMJ-Yjl?FmEFtr`62YS+iELw8E<%u}n(jA0aq<Nj~N zWmoKR+1IFcwZ6NdWCrtWsG(xAJmA%9l;P+g|6J&5X6zBM*(WRd%t9T-{@U2pxVyVu z?V9-It3Ga5+Zns`cBiYwUxq-ou69-If!#6FUFf!0;hDJj<!4;~&k+epPKgLY4meSa zP>%mS0xIdyMMWhkIR;dcI)bR27>R&NQco~0eHU|DM<i6zVp)q7Cn`ye@t~4aGaxEy z`GcU6lpYC{wA4tbB*nT>**fRWA4Wx`SuSTvmJV~G5+*#0MYE7B>o|hdz@m;`&e)wv zKHMTZle*cN#>56TaaXE1xX0V8{B#sllA()?N=kANFManaQ<RP%Dn}oPf=WtHFfRS0 zlGG6mm896%QAufx36+$ZK~YJ{9|)C{^k}FgrA9*~CDx6~J1_p$EfG;k9>*<umClhq z-b(^{UN3-t<k&|dz>yA5R5+57gFxvUj--wt9LGK$0gj}eU|jl!BdsG69BHv}!;#b& z4;)D~1HzG(KL{L2>5<?_ON|6aQmh+}2d>|^DIy%n(=r4c<xC{5Hpb+vv1q^wReh8D zYMk?b*bsY11T@m2iHb&2au6qdqmk4RMC15X5zt8L3C5*wG}1aEp^+9FHyTNe@t~1Z zGawpi`GcU5lpYC<wA4swB*nVXc;B_Jzda%v$*t!Cjn0KF&Y2ORXJ{}eJ}Uwg>2O4a zA}KitlD?rx>Ii`%ZtCiLiH6h@j7#58q;*7sA}uy<D3TiEfg-79Kq%7k2Z16fJrWdY zsga;aigiQrIj5h$E+Q0RUujslX$gn7reNBcG>vk(Sk9$NMk$>y=(tUoFJfnxwTNBT zJC<*@accxX(qW1UNK$eTDt!Zz)DZ;a=#wG<lGGE7OW%N`bwmOrEjDgIk{aUyB&lXV zK+^ID0VF9s5+G@*kpM}Gbp!JLD;|7eL_m_q?D}UL)iByMpjKyRdxz9(BEXRjPgFRP zl7m3$8;+!oARNbW$4=k9M^aBPE`7t1))5JgwAi@eNNS7+j-;9a;YiCL1dgQiNN}X3 zMuH<L)(yu~Ca#)^2uJc3E&<0SF9~GJF29WcLRxoJ5R#IE@aP+aq>dm6$Nnn<2uVG` zxbzJ|T1O-h(qiKVA*nGQ5Rz&J1R*Vd5D=2mBY}{X8VQ7?ST_j&WAf<VM+9NY$l}I3 z+`5-!*E_L;Z1r-!TuxWg*fohmg6v^*aaqG?w$Gax=X;0JBfp9ONjh9nAxTOOf~9Xr zk~)Hr9Qj=YNRoPjap@b9w2nxSq{YS!Nm64xkR;U%2uWK0Adn=bM}j0RH4-FAv2IA- zvhh*BjR?tHCXanF1uK=w<5Wh|D4IGBXT+_^nS2r#AS7)_K1P?fv(|882<#W_KWaBT z>oImCz>wA-6^5kbAVB(tA*mw>!!d04=zHi)>IufBZy3@#BEgUr8#fF|jq$*cR5Kt9 zY59Y|kdz(?hP2d3FeJsgVR*qmUi1ElFvP6~nM}njShy#T-4%~p>r?qcF;&1hW<_)# zZ5XarFvP}i^d4J!ca8H+T}urlj#eTdkq$*vB$ASY80i~{q>dmGNB2cQBB>`Bm%fom z>xhIzT5Q}%BsIo^L{iOwNTlTtf<#h!BqY*OBO#F#>qg=)Uw-wu5s^sVS}kT1*C-^0 z+#V0>?!b-mYuuO|pNfD<I%H8XNlFf)rEg4<I)a!SKQaO)Nj<^1^o>bcM<h(rV&ldn zsWBc*l4=ITBrSgsOp?+gVUm^_36rE)HzwayeeYyMOyU^FWIB^6W{qS%ty{Qr8K*qz zxqL2{&E_j+sjs<4X0pT1A@<HSj(#@+B<XNPg(N9C2$sGfN$Lnfa`aFHNRoPjap@b9 zw2nxSq{YS!Nm64xkR;U%2uWK0Adn=bM}j0RH4-FAv2I9SbL&q|jR?tn0e5fZ3fXKf zmCBUMNj+(ma=5y=oGzQ`Tp9;ha=S)nlb|!GR^O&^x`sHw&eMY&J30a!>F`8_BPlru zl)m9e>IlMd?6?SUB=rR2(l;Dw9g*Nji;WwOq{evQNU9kSj<ozi;7Cf31V>tGBsh{{ z-Ee&P&9$h9O{8@g2<40HN@vT=l#4p<j?v9RPEVE!IBr71v9zq!YMka?Tg2IF{?p6G zB2bbJSX4@ql7nRFo06oCASFjJ8`1X)4XGy>m%b@U>xe{2T5Q~uBsIoENm9*#l%(Yk zLP=73Budg!BT<qR>!#%6Ry}H0#4aTE#Z-z#oB^4yU`I?I=b%@LrIeAvy$TuJ7meG# zco)*Sz|3sx2dy@ab;Pl^Ydk+ZOV{T_03#iis9+=|2Vv4T7)c#LFpf<}03)d<7?-}m zNb86MMp|s#U?erh14dHKfMBHM4+2I~dL%H?QX_$p6zc}#6aR4i&m)4dQZ7_*?;#Gn zP2(P%T-LHOMO?*|!s@k^&gJBuL1*cjZGUO;JAa&S9we@dfJ8bJQISYW4q~KlB$7Hp zkhm!V5=lM5xb%%gT1O-#(qiLABB?PRB$8?dL?SJJ5G0b)BO#HN8VQM{ST_<s^1j&* zMnoccQCgs{NZ<d+&X@Q}1TfNJi3&ziau6ncgOSt`1mpNGB7l+96O2pWV5D_K0wXOp zZZMJ>;{hY7W<W5~@&^GUDLoPxX{nLGNQ!lXasAc@PK*df6ZceOmN99--aB8clrzPA zu3XM#3mFS1+3UD8kq@Gs^T>?(cBhH^fN<FjOuxOq+<nIJvm&684oy@vl9Gcs=^Krt zju14ij(|o|PcSZhqmkAT35~SaxY0;zj0cURngP*B%O3=dr1VH=q@_keBPrI6#>f8j z@EaqdF=wR8l_XBuN$I#iMo$*>l9e)XU26s#2=i&fM&sGK+zwM|>vP;zM}2V{Hje%| z0ubpiL<J%#IS7%yfk^5I0&(<_2tXwD1mn^-5NREefJlpt8;GRFcz{T%84!rH{6T<7 zN{<9YT52R9l49LJ{OB7mSRE0F>9oO?pDW2qI%8mkI%%Ym*)r}xuyiY9rLr~<odX(; z`A)Z4XLE|^D5|gSUgFr-B0!N2M^q@1l7k@W8;YckAQZ>G6#<H*o?u-1h9a#a5)^5% zaYK>R7!MRlH3LGCmOls-N$HWGNK1_bMN+IAiVvMV{E3KAOctRDeZ(?osOL-zmfy)# zR?k+<ax!aVO&f~qmSwAhI|tcigZxk1YBk$_yYCw!;F1nuR9uphgNW%Hm!ys$E=O;Q zfJ;(OFfM)LlGYIkm$cZpaY<^72bZLp0dYyo9|V`A^hmg*rAERfDb|h4r~T9K-W?H_ zsbaE{hv_#Ay;GG+M$Z+qMYCw8K+U{vrR1PGs|M9!$2Hcf2P{+X>eEKEZQ;nq<V^As zonLc1{<;W&q{9>ykfh`wRQd)asUrx;@!KK*lGGE7OW%N`bwmOrEjDgIk{aUyB&lXV zK+^ID0VF9s5+G@*kpM}Gbp!HCxBUK^h=45Me6m70SIk>x+9)Tj3Ok-mFJ;TP!@86& z1+5zSJ@Kt(P470_Ydk;P1MTt8M*t%omZ)GPB?n>BHyBABAz=Jc1Td0%f^q2^jI@qO zV5G&y4MtL9JYXc%3<ySA{vco^rAGoIEj1DtNwID)uK)3CzZ(&Z7-JjQ6q7C`b-h?D zRZ2y}$d!t@Oc_U%r7J~ypq*RRK)ch`yZ#L^cSj&39jK^;Bqax_(l;SV9YI2lzB>XT zNj<^1^i4=wM<hbhV&f(xsWBcxl4=GdBrSgsLXy%W5t5b~iIAjNHzBuQebp}`5;Buc zma^%Bg-fYR<&v4jL1npO$uf(XLMofmD>flZYHYpa#jDeLqgvOymg(JG{gw!nqyrX} zlBDDyS^B0VsUt|qvA0K{B&jDDm%b@U>xe{2T5Q~uBsIoENm9*#l%(YkLP=73Budg! zBT<qR>!##KhQF7NNJ*^JluLzlwq)jvTwcd*TBS@Oox-nDx?of!B{PbWHET{c7T1VB z)1CPiTbJQekJIzrY7N~;*97F)H4*qo2PrBaNy$N`^vy?7M+hJHMBpQ-Cm5H$`AF-C z#7A0e+<YW8#=}Qa&47HQ<qyI~QhFpl(o!SwkreCZ<HF?!N)h>(&!;olijmJ2lh{(7 zGOT1KgWc7Il7agN%j)on(-j|EZOl5Z5ua`pPMjP8g|zmlC?q8Z@zFO5NgY8HPMjJ6 zg`}QfT>3^Kts@c&X|Zvmkkl9t3Q08sqL7w92ntE*kx)oWjf6r{tQ&<-eCybTh$u8F zx}GUxJe^CIQkA@!#rjJrjpNBO1w${T<Qd?O1-Nc>s|Tvx#Wm`S8;D~si~vMB3{ind zN)AG#Zy=I7f<PR5X#^mWdV+E38;G=yNI;~;#tlSLV?014)eHzkTK*tFB&A0JA}uu% z5J|CaApYq`xv2LEru1|<WhV8Er6*0;?j-Z2oRv1sawTsWSe5C^*s+V<GB})U&T3B| z$WB-5t(xzU+tVW8k`7^1T#}N5i0K=bq>dmiN6(CaOHxlTE`8&Y))5JpwAi?DNotG- zm!z5jaY@S`1ec`rNVue>M#3d2){V<;uh{jti2cW$fn^um7h@F4g;KGcwu+ggp2NoK zj9$o=($bda95s~I+s57*Zq&#=rrYz4Znf^SaC~nBD$)UoN<~s~kR*Lmk<<~S;`qH0 zs7UGw#-(p6(mEnhkro>_6-kZpP?1zKAQfr(gHVx_9*K&y)JRk$#k#3@<A+{)QA8@1 zEFHTBExl+|uwb1sGs#@KSk7YU8i(E*hP-C*qGcKKsMBr3I*_>tsH8&|6_upqAYS@L zC8;Bb%F$8;RFZmvap@bCw2nxqq{YUKN>XDys3g@4h)P=iAgCmzM?xhnH4-XGv2Ikp z^S)cokBCY=i&J@W*>tvS7H~>WI+M(x8(GNYvM>zKmF2b73DtpIYPXDcqs;yYY@~w| zm5rq2AW!;cBdH_E#_?tZHj;XRap{|lw2nw@q{YU~Mp9!uY$VkT$VOWJAZ#S1M`9x_ zH4+<1u?`!x%sdWJ)N-KXXs505`wVQ9%~VYbBjI|z*_fHbabq=WrrtEI+Dy$lVAawy zn@wwren6kCmfL!J5dzr1;bCobvvyd0@iM)$cRjps*2e3LyB1s4taeO&ac#R>tzczl zt!d)sm=05Y*sOMx^I%i8W--^J7VtTA(Zm}bypBojYOW(KnzfpRRi0*Jjp2M1=lq~v z<Gqp3Fv(Np&huaXLh&{%Db04XYA(!#;aNlyaK=*6CANsK2@y~I{u3tr0dOFNdlnl_ z*s-&)cmnWU@%AI%`{3^aZ+j;g!gN2#;(j&%Xt7U|NgJ{rfBf_R&c3<wY>59pp{re< zxUz$59TTRRxU||$bd0v%HTLdn%XTTTQ@Ct_ORJUWw6V=oB*`umu}y8u+F+IE=lJaL z!C@`2&`Z(QxD@erYDraFVp6rQQT_jfp1AU8A8Or_5xOG2ghTD_IJ!{KcE=<;q*38| zy4vw!1+!Oi+#FMI+OAkSNL1A;uA&I&IjI?<XM0@Hk=Jr9sV%N@(%Gw<fDhMo%_AE> zFx2ANH45};2l?khS3ApE=(ZX9Tl+hknr(#~yC5(Ob+yx*?YS8RFL~r;1$dh2!UMw~ z>=qwYo^PNz3KQWgC&T<VitRQ1C2V=VS~C-KR>J~EEi-|9OMtGfl9^zEN|+3qP8vf| zIR-^m=PJE650y*lYilVsJ!5<6*;u2M-rT@mt44Rne1l~O{tX2i>7(n5JB3;8PPAw9 zo!#0A%EdC*sfK%&we6c5m8P$uPT%|bTOfH@lL_9Ak`8?DY~3=eNc2vEXTo$9%6cS( z%g4+@y~gvQtDR;v8x3?2EHkWtu=aDcuapd-=X1d_6VooPvLmx?zT2Ab@>J#NI^ya4 z%xcG?YlD`qUancY^v?b(^g8d}pwn|ieNnvZq-0ymE;AHY>Fp}A)USQQqkXe>WPR}} zaoIELip{d$(1ufES%-`#!m3$qN;*o1RrSTKdbQz%4)t;t0h75Pl0D%(Ki?G_CYhx% zVhF*)j}R<+beI06Irew_V^x`TagZ6yFUgKdC&ec{agH2E1ZC>&u6U?iak=%58&~T} zY8JZ-MTCER{vSW>M3$*}2Tu>MVm?Y8Y4Q>WHnjH33}Nha@rd>CrWu~5Ii6(Sm-(8( zTXr=W-MV)36+9%ac1Q(p_<!t7ntErbpUW?L<H@XVI(0XT+aC6DEj}iS$j$UJ3o#4O zwifF=cbx1T*{vOqI>R?Uu_qg<9UYa&^yM;mwQ<2RVEx~0Y;4TeyILw(M6Gs$k602e zO=qju&KLQkjs5oKcihm{67EoQ^jK|sz!Unq9c1lTP2++#cD2#Vw(Z>IPc9@##x1(n zsLCErNw7F6GVF^wz`V6->}RR69Y+pSn(g`)KI{>Lrjfg!TRN2!Zsa`&kARp}7hfWT zp%Fesw_&8vcqL{jSo~y}e0G#F>E$--pBlV8@-c<fz!JEH;axyA8%17S?e1lNjf7ES zVRX7lBk%vrjbAVLQgxL59{KPe51u*BO5w<TyvH&8L5=<R#Hr`pbRE8EtJyC;799ET zT|fEOb=>P`d9nQrd-S<$zy5-^D31>cnNRz+{s8y*kmK<y>o(u{Bju3~4M#pawq^az z+~YSLkKcOu;njas9>2@K`GS5HS92)$rWd}8zx`w9?Vs%U%^$@G?*zO#@er@6_%`w@ zE`vLMMLGV?ar{r|$fInxZ`}Jg`4iC};||{y4rhJk8KM>Bj$fDW4_)mD{T6q0et%p2 z9yzq<ricEUg?m&}p&uRkW#JufR^BHwQs(HG<Cs;BQ;uU^I{HIDxrRS+LO*$taQNcC zf9`3{`$hS_EA*4+b4SP11?u<6p;x`6&C`BVAdHoT(Nq5CwC{aNd7pZ$lsS5u<9N1m zJkxPpEgk)#pE{R6aY8>eBOG40>IMJcy#ECGzAN-oPvnk{r}NbBkwY)M?~LE^v`;!| zpPK)~8LxJ{ua`1MbB^N%<ydkYH%Z4p=(q4EuFzj096t2>yIqc#$@kr%znnWdN@msX zkwb@_`PCE;{bf$*H{bJ_2QO6KC*CM!j&5}v-=rL$<T$=XI{HID@pk^i3FyS#!ePty zhrZ~%e}{bE75a%gxufIhF7<ol(9eJHR)dHBdMEUH?p3pPx0lu0KS-IQ6-UN@DaU<| z<DaBsAoPFbPh6q@Kf>Vy-G6hv{}=hbJM@omM@Pxu)bEi)FZ%j@U*e%(bVC2s$#vhj zQ+c0s(*6d=(MkK89LJt%Kj}~VNjvR7oWJ$S&ii3$Kj};RNq5@+@S1gkIWKiW|FWND zcO{j~38&outK;aD``0**J<I)szuZsQ<^KA^Z~vw9eptDm@Rj=sce#Jy6)$`>Py4qy zp?~{vcg}rS$(&TYAHCagRJ<R3x8vB8_mh6!Pujdc(=tBfydTE<NgwYg-Mqi*rYAm$ zhyFe%^dG<TsPAr8GA9gK8b?3vIGW1w0mrc-9RuZlAAjO1_YL9js?J~bIPdS3@4L(W ze(vaas;S>#&i6O}j)(pmPUydxIB(-d<$dxvDRY!h-D<2^oIGAR9&&u1C>{NwpL`U5 z;)H(kbm8#yuYdW2&ig0J_g$f%d^C4-Je{h3j~vQ;=dKAJdLD-<-dg?s@rR$|v>}tv zlrl&E?8tbQa(u*byjeO1LjOGe#1;A%35R1Ie7oVi{~Y<gJM_=zj*h1nsNW-p{{HJz zk7J=9J4~hh*x|?hdd8kwW6AtjDRb;-N5<L8@i@nEwR8-G{#^dV75W+BaQhJlPIuma zf_&c{`X_Qn$J2T0_sAjb_;cRMLw}YN`p4dX@LjwUCklyT&e%DQ48@$WX~(fAb0+=F znY5Yno^2O>!g)W8Ig>u-OuCt~>Xk1zg@^tEC-fKI_}yb&rE#ZBk+F4-qFu^yljC@m zbPS~ZZvMoT_SXrA%K0z;tn>bp<@@fmzlJ+Ho}Qw9j~v=|dySX-u`8X>U-kYI@BM<~ zUA47i*Eo)<tsQfiG1;@No%FZ0lXhFXWnYF59YijNwY8JJwsz9p)}D6ar$otVIH7Mo z|34EBUM7AhQ)J8@eX;JtkCdZWg5mx1pGZf4+E4s~KXKB2;@86AZwoJbyh@UZpUL-K zX+QBx?&x@WSp6P3bn}D5BJ|I8LjRl_pZ%u4DeqH?m}4(=92GIgUg|jZB<7T#m{T?} zKeYSjpLE_2Bj%Kkm{V?ImjAl(gDl)*w>hD|{jaP4$<?KC(*7+<(WI01Z+9Gfrv0Qp z?I-QDzi!j_?{(e}OZ!P*+E2REe%0>x-_Jw;ekb%FD6G2Thf3x|N9O0)M;ynla{RdC zctAP^O3qXH6IaQ(K{%YS=aiQ@?=Q&r-6iK~+|lv$PwMx`p~UK6Jf4UCOHSy&tUdBX zr`%7zT*@5dBWY2=Zc&ckQi3P{RXX}ZKlvK|#0mZ6>xIKl?*7rMocCWP-*<(6^0nO2 z@$@?Nd*slMU-T7`_P=mK|I5;^C!ejnPkchk9Q&=~_(|pXUykFarK3Oe6A$nwPUt7T zARPYV)}K0q<%!S8_g$f%_$+sHlzdM89yxT(S@*n)g?oHNg?@Z=<MH3EEANvdQs%g8 z06wZ5k92&FOGkg`ClBLKoX}4mB^*AN%pY{#pOo*rLO*#pcXT`*p?;4X`tt97li;C0 z)d~G+&;8?9-s^Z*<$m1N0IPC8zS{BGv)oVm%l)KX?mtuh)%DK%VdZ|(SMDd><$mO> z-@k!}KIeo!fAww8*`j1lyho<U_!`IYy~^<-$MJpA(VzAcAK*`%w4eBhaJb=-r#Klp zaj$&emG%=K<c^M#52@cHhxYwZyOf81s}uSwUUJjxe&Be2rj$9p!*P6;a=glMyjeO1 zLjOGe#1;A%2?zbWXAV2>KS#dr4*m1FqvPoX>i5W@Z)|#Sk%!)LLSOmW?ekw%-luj- zndAE%$6d;?={Q~`9sQx7+RdLhp`W@=INbb$ce)&(EZ=v9e(D<T=qP!L`aN>!`OmnQ z6Lb6qC-ndPi?bi^%+gFKVvavc$(T^Y9Dk1E*prwOeqv78#617H%m2f9Ka7|YK4MO| ziTUuCk9;Ff`&T-lf7Q1S+_hcFoOH_l>l{a?+~4Ln_AK|4{&GKQm;1@*JaUWkeptDm z^p*Qbce#J|HOD-IhyLH4(7*G7x%%^!%&Cmb&v6GtQ(5KcwDePX=@=+EYxomaA-PC6 zY|U+Zo};NK-*=as^SPtr=>qk8<j}c)yZNm=^t{dDBg65}eDwAg3BxKrgjKE8_~(_3 zN!417f5~y|*;-BdTdPUCwYvA!t#>)^hqYFdzSe5e-CF(fgD(@I|Gty<Ke+sh|KOCy zNkgW{_)i=~rgHp+<5-c7{<NRm$DcT9KiLot-+95^Pj=qlE8lme{p5b`=y<BB-y?_a zxZ}9}JnjG63H@JB-G7CHmkEbCu1S5xoQV-7c%mnBCj88qu$l9$Gahl(`Y`59_?R={ zX3of~Z{_uM;#d{>iQ^id{M=7fn5I-uVd7-RQS}riPIVl6_7tZ4J%uT|r!bfOk&De? zJ%uS>Phm>*6wtY`4dc4n8NJq%b~fkRxWfg0r#^{~iSyW3-(r}u?0IsO^)AOSq{DS# z#kHI0dRJk2Sy^DJhu=MqPi|v5)YXnL+7`?k<Psj1?nFv<wf#|o;$3<Z!P(TT!5)V# zr|pn-K%t>yiYLyWK4Skk4}!A}d=`6f3H#X2KCWjUte{NX$Ua`eK5k<l?_?hzV;>K) zkMFaO-{NCZV;`&7$79$>l6_plKDM)u>)A((ecZ@CUcx?ZV;}EiA0J~M53-N%vyb26 zV@hKmtJue5*hi9mT*5v?GvkDOlsOvggIOU=&9RRvKHTP%FK4kGvevwzF1oAE+p1J- z=r1dnIVH<}wX{jwQEnPo18qRLeo!5h<>ZPh7&sr;TC}2enBnZDF{DwzNOI?(LTxLf ztvCR-f^y}uZaUIa&V2P&mEU!P27s`K95~}CL&ykrot}hY7JH%@SlQfnn?5F={@^cp zhQPGvDNY91#`6h7H}=A+4MvcS4l~;5Os5kS*hAp&Oe#^VWHNaZH&3KfS^PD!`J{#Y zm{z`AETt<Z_8AFt?HSmot0;}!c|q<fjx%5Lroq<Zn1HQ^4BSB{aLX|k7sim@hKAKE zmyJijwu3c3;WizN$e-+LC;40N<+R$|>_bEH_F2LF=A5opo7qW)m~lo*BBxuxu58~U zwCoWETYJoE+p&oWq}N)!kbqB>wJeqc8m-!~<dI+BY*eaqE+a9IqDV$RPHfv&gW3NY z?P{yrSFCrqUR1FU=`)=yb*To{E-kV|R|YT9BDKQ0P9a6)|7X3Xt~S1>4wF#6pfY6b zc;zK0^=f%8=`SZ(&xxh)GIyUuXxCiQ=^oR?gM^;yEv=~VfzqAqB}HiOopeXK1bRr@ z21)2%y(2U&BmdT`U|uwcMxr}3P|i|ap^XCtd|BO~fwI@#1v2;C{ZQ!ckCS@r{$N?A zv*8%FbsX*6*5S)Zd%ncew_1MpMYbSfFUMT7Iajl$v1RT+6;lPh+QmLgslS_noMpR4 zLfQ}3x?j~_zJ>}{J4HftOx?cW+IEGR{;FX?49z4DhS-$h=nUJ4(L%0<?6iRE)E)nJ z@pm4LaIqOmxe0)|-}SfOjr^PAhHr=4OOaje+9;{zwv~5<)@vWHY~ooE-svlJLn;u% z|6_-^hoAAsZhiub^WiVYhhq_c_*OpkIQ+Kuo3H+FY!qP+`PR<e%=0iepXa}s4gKM- z{n8gc`$~KnK@iy=Hj^=QHUDaHm!aJ(fWz;6=#I51{>_<N8fOpwANKJ+_HhsUxR-sr tpM89QeS8QXBYW8gn-dALk~v<F4{bHZ4^u3~c)NUXXlQ}ixNGMw{J(oRTR{K- literal 0 HcmV?d00001 diff --git a/android/ScratchJr/.idea/misc.xml b/android/ScratchJr/.idea/misc.xml index cbd46bd..e8ee3d9 100644 --- a/android/ScratchJr/.idea/misc.xml +++ b/android/ScratchJr/.idea/misc.xml @@ -1,33 +1,41 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> - <component name="EntryPointsManager"> - <entry_points version="2.0" /> - </component> <component name="NullableNotNullManager"> <option name="myDefaultNullable" value="android.support.annotation.Nullable" /> <option name="myDefaultNotNull" value="android.support.annotation.NonNull" /> <option name="myNullables"> <value> - <list size="4"> + <list size="10"> <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" /> <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" /> <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" /> <item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" /> + <item index="4" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" /> + <item index="5" class="java.lang.String" itemvalue="androidx.annotation.Nullable" /> + <item index="6" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" /> + <item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" /> + <item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" /> + <item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" /> </list> </value> </option> <option name="myNotNulls"> <value> - <list size="4"> + <list size="9"> <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" /> <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" /> <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" /> <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" /> + <item index="4" class="java.lang.String" itemvalue="androidx.annotation.NonNull" /> + <item index="5" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" /> + <item index="6" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" /> + <item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" /> + <item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" /> </list> </value> </option> </component> - <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <output url="file://$PROJECT_DIR$/build/classes" /> </component> <component name="ProjectType"> diff --git a/android/ScratchJr/app/build.gradle b/android/ScratchJr/app/build.gradle index e7bce47..7482857 100644 --- a/android/ScratchJr/app/build.gradle +++ b/android/ScratchJr/app/build.gradle @@ -1,8 +1,8 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 27 - buildToolsVersion "24.0.2" + compileSdkVersion 28 + buildToolsVersion "28.0.3" defaultConfig { applicationId "org.scratchjr.android" @@ -15,11 +15,13 @@ android { } } + flavorDimensions 'scratchjrversion' productFlavors { free { + dimension = 'scratchjrversion' applicationId "org.scratchjr.androidfree" minSdkVersion 19 - targetSdkVersion 27 + targetSdkVersion 28 versionCode 21 versionName "1.2.0" } @@ -27,10 +29,10 @@ android { } dependencies { - compile fileTree(include: ['*.jar'], dir: 'libs') - compile 'com.android.support:appcompat-v7:27.1.0' - compile 'com.android.support:support-v4:27.1.0' - compile 'com.google.android.gms:play-services-analytics:15.0.0' + implementation fileTree(include: ['*.jar'], dir: 'libs') + implementation 'com.google.android.gms:play-services-location:17.0.0' + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'com.google.android.gms:play-services-analytics:17.0.0' } def appModuleRootFolder = '.' @@ -89,13 +91,12 @@ class CleanScratchJrResourcesTask extends DefaultTask { task generateScratchJrPNGs(type: GenerateScratchJrPNGsTask) task cleanScratchJrResources(type: CleanScratchJrResourcesTask) +assemble.dependsOn switchToFree afterEvaluate { preBuild.dependsOn generateWebpackBundle processFreeDebugGoogleServices.dependsOn switchToFreeGA processFreeReleaseGoogleServices.dependsOn switchToFreeGA - prepareFreeDebugDependencies.dependsOn switchToFree - prepareFreeReleaseDependencies.dependsOn switchToFree generateFreeReleaseResources.dependsOn generateScratchJrPNGs generateFreeDebugResources.dependsOn generateScratchJrPNGs diff --git a/android/ScratchJr/app/src/main/AndroidManifest.xml b/android/ScratchJr/app/src/main/AndroidManifest.xml index 0927de2..f5baabe 100644 --- a/android/ScratchJr/app/src/main/AndroidManifest.xml +++ b/android/ScratchJr/app/src/main/AndroidManifest.xml @@ -2,7 +2,6 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.scratchjr.android"> - <uses-sdk android:targetSdkVersion="23" android:minSdkVersion="17" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> @@ -36,13 +35,15 @@ <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> - <intent-filter> + <intent-filter > <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:mimeType="@string/share_mimetype" /> <data android:pathPattern="@string/share_extension_filter" /> <data android:host="*" /> + <data android:scheme="file" /> + <data android:scheme="content" /> </intent-filter> </activity> diff --git a/android/ScratchJr/app/src/main/java/org/scratchjr/android/ScratchJrActivity.java b/android/ScratchJr/app/src/main/java/org/scratchjr/android/ScratchJrActivity.java index 92ef32e..e62757f 100644 --- a/android/ScratchJr/app/src/main/java/org/scratchjr/android/ScratchJrActivity.java +++ b/android/ScratchJr/app/src/main/java/org/scratchjr/android/ScratchJrActivity.java @@ -13,9 +13,9 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Handler; -import android.support.annotation.NonNull; -import android.support.v4.app.ActivityCompat; -import android.support.v4.content.ContextCompat; +import androidx.annotation.NonNull; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; import android.util.Base64; import android.util.Log; import android.view.KeyEvent; diff --git a/android/ScratchJr/app/src/main/java/org/scratchjr/android/SoundRecorderManager.java b/android/ScratchJr/app/src/main/java/org/scratchjr/android/SoundRecorderManager.java index 40ba3ec..e4ecf4f 100644 --- a/android/ScratchJr/app/src/main/java/org/scratchjr/android/SoundRecorderManager.java +++ b/android/ScratchJr/app/src/main/java/org/scratchjr/android/SoundRecorderManager.java @@ -28,7 +28,7 @@ import android.util.Log; * @author markroth8 */ public class SoundRecorderManager { - private static final String LOG_TAG = "ScratchJr.SoundRecorderManager"; + private static final String LOG_TAG = "SoundRecorderManager"; // Recording parameters private static final int SAMPLE_RATE_IN_HZ_DEVICE = 22050; diff --git a/android/ScratchJr/build.gradle b/android/ScratchJr/build.gradle index 0ceb1e6..7b1c37c 100644 --- a/android/ScratchJr/build.gradle +++ b/android/ScratchJr/build.gradle @@ -6,10 +6,11 @@ buildscript { url "https://maven.google.com" } jcenter() + google() } dependencies { - classpath 'com.android.tools.build:gradle:2.2.1' - classpath 'com.google.gms:google-services:3.1.0' + classpath 'com.android.tools.build:gradle:3.4.2' + classpath 'com.google.gms:google-services:4.3.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/android/ScratchJr/gradle/wrapper/gradle-wrapper.properties b/android/ScratchJr/gradle/wrapper/gradle-wrapper.properties index 3535276..4d5f8d2 100644 --- a/android/ScratchJr/gradle/wrapper/gradle-wrapper.properties +++ b/android/ScratchJr/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Mar 07 11:49:06 EST 2018 +#Mon Sep 09 13:26:20 EDT 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip