From 27099aa42bf9e17d999f7a543e298f858b36cf20 Mon Sep 17 00:00:00 2001 From: annie_wangli Date: Mon, 24 Jan 2022 10:06:03 +0800 Subject: [PATCH] update docs Signed-off-by: annie_wangli --- en/device-dev/driver/Readme-EN.md | 2 ++ .../driver/driver-platform-mipidsi-des.md | 30 +++++++++--------- .../driver/figures/CSI_TX-RX_interface.png | Bin 0 -> 31200 bytes .../driver/figures/Process-of-using-PWM.png | Bin 0 -> 7355 bytes .../figures/process-of-using-MIPI-CSI.png | Bin 0 -> 7176 bytes 5 files changed, 17 insertions(+), 15 deletions(-) create mode 100644 en/device-dev/driver/figures/CSI_TX-RX_interface.png create mode 100644 en/device-dev/driver/figures/Process-of-using-PWM.png create mode 100644 en/device-dev/driver/figures/process-of-using-MIPI-CSI.png diff --git a/en/device-dev/driver/Readme-EN.md b/en/device-dev/driver/Readme-EN.md index 437ecdd685..fd38756d36 100644 --- a/en/device-dev/driver/Readme-EN.md +++ b/en/device-dev/driver/Readme-EN.md @@ -19,6 +19,7 @@ - [SPI](driver-platform-spi-develop.md) - [UART](driver-platform-uart-develop.md) - [Watchdog](driver-platform-watchdog-develop.md) + - [MIPI-CSI](driver-platform-mipicsi-develop.md) - [Platform Driver Usage](driver-platform.md) - [GPIO](driver-platform-gpio-des.md) - [I2C](driver-platform-i2c-des.md) @@ -29,6 +30,7 @@ - [Watchdog](driver-platform-watchdog-des.md) - [MIPI DSI](driver-platform-mipidsi-des.md) - [PWM](driver-platform-pwm-des.md) + - [MIPI-CSI](driver-platform-mipicsi-des.md) - [Peripheral Driver Usage](driver-peripherals.md) - [LCD](driver-peripherals-lcd-des.md) - [Touchscreen](driver-peripherals-touch-des.md) diff --git a/en/device-dev/driver/driver-platform-mipidsi-des.md b/en/device-dev/driver/driver-platform-mipidsi-des.md index faba7009a1..0bb5db5da1 100644 --- a/en/device-dev/driver/driver-platform-mipidsi-des.md +++ b/en/device-dev/driver/driver-platform-mipidsi-des.md @@ -4,7 +4,7 @@ - [Available APIs](#section12720125432316) - [Usage Guidelines](#section037231715335) - [How to Use](#section49299119344) - - [Obtains a MIPI DSI device handle.](#section5126155683811) + - [Obtaining a MIPI DSI Device Handle](#section5126155683811) - [Setting MIPI DSI Configuration Parameters](#section201164274344) - [Sending/Receiving the Pointer to a Command](#section199401342173415) - [Releasing the MIPI DSI Device Handle](#section161011610357) @@ -96,9 +96,9 @@ [Figure 2](#fig129103491241) shows the process of using a MIPI DSI device. **Figure 2** Process of using a MIPI DSI device -![](figures/process-of-using-a-mipi-dsi-device.png "process-of-using-a-mipi-dsi-device") +![](figures/process-of-using-a-mipi-dsi-device.png) -### Obtains a MIPI DSI device handle. +### Obtaining a MIPI DSI Device Handle Before performing MIPI DSI communication, obtain a MIPI DSI device handle by calling **MipiDsiOpen**. This function returns a MIPI DSI device handle with a specified channel ID. @@ -213,7 +213,7 @@ cfg.timingInfo.vsaLines = 76; cfg.timingInfo.vfpLines = 120; cfg.timingInfo.xResPixels = 1342; /* Set MIPI DSI configuration parameters. */ -ret = MipiDsiSetCfg(g_handle, &cfg); +ret = MipiDsiSetCfg(mipiDsiHandle, &cfg); if (ret != 0) { HDF_LOGE("%s: SetMipiCfg fail! ret=%d\n", __func__, ret); return -1; @@ -265,7 +265,7 @@ int32\_t MipiDsiGetCfg\(DevHandle handle, struct MipiCfg \*cfg\); int32_t ret; struct MipiCfg cfg; memset(&cfg, 0, sizeof(struct MipiCfg)); -ret = MipiDsiGetCfg(g_handle, &cfg); +ret = MipiDsiGetCfg(mipiDsiHandle, &cfg); if (ret != HDF_SUCCESS) { HDF_LOGE("%s: GetMipiCfg fail!\n", __func__); return HDF_FAILURE; @@ -409,9 +409,9 @@ if (cmdRead->payload == NULL) { return HDF_FAILURE; } *(cmdRead->payload) = DDIC_REG_STATUS; -MipiDsiSetLpMode(g_handle); -ret = MipiDsiRx(g_handle, cmdRead, sizeof(readVal), &readVal); -MipiDsiSetHsMode(g_handle); +MipiDsiSetLpMode(mipiDsiHandle); +ret = MipiDsiRx(mipiDsiHandle, cmdRead, sizeof(readVal), &readVal); +MipiDsiSetHsMode(mipiDsiHandle); if (ret != HDF_SUCCESS) { HDF_LOGE("%s: MipiDsiRx fail! ret=%d\n", __func__, ret); HdfFree(cmdRead->payload); @@ -463,13 +463,13 @@ void PalMipiDsiTestSample(void) { uint8_t chnId; int32_t ret; - DevHandle handle = NULL; + DevHandle mipiDsiHandle = NULL; /* Device channel ID */ chnId = 0; /* Obtain the MIPI DSI device handle based on a specified channel ID. */ - handle = MipiDsiOpen(chnId); - if (handle == NULL) { + mipiDsiHandle = MipiDsiOpen(chnId); + if (mipiDsiHandle == NULL) { HDF_LOGE("MipiDsiOpen: failed!\n"); return; } @@ -490,7 +490,7 @@ void PalMipiDsiTestSample(void) cfg.timingInfo.vfpLines = 120; cfg.timingInfo.xResPixels = 1342; /* Set MIPI DSI configuration parameters. */ - ret = MipiDsiSetCfg(g_handle, &cfg); + ret = MipiDsiSetCfg(mipiDsiHandle, &cfg); if (ret != 0) { HDF_LOGE("%s: SetMipiCfg fail! ret=%d\n", __func__, ret); return; @@ -533,9 +533,9 @@ void PalMipiDsiTestSample(void) return; } *(cmdRead->payload) = DDIC_REG_STATUS; - MipiDsiSetLpMode(g_handle); - ret = MipiDsiRx(g_handle, cmdRead, sizeof(readVal), &readVal); - MipiDsiSetHsMode(g_handle); + MipiDsiSetLpMode(mipiDsiHandle); + ret = MipiDsiRx(mipiDsiHandle, cmdRead, sizeof(readVal), &readVal); + MipiDsiSetHsMode(mipiDsiHandle); if (ret != HDF_SUCCESS) { HDF_LOGE("%s: MipiDsiRx fail! ret=%d\n", __func__, ret); HdfFree(cmdRead->payload); diff --git a/en/device-dev/driver/figures/CSI_TX-RX_interface.png b/en/device-dev/driver/figures/CSI_TX-RX_interface.png new file mode 100644 index 0000000000000000000000000000000000000000..dd7ba3d83aa7ba505b4907e61f4712c413851e2d GIT binary patch literal 31200 zcmeFZcU03|w=Nn{KtMpG2?(et2nZ-G0#XE}H>uK9dM^P&3m^z63aIqndy^Jw-~|+< zh0q~^AkqmTv?M|RZ+O4&oW0N9r;Ks-y?g(2Gazf^mywmVW`1iv&wS=w>%G3N8a*v1 zEdT(Z*HC|I003Of0{|$PE>n@O7~Mfkk(&!312ttp4gAI?`Nbv2Cpu36fVu>_lUJ1F z*EC-0W*`87;oJHDg=Ap{E&w3VPvhwmqX28{LZGj)aRl*nQO7c&a&e~ltZZsw^uXw* zI@NsCUgB_)xAraPw-^Z6iMo{j1be&(bx&x;?u}$&~awRzt(d z{qwcEG*0SO>sb8#nTEDM&NHrGz&H?`8|3NZsjgdsE8QA|t#3=9?HvE?px5V>B5#og z2LK?`n3ck$?Ay+cJ^yU!PyiZZcu$MEpl+6>N;iM%TtJvTet-oYA1+V)0zm-k+sII0 z%Z0|UKW9QO0>5Qm0XQ)R^YTB4#2c{7~iybXB*IJY9;cf@~1 z2TG~?H4c|3Xw&*Xf?*m==nxF<`? zo(Yh5$&(6_r|2ehtGk1oMujA4*<%rMg|kr;XA&eK_ht5g3gBc)p12abLAi0FkMY;D zA|j`IzR%RnRkkYA6*GlEpLkjynm|B!2@}~IBSY!c%=GjwPA^Kw&_zX!zOB=fOoV)q zMwGX)%cwLkh#{-fl+~YCh~UyDVGq+Z_50>Q?p%#*x^NE>pGOYGCL`BbcnoB0lizdZ zTORGseNG8?_c5 zkSAUXG|?3qn-Ww}Gq%JqLn6VKHlr6T`2ceNxo}xfXb4lD?h~l2?x$#>`^x;L)Y#{OHj;fIO@7Nyg(T`8%Fn zv662MjrYlHQAcn@%Lu%_zBYgtdQh7PG5|#kF?8s*@_(Pj7#2=D=2Yh`Vmd$94}y*U!tua+bRi!s2D9rQP~mcIG?e3irM)uEA|A-a+(qYs9?Zrnd<#w~2DC z5cu=l&Ygxt!fD;D+IoY+nK|@}gBLR`ivFir5$`~d@%xSh;jI&?KWKr|112;6;#>_t zIPdvQI`daD(&ClM(Um~V;_D~-o)AGpy znh6->K|*YDeWjd?V^lNak~@Q?8I!T9K(n)+eY`{NWnAwe%wK*ly0o*Bqg$V?4i^lg zoMFGz%$`30I;ipQ+YbJ&S*zc3FeBMalwKQq`pNfupq>yx`ZVWleB~|QlY#An4ZrSN z&1;jWPpO%ef87jTF1^Hi@o7#M!e4XMuHOz#VhK|)KarpTIDxDr!ZQ>n0c}j7>lWV+ zzszxB<4Y$ueg+Ia6&l4<9eleK;a9luDs8Q+K`X;dwCAvH$47>s$eJ4nGm#z+cq0tf zbwcW9KDZ4v6Gtt){w@21nO4`uBm%-K-~LUzt^@nb>3II*w5%gO_(u*8u`HZ& zzm&f42iWo;$HGeRH3d-+OSi{J(X1`>l}{V#Lb%_4(L^EV93KaZ-p0kEG#bYZJRaoWo}a& z{GM_#-zM>n>ISDFZp5JLRL@_Vydilhg1d!%8cB=E;k+sK{JtYFbQ?vQGG{Fz~rVStP1puctVeJ)@+I1za zZp(CP%(Qqo{dQ$tgPNR5tZ6HI)Ny68Y6Go3&Nda zLJSMqB}%RST&BLbC}C~MDWkS*Em(>C3jiyb3Al2K7ihuof8scvW~GX z2wJQfGiTqf;pB%S?V@eCXEaI(S zCsB*F>PxObknPaj19a){1E#)qDOn;q}Cv` zdn8uLg)CFj!G?>aXgX10GdIEH%H1ZhwDY(&u|9<@h*E5D@-?6stCN zkrtpd^T0gc^BoPnNc{DE**Zl3E)75_n51y04p&fDR~8>EXSoAK#^@PiDg zN|+eVAJPDUN;4kiXlD0&VdKiSg-u%~fNG}~$_>%Rz902jdLfUMbn!Ftp)kj1=a@ z*zd&Q5-7JRHWVwu$zxvHFkJq_e)}p5IH$q$iG$7jemSnNaxm+|u0L}sU92cCINc%P zZqA))F13UHx#1uc+@4o*wz(?-C2VR3cdV9EbjfHpQlG$qcI72749N%6sGem?fUk9< zSsN&`xYhnPe9pgJuiK}0gw)wZx%x}1X5sZB@Zex-xHaB#W{uSWRfqE|%pFLn?b_?) zzdGm9z&PPA{DIWKQR_b4%A^D#oW5CJ&||@yLY7YfbAv(Hj8voLPRZ@Bsa(p*VE8BM ztT0#fBKz5!+J(|lI8uPIOfSOqO6Qz{rRxX28Q1B$;3tz_8Eepmv?Kc#qA0`{Ivnht zZXfIUuBIh1X;^`3&fRT+8(m`vH@f}asOFuh=QFX1dRymESlnHr^__OKI9AO1B>@#2 zNVw~6n@Ahw-gOWvy(o>@zML02^kYmh zNRPY8)i0zOvLC(^IKp+jj}$NMVTAm8l&23whK+V|98WH1CVI9hzEjlmwKzRJ_KG77 zjoYsEKgZBl3#7aES5!}S$?5G&j$4%cAiX^-6p0i5S#q~7;q$R59d=zFE!`BX7tyy8 znw=m6ElA(t{f-b9kxjWXjZzoyPyZDZb`~A$mdrx z;GP^vG*>KDYK=50{@q~l54wjwm1WLD<&9j+Cy|X{&hMMWt9D~OQAjI5Aw$ry_}E&l zhO~}uM07?kHoqj5tTX{7>uco%1$C;s?kc7_(m&6;cL}EZ*PZ5dZN|A%o&U;(|>HSIkG>Gxs}2&*k&Fnd`G1 zm-evK$&QNh8ZM}Z%3&V|8~>n};1Avo4*TthjUrjX1i#GnUk2(58N>rc1P;`865py; z{AD(JAC%?V1dbwYnkKPvYhA;{B~N;n)LS3)uPYF1-Y(+2<4FCZ+U=r$+vB$aDp$}^ zUJ%EQsMB6VE#cMvL>N!e6gPb?I7 zydJ?V`gQuGM@nY$X3iZ#-D<>)*nD2Ke~Zho{xwsr_`B)&KJ~3f7GKeKiU|tqo4AFi z80Yp=ijx$HploQBZ`ZAZl`K}KUWdEl$iH%$(0IWrIB*Cr&i1N>kgAE20|qiJ{Aa81i;* zG1zZD1eyGj^DEx}Ff|XgwPz`RSuJ>g>~C|7D!&r8!@yByCc$^6AN$mNGgYz1uo8x0 z-}hY}1{&EBn(jQZoQlr{=N5UfM&%|+nh6Pv+$PSVZ(Pb>aqqJ)>KGe`Cf6c*;qw-W4_{|f;C|+n!W}mk zYS4d8q#WO;`RkEIBl=F$287VK8hQbHyELIdF(AxTF8iajRj_bJew%Qq9H=q0G(EF$ zPC#hIFDs}w2#c6qOL679Xc~m7L|A)*yqm%3x1;ki_0Ro&4$@ZJ-WM}?nt6B4(+cR^ zP}DZ8_I+(WxO*oPtGC6sZnlixu^Tc=o$zqJbJ&^e{HIcV5i)A{3)7X(~EWv6qkM&RGyK{z~gYG{1P zVF*X%HsxnZeh*gsBI0PN+Fo3@OJX}Z3+4AjuDXnM#v48PYAVyBxAxc*4MI`|@8bV^nJ94MO4#Sd(*99w zc1MrmtcIuD9g9F$#c6fVS+!4Ao-5vSc-556S7+f1%pD)h-`WxCo>5i#>>%0BmK|}r zglMog*z3BgPye;M<#_4oZEvU-Y(Vprd_(MoUg)fRT)W|Kzbgy3WMvs1J1)ZcqQ+N4 z{K?$AapB!dU;9S04%1f)1tVX6i34li&6j?|snxGWn9qB>?+skM9beu*x`A6$3 zh6sCQI)tu%#zVH(5eCt2wA`+Hngoj8N(pi3@m>jOEbi!dJP|Not7P5=q}-?=xZ*yw zXDt-~Yn-++hV6!$igy(r+1USD@S8sMK!`IRXI$QOV*V%3+~5&fq+d*OBy)LzPsTaK zV-;$`)a+bgvaP|g5b+nh1s((z)%26;l2P$fV-KFGsWBC7{)-YJLfOUk<1#%s?mAW0 zQ`}>7Ub0GrxZ7%zel2u`O|nx|yfguLwz(3-`e=3A%3(o6_9$H_OF)K}H8at5@XC13 z&+3mEmZEjD5IO~_CKvtTv279I?DjL&Fzgk8FE9M+T&^0!=O%N7BKFh-vW~RDLq)b) zaA8b;y!HA#Y`T4*TF@5f(r&tgh4k1=iMIt5m&DNGjdOceQe43@4aUE=lV}Frf8!qj z+7dqtIc>SBDt{4~nXcElEMGQ&?rcej6uKD#<*K0X-UjA3dtwVY}_pPY>XZ zRSW|fPP`!uoSgdq@h8o9I@4m?r6)wO?SyG-oHy6)aA>AbvIy*n1-QNW%}xe#{knTp z3pC)3f-G0-g80<7bzU`5y5?mTE zC%Q`rIDg@f_75`^k8FI7&tBBmzv8#RwKEv?InKe1S|HC1e!c1PQQuTcPCE> zlgOGsUg_fnb3$^gM=CdDF6C?53-|P1>cL1%eDFYo;(~`2g`fwKxqU4voXVI4bGXwa zeeN*fV~XhdkwftBc{l62MHy3%qo=vIrTjiV8S6*R`(tjgnMbL*7uX)Z*qN0$oX%<^M}DRldTs3 z-;CWcBrjN7VEa+<_K1%ZvH82xj%T#MW>;4#Os~6(y1ZE}tIKQ({gEHh`Jo{zhF}GX zSeFP5zMH!RVi+xE*>)L^Hnst znHdXUne{E7Ijky=>$X2u?8S;dw$y^Ry7kr?yQnf&0kYNs3~cjwxs3BaK6@LPVQE>E zb;UEH*GLn#;3(z4pnI>EUsIGA(Kv&-hIjw~dyvMyX(F1=Fl;()W-JVt zNkV;@U;Jovc4mF15LJxi@ji1%pV7&Oq@ElVL1vNy+*{WY_|kK`j7HV|B|PF_$S$Ow z>?gse;^*1;!et4VUa1{1&4hI8<}+98)U!DtOpijlnERyoivKF_=?miUFo+*w)X}yl z@C=f=nKRSjgBB1)!upejOwh;#DKZz|>|=#~#F{MD9<*bVs5@5ARGvvJ@QQ<59q!Cq zOOSn0h=+3jDUvH6qIZAnq3UIKqN4Kp!^Q<fzAQ-thitxc2EB6tg&vF%B40rFCN1~vU68-FMC%-lzTilwce^_WBY32`OUBm5*VpJeU33%!0}lGgYK zqtossTw*dJ024Xbpt#Lszaz-A36q%{Oy5;^dVF-0##72AK&cq_aJ55EI78Zi5-#nS zo*UnUZ0|X>6EZ9J9GzP6`5acYa}Y0QTeQ!Ax9jX_4@xTe=~}|Pz!NE(fZW+x+FmYM zFI)toaTWv#+zxCGbK~(6rX0E?L87tl(OWj~UA{`3Z)J6K!GRKSdaChfV}S-Gr^Fy| z#E|9s*)20Ji}!CAdvU~;KDp_~R_s}9B%Vg2Se(@%dBxqih9};fJi9mX$6sjne=v!% z5BBqh|BFN{6B4YErH2F$#Jbep0o@olIceGmxfF9Pb(1U-KdMlkX-7hQ|7j4IhK~9R zev2?1g!T|OmC9ujVY}vuFp)D7cPLYBzswCDF4fHkOh|W@pH&j8?w(b6cIdtR;`nE_ z%14+o_;VXENBWPmrTG3K@wq^y)S{zdYbSIVWkb~U^8bM_Hymp;3D7lm!C7seI}3IT zn`jhojolek@(*x%e`_~o+wjY^rrr#f1VpFSM}k!>wtXWPUlh;xKDR3+C*dbGE&Rd! zqh3$BAd8Oxm%9f;DPOgd&ziv_en!xOk6i)O3HOrD+g|0|3Yokq}iBiZ|Zw5A+TR z$X71gkxUTe5OMzJEHI6@4B2?Q(6a~wcM1BmRfb3fQi(#y6n7}fcCBh7A7Mi6{((uU z8u5uG*unv~;|{m_H81MAZrJ@!oWL)#)8uDdF@IL1;FA-h=%;SHo7jXXWrc(lDKM+b zcIRz7?W;&4pRRaioA$2r2LS8sijOy!h}7}mFy~QGL=5`H=^Ac0r8+BrNwMg&?Fp8h z-4n|G2IUG!QMGL3zM;l@ghmmi9;I|rUZ`%hb)O>2{K`t2TjqVq$wmxZuc7}g*Y~qA z1qKF$uZ0-7an0=*U3U0)PJJxvTy>2SkDQ~`b;$xQv(ID7%Mow+=J7p_YakK!qh_*rU95Pb#b3W$UTv9m9>++L&D zc6hd!J%pxc9X}C&v@Q0z`Ro)<`OP26zGNe06E&){(K6C{G<=c=tlfJky~wvtmepS3 zA_C=17SDPv;fC3W%sdG&W~4m4v~}lt7?FKMlojJpM@1Xo}2o^A)hhFpO2o1V-h;_kyWG|MCux}TOV;p zW}W|a*EajHZqABv$%vEhM|6YT3JZ#^|KK*7S?r)CB%vwex@__=5wE!Fva+mYi<00;Q2v0yh$u@@1{8 zYyO#iU0GdC|Eu2SO{1?TE#mW7rwVD-^l>bYzNA1vr6ZrD=c4R!rFLX_nOmDv;@?feQJ0)U6f(;>m+c>>C}|Bj^Al=lKir<1gU9&%ciO z>yG&El$prdL4{x%??XT?)dV(r;vlNu%iX%pB$=j@OSpW$$+c-NGxd=DPCspR;gK!5 zuZ?TiT&Rgf@gQq&6ETU%xj=h?1q(M(a{a)*QP{9k-DPE8F$Yt!z`0unmYDMZ0C|O* zo!H!ea#1xN>NaMId&rscIcv(KQZCbwsxO6qmLA8N+&}Q3vo1N+n%Ux7Z~g2NNX{0= zM-v#^9#S|puQ7yOW?cTABk_^XG7vjs?RktgG#2`BkIM>3|3QQtNGp~Jlo^3x?!5VVkKzywsSrhhy5 zvz)w7i^il(11jE}ocM3-^gy4zzfpj>vKcoEMtyKuQ_}&Z?n{DqKJueXpz^+vgj_!x zh>_cRO!Js;`@P?tX{Tg;n81-ud!do5(sC@|cO-XTo&WbxobjyM_mcW|_qZ&`0zhw* z|Av^IhDr%q`4ZJnAKO)XLcg~{*Unew` zyI#wX^ORBH@j9yx46|ubX26mzZb|%={_E0I8OWg-wiccClN^bdGh=h}#IfM$!yqwi zrxtu;izx7;BH61%Sp=XupRaTh((YaH!c6#soAm7wJ&7{fJVzxja zCxC@eQ? zXxlrY1^}wV33@D^T^~#W*8igF|0!9k!xGprlGE;hGMO8+;8IWn)_k=$5fqs6f9}O= z$bpY$hy)nX0^ZL*68t@2?q3!ocE@NgO|vkd$doCK)`2V> z#`E*3{n>a-=BdH3_8;~&pg-YNI!5_-L1@*Agafq-?cD6fT%>XNK7`0P8K8BSzCevDumz7# zAwB}vxmhkWw#zojh5(z=Jx1#vgfM?WiLVI8A*dgJaLrF=soF>%kDWwGTlD^1DLr z1lm7rwzG>;horXV()K;3?Z`X7$(XRY4w4Utfpef#7nIO7Y=Orc08%GP!TDTaOMft4 z?lu@N4H^r%{kd1fdI4uGXV$Lh+YkL#pDZD1DfkQxnGPM>U;9PQbXZ>H?MTdjH0!ZL5B?7Y>ai=WpD;&pJW6NqVatQPIO`ehl1GP7s;zyqO?7a>B+vVW}^j*LDAGU-OH9 zE~BBlemh@WEmr5*18y$4RoLa-SP2@><=E8`VLY;MW60j3fZZ=_||$v}FSoQu!PPJfUrrzQY1 zeV^__iGi(G|G3lxec>MB?t29Q@V$0kC`IxPx=J@0`uU^MWk7f?xeOgC{Jc4DQHc=?aFnKWyu1Gm_4{5bQF<;#Au#Mqlwl2Ju!0$2oSXAF(2?q3O?!q0{uU zdUhf%9kPZzSQ_yxdm)$(;-Jl!4#}W^sH`I&6Lf)?n{O!qU)0D|alQu0=Ehruyc#a7 z&bU)`1FRgQl}Y2}Um^WS^s z8b{Ty_t%5Cn47OvJPw-CBV-?m3cQw~ac|XO8`SiXD8V;K za6YsIeond1Tq!lZbp3kgnZz0s&+GGCPR~U47~H!?iV|>>>HH=I4GKcA-waJ0|* z({CNBx1>(E3+ryl9Lh%7Uvr7`b83uTo|l<9bz%3+fI%gHKmO6~FZq0y8gP^CyjzWr zDX{ef`mB5$q7nRR0TaslPA&_oI zuu6e-?fnRg;fHscv?a`Kxm637B@!a=6HUN?NWOJTVqB;0WKLx4JFc4-0EmzOi!zm0 zjCr7ee^&`fwc(k)8#+EbB}FoW`wR@ z4lo4xvNh9>%!Hlw|Jk$7hn*7Vb2s{^b4_lFEM!vT@tp@-09s#`VwKL)eXT#MFlBI3 z>Jhl2vXU>HB3s|uIwuDe`qX*zQcir{2K*Lh-HH4`sO1v5ZkA~lFnHDS94Y>DOItUT z2YH9axdUN*Jhq1>O+Z6-{B+TeK*HX;!R)}8CZXSL-RW1mMcLcY@A`}AEAX2BZfn=6 zXO{z>+SA7|TmyvowMm-VQa_z81v~YBmu+pDNJSoDveJ&e%Nm<{u65N)HLo~nZ}?RO z3?chNvX4cr1G~~sd7X%1oeC$S0UdzzAP#Z2<$}+E-21a6)KTx@xD4*@ji%agW^NNy{x|8Fc80PgryDxl8ae zXs=w*nrMTi7gDaWX@cr8v*!8;YWis!Nx4=hr$D8f0;fIIF<`5FYg|?mH#XF4%|Dn!7UUmbdX_SROy?<=}R(bVZ~_|-CtEO5(QnN8s>ZSHJ*GENT}JBa)> zLMIlyT+4QEhHABfuA-^mWiXZZvF+AgCufK&?p-+dN;MAqXY{S1=NGF*`DOg{_YExX zVxwiUF79DC{3F@P_%zvsF3Gzhb-KFpnsd{C!o=b7HPr5m1;l#4tk0@9d}7wl6c#0Y zf?Vg`A~oG*VSu<)vr%(1%Na8>cV?RnA5 zVi`fT=uFR;p^PARwf8|buQK9vv#-mGxyLS}glx5-}GvTq9Qm%~2^ z!76CE?I!Am`$XhOylU6w@pK09=Y+Q5r_pGT>EYG+cj!U&8MFr{KlI^4?Td5^8u8tQ z!z>b~+2uRCrgBC=mpvNJN3#$@WK}4W6jwe-C8$A zdY*9iMrt2f{^!2F1!-=0?7jq0H9rVq=`IY&bk<9W3qEO;lM%Xha z(nSs2eJG#NRQvc>DE-i$nk4WSQZLvxf7lgP>OSDse3(tOI=mnBOhrCxVBh1$;qX(U z;Q=V2vTSVED%Y|dfi?4s?}a=*7`jg(5WYgsS^Vk(R}UI7Zoy-0_B6o(TS?b=AbfEA zn_}cos?byn#S2foB;M}>$aIZm!OAI^M{z1e(QUH$_+5U7qGjItZ4X~N-qAB5Q~6+< zWe=}Wg>327Z28tkjdpDS1J)$M-n|yf=pkYhZ+6!6UCi(J6sVoTU7ATvnV}HPtB~OZ z0kn}TqY<0wpV&CfT~(aEHjfb|qhi*hYfgQ6x@+y~TgYA zA&q{6k-~~}_+#VhJ#y!3^i#Q6wRWvq%~xV2-b&FZikQ`gpgtTQiNgZt-~M(|qf3b%L;&IYzW)j|?qU{5I?!J}bk= zR#~U&QFH4fhEs)<^j`x!G8z#_NeTwb&MH!*$y@SQy>9>zui*%!4*DzdvSQ21^c`w4BX9xl-?Cn~2|KZ9pEV&$GPW#UFPCFCO`Ru9BYFLlL^SOl z==%Bjm5iwhU)gXYS0^9N6ZkYGy02kt{|#Z<7UucS=ZXKRyNY}@R}<_v<2%sL6IyF6 z^&^2@B1vKc@luxXg(pWdT&$G;ETBQ#wSvO z(C-W*T$R~2W8oJO9osPsPV41#`9WLkQ-xAzYihm~H45d7!!9=5wcd#{mB=K$?@LEy zfJ*fXxkr`POTGg)#68SIp13+@&x{Xn88Rdf40b{ye0){KP8E)Rxn;+R@lz_ib5mw3}L|z1q`EMlN<#YLQ2NXKrF72kd#g&g-}xL4W;&fd^OY( zR;ua2SmrX)d*wT2TfS%4>GTnJqC`i8t{~lPtGJ=fci@t~VN{lasC-C453K0tTsuBh zEwt39q4Nyd>`S26?DELZA?0a${(1Fwe1bw2a$ol-?G}uKh(#2jCj9n}T1#@o56UV4 zzE|H+75=xac$f0zlNgS22E|TOiL@hiz*|8gn7o`$MJ;}y>Z2;-izS+R#?FN5F;EtI zga+rd3(e-75&n54PDEC}Y#pd)n2=TwpSBO3Ic!3AyYo!DG-OAT-E&iBDaNzdOvrsU zFZ;v7&C0Dfhq-=ZrqZd@KZlef;v}~Afmbu9ku_~wLO9lN_^(0XT3?C{XyJNNPR@>w zpQrMnc`dQ=*O^F`bD&q;FE@=3ORo zn$dDkrbR6t?|Ek@faJHnva)7K-Emly{ahdys0E+v6u6hw*7M+ z{t2#l{vtl*9|54m5YU)bDR^tHq4XfwW$veQu*!$n*hbL0ZuNrqNBN+Do?t;OzET zPd^rDI_cb2J&+|YaKyv8zhg-&&7%|nBeO?Zwh}rQw|;*>hU|!vllPOIdvdGNQ#G1R zCqGy7^IK|-rOsT~09J|gInzmkhDL^lg&?nfsAj z2U|{+54nry1q%F5{8d4(hj30MCwcbfMrmtTzAu<}>stb_oe_}no-X+-N0NLdk77A3=~0^o%~f=@pxSafGEaeX7mh8b={xu`UZ=E zjM{>$*hB}x!S`$*Ej21Uz9U^|%4?`+yydwT*s-;7n6k0IchYDF+n-RJh#Ec0yP`xQ zhu9m9WYmt?p$Jq%Kj7vH)o&lnF|vLDVK|H9w;@H7w=W@cwqZ(hJ2z&2KIi23?1a(n z!w*3@%2%QcBS2z6+T_uk(UUQOoHEIxyz3LYW_vhHrrQ78s_Q+`Y&|rYP@>{zwSq zRib>cVhc`3-Y-ly^?E2>p6xQHeqQ8HPJJ)>dx*f*)z!^btXe_Mg=eHC@*B3lIRCNJ z)$>2H)747($kvQAamE7t^zmA!&l7s|2~@xH+rnCfEqxqxc{q6c6DQJ#8sO_xss)nt zSMr4&?hYkac=pCF`8wA$j3lddNuc)lgR%k>xb>~JuK;$LF0d%2ewN34@=vy!M4^|_ zA9|&vaZJf~=VmJ*_Emk_$h-^|ltau~+!Val330*cJ}LhqGH^?|%=-8l-YKr@h$*|G zQg7>GJ<_z_b$$h3A-!to9dH%^!`pN7MqJqNBG0$2DwE9yfizoh^4;%CQn9bE_sq?^ zkv*o>)!dz&!h@J%Wn**M951e@)f2f&b=p{@JUUu2&TOa+OL|?VZKAtmHAs^+H54{m zrX@132XGQ53rSYyeV>$9L(bv{D`8$QU{4OH?4qK3=aw2$xWz3RkC~;if-Rr<|FHD> z?UuFw{GkK}m?4J=qErY|9_{d{(}_8ua0+vTXN~p6aZMGfF(#*^K<~YCn0MJK79+^w zzZg0id5)i0)T^X2U5Xh+-fHNw!q;sn1S>P9AAwKCxD+lV zwNkYKQpSCo%j3NQLi1Xeb6^%>fh%AkAO_L_J zz%icby~rTaCU3=_n@gqu>48Q%0NHo{TD?Q?XvT!-t)`w01xFdpWnP7)`048{=H5-@ z;=3_jalx>-l)Qm?dP7DRxAqn+8GzD_!?1eQT=+i#hr>}c0DF*+lwHdW!nHtj|!HB^8$k3I7~FSk6{QErj`_cUid+8{Dwt$gz-10ORUcbGzYRGN&w2#Hb--uqYVnKbZJ}AJqG!&92~ilKq{$kC9A^ zMGIa0LN{tYfmi4!>XxXRgzKBVcReMKkU*oYg(-p^j&jg{y@e{lptIwMAlef7deFvw z5Qvh0pxppP6LWzfKF?udaUuVWAB@%0b z4fU@0;#`6sgF4F{ZwEG;wO%@g?i7A^psR^!S4xOD}H**XCyEHT56x^3) z!vC%k7ZwxK8+BK_=0|@I$$0(-Gx_Q7?4rv5v^W6 z{bq|V{ip(|Y72vbnF0WkWSaw=*a^Wbh9rh(zE4v{tqf$rp_G6-@4HUU`~Ke_vEalm zA9VP0r`$@3Ja=PL({&gHAkX<<>Gt9N-7{Z(=|kx0$OAZ8B`25v4~H`-wf}T|(MHu7 zO$qo!OU|T_AAg_v@IPEX+b3`K{J+fW`Ud^mu*#i#dh0?$Sx0wn^#v!JsHiCOHsA7d z`v|_z79AOzy)foC(JN+JflfXC1*zuvT{hTRNh}w=6uv?}eZrSUrh&oPbnY1pE58GK zWNCZA^W5wUJq&5u=Q2!|%r)|h*X~QajAh8Mclvo@p*LN^vC(^36~8g2Qe0d-LN)f^ zBCNK}{~lq9w!VBp+6suv?696H38~Mr_sA)@_*M_Vef1oDeJ6g=nag21QgqR224uK9 z`f{JuDy=*l6;?VQZg-aZiN4|>1oN2^G2MAeuvlNz$&|j!{WLPv+#rA5(RlN{V2Ow3 zEhBym8R0`Mj`Gm6$8vZL&$e{O$gLAoA!AcL?4`dH|5vd>`BxP$n<3e262Fv>m+DCn;GK4&@ z=#0*r-w!9L5RSuta$*;{uJ_iEsIB~_jM2h??C;5@)|;0Q?rNig^70FrTMXTh>X~43 z?=a~2ZA{FTPDU8fgFeJBrVp=c`d8p-i%^I4*egBbw6--`NTcM;q|TyX5+mIVruutt zvNcIyBzLwY#N3V&G*AWl6{z!w@OHmO{euN@7I5r#nrI$s10649+c}BdxlzD0v}kC4 z%!+0KaCejI7s!W{6y6MnTJ``cdd;O?Rva27b4l9FTvi^@2N>SSVyv@|4eh_ zjF!H`#(i({AhWbQruj?BU`*p{@;MwQa#K@Nf}dW>1CTc4^^v`3I7Fp~;xacfD$14v zyI|uB`FHOyDPi&H|HQBfs*xG#%`o&qxcK;Z(K+3>hOuS6DCszqgt#mJQXz$v7-yCU zO<=|zpSoo2_v;+}$kPDaCA)%8^m$jhDG~1TELRdu9O8Wrqg*OsGu}n!3YvJ;5w4%; z8=Kuzxn-~YI{N~Ex6J(R7c{dfmD)y@O4$#xOifOf6%{>omc9Z-=;1PdMQc<#*3@5I z*Re`$NqHxfyP4c&Hz;6Om-f;;L;^Tv((pvQV$9oor-VU-VI<1CN%3ZNm<)^vJp`MX%4W>zNk-71g2A?q=~_rW=R z{DcZ_wIf=YHwL8rvNG5t$1|dlA1iA=E7T%pXpWg)4_#E+nnw?fFW5GDJ@2HcixUKlC#!K6A+FuZ+<3d@srf;O0JG$NC)JajV>cy}oY0pJ0W8#Y1}Yy1T|! zTo?7r!B%SnXu2dU+?$@KI3)0Zmwd3mlZUId(yJD;-#>Z(fj(sz=oN@hEIAh&>)PJ#}-9Bhy)$o(|VrJ0R zS(YgH;%xvo7r2{J_VP{y9r@4KIxsLW$b)fsTaE?IUo^jIrq7M#sA2WJ8fC} zcmHib;`gGG`fn%2NYO z=@1A-6p$KfFm#a`Iw43u6Ls&i_StKlbFpu}FBe=SKV~MGdH?MxFJc%uf^?~Bo`I#6 zTxRzJAj5&!yX?B}yE5NXFv9C>IV<0dPmVf@Fy?fM+ff;Fg2nvVMynx_Bm zKHg2=aNRh?ao&e|E`ah3J^yp>A#YJ)Uu4(wJdRMk{J_jCHJaZTy|WV?((=ks z&6xDrB%A-q!fQ(SQ}LMVeG0T@I@q|$XJ7t2or2_abyc0JryQzlJW>-O>3$+0;ssDu z?Y4H@%etlKUcOthmm>ld7g>&bAt`;RHA_&dtRx|53inZiz?dlUVO*7T!17c_oG_uv zB^^PUOYQCLji%}8xUt#$z!>wGItLuzk{P0*TNMMAMphoIx31_q4i1l#qr2+l=J9;} zu3WnFOER$!8-kJstr4f<2ER>!Sx?rg0T1x6{=-USih z^RHKO_j>)ki<~7Ej}!0+uKvC)tJ|hwHX%55FQuT$rT!`t(}jXB+lcwn)-#4Oun(hM zjN;H!Jimun5UVScT3s94V?R~9yzN}=$N+9B_iRR?gHp$O>3Jl|jl2b$+(Z7iW`uG1 zpUueju4Bl^7}oHJ>1e78R=@^d6k@kwN|bN1&g8P|B|6#otho8^FL=Sq4y_EzZO}p} zJISB3og#HlMLY4uo1-sgMJI=t+iEU$<}ogzT(ajUfD-;5RwqpT7OP-A@!H?DA_T-q z8ciwe&-Mw(w4c)1gp1_DR5jfKAL@#SGs{Lojc;9c1gWY2YC0l_cb+okTXiROt>jt+ zWiNsGczAldP*UX{En3W8@sJcUp{sYNoS-FSG|zRTzsh^l!1+C1 zE-^0yoh(%?HMMYMW##v0&Yc{-JdBJ>{~bCXWVu+l?Mz#s^C70)aXopFxnVq;&<$ym zC|87vn>T1~jXV5SDTtl=nfU%75Tz5$BZ2`$R;U^trZg! zT5U1V@i7`tP1Wr@^R^>%XLdG;*||E|+#J$*N$jb`sWn!R0aHh$hLhiq4BDYF6~l&p zzJD##4KE^Y{Ck;B7r+#8p-Psn@wm}Xp8RjHLJRKP;|Fl&-Bf{mOo^92f`JMfc>RCo zWk$K=|BW{pz@JNwD*icJ^7@5O2+w}F2R@r#S@*=WeB?G(R6->$0_sJi3HV`qXi?id zmUtQ+$>~?Ey$Pc?eKtJ9XXQh4k(D$hqpNP2hvkla!RIUH2Hx#Nvo6 z?Ccx3G@&LUv^<{sHRuxek5+PX7vp9F^&G!?jCx;c50R9W8;QsYNibrq_tGhKRMR(* z(!E<=6oIFdz)CwbICaWX7O?;(>~uwndiUO>dFwb-4Yvt`Pc6416)d`NRX44~R{}n5 zaI|o_w{`3b%Q4TjF)%WgyUlA4;PFVElR0A<1<0KR{rYq0vW$0GQtv(NbLy@S=3;ho zBtO%(x};9lhR;f=-*9ddhx^jUgCx%aZD?USMmq|l$Qn0BwEVgnR}@nsW*q}H+IkKQ z!$>nq@C&5?qvPeht)4W9KvmQ1SgYRBi`eE2`nru72mFU@{<(Qm%Us``2UI^M|22qz zk|Sw9N3-q3?p%vnl`u*`VpBM{sx~_rUD0LsuX7`7UwZ>oo_gb`0-CEl8c%Oz5Fi7=qZ~4K}VybZkGSd z1o4oxFG8C=(cR5VI! zm$SYF)x-TtkmbJo#uIQK0SE0hzOU*Wq=~jjcfZY0O@W2BdgrN&paX`#!5*zo3^Pki za)8Gwbfyr`4IT?Fs=d5-z3=@ODKYiibPSt&Gd3siVHj*0CEWDs7xfK!gAGV#3Lx+r zLPJKFuhNdi)}cc*`_1Cely#KHhucSB8N9K4V?>X?>@D)Mp?Ne>|!wEQ9bhS(!H_>iTz5!?t?MLfsWg;aHvml0hQZ7NPI)5$oUcs{Hg^Z4g1{@46W;DiI;+vE+iXs(Sn+NV3A?O>;M} zWIYak0XayAo=aO^Psz5-*6H_V9rFIN6I*l%dCzpr1B3pYK9RRd8_BY;xcVT0HK5OwFqqaSgo%ShsP z2R)a%V2fDGWI~P)J14fJYbzu;_n_gN-4C{% zp<@@>gE4briNahyPP(678?p2A>b>24Zwc=3z?aWSje33BE2*H4CCRqe<{9%>*cRn3AD!U2{5jmLQ&c7I$KwbWSB@D{v zf9c=p#`v>zuN}iQAv=7h1KAQKLdtC$&SE#CcG1)PKmqr_0H~S`1wd8*OeFrl6G_&e z5(#$guM$b=zbBF%aXwLy!x!2P`_oJ8nW9&D;G5lhBqh?w8sg){07pu_tio$5q!+>n zwZ_lPFPvEAW@Fu2>0fL-!3;W2|33yqs4RFoeqK%IkfaKMRtx#9Wm%5K7mA?IgGMRi z8oVB0oiM&#%&ozeCEE*zd0umH&KcqGj?C#`4F+0HBByGxNcOX)xZ`Y|xtzyWOMNdc*W> zX4-&n*<2IjvNHzyL=Sl}%jE%9>rbiVg*sD;-S$7gh4rbDcCJM% zWm88g{k+Z8qoTn=n~^L+8Zk2qm3bxQ6AGCgUw5opAe)tt&R4CkYywyIwud)0G?Jj3 z8tM#_ETFv;e^brlchI?FgXH@R={>zE)60x=CHmoNq}6JNNw9gEH0-q8BLM5@J~@p)umUNBv9WYqw+O(QD3 zo`Mehi9Xc0|G4qDQI-}BwKnDgGXcTe`g`H(XOUYfyW-GcRu(6`6uW!W`{epa27WsGh0H;6zA*rkaxk$0^Bcdc3IXy#uQ@Pudr&~!Y@{*$P@98k%v~M zz(TJ?u71&&rLRO=4-2}0Z24JmaUPC1|3S6h_{sfA6?llv;B}|g!i}5ZGV<2}@+V7ygjhKG;I7{cCF{jX0qvJM1Yne!coULJ{0 ztdlQQhUD_QEzN3nO3#D8x^rsS$g)6^L6TyWDSm!sGps`Msc4hvOfme#QyezhRc{gh z;TSMR0dhv@>iyj|TaKMc`B4e+lmHfM)17_Vfuk%1V=0vp$Zig-sKjl@BNjnYwGN!N`DJS}ImH;aPaLu;bRX zx&CNk{2}HnXqAFG{2L}wM|*1NC17O}@dB{2p@jOn|0E^+Jiz~D=^Xa2uw=z8qntK> z*bG3rCq*7k`7ikU8t47iMURMym>zC(9kw8!lgZ<*{%P!7J_bKk(g6_D zyEQevGzfR}=Q^NV(EsZVoawp5VK^(R3~r7E-H!vhpTIu<)g!yH=|?ufFJlYf^s`*O zBb=;lp{1{gfrF>xEjpjLGW9Dt^yTZqgoH>z5_Gy;qL)}FH!-`X#wz!29;Y{(Cb&VETCRCI_T2@VIUcD(xpZcxf4%Dp0tHCD&(Vd(V)?=}T@ z-z`!KZgPm%{gH;Qr5E!#K)=}LXctqf*tPsqPFwPZ=miBIy;gauNQUc{zH2ryFyXFQwtC6Hzv*|KW@bwll$Bq|3)ibjjvhG~2+S zUqR8KPh@XL-TXTNw?d?)q4-&!5x+OmlG#C3ip9{D(A4s_rT0Z{T5LNW?MV9OYv#(3fCl#sjELAC) zVbuuK__e3BA>R)g*bRtk>hd4-ZzAp#c)#+Ki@KXXCqK<%>91P-f`-k}Q*hatFd&r7|LqhsaDJTh(hjX|uze-OAYeICwq5U?nlZ;aw+2 zc(H;>!5&&00pCcAIc)5{*!3LhBi^K*=hNfs*dDu|x6yVk9xptT7{7`C%qa{?si7=2 zLdSD=ny%x+^a;s5tvMu{89iUek9UF!>$!RRiG#cGeq9>^JOZ(rTh-o{vs+?)BPZW% zm^06%R=-oliP|Mr-4^X;idlMnj3D+UxFGZNaaY)S zrzT^MSF1qw-_?&+^W+@UFM=>BX+F$W zX*ox{U0@--^!^#*oUoWrRz-0>D^k}yq}Ol1JmPSYR-o3T=(C;WH7TJlVw3N#!28qB z%SFzo!npmu%8F?v*eyDL3pK0h+)=2;)A8p_KAhS% z@9S1w#K8U64Tb=FcAqjNcbEtqgiV=jZGU-dh&B1> z@2Z$9S)`_!SLmtYxBi@7ZCS^7@7t@5z4*i%o`Gv$SXeqmDiuh35A6wAci)XT0Jf&o z=83DUn0tNn@ENlv)AT2f-QxxRd-pfRS_c;gf+PedZzy_U$ve6_iVt;c>jFZX!aVPHB#>F@zzaFymu>131MZ;~L z*g5_~?}5+Gv##}mY?I(*rY^`!&cIz2Z1buiD1aj1Eqi*SbBMTE=N&oa|KkO-W}&H% zYB`dt-yyv@*4l#GemEV@ee-M4g|DTZ3h#r7?rJLmC5jPRGBp9h4}$-w{%Jzid1j8lUF`It=zn8udViZ zQ|vN67+&sOyZbQW$&(_%+2*9m)r!Tnf-vS+Q}d_|_|^zvy0drrVn`Xj`oeos)8g2P z*;`NH8zS4Ah|Th*x7dJX@@qigCq)tF`92QE#S$H&zh>Q4*BBEhA23llTRZ<6HQr4w zyb`-o(ELUe-pzOLLim{bmk#&qCRScrL`y{@^J<5;i7S7U!#q1jo?Y{C$Q^~U`&>nz z?_WAQi2THX8Jp*PHEtL8c2B~D3#?K%zDmhZWYae&mx>xP={4Wk*RUU28!~~- z(#m_hMEUo3M9xWs#d8&Gy%IIBZznvw_v4YaXOV+3IlkRW^djFkuRvAVF;~(S=0bm- zZ5skxky~ntf7I0uet|eO)md+X_ezi6;4)ZzKB=&XFY#(uI+IZKAm;5NtH(H_D`#!m zzOu3#)O3v+bn~zE-fHP6OG(^Uz-q+i`^$ZXj7+2suzv;lbYvRcue}<8;SeQV{$;O6 z`QU%us{wa~BmP$wgZLfyc{RuwwQ0LL<9Q=Qq%!2|__JLvIU)mdCxl;0X_v_UR=iHP z{Rjw$0DA2J{$|?zWBayw^tKMMh5Y%vx)5gP*>l#zOCS&~in1JyLzk{6X5djt*cSwC zojgKO{UCnEWeeDNSfNX54s)b8*MX|-5(Ij$Q08Ax*dH_oDpTi9& z53PD*&v5xFHeI5AF!;(!+Z?mUZcCe`y0S~TQpKH=Gb1@@82 z4~?9I4(}Ebi_U{Q*t6%jYYu5V<0N*~yggAK$ch$`Wir1?$7@2XZxImRmlu& zhu4P5uLkwvwmTn}RVEvsG*M)M4~MmRjFAb;lB%UEaL&G#RA2wWQO_;CRv_?`5J3_w z%+S1}ilbe;$i3&Q=r{f5$DA=K1Z6aJ|@*A9Pk^Oga z$GRmF35j14Ep6vJS-#?7XgMwrJO5@_Qe6LCrD)DUOPKq6z-D}viXuw2csy-neqblx zf7Ns@&HIc1{<-|Zr|J{%CmVX=J<`I5hiU8bRUyLt@7R*YYbjCg#??fFF7hJ7)m!IE zVWpBaSe{aB#hnzb-DO8!f|y#;9!B`P$F~vIHrvlcb1KlCXF&d+lU!$ z@#^dt!fe#Y>JQr$dw~qc;Y-6`=euMwV8bIU`0vk}%+PFC%p4gcH%v3!&I`;h7EGjvVR3(B}i8+b9ZV5QBIezNLB=`g$F%oS{-M%m*~ z&!+RcRU_=I7M(cPF#ksthq=+xW$Jn{rGO{TTcB41x$$jx=VXyBR^mJVI04sA&Xvd- zAAeXB_Ufifm@Qz=Dsk6@F76QbX#aBVck4<|kuI`Wb{V#!7un1PL^=t9Wd5Glfh>me zU9}*wvtFNdM!%`vJu)xWlj2iEi|9q^Tb*90Rl78)H=vf~;&lsqinVpv)_ z+^Ik0;@EHBrA&}ghl6K`GKW)#UPZXE1LU%X+fAX20qqMRN-fXelQS_>Xw9lmql-WU?HA*aGINcqi*n6M^9|+Bh*fzNw{78gpX%+l>fH+=9}mIKj+lTd!_|C z?#8w5poVFH#%z7t@rU8Mx=v^G<2I4c{K){jFx}>8O5V-M)#!74-csDB6z^uKt}}6Y zk3Sn+eOY&_LMdv--EJV?v|iF=%CXD#oEw!J5+E%Ud?G8W4_wHW6P63p0O-0F%Tv!E z;O{(@J!!Fsh>?pRUJxwPQ&X5s9Br+D%+yWT`4}mN(=T?sSti5@9 zGUrg85%hLhh|sdX_LNZPJInTr-cUjz{$TpiT;EQDpA(+Ne;c3!q?%bRUlKQhJ{mI* zk#8EYHD%2cJc6)WP8N7J$c1GJ-lDd?G7#c6(jNu}%M51VW3CIp_(*03&A#m-6*1n% z%sSkB>Twx)-M1E^92i#srQE_OV&$!|KemKnSy%mhtz+KW>+x;LO%(WJ5;LRda`Yl@ zFUmg`mjL;WcB>rT@U9x-moeo+v?rRx=ea=X@D?EuI^>=D{zB8?5=(;Vpv@Sc1lvY8 z9m&|(S_Rkx0T?t4Y8j{U469d>Jx1SOyTh%MB@q;pmw_{`c;a5i&Ttjbd?H}}(mFKHfaC^0dU1la?;0`NFoYxq7TiMgU8%Vgk_AwlnVV0_ zQyJB%RG5ftwnG?E2tmirxqj3M3xoT`>^s60(!_s zBwGnw#UHB`vnZNI25f+ab)Ax+-Qd_vC;x2cHI4G=#e&TN)D!ZiR2sbx0aBT%{aLcKr-X3T!~RRjlktAScp<+7fq z-+-jMRcneCo8>}d1Eeg7*D5GkK zmhNHMJ^C~ zKs0Jfl>NRsEO!ZeUTU;@QuB#t_h@Phwr1_Xa#{&(=N6L2Ww$ypW;y;xlC1u1fKVk# zd)Q$UI+RlJIAEXQv}cLlZrde99zoisLbb2+Obb9kTZw8-Y8h)QgT=mxUC&$*xrQ9P zu#&~m*uWMom;vmHWazz?)&_Bc7SzyVESx)FZwifb%1=PmN+PZN;!gWlodaENpARp? z8`q^~R!XBwLP7ew3)D+{ZMB@S3UQaw-FIX-7Qjuuj&VE-{uy$W@jExfNT~ZcnaG8K z-O61or+N`xe}Y5MqUvzM_99GK1FF{69W$RwCnnzH%Dgj44P$X(zOw5@)~~)kc86Zp zN)h;4%E30|K2L8jGyBb;H7FBnXP9pFFJh^wDD!eqo`#|R6~&q{FxF| z9ki+|HR7F9jZw+ouxDT1-_>$HTj-lKLFg^2e?nYF&njYIiN(Oa2JFXSwR-OK@>X-) z3P*y8Vl^;!?Mvk3m2)&0F3L(5{&9EdWna@-_r6q0JU;r-tkL=Gqx!cN0FN7Q^Z1vp zGAT*eE|vXSx>u9)5i4D9^)@ca8)>_)v6d*w47!VhRG!f~viPv1zQuc$YQ|JB$ z4ULLKyNt&jmorCjpMNrHHAgk`b=)^oF&A>k18Z!auJ>{dynak858!Ju0WG8LqB))J zES5H)D+0JIdPw6KA^alNvJ27>?H7Wy^XH)>PCUqdJiK5lkre#vqvuvJP4SwCIb_GV&++z*-PACl53+xC~)*;k~`2j^Dfk37!;_q*g#I2CE0CyiQC3 zT`m1wF{=9~il}ob>;k_G(|w_Hcc@aN{)nYjhyT-^>(39w+K`=8*q~2Z@W*gMxwwp^ zHK)I>`HZM_Pe^+dUV*wC9}rD2t1WJCsj^!Ywe$Qc<5_SO_mn$U5nMip$1A`NSuo>CEga=lINusQ3y@^Ej>uwx{2{?a9;=I=yn8 zZ=b=5;U5!LiaEzSi=vH0bWjER6gl)fp^b_JJgYW)Kh_Wj+q0YF2gCkh3~A-%TnQ-1?XWfcOLCoVvO3|=8PIvG@o$>*O7HNq&(J2Ry^2wg+j?he0Ksv z%7%~}$z8`^x0cw?1&-U!IuOreZc*EBTymsxy9Cr=cQOF#pW4_2*#lu4xvcdQknXhX^5W;ubb^-sxcm5Fl~AiG>2TlwyYYalmhp58)EN_l!BGFsP6Z?wp)Pg?gClz zpfp!zFrv5W3SIiI|MOjx0*LamF`qC^Z`et+lBgOs7q(;*Ysu8xca0Uss_V$)AW1f5V&E$wJd~P%{@8dJg zt*t}A?4+TeOAGHqSYZUrAN>m$X}Typ>zyfvS-bm*cCwx=&w9A{ajpVtl;bE+^lawe zxD{lfN}#3tfMdsO)DLb2YY0H2ro2t5(*HB^=y4^0>K^`uSRj?ya*4;zdUfVgmn)a+ zp^x0;Nx=viG^J`BC=UK)0dl)b(X$Qi9n`qrE><5H2w8aAmsx#cW2A+`0_fbe^{-+tPbB%T%=N{ZdbQ7!G=6hBP! z(}EdHIeA~^$)QF0`G@4H>@4hWbxMBg7X{&1f$0Qra$`xn21FG=i5n6!%;L+%*WJyb ze03@1rCoOO-^0-_?9bkF>L2u6?!`uq7AC@W-QtfjxY_;-8a;&h-V#sBOI223yvGR_ zEq#3d6S4Uh@n7HO>-%ubV|nY=Of>?=s+N0i(qp>LQ#M--26v!N5eBM3*-KWs#wdi9 zMe}iHAsK(AY0IxEg!C1FQ2pL7Uc#u-WH(ryGn@I;Tt`=;M0z+o6s;7=$-~Fzz#STo z`TlkrrLh)s%iKA&q<$!`Z(#EE1EhTPP!mzH6eHdfFM=sO@NF=HQa>F|{KeY-FaAP^3h%VTYgZcVLr_uFRw~I*YWj?5+ zJ(V+->v?+kP_pv;GI!|AsklWzk|ODz&~wjHKwP zLOdmcje*X*ZE4 zC9=Fg;ue6+75=qQLF!TfcN1gUFA;WLh|S!UV=01EebKz5qdz1I65~QhBmwiLJW@h& zkgkb|Bip+&?xzuGfCGvaHtQ{E>>~%CIepq@whLuYGnGRxT}&m?%9vLD8L^ycvtSeW z_#?=`fqG`tq+tDy`v*1u0#;lD^bILedjoBBj%Jbis3D+Cwi zQ~aZu1qQr2lWiieOztmj_743%!ZFgXJ}TUkv_>x^ZcVi_j_O{png0Y zVJ0+oh6bqTn%4WpOS;=`0KdhfTOTegs8^5`<)gsWS^RhV&F6jH+n0+Cs;-SMeU&cO z2w`s~&d71UQsfu2ejn_6kTE8y)$JKbJ*NvK@#EKBas$FY2!1 z<{$)gA+)4}6T2Lrb-6*35MZ+rj9?+v()}vhQ**Vy$*O9=mLoDQfc{tz_ydIJzchIM z4?Wk8{%K2^faP!LTrmH#QN`#A4WzTO#9MMQvroS*SCt)?Vaw!A2MUSWtE3X zyUe3MCi;F&n12f|sZ!F1c2_k~`~p`2uO5n{nquLQ#spOW_g@&OiNl@$aD9V?dN5T|jzMdPhPDy@-k+MS7Lqr1uga6eCqY zIwS;Xp(mjS2!Rj0>;47bTKCRcGv_(K?DOnBbM~D5?6BABir4)V{Dy*0paxb;-xLc^dFe^c>u{7Gmo7QTFC#BkHGK@9cza zZ*p;d>An(jmFwfZiDkiF>)I!AmpQjO7pWm1t1stP$TNS8`P44RyuE4j`DU#QPZi_r zuW7p#*ie}fromZHM^6Xl;h}LB_(v6Xj&z1_#oC1~n5X+8_s_|lU)PT4iA?`c*3AbO zt^okgb6=_d13?Ng>Hh#Al2d}>AG#wCrThnk!bpOB~-dNy2kfr(m!cgjQ z$9rNh>SXhXY3WS*>^Fq6@2DaZ0?rIPXu}WB4NHTJFgTUrE*|s~6f+=#FDm9sbeyO} z_O%zoygYiC;L)+Mc)w#Dka(GQZ zqn193UY5^IHcmfz7e6em35o?4v67yQMT&lw97eouXp9tG{$GcK>#eqKV0HIIL!`3} z)|*J`n_pL#oUQ4$)NnYh%0K5#}|wA`|#Ld(A3#$(#$nUJffD{tpZO9iMm zX6o1lT{8SJ{h~1=<7xLQV8P#+z<)RBV&MXx+a8nBW%@kOT*yFw)Jl34dl*r$LGHsE zUsJ|Z!QsAa^z93#z_2CiR1tD<3$!QwkVoBe1-sC|(YrA^oE!aD;(l2|nR>;4zG0ud z2SZ@kEZlv~xyiHdZM~S#P%EFdCK(9VQ~CyMre{}DHCN%%s$k9C1vOuB5NU=~lC-?y zX#Ns%`d&)edT-~wiKT(BliWrUg8gRTY+*kqD?KKnQ#fo(&l?-O@z7j4ZGr{tdZSdO zIFxA#A7K<)qEhW@a0bF;y3KmJ&)TRAf*2&1cPEFu;oUwLdo20Y1JIvJ8|;4C@&gZV zBlY?~HCS7vQ5y6NHSYakthPFUm!!#d;yZgmcg-THwCwK3AqqBDtmj<{ewHK$nB?5Wj zM#e(f7QiQX=LgeL+}|6nTl>=21H}=hXVHiL840-+VKd|>@Hflbp@Fx(aXPyaL_>{> zD93$SqE`4>#WxIIJDA+lh7yZ1vkv7ZqPoI91FP=~RDI)Pb6W^AcFasy1P!8qFEmnZ zmRE3NT)V@KzymorWcFh&YYo_e(c!}zF;9l)$UCOPvo_0?7H-<7(?Tvx#1B(4 zd?Uvr>bn|wTtj`*t*Y|bJOc6UbBJiPxVP}KECAo#qQj}g(jShC`_ zQcX5!)YA~!5;hfcBw=7Qt*m5xE2e>czD2~~Yj=8O62#qy$F?F0oYSoIkm{>)_FW#U zgrh(?$eW2lODG1#F+b^AJQg06H(>2Hq9-hVN zqy+pq5;^VR=BJWm8jz~tUOC(HbkAX>FEChh^HMLs0*^YQ#BPqdg4_+etXL(lhvb0- z!h2?--p?+ViY+5sPV9fB&o%e+o*Jq5=A^|vA=jU%(-zidW;T6CC$i{$&vWTmNpE1k z-&(tv<=$1q+mc~1g766R+8KPn&LsKa_?3f)LhL41Z7ch#l~aJvN49F3>!>Ar7E zucPPqB>vcf{n0P;DnSWrinv@UnvuiO3c}G8%aC~G8>o3L)ppM1DaB|W-jg#WuaqE} zznLpEqgQ1@Ut~u5;__`TLax#w9B5!b9L*aXLS4rW_^K?G>+xF>MilWP8cQMh4FkI) zlO5-KQ>>y#zQ*4(J+jne0G)wc+;SV7imD}6jmDx4Z6TwHB2ZCmpziY0j+%^wg>)J% zA-uGdJ7jEtw;fO2Zdmt#clZwVZyZ$-$KE>mQ*CU8{MDxP@<6ScN}k?9!BaX7C|Z)F ztru`$%DhLaP`jRiu2Tj0{~?Ug#guHH&g$5%Hxn0lk?$}YeTxrI8uS-QlHg4v;nedvVLWaVPJz48N)!m}GghNc?S zo3@5yAw0(%DQWz5O5dLD;4z7jwZW<;8bG6?U(;T~tlS>^?Y1g~3Zy~xFkOryu!QKENq^IBy*ED|0(T3m(wk}`lxf*e+Ia6|mASF&2-`?nlF6@<Jz(DyX=;l|_P5Mo3Xc+r&41Oamk*+Gz2WG*Z28U$>+Ug=T)NXJ2`*!E z(mgVW#+dnnR1C4*Jilua>9VR1V-d(+FQ{3}$zO=@abPh%c& zhf-L&h3#UUBv`stWx+xAf?Y*4zvb19zw`!e=l80?Ci}u!g*$wd@%1Z5q*gYQs^~Ti zL86oS=qBw+$06UtI|N~7+Jo%9pk#~!_YE-o8Kozs=UaedeoB11&{fp|*ppM83g1AM zukhpRHAwq1ta~#9a^5qP^bTguaP}yLSBAA`^I>e2>RYBp_qEuQf$6$};;_U*=-$WO^vnY9ld0c7fX!dN%Og`DA&q=$NXn~MbP83YajeEErP zV1x!p7`t;$$qQh_fkV94ExuX-c2B(F}5aY zz~&DgRkT~(KfK-{r5PY9+nnN?AKE%pqZ)>mbyz}HRc=|na>-51yFTfvT4FnH>jU4V zZ}#3TV3YDxHT9ambkuKlx==9De#+~?`Ravy5|5lxNUC{+0_8FTNWdah4rjG=V8IgB zFX!tRSWmt`ZP+&7P%*b7$du{fV~0gv>n`uXQZY#;)vV1WyUJdc@f__AUJ`1Zd`Ln? zFc)`2{X@RO)+4D(9(fpa_s}d*nVdU+I{_y7FpS%m-MTF|xS2g*M?_&VxXY-XpLQug zb8ICg>wb-v>U)4Pq=-AuDP(xV|HThjY`DqQGlLD2;|3`fMaU z7EC8f@0aXnt-`!T#m?FbYoFnMscgHQ#C2MRO(=8g{_L(QU8BR3Hy#zDXAy6GAG3pc z2CittTwsguH|mOwz57P7MclrmY>8H)@MA7@=BPTOQo z`)hiQde&4|$2MZ%R#Dp&{^X5{HUSc`8*_z5txen1@tsSF5IJj?+!rCJOpU^PzWHPW zeuUOpK>lLxeqayIZQ|HaH|9}B96Y-&5^U*^nq3b@3!I$Ex?fqWX=&`}dV%u}VBIxu z7&}-2KTR%_LD`u4B-YGyx_&GC1IxvWSEl~pi1_j2A?djoL!1(Qe8Iy;MeJHw=BW_Q z_w;B5E7o=td9st#cFW0P4X2_3U9nV~O<)c19L_aZAllSBGHh-i_d}~a1dm5-=ltA_ zW;c(`ZJ+oVnLqNJ zGq&Bg%)k6}j=^9rRui5HcgbjT<@a&&HJy}PJyq!bPqSl3XI)Zpdt|WMU^&1AgWKbd z!JZ#Xp-*u1u557rr-coc$7O>7Ui+<1b|!JzgdtB8(j6h+6Qh__HZJ~@AWv4-_Mqgc zvd_CEQT?cEe!^RWR*-4#Aopp5aqTy{`OE|QK2k|D>rWo}WiHANedD}sXD(k~vU;pT zcC-k^o*3cDxC+Zt3;!W6lk>XF{ij`K@~zaY9T${n015rq6ElL+VuZM!jAou%o{54^ zK26OqnDmwqR($l9A01=pCx+9XN1SK3YT?x#7c?3TCCs*#r}5Nu`cH)cK{HyMcYgnE zbbWbxN^I-z2e)k&n2(G%aj>$$!OFm$o`o24(aciDdK3E)j(grax`cPkBL6oF)tcCzXt*8c@fv?*z#YWEvME$+WEQsm#Dun^(%1lw z+;`rlsPFMiFl_rT(~0|>3>OZ_`xcfVet?QTB(0YA85f@sPKy$ySPLM&2R%}R77O%5 zliSM7o44<~Y-AE|zuZ5i2(@%@^IUOd@VF-t99+~g`r|y=a}HH?T9L-Jp;H+*tcrhr zBmfin_=;9NZ=1Hgi)5QUxr_w{z8>3n%gX%4U2C%s*iA`_$w+9T*~hr#`TVpUHZ_&3 z|A_w?BpERf@EH8L@8n{Y(Nrfh$wbB3_5leR7MW|@jJx$7supbvy>!yAmx>Uh!{we0 zG*WlGOzEhuXx2J~kb(jC!o9VtK)V_WV$=D1$n?yt^QaV26JzDQo35a!cnwjF! zcj|O#42f2U|KPaV8en9{_#_U0II1wf&a0;G#f6$U4ftX=S7d_S$Z>ky;2-%RyVmuM zU@A^KFszAxl;^F!(Gl{QbUNFo>H5O>m<|tk#%fAj*EJwudKgiY;Xn*i;jFNG%Mi&K z@TcW3?NDh75JGT$mX&Q%*w|cbr&Q{l}CA^q>wF)I(`{3)cILHU_E-}AiQEp6SHAW^NN*4o2K4o)BOys$lJ>;|R zh;Q18n1I*Lvz@7y2NA?fMNc-WoBLy7Xsg+Zz~^uegJw5n=VYp4+zTJ!S+Nwd&TP*d zeJ+*a8>;4RxBWYl6Wa&RhRw3Y$lVUOm4fI8<&*RFOcR5_yfEbUdyJ5x3~gnz-HeBB zd0HHNRh-56XC^E0dxDOyp9iVBbOp6oX@EbTK4=l!OR`f7KaNI^n9E{9?Vl5fJ1V{z zG4;-~zBkRHZk#b(BTPu#fBM0!4rt+V31q5SM=eHJzTMw+?Xn__vC!w@zUB!k?xk5-L3cip@@NjX`^kMXV)3z@oyHd;KZgn%lI;rAP zrBqDNr6H4t|W7fvDh|4rM|BGxtl}TwX;XU(3bBP7v5`yYV)^zz?fk*!maqiL=X7~k%Uqr6Hzqkjes`B(oW<&^)cc1mVG z&xo6uT{igggu7HY@~?+6Qh{;Z3<*w=#QSui)>u23*biIdgbMe^Q*K87AqL&>Yqf^7 z9K1oj`CNY8z2R!;{6>9=NueQ}e4vDTf0Y>FvAiM!Sa88>_89>9`J9OBjV=iuX4sDq7N#VEm2N{R^0IeMJ+OK1U^Qb*I)Vq(3>Wb-9Lc=E9t8E78nN`r0%4 zG&Fy|&OxPXv7*6pdrxb!HU#H05~_A@d}qQ&8=nR!^LejBMI&$D^UffCoR=bz*Uczr z#xZ5(;G04HF#GE(N#7!|2^HLQG^zlGN|0|P9LA) zI)!-Vp~!@>;XJwd9gyi-VmUVZKc}L|_{+-Vv$ZoHodUQ1-8?lntt6JZ8qXAzXVbm! zc;!neV0UvA$8VBKZE4D=kq}w8aG(s)z+dJNJBoKFL;F;%%K{tm2d=@;czSEBKMB4F z{cD8Jq5ESw8yIQEW9KJ4A?@}FcWbd2e~|y#^fNt|l`!#Ls~kyOg1_3ej3llrj(=L+ zFYeQA)I780+L*Z?{r&V(c86Y-gY~a2%6Hq|JX(f&~~ZwV*vS(MD$MVcNaXk zc1cgnEP?ilLp7lwjd3VC$wOxeVO#||ik=+m3$d{dfp_0$VrGY;^Vb-J{3@7tcV(KyWZ9*m`(U|=WIgTT=Z_#u<46|P!t~)CXS5b2=U!fJ;X!-R z9BeLj^?KC{MqEKLtur=M1z-O{7r)ZyE#Lx!M}cVaiVc6rH&=G|KNa)kUDp% z(C8@!dBWw3dv1o86#DLY>?O2Td7)OK>O}5zz|3;+uJwDGgC1!ok3_nywzKt&n#z9L zuCn~Dw%P3Y$;sj3Y~`-~QskV+xoG#?>H+AKRMhZgZ}zT`5EIBvXixb4<} z7rI}le=sW zDu&JE-}Q8*e0Ns*YC}b;tU0u!rdmT|XVOK5Pu2L=LL_u{oN7U3T8aI#Zu8iIRA-Y4 zvc+aX%4zA{xg!8(ivMGM9u;QEq5*rT7%yD(L+dMokgMbUm!Ou_%C%W5F`X29A}%BY za^SNPi0om;wm76Y_jhH-n_i>3GjFVT*V$w-_WFgj+^yjLV*jtu~~dN&yIY9UuW9rRY;5!#8l_~gz* iBH8u-rCW9{=8V>>&IlQ+qw%kirzEc~SN`JdhyMXN$%~2r literal 0 HcmV?d00001 diff --git a/en/device-dev/driver/figures/process-of-using-MIPI-CSI.png b/en/device-dev/driver/figures/process-of-using-MIPI-CSI.png new file mode 100644 index 0000000000000000000000000000000000000000..433774c644171cc6eeb267db5d08990e13606178 GIT binary patch literal 7176 zcmb_>XH-*LyEW=jkDzb_F(6f{bm>h%L7H@FB27v}YUn-WC`vVS5=sK16zLs|fKj9e z0qH%`5+QU5Aq2<`=e~Em_s{*t_{P0I_I}nHWA8oY+Iv59u4g{+rpCJ0=x@=}(a~Mg z*L(Pwj_!gKZS42wCE9uR0Ya1(&ILTy)ugK$;9R9m{&0I>^ni}8Hkskr=^|}@#aGWJ zfR2u_DaOb_N5_HGfB3*6)L~=J4dN%#|M;hQPX5QaDyZ#-sp2OMH;(RXyE&Tn6H|!iOnqK+; zy7@ar;h02?+;{lVUasNjLAAOjJw=sTOtYSH=n$xu`BHWh-r-6`?7%O^r0kM&9rZf=4u>-{(4z5^fDpyeLAtj_`V8Fv8CG7C2x`h8 zHSnQ&QmcAuY{ZcwS9sJ?+-!KUM%FB3&mgQyqj+~>rz_{Q{R50zi{=c-hM`yYa2)cD zClKt!YNP~cc>%TAOelCZGj6{X&7EKiAgKz^C&XD|S}P&lJ5}WP$jD8eU1NyV=;sC) z(>pxv_40;XLs2lGU7778Gs)5Y<;O~b!oZ1-uPb}Il8y$1jupXDMDnHh3-qS06*|dt zx_dMJM#AFJP@a{|Aw(ozkx%K$;0f{~`LmxLN zfC@{18wQjHm^^CiX-rY3O-zv_rf${x_d&3BObjtrTs>pDhhd6h12F_vrB^l!xVMeq ztlRDmG?sUgmq^&OF%tFCJJA6b96l2T!IYgrsHr;V$OY3HY2@p)k z7)@FojJI%>7OX3zRuwtfAfQ6*xNx*xnw4h=jGT{UgAw)J=DRHfTAZOq-Bu%0A|5=m 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 lyH?Wwst@%)+