From 1a62a8bba0d4ebd8529927a030b3421d8cf05c79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Mon, 4 Oct 2021 17:29:03 +0200 Subject: [PATCH] Adjust documentation for config flow rewrite (#19597) Co-authored-by: Paulus Schoutsen --- source/_integrations/tuya.markdown | 146 +++++++++--------- source/images/integrations/tuya/image_008.png | Bin 10067 -> 25284 bytes 2 files changed, 77 insertions(+), 69 deletions(-) diff --git a/source/_integrations/tuya.markdown b/source/_integrations/tuya.markdown index 4bde7b5cbeb..2af5f30bee1 100644 --- a/source/_integrations/tuya.markdown +++ b/source/_integrations/tuya.markdown @@ -3,7 +3,6 @@ title: Tuya description: Instructions on how to setup the Tuya hub within Home Assistant. ha_category: - Climate - - Cover - Fan - Light - Scene @@ -26,103 +25,112 @@ ha_platforms: The Tuya integration allows integrating all Powered by Tuya devices you have added to the Tuya Smart and Tuya Smart Life apps. This integration is officially maintained by Tuya. -{% include integrations/config_flow.md %} - ## Supported platforms + - **Climate**: Air conditioner, heater, thermostat. -- **Cover**: Curtain, curtain switch. - **Fan**: Fan, air purifier, humidifier, dehumidifier. - **Light**: Light, light strip, ambient light, light string, humidifier's light, Ceiling light. - **Scene**: Smart scene. - **Switch**: Switch, socket, power strip, smart kettle, breaker, pet water feeder, air purifier, diffuser. -## Quick installation and startup +## Configure the Tuya IoT Platform -### Configure on the Tuya IoT Platform +### Prerequisites -#### Prerequisites +- You have created an account for [Tuya Smart or Smart Life app](https://developer.tuya.com/en/docs/iot/tuya-smart-app-smart-life-app-advantages?id=K989rqa49rluq#title-1-Download). +- You have created a [Tuya IoT Platform account](https://iot.tuya.com/) -You have created an account for [Tuya Smart or Smart Life app](https://developer.tuya.com/en/docs/iot/tuya-smart-app-smart-life-app-advantages?id=K989rqa49rluq#title-1-Download). +### Create a project -#### Create a project +1. Log in to the [Tuya IoT Platform](https://iot.tuya.com/). +1. In the left navigation bar, click **Cloud** > **Projects**. +1. On the page that appears, click **Create**. +1. In the **Create Project** dialog box, configure **Project Name**, **Description**, **Industry**, and **Availability Zone**. In the **Development Method** field, select **Smart Home PaaS** from the dropdown list. Select all available zones. + ![](/images/integrations/tuya/image_001.png) +1. Click **Create** to continue project configuration. +1. In **Configuration Wizard**, select **Device status notification** API. (**Note:** **Smart Home PaaS** API has been selected as default.) + ![](/images/integrations/tuya/image_002.png) +1. Click **Authorize**. -**1.** Log in to the [Tuya IoT Platform](https://iot.tuya.com/). - -**2.** In the left navigation bar, click **Cloud** > **Projects**. - -**3.** On the page that appears, click **Create**. - -**4.** In the **Create Project** dialog box, configure **Project Name**, **Description**, **Industry**, and **Availability Zone**. In the **Development Method** field, select **Smart Home PaaS** from the dropdown list. Select all available zones. - -![](/images/integrations/tuya/image_001.png) - -**5.** Click **Create** to continue project configuration. - -**6.** In **Configuration Wizard**, select **Device status notification** API. - > **Note:** **Smart Home PaaS** API has been selected as default. - -![](/images/integrations/tuya/image_002.png) - -**7.** Click **Authorize**. - -#### Get authorization key +### Get authorization key Click the created project to enter the **Project Overview** page and get the **Authorization Key** used to make API calls. ![](/images/integrations/tuya/image_003.png) -#### Link devices by app account +### Link devices by app account Link devices by your app account and copy the **Device ID** in the **Device List** to the clipboard for specifying `device_id` later. -**1.** Navigate to the **Devices** tab. +1. Navigate to the **Devices** tab. +1. Click **Link Tuya App Account** > **Add App Account**. + ![](/images/integrations/tuya/image_004.png) +1. Scan the QR code that appears using the **Tuya Smart** app or **Smart Life** app. + ![](/images/integrations/tuya/image_005.png) +1. Click **Confirm** on your **Tuya Smart** or **Smart Life** app. +1. Navigate to the **Device List** tab. You can find the devices that have been added through your **Tuya Smart** or **Smart Life** account. + ![](/images/integrations/tuya/image_006.png) -**2.** Click **Link Tuya App Account** > **Add App Account**. -![](/images/integrations/tuya/image_004.png) - -**3.** Scan the QR code that appears using the **Tuya Smart** app or **Smart Life** app. -![](/images/integrations/tuya/image_005.png) - -**4.** Click **Confirm** on your **Tuya Smart** or **Smart Life** app. - -**5.** Navigate to the **Device List** tab. You can find the devices that have been added through your **Tuya Smart** or **Smart Life** account. -![](/images/integrations/tuya/image_006.png) - -### Install the Tuya Home Assistant integration - -#### Install the Tuya integration - -In **Configuration** > **Integrations** > **ADD INTEGRATION**, search for the keyword **Tuya** and select it for installation. -![](/images/integrations/tuya/image_007.png) - -#### Enter your Tuya credential - -In the Tuya Integration window, select **Smart Home PaaS** and click **SUBMIT**. +{% include integrations/config_flow.md %} ![](/images/integrations/tuya/image_008.png) -See the following table and enter your Tuya credential. +{% configuration_basic %} + Region: + description: Choose the Tuya IoT region to use. -| Field | Description | -| ------- | -------- | -| Access ID and Access Secret| Go to your cloud project on [Tuya IoT Platform](https://iot.tuya.com/). Find the **Access ID** and **Access Secret** on the **Project Overview** tab.| -| Mobile App | Must select the one you used to link devices on the Tuya IoT Platform. | -| Country Code | The country you select on logging in to Tuya Smart or Smart Life app.| -| Account | Tuya Smart or Smart Life app account. | -| Password | The password of your app account. | + "Tuya IoT Access ID": + description: Go to your cloud project on [Tuya IoT Platform](https://iot.tuya.com/). Find the **Access ID** under [Authorization Key](#get-authorization-key) on the **Project Overview** tab. -

The app mentioned in the table must be the one you used to link devices on the Tuya IoT Platform.

+ "Tuya IoT Access Secret": + description: Go to your cloud project on [Tuya IoT Platform](https://iot.tuya.com/). Find the **Access Secret** under [Authorization Key](#get-authorization-key) on the **Project Overview** tab. + + Account: + description: Tuya Smart or Smart Life app account. + + Password: + description: The password of your app account. + +{% endconfiguration_basic %} ## Error codes and troubleshooting -|Error Code|Error Message|Troubleshooting| -|:----|:--------|:------------------------------| -|1004| sign invalid| Incorrect Access ID or Access Secret. Please refer to [Tuya credential table](https://github.com/tuya/tuya-home-assistant/wiki/Install-Tuya-v2?_source=d10de34623e3daca5b02e3c31528a0c4#3-enter-your-tuya-credential). -|1106|permission deny|| -|1100|param is empty| Empty parameter of username or app. Fill the parameters refer to [Tuya credential table](https://github.com/tuya/tuya-home-assistant/wiki/Install-Tuya-v2?_source=d10de34623e3daca5b02e3c31528a0c4#3-enter-your-tuya-credential). -|2017|schema does not exist| Incorrect app selected. Select the app you used to link devices in the cloud project.| -| 2406 | skill id invalid | Make sure that your cloud project on the [Tuya IoT Platform](https://iot.tuya.com/cloud/) should be created after May 25, 2021. Otherwise, you need to create a new project or migrate data to a new project. For more information, see [Operation on the Tuya IoT Platform](https://developer.tuya.com/en/docs/iot/migrate-from-an-older-version?id=Kamee9wtbd00b#title-3-Operation%20on%20the%20Tuya%20IoT%20Platform).| -| 28841105 |No permissions. This project is not authorized to call this API| Some APIs are not authorized, please [Subscribe](https://developer.tuya.com/en/docs/iot/applying-for-api-group-permissions?id=Ka6vf012u6q76#title-2-Subscribe%20to%20cloud%20products) then [Authorize](https://developer.tuya.com/en/docs/iot/applying-for-api-group-permissions?id=Ka6vf012u6q76#title-3-Authorize%20projects%20to%20call%20the%20cloud%20product). The following APIs must be subscribed for this tutorial: | +{% configuration_basic %} + +"1004:sign invalid": + description: Incorrect Access ID or Access Secret. Please refer to [Tuya credential table](https://github.com/tuya/tuya-home-assistant/wiki/Install-Tuya-v2?_source=d10de34623e3daca5b02e3c31528a0c4#3-enter-your-tuya-credential). + +"1106:permission deny": + description: >- + - App account not linked with cloud project: On the [Tuya IoT Platform](https://iot.tuya.com/cloud/), you have linked devices by using Tuya Smart or Smart Life app in your cloud project. For more information, see [Link devices by app account](https://developer.tuya.com/en/docs/iot/Platform_Configuration_smarthome?id=Kamcgamwoevrx&_source=7a356dd493196a01bb9021b7680a2a45#title-3-Link%20devices%20by%20app%20account). + + - Incorrect username or password: Enter the correct account and password of the Tuya Smart or Smart Life app in the **Account** and **Password** fields. Note that the app account depends on which app (Tuya Smart or Smart Life) you used to link devices on the [Tuya IoT Platform](https://iot.tuya.com/cloud/). + + - Incorrect availability zone: See [Availability Zone](https://github.com/tuya/tuya-home-assistant/wiki/Tuya-IoT-Platform-Configuration-Guide-Using-Smart-Home-PaaS#region--available-zone-correspondence) and select the correct availability zone. + +"1100:param is empty": + description: Empty parameter of username or app. Fill the parameters refer to [Tuya credential table](https://github.com/tuya/tuya-home-assistant/wiki/Install-Tuya-v2?_source=d10de34623e3daca5b02e3c31528a0c4#3-enter-your-tuya-credential). + +"2406:skill id invalid": + description: Make sure that your cloud project on the [Tuya IoT Platform](https://iot.tuya.com/cloud/) should be created after May 25, 2021. Otherwise, you need to create a new project or migrate data to a new project. For more information, see [Operation on the Tuya IoT Platform](https://developer.tuya.com/en/docs/iot/migrate-from-an-older-version?id=Kamee9wtbd00b#title-3-Operation%20on%20the%20Tuya%20IoT%20Platform). + +"28841105:No permissions. This project is not authorized to call this API": + description: > + Some APIs are not authorized, please [Subscribe](https://developer.tuya.com/en/docs/iot/applying-for-api-group-permissions?id=Ka6vf012u6q76#title-2-Subscribe%20to%20cloud%20products) then [Authorize](https://developer.tuya.com/en/docs/iot/applying-for-api-group-permissions?id=Ka6vf012u6q76#title-3-Authorize%20projects%20to%20call%20the%20cloud%20product). The following APIs must be subscribed for this tutorial: + + - Authorization + + - Smart Home Devices Management + + - Smart Home Family Management + + - Smart Home Scene Linkage + + - Smart Home Data Service + + - Device status notification + +{% endconfiguration_basic %} ## Related Documents diff --git a/source/images/integrations/tuya/image_008.png b/source/images/integrations/tuya/image_008.png index 322c82c78698420aafaddbde514563cf06c218c1..c44814dddaa3d963fa7ed96959712cbd6d0e2373 100644 GIT binary patch literal 25284 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 literal 10067 zcmc(FcT`hPyKWK!gr3kl2_RKzQlx|uFo1MK1yp*G-jxoaMx={~AWcG5L8K$S3kp&M zrT3+?po*GWM$1{^3FSZPxd_T`#dvG^>x*$$XUrjAP|+NhMFNz z_JBZOVi*ZfD=;Zi1`4p3p*jXs+RwfQe2K6%*0j^n0SN(h7>F253nIES0p1`mD~R}? zItX+N%=YiPAz0vFHV_af+5rUpmyIbQP5p}z@YTk%z!r&2P0!|V;yZdYd04WOB**UTM=Iu_sd=&1z$O! z>SF6{iS%`GcJ-3;MRWgSAqUhin?<>i|Co3?p}CE9^pUD=p0-G75it=lZbfn=5~<*6 zV<%^*hW%G};2WCzk+-+IoT%uNCr?D4To-Zkv=c#UPPX5!6nyr_$r-Qq8B&H_%n#vQ)P`O?3lxWYe{|E=v`<0yz;4*tJg%zxbJKdr#6Dv~RR z{(IUK$yvjwg!&*8pZgUmOEgufxfu_qsxOBnyADu;UIptgV@tWvgwcmXFgXGcQpUJD1UMWL6$;~4 zg+pxNaFyQBy!#ksXc83+CjrAFZCeJfp^#xcBoWFiP_;yf+0|6Q$c6}$LkZ#5U~%`> z0*pR_QTilc1cCBK{S|0^L1fO4W@irf7O+Ewa3=iGEvO+Kfu04aTO8n__K^^`^1TYK zfoYN7DMH_M^dhAv*En;V9#A~JdbZ&fLgChQY_~e~>B-SR$X`0equFrx&sSbXfQd*V ztm5!pHwT_`8XiU}=fi3nkIR#H4d1I+EDox3al|YAJ#zmlH5Snra2VyW&=u)ARUet4 z^!EoAKL7W8D`dh)ax*VM@#E>_M4gxY6_-0^sO>9IBzUgzaGJtv`3o6W@KNs1iNfq) z$L=bpv8aHp#zU>+AuNHfXLT^IeWdtyd!@s0n?qqHBcJYT=IM}&ARfvW?;q4job4op zP!1^UX{Sj!rG5|T=6Diu^BH60N_L3i*-^I=wak?F^L)*T8~Jn)2gHrVMAf!G8x!qS zV`glB56VI!MIP2itYigi#z?ZQGo~>3~gE6-t7~ekj?92 zb8A3EQL@lx1@3;{9=-1t+07Ynl|A5h`REVf(pv7ot$-N{rQ^?fZSq?U)_!tB7JWsc zsBI-^+LVPlFrzd|7smtbbJ1L`-QVBdi%#NEkK)hr<<`zp_-Uv<#^(V3qLxTRqafzJ zG5$SDL@1}Nom&3O`bqD-Cac?JJn=W$u&;hr*hl|8KV`GDkffTb_jxOxzLpjSFJgq~ z(#9(W$Q~~~Z~ti9=Um;+TAzoaQz^0;D}C5196`_g_j2qH4#RvI7fH*p*ZW~Llb%{> zVwPcu_4;3>6yYRPav(FaD)>>sg-TdCdHtX=qh^0N8N*7$>k zN-Z$KZB#Oo@U#*^7|szDx?`P@X#L}ZWwprPuWrF~#zp2q2j8pdw+;B5GK+(k;}~z{ zizSnzw<|=wlv!hT1~Oy@qH4@9PR6SLA~_t6zV{K?3czr;5bmC06|!>?bnocwmN6Cu zd&Aj(M^eG>g5+r>=mOvM<`WZVaq=VX&9+E@x$pe49By*<}}73ymKp7R|mutvWt z8`v%~f)TtmWp`=rQUS(}IYknl&q86z6ZhVdz9j*SrSy$h>TV*dO2|S=50!rI@t^r$ z>{(W#8!}C6o}N@#z&k}8b@J!)9K6kxpoZsfHSby%jV+A4$>b>JN$3CS*SLMV(Hx8P zfbKB$Hd8kL8F#8CTl%I-L!}x`eQxNGHJZSS&k7M#B}O=Zv!9XAI57Cge8b&hb)v>? z`J}f>)IY%sl1F02ApiLHhx0#wVS|;N-Gdh!>HE(2{+^6AH(f~EmM3IOZftD4nrLc9 zW_q(io;ty0V(qhoq_3Ja{4nDS_~KWb9k}~+WAu#=?8ey~O$aRD&u?*_`HSs`yU~@- zX}gW9&h^~!EwVWOo?opCvYrY1DVmwk-Y}%hOkhQ^iGCC5Zess0{PNRL75~^2??K-o z9_?0i)(d~x71jG@A?F970wCPuqw8J?4GJifjgb4!GF(=tM$&E z%umw=v(M(4nm@SI;uRWBH$TncNI5@Tt9vr#^U}o=b)GKeq%HqUM>OPQIJ@mBf7YYZ z7#g`%;YB!&B6AcC7w2++rV|Msk+*UHtc6bO%Wkd^ zg?Hx7)3M_+qZSRTdyxz}c`mgoagmQLN1R(6ME6f<(EEujHx9zv zU23Kn&HR=ac)&beFYcMK6zFBU9ttF!{1Dce=%IOql-%%sr&;)o8O9rroYppz7G)6R z@^|%DDKL3y9$e>OnQIqT#C|#=4yvC1vpU$m|MACKBzYbic$m`vtT4;J*TxjdLh>h^ z>#W7!zGt;jOnqob%lz?A+iI@q08@X<_1v+pZT*0VFTWEC(b^QnM9CQK{iMW5lPbp- zN~s7E!?W#ZB}q%N-5fmb50hi^@8-f_@8+!FlQs9bNG4N$_w80vw&JwMoPLW*b3nAH za$q{$X^oJ>H?NnxefL0ZPk=3#f}dpI>s?!}wMU;Y)~LjEBr~$jVv3F@hh(GT-R#Zs&@O6R-6v zT?9IjW`_`D=C7cpparRjA-CY&|%~yq)21F?O9SXBO0$m zm1~{=cx*XD(8MwpTw^Bk%Y;sANid{~TSpzNC)yltPR#)ULy8DXMNEWw6*d^*zxo+n z#?vjuLmai_lNg;8`A6lO;Ozoq*4QjTS{`s?bM$jvxz7cG0%ac$q6_iJ+RWM1RQWN)zWze^d#!{u+~AB^SbQ8n9IIyZP#A|CW+<%%+|MwsQX)UXg` zs$A`W_$^w>rytQ-URd#-TWmmtw*2&D)WqK8)g+HaM^?1cKzDt6pLcR%wEg2^o>CSn zU$fp>zo!ebpS4UA_^Ei<9bTtYKC2>knFSVgk`n96q4(vrkR|6oZCEWrb?;gIzMA%` zUb(>c1ul_w$2yI!o&@Gg|e!!y@?(B2Wngln6zCz0xXyL#BuzxwF6X z%j$T+V`)6iyX=Qo=Uzuyadxeh--65DFDu(4GzS|6P8(WmH~h-b!pMYD*y((v)muXa z=1q^QM-cL;?kb}6wV)%7qqHvHzk37FtaI2qGHc3>3>*2MZn5FRZ`l?dK9{~FzaAI9 zzV!fFvb(kE`mU*_z0AR1p>#yb0i9il(p7tKT-3RN3Gl{RlT1H2hPvk1n5o`jaci=|o26jDCaeZl&zEb`D;R2oO z;&Qum4MC4{MN#@Up@xW#U+p~zH`OQP2GF)QH=k)!Ash_xVUFA$lj=TjTe^-3xQ^;w zQa?6tM*}I`jlR@t6@!*@ZIK0zkn-1Xvofu<9N4_+13G?PNn+I@WievZHx?Ly8-KVB z2N6XgC#qd4rn9|b8IH65gr)HDvWiFcJ!A|a0vgJ}MwBLn`q>n1ox|&mI*1#yzswFXNE*<@WS2 zLHax>4uO**mB^T0sA#dfrN+(!D|sqFiMf$2QtocQ9(gO5bUjajp3$Ty&r0K*Ft@s~ zvoA-EbL38pL7L6kpHAJQhn9%GxlGIcG^F1-#|pJ4)hpl{4$7qyX}V($yyG@ zK+GNQ%U*oqE=`JcwkwX?)Vem&-Xgz&!&D8PE%3N~TGaVj{*0j9ahey{PVi?rb#xTe*<@p&EZU-MB zs3|qTVwTM6IB!q@=@4UOO7#+uOqp)J_=T%LBExJ{v>fjL|1i-}fmfC(s12Y?^ST{V zzYj_am|OEC`svBdyTO|M@T@GXcOpDJ@`vdA7JS^*#HbN+V@KCg6**VNM8sB>{Mc&w zboR%GR|TNTNIDfHX>#6kJ{<|%nq=3VI7#7qrIKT$0>ac>ij#{v!a+erQrvOlqoaJu zM&x$!dlwh_`pc+Be(WH}jw92{f|Z**Ok<=+f83XRB1#9RZ@Q*P_N0`WHI5I}a?6WQ zYlL6t91_Fid}6y6&1cyGGu6vhoT|i`2W&`Pe?-vQxijyAx)wH`=m3PI2kC5)KEFmy zepWs|nXH1iG#yR{yboMIw6Bakp@m$iA{kWJ-vbGR?3dTF!aTf_2 z6EztqfJez(HTl>POGo^q0Q+bQ6IwIv-#4`XYfRLl1@1K6;J3_Z2`~_I_sZ~T(KR6Y zBd#y+^~(>8EYx9Fm_oQms0?nXS1_6LRJv_W){WlnnyKxpe`rwD6?7e%*m*6A;CSrM{P!94ei^=+B?Wdso8LOH^slBha^+3EY9% zia~7?Zq1jh)c3XvzfzQ<`>b-tAALp#1MlY9Fp4jEBMS*ioFr7NHU|>vNsJe~Fx%@x zv!*yfx}}9MuvHwF(llN(;Pi0IEstUm#nJZjNIsV{%RmLzfzV)A5#xklb=~5*<-6iS zsN1F+19Yk~ePihv9%s)hgLd=CY0CMu)8M*tYrGkrD%`M$0o4K}bif}1zB$R93rkreETl_Ubm3FE zbo5L&8QvzGkz+2OG(P@luBQpvbSorlhj|`^1hbd77Hm6)PkkyW6SR77Z#K?Lztd!k$L zvs|T`&(=|`>J$&Ck)u((0?BWJMbihkdCXxW1~sI5ztrc?Clj*ns-yG;Ay1*Lt1u1! z>Bkc;=HDth@4;NDV9uWpXvS(4mFqHRCwvSnI;Ozb1h|xK0H>Zc3%R-3R>_^W+A3K` zzWxJr*V-2v*f}DVufPb?&*Se2R(kE6;~sCubI5Cx!!jR0c-o?<*tErifbh+COol>2 zPU;29@;*yFN&_PJul5U%Q9J-GGOm!9$av5EX&l+hz*LyWMydzfD@)85|t>IAzhJ zw|!OhAs#0#p&}hdcg?J{bT1B6!J#$>mzy+AJD5Fz3=naUJq7Z)yqc9jKr6BAe=WOg z2D;rO}#%kYH3@x@GB_-=Yi9{%mnSm{7~dlfi}h6Tw; z;1>ICHGb2C5Xl_)z}74e-#X%H{)7Fo&-_#VD1$ug&#S!azS0!POD-=#nN$VRel6)> z$Sh_N%5pU-A%SL;s8%5lb)&fT(dUXsgWU4==^g%%W_E(54bDP)f*DdAEd@IyySi)A zCuRyqGIfOd)|!UH-$f$%(ZotH{jOS%g+B>~(~pIf&98-nwm6c%8O%q%OV~=qt~8Lm<+i%$5IwN1Rx?Nbiz_nq|eW){vQijT;7jr z8Ok20A`epUQ@$V1C=j|C&A91WRo&=X>)JdQ|Ak&p~=UW@^+NbwdICIUD%*FSj7O|(TtIZ5v-KcYGq#?`qms_YHxQpgp&jsA`)*NFgfbiO zr1Qf^XUci_8}yR~G3r;c5N$+O-%A_&dfeBG3)2&&O&jqx*??X$_nALi(&vyt_-@(< zsih=FjM8oo4-jmQ4Y|%6oB@Otgwm?Rw`@`5UD%c$G5>;xvDENr8gylM5;fIBEX(ej zj(({%G2{M+KjY1&(0Ah4WrqTBiKI(UXb2u{%KBL5@zx~o+6SvM&CPKVl`J)6l}x*{ zHYOL+A2mJg7s&cg_tD&rK23dYwhoHJzHsA-hWKGX@#vfd;1-EYMw zd3P|d-oApRh^0@SRgY-V=#au8qCl2NMlese12qp~vHb^GEN89KEN53RpqQ8_!n*e< z-{_m)zn|gv!OF<$7M3Fs!9=A%1nsCJZ|$q5_;1T!bv3Q7K zzl|K_k0oC;X%22=5psfzax8YHt+noe+hjL?2!tPimY$EP6H}ts8SrN}hAe~Hfh3B0 zF5R=*`KML$-STP+opzXt99~TpP83#dv2ssr=x8pBv(Jrz*!PbKHztzJ!@Mu&bEQufoyp4!lPj?(({Xd{c;^d0CIhf5`LFJ~m!paBp=_eIajU zP%^)N*tJyjg*kwnw3nJg9P7g=S+C_ZY0($719*s~*y8Fc#+0TbuZqpbe<4bbYA>T<@kJn=mwOFp6qgbtA7fnK^+~$G75N$QLODVJu&lq#?$Cr) zu(@RC_bFLYZ26<)nB7 z_>P=^fVa1So13UW5nUQ>T>$v?7gMiACdPEAJlK*~ZoMe)opz6^0uN~()k-4C z8~v9Fc2yv(4-5?Nxr&ZSGVN-sC*-L_O&ctxl#RlGg>q*9K*p1wlIlHl%WoZOu2TFd_ZKiZepq`Q2_!o z>*CEKmN+2l4yA3~eD4Sc))|XhF^fnaOar2J+_Bk6$^WgZ zl2A}Un$T2tioX*6-tsBt%s6sIAA!j!fmyu$VLyV+6d0_Pd~w&d@4bwGsilHQFozDC zlHPM^opj&2de>`E{oM}TZ!y@w#KiBezym_OIbPM50yjY0w95-UE6tcN`4BMG*=r79 ztKerIA5)Qs6;RnJM(eTzN|L)U`2#l!p~P{1a&SF!^3zt6{46i&At_YSdqD2jRWDoR*T2^0cR?X2I8O3* zfi~IOyYI>EUwcG3xFDii4%#9qt|H)}u;X8AvL-fKhKD@qr#l~q-dZ%gZYIn1OXd0SE;(FDh%AXBp>M;ms>>&HdGX? zPkpMXdKnPQt6eUT(Sl!EsnrIKF2sX4M6>!nsMuY3mk>?O;iwkM-Z7jjfiAple=U=b zw_vx9wM%OtVXn;(LPANV(JlZsSY7hi*W@w2T5e`}>*j*V+uuLR+tVn^k>Q04uah9z zsM=c=gfNX19W)e+;?=L)^3wd2Tb6ngl+lhw_B?4meJDS4{E_69te0IHI-uI;hxU|- zIt`$h73_kRs~=J~j5J%#3C65ZN9ndID$FTF&r$7)MW}FMX$o#p`gEw07Z@ydu979< z_r+cnGnf?%JoiU}4mGr7V-?leJtCIEm9Ku=;c645)vlwD2%X@4+?7JUqVo>DjaDUX z^xL!J>565!{)G=6MC*TY<8P!Z?|iH~E_&O3tFcJrsFI_WJOYO;N8mpxRNE<=m%?3{A0>^u;L zft?FSPQn6Q?;~GyJvO9M`$mDgtA^a!LWZ{Cwj$HE+?`}NEFgg_-xEDV7?wUPh8dQErhxndd+Eq8*cY7v9R5&- zYGO1F@3R8vlyBb5sYnJ;2{P1_n*)Ggsln&|N4!9VH^RF)AK)scCkMago&#`~3?DjA z#R5pUHdYp`_urj_cqueoWYpKB{_@2a3O;T&eqgA0E_#<;>LCRV1}XkKg-$jryad$` z`5EuWoZGSQ!mo`L&F0)`k#?Vdzy>y;skVGhdWEw(bZ={8QDx5p&?otL!$OHz$(&0u z;K+@MPH9tzm^*u8@5zUev%>?G6ARSQ(VvOg2O+AZ=O zk^+5F4)4UJz5PXde=G}h{uwcXz$_Hw#0(XCP++Vb$;=`4n3C(Gm{rbj7rsUESuxWm zs7XK~jp4CehdMQvk8jJWUoq)unQ?xiL0~&lS#+SMrIJhnuK%;+2t{eLJs6r4Cb@_M zL7Ss^6;Ip~ymo2Lh44tgx&bbL%n?leq6|v`!jvFUyesf`s!1cEy?|Ji0#>hy08SUN e{U1&joiUNmQOs%MTRbmMmTBJ9RV&3