From 4a31da8d282884f2b292b594753fa1eaba9c3f6f Mon Sep 17 00:00:00 2001 From: Danil Skachkov Date: Fri, 7 Aug 2015 16:52:55 +0600 Subject: [PATCH] Fixes in tutorial --- README.md | 17 +++++++++-------- docs/images/Dependencies2.png | Bin 0 -> 22655 bytes 2 files changed, 9 insertions(+), 8 deletions(-) create mode 100644 docs/images/Dependencies2.png diff --git a/README.md b/README.md index 1d3d1fa..f8f12bd 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Two permissions are required to use the API.AI Android SDK: Add this dependencies to your project to use SDK ``` -compile 'ai.api:sdk:1.6.6@aar' +compile 'ai.api:sdk:1.6.7@aar' // api.ai SDK dependencies compile 'com.android.support:appcompat-v7:22.0.0' compile 'com.google.code.gson:gson:2.3' @@ -44,7 +44,7 @@ The API.AI Android SDK comes with a simple sample that illustrates how voice com 2. Open [Android Studio](https://developer.android.com/sdk/installing/studio.html). 3. Import the **api-ai-android-master** directory. 4. Open the SDK Manager and be sure that you have installed Android Build Tools 19.1. -5. In the Project browser, open **apiAISampleApp/src/main/java/ai.api.sample/MainActivity**. +5. In the Project browser, open **apiAISampleApp/src/main/java/ai.api.sample/Config**. 6. Towards the top of the file, you will see a declaration of a static final string called *ACCESS_TOKEN*. Set its value to be the client access token of your agent. Similarly, set the variable named *SUBSCRIPTION_KEY* to your subscription key. 7. Attach an Android device, or have the emulator set up with an emulated device. 8. From the **Run** menu, choose **Debug** (or click the Debug symbol). Choose your device. @@ -64,7 +64,7 @@ To implement speech recognition and natural language processing features in your 1. Add a dependency to your *build.gradle* file. Add the following line to your **build.gradle** file. (In the sample app, the **apiAISampleApp/build.gradle** is an example of how to do this.) ``` - compile 'ai.api:sdk:1.6.6@aar' + compile 'ai.api:sdk:1.6.7@aar' // api.ai SDK dependencies compile 'com.android.support:appcompat-v7:22.0.0' compile 'com.google.code.gson:gson:2.3' @@ -198,7 +198,7 @@ Follow these steps to set up your environment and create new android app with AP Next you will integrate with the SDK to be able to make calls. Follow these steps: 1. Open **AndroidManifest.xml** under **app/src/main**. -2. Just above the `` tag, add these line in order to give the app permission to access the internet and the microphone: +2. Just above the `` tag, add these line in order to give the app permission to access the internet and the microphone: ```xml @@ -207,7 +207,7 @@ Next you will integrate with the SDK to be able to make calls. Follow these step 3. Save **AndroidManifest.xml**. 4. Next, you need to add a new dependency for the AI.API library. Right click on your module name (it should be _app_) in the Project Navigator and select **Open Module Settings**. Click on the **Dependencies** tab. Click on the **+** sign on the bottom left side and select **Library dependency**.
![Add dependency](docs/images/Dependencies.png) -5. In the opened dialog search **ai.api**, choose **ai.api:sdk:1.6.6** item then click OK.
![Add dependency](docs/images/SearchApiAi.png) +5. In the opened dialog search **ai.api**, choose **ai.api:sdk:1.6.7** item and append `@aar` to the end of library name (see image) then click OK.
![Add dependency](docs/images/Dependencies2.png) * Also you need to add dependencies of the SDK library : *com.android.support:appcompat-v7*, *com.google.code.gson:gson*, *commons-io:commons-io*. Add them in the same way. 6. Open **MainActivity.java** under **app/src/main/java/com.example.yourAppName.app**, or whatever your package name is. 7. Expand the import section and add the following lines to import the necessary API.AI classes: @@ -216,10 +216,11 @@ Next you will integrate with the SDK to be able to make calls. Follow these step import ai.api.AIConfiguration; import ai.api.AIListener; import ai.api.AIService; - import ai.api.GsonFactory; import ai.api.model.AIError; import ai.api.model.AIResponse; import ai.api.model.Result; + import com.google.gson.JsonElement; + import java.util.Map; ``` ## Create the user interface @@ -238,14 +239,14 @@ Next you will integrate with the SDK to be able to make calls. Follow these step 7. Create two private members in MainActivity for the widgets: ```java - private Button processButton; + private Button listenButton; private TextView resultTextView; ``` 8. At the end of the OnCreate method, add these lines to initialize the widgets: ```java - processButton = (Button) findViewById(R.id.processButton); + listenButton = (Button) findViewById(R.id.listenButton); resultTextView = (TextView) findViewById(R.id.resultTextView); ``` diff --git a/docs/images/Dependencies2.png b/docs/images/Dependencies2.png new file mode 100644 index 0000000000000000000000000000000000000000..086947c848ec184129c86224129c057d7692759a GIT binary patch literal 22655 zcmeFZW0z%16E0e|ZQHiG?5Zx?)n(gVw(Tz4wr$(Cty_Ede$Q{Xcii(~jWu$v$efvx z8S{yFBIXK}mlcDB!h!+-0DzSc7ghiO0MY^g00e~q`o7YFUMceZ1?Zq4CJ0bDiF5MZ zfV34?cK`r@M*imm2#}V60RSKXAR+ui$rbP-6H*U*A@eJnM5@tfh0AkG%#+kPW2}W< z5D0PyLVk2Z;aCu!V&iko+9laaYR#%m^LVykIw=WMvLy$lH**IsWPU6$XAM>G7Q!I2jrY~lTgOzyA@|ip1j&l$2U^=kjrqZCFuwcruR6qx z7yu*zAaMXl&q;{kgIn@!cXzpoPK@Mmj?BpcWo4DJ2L~{~^l*^BV!x39KtXWJH?@It zkL@`#2Sh{&B8R~s2>?lcgT!R? zN}$um(P@h)DEO(^*#Nw-V!#j+6O+Y5jwVPJh~~|hH$VmUS|Q!rG_@S%^<-wl&g0-$ z0q4Ek7+b`v>crRcG1C#7;;w(+>fbpNcmid>4I-d_*u+`qmR&~dU9dY<$lToA#Er8+ z>|}PLkvd4GnpCc>J*5+ucP%M(#mkK?1RNbY$V>#l?|Tcq+c> zzgo@Ok~801Fqg5XQd>-Ii-zItayg!6zq`~sySGSf@-eh?FK2MQs%g^UPJfEzMjsP9)%E2js4pe@zxeF|i{WXU+KNDAb~E03Q*>Zq0IGeZM1C!a!n~!0^J5Xu959Uf|Zy zXYMmydTN1?3E%6?6(7NXs?Wm?w`1*2{MFai-B(@FSvr4*e$=M5C7&IOzJa28fZP{K z{>JS3bc|jNXC@!kHWMcHtF$ep8KWbv<*}Nf3zzZSCdCQhO`rL zxiNlkS!<#xa>Lu3MbCEUcpFcRt$q;l@z?&zleYTO=lza_=~m4C0q=W!itgvJze`kk zc89M{`@q=oh7Ctt{w%^Ii zr7RIVD|b$ve6l*;z}RBNgi(b?oA*nR9N+Dt?xv2~r)_AO3sU)lY`P*!kZYev$MrQS z({8PV8C_O;pY3jmKeRZ324uBI*tr9J)=rI~Wla1?+>;?dHh5`xwb}DB0 zOxOT5bownMo z=FVAG@6Ng3PR_dCEQo20E8iABmXb)`VB+mn!($TI={2(NalPMK3fI3}JW#RwINV&1 z7FS)qHevawsyg--%kEeeG`DuP_?J2lTkB8xI}6)Cwk~zETu+f*?#D;ltUH`mXd$jv**#L=+* z9$B$#rSPT0o=+6t-964@|AD6&NN%y6iZ!(opa~!X@>LB3TqGnU)U%6+U$s=2Kbu0s zTP#rL*IG`(MtA9I<5k_t_p&!CO~5eiy?T(QnSn^YUi5lP-K7Dy!X2p)IOcTxQM1( zs=jrwp;M;37W_}?;}Hc-dK(M{f8UD^cBzt{LZ)Y z&m{6HdSA9CJh!SI)-NeYK7472qwH`tmx{3kMm@(U*w0I`ueD|*1k^~@h4;@?-R91Z z@Q1qn!WrZ>9p0MTMw|C)C5Ot_Dti8x;=8x61|~69lErJK;i8@Rpr8Tx_b&Y73S1wr z(*l><+s=BHoI{uB&P_GXsV1M83XGTgnyo(L0dxY?B4!+NGvJ}E&#NQ8j@?EZ&jO`6 zhv%v(-p`OTv92uMrsEpbr*ds~&9sE&SJ@7y+_NlN$Za<=oVt`fV<`d21uzi0VHC+W zf2D)@b0E0FJZpw*HM|Cpb2j%H!(iE*VOF(yI+0Z98Ytopx&cjxQ*My0#(d52RTu99AUd z#l$DxSO2Su5T}%>^JUr6%l2Fz)q;`IRY!h8a(GslmjVHPd?I9&zHZ7)y_3VM^`?9V zV%E0z#caQLIXR~&hl6zd_Y)b_N{Y#lrG(AfhbtZcHgjV^dkxg$O^9qH7T>xNHRmg+ zS}z}TM-c6gx2+2uyQ^H`(@m3GIni8MS~7(4vt#l|qX8GT$)&P+(D2G;Cpx#McnvJT ztmn?%v!+T4Dalba`#DwXVUnt=(xz5FHk|jZx8uwMH%!a{Xf*VAy7&R(^W_b3Hvad- zzv1HQ;XR1ySEpg%$17HMiwUB;~bBgeuKBCFijn~>G$gQvJRNG^2Dk_{{Q7Xt>n4Gzr<~&U-fj;mT#K%3U^l^EV&VY>UBnvOYX?WPI0|eH1@o@bIqLuWrzNi54!1ln>L%y+ek z2~=pFSi->EM-$jz&t9&F$d?2PoVh@t$m{a?4z3~dE$-UYt+qommTV49sDWYP7Lp{@ zkl%XOF41=Pd`HDng>r{*n=NK3P6)!w#?UP3AXL--6;_ujERe1(JZzGUb4H;Sdoj7T zB7Zkp(zoQfLx+B!xr{g(^>gvXSDQZ6|H)03^**Y|q%K&2wu2m7LR7hY3~tcB4-P$I zxW|YM3zAZDfnxA&ErIl`^Q*ssZA^UVgtzNsEPgZszd&&L-GXpO2p;;Tvck` z-r(eYU)RSA?R553KD&ufIM!)^HMOf^rAV<$Y|)z*-Dr}W44p+q@@n|5h2^R$s4YjA zQZkW6(8RqjI;&Y_s4?P!rBTD_elj}@=Mtl}j42dVGc78M$U?PWl4Tc`y%EvC{zxdV z`zuaudtGgdH7jw5L+<{9V4tj&5Qe-G!wIVc+A>G>ghlIPcFpKy!XnJ6z@kgsyTe1* z?o+?^SXat)D+O~K2J*cRLQC&?zQuG!K-SmGv7a~~3zQ;2Mh{@9<~U!aYzGN702vSC zK7@#-n@U-+2pLA0T5v}>tsxw@4mJ-=2jT~Giw_b|;J-UKaGNSdVE4$*hMMWVca!Xl zcZJP_5&Rm}{`G$6p&fpiH57z!va-TlgNhWd$96Ihs&{K(%5U5qEv5CFsiN`uC3Hf>*J$)Mam+$R;TUu$4yZJg;RJoRnUR&W?rwA)^ zWXfa`ZR2sGD%a`NY&yqIRUbDWhf25fsJh8NYZE|Y{`I~k$G^q`mS`OF@mRFQKMMtG zS?u-{DZ2E^d4iNos_szv?ZWIOUWhDJNEWz9BO^VFA^pz#1nMgiu5z*N?A-IOpv>?i&wpU2N`q}_0axkR`WLTLhccK$c?k#i<;7 z`TUF_lk1?ri26G7I;bvy%VPcZUb=xqWpbj`jOp9xKj0W3RF<~TE2lt!>e$xb9+soO zt|y^`xAtZynlH1i$}6OUI$($kg%9w093}sV4XP-WUA|{ecRGV(7< z7?^xL@2u&1-!|yte_|(?(6nEIH!1b}(K?*gfw-%go5TFfoIH~PNR>7=$5{BD#fH0w5B&a1pf*;LjaI@av> zWwF~^1dcZV+0IMVoxhy8KkpBx;JY9(E7ZFp&eyvhY>%480@=zN3-^){Mwa~C>(TtYI_Y}Hd9|Bn)o~v4DIf7|qOc;X zwVf;6?0P>8E}yK`#9QYGk2)q(4P{w(-XzCY2BN@UE>-cm;Lh`L+g;Jc1;fXLUZNpc zi11O9%}6b?ZZVmEFu`*gbb9*IWBbDR+1oB-vFTCi{?JYXhc<>{BEF3;1W*Y=s%o_k zBls}H&%-ML73T}MG6P&2Pfl7vt9Lj`Z>yxjg+}KD>XsvT4CU+97?yz(vx~3mTYMMh8e% z;K#=t!o1z;Ha9@?v~2hQnKjq-qKl8jx6~%V{(NlgaeV`cFL>uC!J8;H zn-PyD?hIt-5QFdb{ADM z7c+!7irozq7mYylNQ^=du=KcAZ{nMquY$-QR+L)Acm(3Gq5-$ZaB`N!{_3i?0yHEp z%Uv5TwJwvjN|&g(z%5#-+byzt<`pK6Uxu8XQd;@xDdpGwFabf%;I6PmJDcYpNDxDi z#smUZ*w(8zGg+BpZB<^bI^DENT@1}(AVfmH`M?DD1px7rhXaNvzA2h(knJ4VIL`y26IsG5sc_ha~!syD*$j%m*{r;K|r-P{?kvz>fB* zEUe}~tXSVn4TBfRJ*kBaeayvs$agB{XJ&@5UuNtA`Z{6V4%Nj6#*cZtb&K;B3XdRZnuM!kmBT+E3P-OdZvD>q$^6N-d%J0F=2xiVPIwpg&d}2MB)Qj=-0FF6s3$^P0gPYTy0*(QZK~B zUM#*qe9Fk5Ey%A14 z;zj5h!k5n!DlPgJQXE2vB*grW?z)dcehX10j^C5ZF3X7px~s-sXyUMb;Nb2qEB*7k z00s!z68JISFB9WKBNI}x;v9O;UpQyyr`A{J_FS3z{VDTG1qv-0vhgcCCCby0w)F8H zuPns_FdKiw=}Oa3T@D2*e21lu=#`?gxo0^Tgx37bi2pfEbihDRfd)6Zpd%9Qa+(J5 z_YxAX?d=)B!BHs_itTU1Zc@_H2_yM^ePEd?&~njftseCn6@5DlSdm$_gmlweiZEq) z7-_l_LEP4p7|Tz|7fv}V;TkdYOKG zA64zHM#3!kahxuF4P}yhD{B;uJ^}DphL_uJ?v`2m5SScE;b+6ai%(MPp)O!mivo!e&RkUp&bLX9zR&m2mtVK2S-w z>cty3iMfq!ZQ9~8mQ?pyT8$t;D>a6OhQRc^YH^wL6*1iS!Pth3-|pJ0&1bQpy_8Iz z!D%0dmQN2VQr~d(b+Jgi{)k)@Mbo-dR<>kgX69al*A{MV`i%aq_^~(vXEff1EI!Sn z@if{oDrfZ*y%Ls=Zhh7tJGG?BEu89#$ReS_8X6ivNXtu0s!A+nd3nf}Dt=(>teMoq zQ%k0-75e71xO^SWUIe;!eHBvn4dbB|cgy593*DwUzvg(Gj2|z&F84Hak9s15vEO#X z!{he@INW6~T{~8{Bwh;XbrTn#db67_At<%oK7v47^q>^)Oz5q62e>px?ylPHjHxa% z(>&aNm;kv4r-gBMHA}MVOu>3U;UY23Zc5ctj^`aqE2qQ@45q{R6WO;?n;+25k9U=7 zac|zPRH6+FcbYjQT3(YV3oAdKCMI&F_HlSxFDrPj0*MnyLYg8W6W00q{!n0B<6OQNQOK1%x4{YUo$CjAmQ5*< z2J_#UrzCcS4G#~OUC25d)DsgEqaHo#rX7qYmkWGDf%kZIq)K%?Emnfk-1y8ic^%HB zUOJ*pNmic&p;Z|i*-Jc62jmHI{IQN!=bU=bjAB`9b^iq z#iSClM*gPs{3_S$B+$jpBtW;GcA|$GU>T1nxJ_l9Kg+B%gA5R59B#QuwWYi(Gb60L zYDjATB2owv5Ynp_)qS@Xu~#KV6-#r*9|OlUjWh->D7i%eZ46ectK<7;K*9j!=G4U4 zEI7^JpkRFp)&ztY@NXrRLe^jqb8or>Cs64WFwSSX8gIOYGMrzX5{pjL!DS$~?*aSyL- za1ylZvL#T8^`7JX6B4xH<91Q6DGmb1i61}Fu);abm}pY4c=57*F`2@e&W2LeYUlKA zHHF#=UzDA$d$}a)Q=hnwe^A{gB-}N>M&<%6SKGTax-R6_(oyQFz7E}2Lt=CEb7w6= zD9~mE1=TUroAH<(qW^^kfqGG77yPl-#tHd3EXvjzyRKi2 zLCdN-tQxFruYxtJ4k?_v%VFmYiI**%|)yYqNlfguZ(hI9GUg42wc<1^`D zG6ij~<_K);ehayN6p@ye{`CuNT`b_IqIETj5*s%)bXL{L>E&S}rO_4oo0S#i-I6a6 zo6qB`P1bAQ*4jo#HNg%!b0KlYx-fc*QZqErXCwaS^-0m^^JA8K9go?-YJns7g}_K$ zLpxTflB68zZ<|XlMfT$m`c>DpQA;_uZJ@0aZSo>pTQ4qUe8vT;hn2c3j;5ZZu(XOfO_CM4oPTP78zn(j>$+kd?p1Z|Mj zRc=^fVsoeWQ&g$Bd#un2k{a23Q)HD&wbBK1y=7*VA6+=sQ1LoNWyKW92#`GLihL$) z?O71WG%ReH@uT?;M=IUsYSw*UqS(4mqpqdMOv?7wH{}PQ*KvL_i4^2~az3VP8(x|< z34@4Kxj~b7*dwEwo)1V4R??rnqy^XG5l>mU5%)gtr#}b0T+r#3?ZZDdn&2D- zQLBWogcCIZwBKCSW+z6oS$|zwo!|ry1+J%JlbN4^snU*Wx9U4zMUmBBmO^1Vf}NlP zL0A@N-UKkIZ>HXYlKwV&sX2B-ULO$+V7@^+PL1|EGRie0!3b=$@iGT zsj6BIF5hf)%bYNx=c|)(z~DSR%fpLnRV>$=^I0luvZ55A$bK``KD2Z-%5c=8+pH)_ zZ$RMq)lYPOuF{r`{g~QEwW#X&T%9;Le-M;A)a!bycv_3FLp`&3JF41Xqt{k>T4`I4 z&lbeal~@`Hsc0(DMp&D+oh(nQE9q{0XvnnMvv0`Ti!93WzFK}s$Q}1J#BX=<6h;ZJ zz3kNk{qfh!Kv)3T=C*LY+R*hlJRd%$FooYY$HC^-T$-L;17O>`SYi&MdFfUy&OOzz#(M7&YUKLlV?CdpQG%@<6&46lr$z%L0wdDc=^8mQ5 zY`6g{(aOMRT@(dNtrnAv3{wo2C28xvp^e#t&%@n<_n8ox7|iE~;}GI|0N&uQ$DgFB8vWg)y9+S7qZK8|7-SAt_~7&M2L<=#}J3e3}L zz)c_fjsh!f68Tv+GtJz&ayR`DUw%PyCk0w3-vD$L5VYIj{T6Pw|LCNNSIpwL(3I^m z{OwJkifwvTZF<~nTebbpG1aF4ocT93|E+$WFbH*fs^JqN&$m&O+n`S(Rf}c4-(m{- zD|wPT?$CzStXfNiYjP}E<@h*{XI?>C9zhsc%b%+&h9VY8Dn|QRABy&O6X>u)16TJmwQG72 zl(uNfb2s2`R3i=m@tbJyfTkMGh5O>(L&oG1W$?OWVVOQuS>n8~xx9t>qbbqk60UFj z-|7975CG~RTU(CtvJ8=;r(;{ROwAP#+>j4upl1zd5S}s4tcG*qqD7{Q{~@WHH1vPs zKT?3`CJxKO&`)c5D7A|-d~q3BBt98rIqIF7_$@E2)43wLwgpBuh%XwiWD*vx zAO8e`->zsp!26)SiOY1hbjTr_?)g%?h{GBK`#%xXKl;)~6!-}PjgIwiCuR#X(FQoLw{n@`-Ay00)YhbLfTg_c~ zb}Let$;_S&11~Mj9&rNc=!<&_Dft;Y(Jl}NI22FA=%G{NeEdFKe-$qddTWtO!$>P- zjLj*$OmvU-BJfoltTWxEal# z`dp@amT{9C3#N(UmCeN0+)USCi;4BQx@A+;R;ekTzc?Aa$?r|(WnMlrA6}Kepkj{J zRNj#RDImZ0H*BzJ-L2SN0wkP-Rca;dVVJ(}Ki><;7b+`HNZf9dHMXYlS`|(+!>uU9 zro^Y|o0q5eR`~?r_+!e-{eeE0my=iTPcIqnFrO$tOw&G+?oT(eTvW!sZRwRbrevWs zJIOC;+&D^}AuC~6kl7UQvn)EL*>|t4UywS)Ft;c?ibuA`LS&Jak&2V@pnKSikdjl0 zy_}YNMzp*h2prXHu9cP>9HNnQQqf6je67>iNwvAH@HBFIL>&t=wDNKq+!tA?S%Ys1 z&icubD-JOX@lJ9%69pLlg~BRVZKzJ%*g0CB4-ZZySoMu|7i<$#tANoRG?u-Yzhex~AUXI}GW$q#AXX{dc#9-tInc9xgO*z{#@hrqS zsttinV?62M2HGOyVFj2}Z7r$8zEI?lhYk}XaVS5shI`H_$z zK!Jb@s9cfrY{O4)`WCg4e5+ghXx08gW}wfiWT(h`8GWM0xd||s&)FC0{Z;~eEOs(+ zd{G>Ok;H~L^fisP{UKOLNpRWtyUr>lTr)S1KXkPfc>BZi)E&*}yfm1)Q4W@S~rR=fn! zRuaQasp?d%Y0j%QwadoK)Z}6C1lGyYqVT!dVepY>?%VfgZ)?rL*K)i#-CHt0P0?{A zUrDJCPYp_V(!ey#qu}Y(+G6VQc-Mag#I?UrLy5l?4RJpZ;k-|~wV98WYhg@Ub2}Hu ze~6|m7+G2rZt6kxL|@Tyur!N9v~w@AuPy$DCj&tQJjP$@TBwKuaC~j&ybC|^1q3(I zp4enVqa<{hOx(;HSTiy|$hs%ILeIu^*R#DTeQ)%7`@>%$UZtij{doD<(rt8!T)IdX zal+ZqT*SMStf1PSkJmbrEnUh0e_7LEFn?GL`ItY(zYX;|eC96J%QBQGk zfy$t-YR~GtB?%bZQ|A?D#I*^=)YJ)=VUIQX@e0WTT@|w{&PH+@)kh8h;6BP(Nw|&k z%QNzd8wLs?93;7c1`8Ew!kC!2AP))&O0<;IqdVh-PEmLt=i*)DG>{dj*6^3kYC$DR zGP^1)_#bhscaBV9L!9zWcdqac2niT6NkQ0Gt2I?UKX#9*v~n*iKlUSjf+Re|xn2fa zpf3uj>sP|@L399#1l*1^^^)riq;byP;rh4YoLocLrKC@;9iknMwVt+Dr#|U1o2hj% z!U(lV3@DE!(P-3^GsytD6Q~X=alWih#s|x}q&uywm>XCXp8Wv86hahC|1< zMlD#DnI#lXre&AvDeuxkUo9#gMyd@RZZ#szj|8KK;vx-7?isPZGSZ*>3MGO%XrSdwZSm`6BCB?gBZ zYHOQ(vIia)J#aE!0V&j>*=kv{mp*WR2))oJ{JjDU|6WiM47i5zk~J=wUcWy?^!qv$q7Y za>1)jbG9lG;rC@Du)y(By(jK@2Z7+DyM=}$MM~y+Tou_}kcp~u*I=G$#^tcg0<~?M zJ=W`>dD1(eU*p{Vgz%ccTd&nvtVNk0|2~yMLpd&x0WWLvsXbGwA|>RGzq}NN)goIH z<95DSUeL4cFJ?7_1#ePbS_x4qxD_V=v~kk_a_YfOK|C_$*YXVEgi)YSz!jw4xnnXa zRIZQO<94>%QZ`90U0By2NJBE9z8ATJs?XQwuXj{Mma#FI9-W20WUJ;J9oNbncXnSg zS#voz2&32(h)Qv2@A@@VIR^}vt5hQucEcr`$B&Qx?hJ30)XOP7h3^lB=i~11lOETY<1-EMU zhBt%sb7Rs+nNJup7R1{+ROW_LM$%LO@B!kqcx*s%7N!Azj)wXQBqsF*uRd={92y3y zN&(7d(7wUfM<5zUGt$pEZJRPX!oy7ZVIb_^AR>Q9g4HaQbqCV^VlL_gWizKFj4^8| zoCPrRR?pJN9V*j~csdI-R4%b3r9XH4sYdNH!iW;Kg-T@4d#-t#Z z*%ianW&i@Q&43kP{JjEZA`$^9XL5~mb=ip$xe?t?Zr5aYkunm{CS4HD6!r7mq1}7z zjjS$7q(`V^v7$1SaS;oRk<(y>d)3~ILH^J^~cLCXhJI;R&dy#M#j8_DSw$Sz<&*$Va!dT-<=+s#T_V`*3JwfGqM~; zNlq^Glcrj#2+UUZ`vK7jdM_7J5i&OMQ)q6x9Xvi>j=qwqSo6ly$k0$Wms+=ps^w+; z<`)Lj4WmO-Ao(|ej2V)IN$!tktIA~92UbjEv}<-!a4nrKDlT|1S_)Ipva_9q)`;Jt z@Wivc*c_IqEWxBX^rzfNwlJfaWrec#&>K^vLdI9Ft+=%{)BQ7uJj`|x`@(|nsD)7M zoA=v054rs`4~odb*+9;ap*iB_lKF$$uaC10#}_sLT6>Fupn@+FveSlXa56KhFk~wC^jz*Y>n3c@yfdiKX>v{|wovzHTfo`KJ~ldb;TeuaMZ!$fI<9$FwQs!wigAlb)jxU35Giy|W{J z2=MIR)w{_gYv(@V!zQ4xk{7_PVSY%oMmz0oVD5fB8bdVthh6EyX(tX5FHM1JL;l`i zIfQ;w<;zFCnSn=poFmM3P?0L4qLa{rJE#)wn3$JG!Rk!R$e|_BvOy~nH~syCJ4Tia z4$BbwEUO^PAO2Ymq^eEH*v+!yGm?}eXi(YNAUW}10E12$*`P|# zh&T!g%jqs}pHA#aaz$oQ>hWqro^O}1JwD?76^SM)7Aj+Obo~CgRsjSs{paQKTMZzctsb~H2{#CCz;7EAv9N}jt9!I;uLQP>~)MVr3 z&dBEP6b;&%abt6@Uw$o@`>}PvY`H4nXRJ>TFo-3U9MpK8Mra592vVw5M}9xY=`*T~ zqZS|a-O~-)(XB&mVV6$yEPv(ZG%nyEi%C(ST1W-|$jV40X=0g!uK9!WKGV_{<<#d? zRsYA_E-T6)fpYgwGE4!5@C~usv2Fh=%=pX%XbSEb7-l^h{eEtVRUo9)RTk`8p3FS) zy{A{`E+{~i>~N}Tc*b3_uv+)Il_fwr8L4U-m5zQPjDpF=gm;OHM!D#Czp>H5@_gRt z`26_feD~AI89qHYcqoLWgo7GTr$9|Ut-lTF&gTbQmh%fO2oWm$>31$c5hcMiXAS(z z0R=S4~Z8_;1+~WNqt?$H<6<3Css)_9I;eoxbf6URA(u`AQ)VZ^*s~Id& zTvp)O^hb0_ zx0xeaMr24ljh><0^2c13?Ex(BwC*qgHL-kE9+VCyh|w-M_or}~hoGhyp|UH^FpK3e zK0CK1nrlE0HhaFxG&M`2Xpy|>5sf-nlcu_Rd@HPFlwf*tyaDbdr;wbC?btfurhwck zfL(mO1L6fr9sxa(YzrRzX4p0taU!DGu;piyIv>G~tVp!Y@P(toG zFNnSCCJ41iBhJxRvM8V!2v2HyWgqV_>^L^66H~NnF_5&?tn=q)cF(m3X*7x^Bxm`I zLJhbKWI{#%K7x7;WqJ4N?0?Zq5VLU{oahaQ$z&aRph@Fa5EpPws5M>3vTde)_;#!( z=1rt&Cj#PPLi0p*OAfrtP0k_Dq~{j_WBp-UCnb6(?oS}xEqZl zb9WzNQaDjV_H2BqxXc5!PGVtuJd;#JtI`Bt+v#b|VI$x8C|iyN_B^k0egM+(6SS;GqABb((4kJ8Y#HuK}?sXPuU$s zqs^h@3bx?$ZQ5Sv7B5M+q^{_evAa&{5kG>^oSB+Xg=Jq1q6>>Vpk7j=IV`tq&8FMQ zm#5e+fc;e0O%*JO>7~ZG6!Y;POx2)ebYUt`z>^d{4*X%Q^7vepl07|IjBLQ99!eui zS!V}N9X=0}>R(i;koo8L5rP$3^N%yiefv(mGfzEt>b_Lc1j_+{*8}`8d=+E+cH^-n z(kJ}QIpN^Cc0~x(jzK?C*N_aYYjMS2x-GTe6$6D7f2eGGX=lZzD)yohMx9V+PjQD@ zX3!D8a%>@NC()~aLAexMySc|z zJB4p5cZV*Q!QnHl#V&L0kv;f0udI%^JxV{psCL+PmVxg_x zkx~z!P`0FK4BM>xhbi^YD-On{o;$#^-**XWG;)jH&~ryC^wR@XX>ZsTt?s?I%-XyI z)o}ubBnT2fOd=VAw!gaMO^tirKh~5v>Nl3REk^()%uf)T#l$Yy9`dw*dw-L)Aw)o7X*Pi=uyENy5Kt5U zRp;E2|IT%NxiYjQ{9A$)Ag(7Go_n6oZt`IS`hhC+j7O*Tc_cX1WG6H0X$I+;_nEJ# z;(p$mv5fQ(5yWf;ZAbjKV+bO|RaR~ac%}5`_>`p58g`cw?+QB&com#x;r0)%Dh16f zqt_c9=y#sMc2JE40e&;MXIXw1C7Gzt(DZod_yb0`J)!7Ee3#_6&&ZDfAyA81*9FVx z;+xJ6Z`wHikG?oJzAimIkDbsUlN&-3-Kge&`Q?;Q5V}MPF22=G>@~eE2oS~V?Eo9$ z`n46CH32>F8W}9zinz4b$Rfl0J0-f;F+HOAdtE##jrd<)2hovTXSNgc%El2O?vCvb zc1vcYjzpP;WGATUOp-=P4#gov3^fq{7L?pUNdG`F{<62(feoy$GGdS7eKJ@J@2IBG ztR;}J#_{S{qWy^ySX}U4bA?ta3rm$;m`Ks>f5YBo;S=n=@@L5Z9DR$n^8BRr67`vt z=7fJE!{rGGbz;`E`AStAHoz#6jNeO4qc$P}HsyTV7wk4QNjLRw%&Bxr$NbfYwzlKK1s5*T52p$r`Amk(1()f3_Y|d&?+?KOz0-A> zj#%@5SqA2~ZWQZuiM>$cv&E!r8{BI0;ws(T-PO$ecydb8PMCh$gRm60vblRJV4Dl( zWn`qzrv;_UBfSm0j3B}>H(+c~W%A8V0b`DZhmT~gCOo`6{{1|8elHh|+L`OMqc!K~ z(e0TaCjiq%W;EH-MCBGfP`_CGDwM(_>YsRQT}KBmmzp# zx+iNGtuU{{G0MlsET1ZL9dM8|eaOG3X&eJc@tAVe``wfKey8?+KZCV}1=f3zYgms2 zu_<9FE=!13cU{r~mb46?LRPJa<16ZEGILLLDjWG$@hoxmvs0Jxf-<#8iY!Vs>&hKh zlqNl$*=P8}kA)T7NqSt|`zXlBL3NAQ#b6JW z)}w=q_}};mB^d&x2fM zYqYpD#9k#ANqmUDDJF4$;PD3r3a$;wh3b;nzUZ7@s!< zZFr1ck~1{rR?No%j=Dho;2TYjiDb_g5Y zVe58cC+(=$8XNTFvGykvv+O3H>!>1+38sUm&h$QOa44-Fl|WCoC?+vd;@TAB!0(E6 zt+fuwc%8i*NQF+mJ5kn|ebXxHgb3E?TI<~IpjV0I4C*=;Oc0??KG<&5zj{l_0qI2> za47``7axapLFczO_H@YRrDOj{MLm~LVh4znER+oiB_~NC&ACN=>IOEh;*W`C)PH}G zdjC`0W=N)4C+s8B6892MubcI-4F8MY$$xU4{l1rRNZe}+dfH-K=4A!gEqufk+!0eB zC0VAvRZG+z{L0O1xKi@{K&XTu8%QHQBH)@^ zT=j878WwK-cN_pn;Shmi_Vr%xR~A9qZifFMC6O$E2;=TBBf)Ul4~6JiR!{riIT7rBixWrT0RLT%Ks}Pc&xl1{e>cK^>x>2Z{}IRG1p5!@O-X;} zVpMp5-F?@z{gZ7CLH-u!u!jlx>lw^Qey>F13Fa{HZyWI&tTF8NF%bTH3MGE8r2Z0f z9Qtqj|1}E_mw*5Oz`*$DzX1NJwEh3568`VP|NnOE|L>0f-yQ$|))U^KSJKkbh=Rt0 z<=^){2)=9Q{UHJf!^|VS!B}AwMgB#l@0un$KpZ~UWQ^7S`5jUKA~&@g4a*FFF%u&B z8;F|wr}6&c5S`{XMkZfW4g~#&dd=UU*hd=l_!mNLSH3~9-O`1Y?LTk2_a79bW2_hZ z3xZ=w0AahvZ5B29|3NO@HzM1H=J5W-Z>`4f(dgH-!(oN~%G-WpYLFDn#a~3;t|dhn zbjj9fgsJ|wzi&8MOhUd?NOZC|3Hk+PE?frP(s8lfG6ND#sZN#ZKpAAJ{)K%@hN0mg zqCcTpn_prc1sJja!M}Jc4|!al2GX!-^WGtMH;ORLMS zdHkZ}`2a}lOk|)`A$(OOl)VMW31Xxo=-Yy{{rto8XqQ0hT!&RU^2|3Gge2CWwQg2_ zGSEz=AU`^X(3UfMRp9x}$N&ovxsaD5rrd-1yth~1I)BdmRpSH{v%Q}vm~hpkgj-K1rz2tnPP=6>Q>CXSBW~+>A!t27MFmgx<2q@Bx$Y7Mz5D-U6 z3({l67~M!Ip@bs6Q369s1e6r%PC+C_x08|5@hbk``|*Cc=ic9Q&hI(Tb5D4CjG$Y` z<-$t5i6Y&gIg<2`0u@-`1QuJ!jZ_U&SC1l-%YiRGA zVES@dVO9GUl&c+Sd&k`zPvnDvNtEp3=V7zPUn7vOfS~Qo>%3a$wQTC=bq#PL!h^jf z3v_>0--NT=y##y07JdUJf?yy!BjHDf4PZZ^^=FQXM) z7!%=XB#B%VU3;_O;qbBcwXso{8~IVBB47TaD*Da>Zv}0umW_NmxYzjHa`9;75va2N zsPpJ(r-8Gl^|;_ys_L-Mu_1kF9zTWEJlEe$vMMH#SAY~!{K_9v>z@noMZV8sX!BamjmaepMFI9XAR*atD0o3~=e zs@j+SswI4aq=x?ZW}1Q&-7F=85ux4^=y-D2gKr=@rHV9dlu?w;h(;26CpQhZv7_nE zOgrr8qy*Su?G>*z0sjz}joNIz=}0G3V6KAJWl-gL?sN5gn&e16=VIqy*heDptth$F zswydqWbW0W>56K32oJ0rkvJB)u#7@a-2Hm~;D$X(|#IeaUQf@5pyOV6d)%MLi@eb}=jhO`Rz@UCQ}Cvvfd zpafpvxn*gPa$RRG!8ff7m%!n_V?~=(b|e-84~AaGblrD~cy!%jq3vnus|}e0T*7pF zCgh7G|5*W%?|{E{hFtO!!CNnQt|tEhbS~k=$_n_nOD{&F>o;@P4>7 zVM!r5Y1P!impmwbipGzljpmGC_hp6{wy6Cgpzu))t;~Y(B-Z*42-7B#SDM}Nov}S5 z=yi$E&CYy6nMWQ%*?gpW#!qG%Ad0HkZmRjA)s?_roxL{UHC_Kr#>3&yCzETYyF{1OjQGH$ zpu5_;*mHNp^J}XghlxzBUh;}5>!DDzh<~wbgaXo(!EmTKv7cG4!wg#gFC#O zH)S%x@ayg>OVZ2rhhHoFArvB>J~vNKPaouxtxC3RDi<^3PyP3E4GQn*uG+5Ew7Pj6 z4y+rw^(ozjKS<^(0Ve=T26v!bSR_7W`IRs>%@I7-S9!s9;o~%Jy!vx>$Z%7k z-^N6^ZtsU>I=h^g&*9!DUZ*y}z}0H5v!QT}39kNhK(I&D5Fv&9rj0rLH)K31TYwAjmhrrlrwk^3k{UtzMt8AgBK%YBvA96vv~Hz+Pgt7 z%Mi?$oZh|S;W~@06G$`G@RC%FIJ2<1qO@T2t^259IQ`jN*ZtN^GfTc14%Xfb0dy%`wW(rpF4y6#P)(i&oz{kq0S@RTwYX1(#xlaDX(k=&MJg$Opb&hCp3nRvZ9npI+5QvIB!Pa zbptw726os(zG}Xf_hsa_>BD~w_VX!P|0xGr?JFWeCTU+&jcbe@CTO?8oPRwcIa-O; z`vB})KeGGLBt83H>h5oX5dzv66zvD;8snor(@;W2j#=nF?TkipkAbpdhvDk(yI7LT zssSt!?t4pTRyiSAPj|L)v3v#X3vF;xiE*lu*ba6BluF-D_jvATm(qNR^F(DM{P$dC z(AhEuDKQTn+?-1i>eEaFtDnL=Lfy)xSZ1{;->%)$dvFsFPiZ>ok% zvX1?rElXbgRL{Iz>%_!-f1LE7*f6G0%&b!8=?1G}AO%HL%G0WPVFd}j`z587T!tHZ z6ai#Ihn(CGf-9fRHszSKt)rD4S#Nx-`@j}pORME5Ht?mH#jkkSN&FM%)a+eluY!ai zxM`iJCFbGO?(taadMLbn}k5{c|sn5KO-GgEBPXgc*^sk;O=y!w<}G6InAt`SKZX?*>sbbWlf`F z&k2{4^`z%Pj$Ph)a?JrYWTv?H`wyc^r_Jwc(1W{%IkDP&)|hy6`wngII-U`53AGCM z4b}ofELysr<#T26uta1uUL*^_j#!N@9Rv(;l>HO;nzNNGq2t3vBVXULA?@^++*(&!|e z>rYH()w9!v$46GG&}DWG4xDbBdqQiSQPwmoz}KE?t}?$poGYG+gh+wh5k9Eoc9S9B z8uBoJDd`@4)4vYxXRkk$nz1qw5qLpL6CyOn zM?zWbj^`5r&&(UXW-GQ+O;7~=YPtF08B^p*u31}Oybc0Sf_>5Stgfu|E{0jR87H%q zluB2-@*v7&W~ed1tUtepo|)+g<32%DMzmvvO*a1>M?JlsSeiz?*ZZ^54(n!jw7jZ} zU-Pas{3QTYC#$*YT~xRU5`1+ZZq;RodQ_5jC~|RccSBDe^X0sn;eL1Dvc>gKixCqR zB!S@{%c96%bJq!@hOHkgLIJ-_5sk7R-<}b>=JVId9u6s}lyha@pM&K)m$pBGAh%L*PJ6}V4zn3}o)qkJ1XN?DJgP>X|Z_?s}2c0nW_}mNO!z+R)`5Wiu&+`5)qd ztsKb-iR8BK%5bTl(c@8I>AK6^=NxPyRhOIz#YYE3Us|ac9j9C<9NMNjyd#3Ac&Jtb zmFIDDu3gJX((d@n{QZd;bH0rJ3D>6;^XT50HrgKjsrpdrmQPx1q!Ka+QwPjrh`$OIvAd6mF=OwPLMoyE-zZu^^xXc8L4 zl|>M#Mc~DgRvr11OK?+NU47x{<3f;#=EC+ywG{;O?+kHzfUX`Y=KMUpo7MB5tP|$Q zOW+i((BU|%oc4b^=j|WKM$O&!KLsb+fk=O-L2LxYv-+RmqH&9eB!64$+N{AV0!ON_ ze;te-G_(Q3|60o(DAjw&P#E=ZcN9u6rc2=_lgAI0gH!!C8K$Qb8p}nMmB+7sp4Ce7 f|G_UnDC@;DklRaZx<&L3!JnlGfvT0OScU%&Sh_TC literal 0 HcmV?d00001