From ed5c3c8a1a173cf109cc6c509e76f7a9a94ac3d5 Mon Sep 17 00:00:00 2001 From: hjm <63528605@qq.com> Date: Tue, 25 Jun 2019 11:07:06 +0800 Subject: [PATCH 01/15] vnc --- public/react/src/modules/page/MainContent.js | 11 +- public/react/src/modules/page/VNCDisplay.js | 288 +++++++++---------- 2 files changed, 152 insertions(+), 147 deletions(-) diff --git a/public/react/src/modules/page/MainContent.js b/public/react/src/modules/page/MainContent.js index bb1cd11fc..3fcaa55fd 100644 --- a/public/react/src/modules/page/MainContent.js +++ b/public/react/src/modules/page/MainContent.js @@ -33,7 +33,7 @@ class MainContent extends Component { } render() { const { challenge, output_sets, onRunCodeTest, latest_output, record, st, readRepoTimeout, - onTestSetHeaderClick, loading, codeLoading, shixun} = this.props + onTestSetHeaderClick, loading, codeLoading, shixun, vnc_url} = this.props // if (output_sets && output_sets.test_sets) { // const test_sets_array = JSON.parse("[" + output_sets.test_sets + "]"); @@ -86,9 +86,11 @@ class MainContent extends Component {
*/} - {/* { showIframeContent && vnc_url ?+ + + + + {item.name} + + + {item.response===undefined?"":bytesToSize(item.size)} + + this.onAttachmentRemove(item.response===undefined?"":item.response.id&&item.response.id)}> +
+ ) + })} + +za)n^R^jJD2X7%Klv5Ii!}xlNX!+ zy^QqJ5IRxP{Cmv!LP6=jd@35LqZTZ%^>ZoIZ@9F+*CB4(JrPbhZc~cwo}8RlDBQs; z=sn2MSS;gqgjB1a?;ia9sbt2~F>LN_Vi|FgeqoC8r~3xZs$O_5mqsfdENO-E>&UJ=}4qxGmmqR$vJZnrLOi#>APisr5yF9J P+7+ESc_46{0yuNT5F{`A-~V( zHW$eClCU>*?o-UzTY3fc;f(}$&ivZTW~?hIJa54cC=JotN=l4jUsQq=>KW||Dfiu^ zD~GIltq2KdO>7#?bhJ+ffJ>N~kS=f5yvj!he#)ei{{Gx)gZYNd)f4j>^Ne{zWvaBs zkN&?nOc =6RXX+fu{N2?*B!w!Awki#uAApx5NKmh~KkHYv|x6 )!SMLM%D3RbzlNxP466Wr9SSr^ tG6$1ez$F`?G3qmYL<@u_nPzWhLh&Q?X$UzTW $^Tw+Jy zwfT<&YV2)HGsbK&VC{zS+!_;f9iv6|D6f#@;=w*3AI;jg_(KL(`SmtGX7U4_ec4o_ z{{%bQh;K~w`fEv4Nu=42t6^cM@-NJ#_ HaPQRD0ddH#%b^BE*1LQ|@)9iem6uu6Qsw|@@!By$($?%O|?igi%EHotR zt4MA3U-d0J$jIPrTP~N98t4&K&hSXslhOY!O~+w1_!r;y%`b#o+F$)3j=*mxsDqa^ z?OZP7zpJBi;r7dz>o}a*H6LSxZ+g6%8vi3OeS1r%fm@>YVWNz`1#{e?p4+R()wj8M z#{z;pS@Ch)YJB;Y+-R2MRe4%qHV`9nD?D<>-2$F+u0*Q!(`AgNG6$LzZg5h8*HpC< z^4}&>W$TwXUsp{%5q9dvGrztOobf9qG@ZF#YEjkTtN67DATs4omEeUQ2GenQcFXw- zLH8`2n2b{zK>~NQ%neWIyS89HI!9R4G*vvo4l45`k^L~p0z{7?YGoBR 5BiDvy?Yb0BzZj6M8K2p+v=D0+P@Lzd9!^03)8Yr;gdhyR;Y!_M}ysxw1Qx z5CfURC}Q^cqXT&~+0?Mh1mOy4@~D{n^BkX$XT>wDQf=W60&g_C^9RVxo}t=iz7Z}s z_l9!wH8wcq$0EdB?LvJ)cPFCzC$kkduVH3Y3(+$p5&wOIN1&r(UuC;G1y|gCZIk>H zeO$$uM+d|!@2TslCnDJKZusvkq!Uu;m6iZ1-WV@Xdhz_XbDF5uW94g8FcjWOSG>rsE2{2(y-*1 z3$S%PFJG!CrriF0tmP<507NFqfgQvzvB?qN2&IObj5RZBUouULOy4*IGp0;aFt2H{ z_(`EbrDUB43C7U4>(LL5yRDZp{0+pE6T@mYaudaU$u_6=3Rn%knXsYd~i%Eo5U2Mu{6`tG_n%B30m0q>EspAJLc#o zZ~yaXch&r$J1X8Ae5i|;*V2d^H=WsdO~DJ>b^X<*38L2~uR81*`SFTY^}0vW&%E>f zWS1}Sr>}pQx*kK>x7K#c>}PRiNbOoPK&^ F`=J$c7GaohP` zho%V61*wYYI#kkhRt{12j<-b1o^dNkfA#`Ueg7XXz&Ywi*EzpFV8n&1)!^?gFGl?? zac6wvCVMCjGuLUiQI;pIK80VMh4QOL!1p1zfr@oWy$?j*P5;|}v-W&WmQ!m$l@D$T z$x1N`Gj;#%XC{4)X)w00a=wF^sRl6X{BGFku)^S?tX0za-Vo&y6O+lD98Sw_@qu|A zSJnutw|P-=C5)rz9GIBpS{2vpLPg2}t@A>ITI%{mi{wy7yMa!)*Gebtz8@Rh+`+qy zWGPQ;x?@Zp-X-bb{~a&pKhjHo|DX58!77l~3pUb>R1gGabz+~5=~4E4hdYC~s(&|* zysDTzo-*teJSuykKer$%42RDOU7Dqmps7J?I`7=eTGY4=hnIa0+A1cZ@K){eB=6R) zM%PDgP)GHA(Ps?y95cDi$QR(92~ioJ)srg`W2bUM?qbCw$qv7}+9iSHP@VC^U p4d{W=M>RW$tia4H7v>V_QJ~(LkIK^D}r^42Htz zw#!>IwmSQY(TR`xb6pW6TV+w%Eu=U~?@Q%`T{Vg2scx_Xox?kWQ+LLH{8cDOgB4Tl zY%S7bttH4N|Mbu&VUaSRq1QzLjuK(&&GB3wOWn5V#Gyl^Kg|KTo-_ 3#L|(P#l{e4&m949 to_$J{mY&saqBY05vmE6F3HC{=R^&uq zJx$qCOMZp{Q-p0_fGvk~mQA2D3Kk wX+m#v-;mJoPt zd|~Y ;X)^8B~ts+rh9Q z>4~qa)TD4uHj1%&;UW25t5$vHv3a*5Oj0dDK{H*g+mASJkizjX_5?>~#Xt@VC0-tt z-3JW DZv{;dsu@e9d6bWRHc`QT73*mEZ(E5 zE&WQIg!6CZ_W}Ud=^V=Xu>g->rx!7PK!xl0yL%JD@tCt`N@wEQZE{>h#Xk+AbD7Mf zEk7AmQmqjen#@5}#GMIovDrm>b$vJ)&=wxQ*CeOxdWpd1jrX>xv>WW3TP-ufAIhLI z`$XiM9Ft#4T|(Ms*AzJ-M(C16gj`U2SSjl4E;%{ #T>MQb+Z7mKe+VOw&bwgYbbB3|qw)g7jRD73cEMa(pWt&yXJ zr3J_Bwy*_-wO;vJk#YMJyf7-xFoQe+l{Ylb74O)4D{(Q=4!I_4@(+SkrL(7NTD)oM zM}YD2nhJV{*$>S0aghs#wYh_zKBB%6;)e@(0?iVzEwoY;f{yvX_m4SX-x*nq_Fd}U z mNeYpix<8y-GdjXCKlOKN*Zg !(%3WN#yG z3;jc{o=7RnlqN&G+|;YL_y=pEbauBaW(>E@E@j2`6GVE#4PbW!xbze7^Pz2TaP% M#WTJKd2oaZ#__6J5svK-p+gtv(TOiQ%@u!B z4z%@B6VAN`qSqpZKcH1v^65~fuW^$WC+o2fjb*}(*4QgT2p&n8FT+VKmxvli=;w-| zSfzpY0B~Q-;p`t=&8c^yDG>KBVFe86Rj;Ft4d+G}j6!&PwX(-+$fZKGXcN7xSFf?a zBc58)KzvfROil0bJ3?b %Y!p1GbNZSz~Gk)%4TP zPBO1Xm!nk}d9@qeG5-467^WTuxWfIsFhz%w=#x}$9DtX(mWk)1ud=2M2QOK<&JiSn zN;opqXXo%&YhF!Yn+RQ-p*(tG-;N`<&Ar9q7u)!d5C9)gz6Q%WrG40r3%{8BmZt5u zM_iwX$j$1MMIUxMj#AD=SyMD&5}=24pppUpKkdevLLkoUusYmbJLp>+Dqt&Cn2g z$;|+jet*xMY0d9=ZHC;~u_TqD3F*h-x4AtZUK<0f-cDGl*(790zH#N_&JXuiBAdo3 ze|Zil6kK<&FacCBU}&OY++72$I^`kgM4<-%c3xs 45;D@q$M`0lg^#?_G}1B| z1r?x0eu7eJM6FEI4;y2t5GTgGAV?+zV%p~~a-r`Ek6*6qR16eeGClxU<=mZ7Ju$MJ zruIQ$G48C{H{|9OIyAze017#}PqbYrpR#Kn9LEROC`id;VDLD9P(k%T4VD4$(1f7P zxhW_tsMOAQQ$t#lQPYjf+sVA1MYXviX)Y-yj)a4$!iLms)>+t>LiEuev;@;Rn@!Kc z2AgsB5PZ?wvf}Qjs7e?2{w*z_^*x3E(Hhn{EILjQ B?_h^C8TMcG$ftuq z>zD5eZ&R6$*OrrP76;U vRR)?K0w}yTfV9j#)FTPRRd$Oo zkB_TVq}xnl(hef7z0cn`X33%^IG>q);ixD@Y z*nHOwKD?dQnA!)C8$k;7mU*h4MvAnB+);n2{*p|M0T~H6vO*g=p}KL jM*>3t-wcEg1Q z@AT#`Ih`5Ev+p?te4AyS7W9j@fs~8c_LlC9R2twgfDP+Oo$C$8zNeI&Nq7i(ZC{K0 zR>pY4%|r<_^T#8`IB#-D|Fvk?oG;0RIIGuitoj$6B{`Z!PvA%Ok6O``lU*K;v#~Mr z=*8_phb;YxO!?m` @1wfUaPVHDeQ?di z1e=N8elTJUlr7(w*z>H7>Kk+Mo9-; o3PvEYB$8r0gjClK3$_aLFnEN^eaNk~9!IZ2&|YIHeO}^u zD&75ZV2z7suv#q!aO{79q+p-xBE7LloJiYZ+Zptk9XVPS<2S;@_VK Z<9;y&6ifIipQ4*$ z9a@FhNd)SozR;ebwLN2zBc$J7E6}->`0A5vzUBO)dn;$$M2DNf_th>h?L5jrp{k~g zGS9rh-m$-GqLy;@Kj=pVv9)+{(7{W=ZIS9dd#55B=_?z~lbs14{eZAXU#ZMG^n^x4 zUcF?XgT@!(h`HBrzL5;S&d>AXCE--;DOI{2T!xQrv*>$hboK6zf1We*z;vdfF}rm? zgN5hiO>`Hp02=O9X=Ird9}xdD`4F+hj~Z|5 (Mn`oaXBJyIAK=u;kAc%FG3s`D#r@5} zkpAl0CRoOJLX0^kSfIqLqreF_736mILJqWE%cgAf)t@NW4N=&XZzJW2&8Hq9KhjPw z$gZnW$6-3*gc*WMoB7B)7$Ty+L;#jLEh4(yGmlyyzeqSQ!-N^|NB>*$#oum110Odl zPS&VJ*6M$6p|=Xac<=v@GQO^GCD#r7D#K`fzlD|CNi1{jdQdG9=_faK0!=<=<6kt= z=!<4co!0HR>_Oj{0f$S8=P1`*sL2TkGgxqZ*7U#v3!djJc}rpX<=F%b-DZ(p?Ya*Z z3nA^Z-_bT68`uxt2Mn{`@1A|R`jzwh*o$t>OZ6lk{${^o?AKavll(ea^*ZxGlhdSa zk5*Eaz2B^*xtaMGSY414(hvSk>GVB=JP2j071{d4B+B=~8O69!Ub8ER!VGnS;4T38 zzJA#hdxv;|baEySs&{T+Vj9=Dj94~Ec?zy!F2Vav3TyQ;yh(M4wK}V*v0C;$mKE zJvL`QYxenhMpk0D$cZ*83#tm1sdFTuuU n!LJU(Hq zmmuxO*Q);ftoQMqtUhb0#bMvh&u=ulh(|OLUw~x1cIwY<=*RMR9D4DRy|gQ*FPI6y z^=uPdV`cMkY~M-gCV9CqzPo()OtIE#krx|V8pz%0a l{K^J_zdrQ$pEF$K%Mb7{tnW1r)Y zA~ZUwO&@lr;>+a;wBhG&agHj)ht+ishiyJeP~wGPF_G(k+%+6#zyzmCq{yZ q6`Ho2Rm05ipP{gJRqzcR!nt4r^&4Xz zZ^;U)MIZAjaY+o3aT~CPHR;4`+ybida8~HT$gWfq$0#MowO#58O?Z@A)yYxa$Rjla z9kAe>=Jh5N222Fqp$z~9 `|es z=!6)i6E$<_RaQA!f}4u1GFMqT9UZu9HVnqeKt0?dAJ!l0NBwX6n`YsnXl*O(tc;SN z`ysj(`uG90?xycCyaAh;Yf&}aFtfqjxS0z{q|8EiDoIS;#6<=-Dc`nf4^e)nYPD7P zfUrduR=yKf!Jt3el+$N;V5eiwzujgk^Q-p<@nhs(Mz(c$Bm; EoMhzQ3c+)t(+H2_s- zO%k**#vd6>LkXM|jA1Ietz<8kRuw$eej4$p; ^pu%*?Ta&mYR~A z@`}IA&7e3x&f| {i-%_-2*ieQJZje+{5G?#Lf0i2!}GS87cIO&hI0$M_DVZ! z>zj?;`?^1!76gAojFj$}aX!AI^k4X?Ag8mXl~YG%lu(15d-N^6){FI{p-HU)ffw1e zK^(Xgdo&xYuwzog9JlM%|+~5(TZ{x5LSH^YW?>)*S9~W>Z1>M zmGiMaY?f|#J|^&kdPd`OE i8F^c|LiH6_A4-V*fg0>by_Fe@rXd( zwJVcJUS*=-tA+AT_3r;%c1|RBEu|C);;$MPr~;m?6Gd$ZY5BZS%3lqJa_Z3M&1aiB zCLfwj3g0#7r@s4GkCzeRZ$JA}0=6U Bk~ zY_2^w8~=}W%&7RH0jldxT;G)v>taZ3`Ap34sqkf3jSWg36N`4;L1HQ>-P4~m0@#3k zgKM)?r}_l&|1@J ?Mf}7o2a?mZD&gRe>`<-TA z(&F)qjW5g`1~h+TPhxF(BVcpo`W{t4S`$5}!Q8arrIFl#A#CPx{TP~>kNvjWma1Gx zz+PQ&E=OoJ2$QGtSd-urHc+5R{ciEJ5Kn{WF)d@~d-3P#tAfahLQJV@alAIyo4Tiw zZZmD^9PNK@^Pe}N1+nIqyjwm8%K={IX{b@Vv8_X0e})u%d6m-<7Q#zACjN`YMXI2j zV?*$R%QqrTT3-6#RTRGAmx)#)p{ltY95B!0ki4`A;t8rzTQD_Wuq6|O_kJ^zg!J{D z>%SKaqt8<}MT3$wkC0NO5%pRTrNS8iY6=?HrjT{-J;~1KJMTASWdPRDho;Mv&&R^V zn0v79^BoLAHa>XsI_`X5A~nnizuvz|ax1Qn?@I|9{Av-Mc+F?Cd*LG3?SsvS-hx;C z3s#re7*w+n$GiUH!{>9439p2=rtG&JqQbbVsVfII${@JhrWHQi`O?FK%kKoAa8Cld z4k-? SF@T>I4*iqIt BeJ?37Yo}3!^?lP&S63ZSR_kf%oLJ0xpTf8 jk*NPHEta;ceoFwUIy6 zGc0T)Uhs6YCTy!I2>Q~1KTTJ6Qxex3
I~$VTlCx%_0rUR3{kcP+&h9jMc5SzdZJ7=(IidE6A(iF5XP{%sHNpQ1XbQr;r` F{{t9)MIQhF literal 0 HcmV?d00001 diff --git a/public/images/course/guide/1-3.png b/public/images/course/guide/1-3.png new file mode 100644 index 0000000000000000000000000000000000000000..f54250747b8f64d48098424f4a0a14e3d896310b GIT binary patch literal 9862 zcmZ8{2{@GR*Z(tPY$-yN?2L%9v{**gkQsYXmTW0W)G#CaGU^*jSsu$!^`-*~!jS zq@k!$mPq=VAz2&3SpU!P`@g^Udavubn3?Cf@B5r{f9`WW=bYz`osIdPT?cmo0I&y( zF+BqSurBEH01p@R_aE)|?*Kpsz?vF6gu2gU^VOBw*Kf`ZRors86p|-I!#@9bPWc}R z`-&Sf1=IeI-`Zg5PRf$)Nnctk6~3jLD4qUg#Be&pdpr9i{*WMktL*&6(w4uE{JL2m zS&}1f^-KNSrd<45<_`2Mh|g)y%}I`l^_b+}Hsbk*eZ}))Tn
`k^H3&if_ ziJcWnspcUT1A1WxcWIwOHLj7{7NDQ^{?dbCJ7DuI42PL}3EmUZ836R-_T!63fg%nk zf7rfR?)f>vu2}>5KYH5|jY dT{w8I(heTrb<;$0*n~O4i9T52|6P7> zJlk$Eh(dXpNhM$?eJUE^=>`gzqKf26x$)b(5_FT8uL+PjDD@YjGV%K0<}&>J2 S2(Z4f3w?YA*k^g>HMUf)qa?<@kTznc;POaq?6ppB7+ccPPxxsu_w znfG2%fMFA@MZWY-1+`UXBpZ=;ZR>LY8Job6@hvRdnchVxK=}mts3cIZYY^;;+A+a> zSs7nxpp_#)j@r1UspmDQUg0Xeqp1=c%;6oC1CoJxOF&(bH4#lta9T1^>5to1=lETt z=SaN8;n&_nF}pn_!I-&@)C6zCYW%ewtUTqx;Ili^U?>D-avGIBu{34cR_WnYzq22C zM-a#;E{Y8x8p7`c&ONyQ2a?LJOaH%8Sp%XURWa^{;&0_Ms~%@Y?ATY=OvY>Q`D9Yn z&V$gu3i6(sVc~6&?asr&On3k{b&cEmQXAe5*=xHk3uS;8gO};y1g>+H>r+*@FF3T} z_wMU8-w{-m2lI`Ovf2J13wUY8?5jVxzk;mtdU(eQc6`u&0|7^f=CA;%f!Z`Z|Gn?b zP~65xqIRHnFPoSz4D)y2%|a9RgH5=-asT)3eL#ZWQw;D+)x+7Hf^M1}-T3cNGm9sS zy i&jA&1Q5$@4)V+nzWo%0Ed z_l24qJI8)Ebf)!Tkq0Q*z$>}1-!f}+Gb&zaROO`h&P-Pjoew)L0liA{^WppSqBu>@ zHoViNUfhn2?07Jh!P&f?-;Yvypyy&4H%ksmRY-I?6!z}m=Yn8L^(jHi*0U}${W6mu z^i80X^!TxL$Iec?m6P$s0v)gwUg}1iX18gpVAlm %2c}y49}{H~^Q(X+fU=5|+|Z?oR!AJ4-7UHU zPjwh}j%)rQ{s#x+!TZ}AOUFo4@|lFkqzIGkgBWLFM6-vjHz1|woz_y tEaf{-T)?Ee+$|-*3&)q~nD)dN8@OQ+e6YPR)?}Lq)a))G&ezcER3QIqsN%ATLAB zFx`|U-p9CW){bz6gtXxUP`&m$#+Ts1xWFmiKqlv?mHrT@7tHU*Ki!wWpx6~Y-4VBb zZ%WWEqGS4K?|GPBB7F~Gl3=%d>VLuM!y{sT2wbO*rvUJ`Vm4OI22dcM%f0*f_Z@UB z+8WW$05;s^x 5i&BjR8Karw!KUmDC%e){@H)YyjnW^P0~33RKx z)(hcSQ3pL
Gs(8^Rba2DwGnWM9l6ylDg)4Gm+l&d-`fyWp|bE5F6@w-rF(g z0Fbz^KUj{%YG@Rzc)7N_y@f5%6+swQg+pf#r57LrqkoZeWsQk~T@5{U)7ukg3M!#J zm$~M7L2d2V%?aMZmk(?0?A^T#qc;4@m1ChhIt%ldqOvqBD~_;*JqRI&50Kd7$p@0O zzwCkT=n^VUum+kaQ1 3wE8dIe(9zZK74-l 8yQ$5+87LF&7=i~Cm_$@rrO^9CrrH-e4oV_bt){{7EwP|h!w6!ZGAN|D8((G z>Go)5 a()oAaiqiTP1_AA8iVT`;UVJV2LtM_$exSV=yl zXg=pNE0?+Psk4TC8b2Aco%*~mz)ufs+(k*mj(if45bP@b5VXFVZA)i}w;Umk!B#@w zUjy7R%)8FP{qKk5GVhaL9gt+N{!~H6R~6`h4}f%A^AoEp=7~;8G5lV}Y*ZbG!h8W{ zgvN7`+aC%-6r*0Z9k8uIU>njd`m?S7xTz5>N8y1_|Es>D>HT*9jf^f 7#UykDTk__uus2MblDMtqyw_#y?dt4&1P7F&Bj zW)cfT_ofAnb^uzkVLpIDYIqJ?E$BLFL>mIuwTVCAp<>i5_=GfqdHJEDEPF>zdP>ED zTYp`_ey%P<=zK36KMuu{c#hEBL~lS(kfMof{^!fub%Q8&zR!ZSqsXP(AQ@QE)TFg(nDd>lsa7 zc8zwqVdD%))Fh|w+wQZH2Vq!S&T=tgB3AcP-tzs=Ct3BKqaHH#7a0w17Ce!2G14aZ zsm>c8)Ds_Dd+V0U#xhyViO%AqjVuD#L-`^sQt|TVt>Lq2NL8380T|*4K+D9J j6 z7sK1}H-HJCPK>yGR^p$4gIMlEi|(~j#1a6-J^B#xy5$_yJGCFV%Q7yVj*bxQn@ekI zEhg-39kMk74FxvWSNNW1_1Kk~G8>j63?l>}LgGU@!EI#({#Z#WMdYCUqtIZ8)ow*< zd_l8gSg%!8BE|(lG#SH{#J#b^-*4Fi(*s5$fryCu%>1ovQFw{04E3yu8m!za@V7fq zCO6q*^lcv$J;L;^nizr0(r$`9IARRvya}KP*TFl*qCwZ(IXsX&3;Vh8!7*(;_}XY& z%H9J247-^ -KojEe9g}2{MNy4KQNecw3hM|yLn+> zpQQ^Yr4d;9*k}2g1ar!!yFEQ%c<~>K67Rm(dOVbeNLwk!fVGs0*C2h+FK@=1_eKa1 z0Su(lQ*Q*CfXkZ8>bOeQD>u@eJCd??9MGm8v^wc%m9nS<1%9W-Y0Gd!<{)y*DTE7j zKR=?|3O0Xe=s7o?C1Ynm*u1x) 3p#tW?-T^|vLa6K+c;RMJ^6l-@b`1~o*V9ROf zT=&!ZqfJpdyD4jDZa;q2EAsY`fhVmMSTW`uA0*R5;66)`k=V9hgO0x}Q0iG8$cq{f zpmbyfSeeiSfsx^{QjQqcSHJoU_R?v44~W6A{NS1av4~{cywwtkZ|;uX^`8llGSrDf zl210pK*hgdYXfQ|I%ZJ4&Os1JY#G{*oz>8KdNhCsMI`2Tz*io&SGfKw(@=uV*?Xl5 zqB3Ot#$hx>3`MVdy{KniZrTrQ1@eE}Gu0BQmpDmPRh6;p-WT!rA_pL9(f`zn@=anw z%L{EztdGLO860a)p!Tafr?KRK?q^9g)py(?#Ux|#mj@%#M}Du&{yKGi4kOsL)IH;* zpSCCn48cP8P;>8neXv^!E{Xi~9JnVMkKnd`00F;`J`TPaY|4o`P?g^ zoVoSN?&InE!b-@DRb2(&C?H0THMQz87}+J4`7!scOPC$VA8Lz}Th1rlBu7+cP^p$n zxj4Y7K7DibYRMtwyK0C=^aDD(DEbOhU*=q9<_}~;&P^~{JU(;rHJC8m(>KHKh8t?} zo@>JDR)6WMZjA}7@C941jt##n3KvXS)B@tu7gMxmPdZNddI4_D?`^JIw^j01eUTAY z(Enj>0=#5Y-9fsU<=2!r1O~hbA?+a$m^c5XRp-^%yYqD*>&sa`0Z}!sFy7$rS}{i? zwO0}tbv}6oW0v7(pC3VcJXzFgP?;2iSVe{<`3 +B>D5K4vGxbNm~Xw_&8~Hi@~1cpZ&U1e(^2{(TmyIWmr=cO7zmQ4b(0Mz z5E6wrT$RU{Y_xPikwNWnpG^H}Jh{tBu&e%4SF?bS(%>~Radcb;3XTU*Fl<-GRed## z`_vPTTYsC}o6S&Dn$q{HPthzbx*bVBR#DW%gOeC2ia!!mf)RWGr-Q^>p%OE{pG{Q@ zLS!oGK&W_p8oepaAboD>0vJ*Ix#!`k! TJZ1KsjAPZ0)tWO2pa(^JBlJvg4t_$y=X60|AN%cAd4lml`#sHTTD-4$&!9 zXJ{^*VR9W_&Wp`0uoCBh#vaJ4^~GR|GcF4A2e9m)KU}WWVhxn3gRkK8HFBBJ#X$wD zHpeDO7fNF^L@BpvQF?8;#eXsG;%Z~^dn+WQ*UsHTO>zLi9HRt}cremOMI!5#Fet@4 zY5^pNtlLw6j}adD%6{4p!%o3;4A;`5E{J!wLwSPd%()^^>bfy7A2XP{)-i0U%SD;$ zN=qpixE_UET{;I6_&oNXo)-W9{yJow-8Z;?3&F7GfzbVcB4`*#*K}hVwsez;`S$@b zVst;?ZozDM_#<1z97+e#$}}-Wb_5IONq;ukZ1FSpc4xBd%dlnQ3u!35-xx=VLJT;F zNJO?;w^Sl-4vrPO5oKca{*u=dy!9sv1kYi^uRebo5`nkZ^6K=ube|_3vF;x3wwtKZ zuOk-zq|ooUd2^vD%1`%*wT2~V_^XFAK%PiS4f;G$4TV%Oh%99LwZI3`^5u(quUg1> zIrrZ2z3B{Y@^}t x9!bXj9eK=P1smV!Kr|;RT!$I=x4(g}07p3m@ z$1eKGWga_~!B>nxem{3rXI1>q8RW)X^+_lkJhf5V(z~7S7g>1Yp3&g~hId~h@G|qa z?8is|I@ILait}!FdvvQ3dYo2Cl%vS(#-lU2UiJJ$>GYWB+ ?;Ku4F`(p;tT5p8Q&S9x}VafDD$<1q^RTAT*UlH z&XxWM*t7|A?4q_B*P=C)fooR|+d&-Y2)JpM(r02sTLoO*sWZDlafDq64<`H^_ISAx z(Em87daC`q>?bu_`OKL|J)!pUa8Qbmf+MNG>+aKkY93WDya#z$ePG3sR)}`jgpZm? z$ZelSs0@`S4guHzGxB*)a^r+|TV(`6Dj7=cxG;IB+MKD~dPuj$6D7Byc%VxDa=Omp zZm;e_Lhj>M#fA4u&wTFb3Z~GT-#2&V^7f9{FbOv*kG %!Q}Y`tnI2BxQQ_`Qw?$ z{vVAZ6tIsQuuNNQJ@EsHem`~+;NzI54evtYe(ODmgDYA7J^^2m26K9<`Gpdkf&*yW zjLLk7+`)-{z)M@& zuOZlO&IVuSC(#O2T)b@+PkKh0Kz-1;WQM!(U<%#zT;XN3h~I=M zG*B_J9*sDpDC5fuZ1IkM%7^=p*q=$dU3WK$AblP=$6fBx`BD?7#_b*WKlPYmo^;cd z(t`vsq9%4^M45Zc$^+WPsGptf_JRTXuDocT5c5443wmBO105H?xj%W-e9z!?TD5O! z`v?qDl7H`I$42E=|4k7J3D$IvuIhI2bacgP*U2TE_;D6UrjNk%x`0qC5Oe$r^OXP9 zHhddpNQa!C%kkj-oqBO>|DP#`v}#pi6wIGvbUop6bCCz_DX=m )zL1amC`4T0__M>Ps2I4MF3Th+Cl^ez%X7G=l3viG_7HO4BdFPb}+g6o_=wE-#Tai$?Q`nl@DH!ee0 zKYXQb8n`J*Ig8AGq@ju^MDDHlz;RRq4t8^u3t+jef}UVq4pMx9bLuQlM@81MjgALF zQGs=j-fwv`!5Wj}PDs1xejnoaetPI5C1?b)xpd!Fa~}F!Z7;2|?RVQaZt~AO7ijbG zfhfF64&pl^uZE%A!_E<|kXyVUYJ1#g6kSVKZ)q$I?kEk1qFG-=^g&!UvM6#byfXKA zw6ge^5qe?O1n`3eNPdP29$yb|dtFgwFNjv1(XgO>242BO2@h=c2YZO?rO~Ux`qMsu zQwJ2Qktcq@C{$$Gl%^T2GRcA~Ah^3JDG+oy4iz@d(wr3?E!;mIvt;a1zr_Mpva)jc z%S>C{;gmbH?8pmc>qn(#(i}~htw5b}!qb!(4F3CPm( BE0$fb zlJM1iiHeUZLA9?s4`tEYer~*rRd)6WR&LFAtDJ0izAHI%Jd@_r4|l4(7pX|Bh3RPF zR-R@jmfjbwnErMzdEkeT{~tG?2w3sACtXlbg;UJP+9;k7*|1Lufx%aGpa2mdPi4tD zDWJDzUl+LlI*i?!ZFaW$KdM>uc}9>7A$}V zNMtBtqVp 9kXdn1);G+@`1g@FxFofvChHrA zgI~s7p0{Cp8~nG9sh~So)&+_2B9_;cZnC=mxGeR2wxky?D+wSc_4}(~f=d2wjIo!U z%oi#|9ok<`_vpW*=W3!t(tF2)j(M^RWE|EZy~0WnF>`9Id-tn_tnZ;LVBC*H3A}B7 zGM$BnEoTB`%Bx#F|WX6D>zy^)d6kXj+&LcFQ4Wq5V+O}cgEMvqCa-aRL+Ywuhx zmF1H-bSfr@TWeE$RaGVvfst=jxN!^RwOXEy_im{{y8%+0OSRAZG0b%h{Kcc5JRfdC z{#Nu8zH1b!S1a(e)_nEyu%Jm5q*Rd*-}w>c=jGHVv?dBho?AY&t~LY)(&&y8eS}&5 z*w5_hOB~_U!<$5szGB2vRK54IOxVX~fCbaw#j y(9oX9$Kw8lM6oqFek8&`2{dF2AonnjQ4@A~E>4F8`@#uO^_b5O#(bBEFrqBKFZ zWzF(K)C`jrtzXgHmp!d@L3$f7g!ToniYdAM$Qf?WAC U+v&{iUTxXn88)sJcmaCYM*{fJrF31;ihQArp=kQ z#{vsclF@t=UHuLde%Z;WPKYDXUIFX3pVYcRA =ND4eB*~%!o zZBzvL@)MfhX98a#V9pYbFG6d0sUr)K0)Z~Hi!ibP#az<$^S`}ry6 1rv?S%Y3+f~R DCfQXFNs7n{Z zz*@(V6td5v9#CYv{ze^US`4h5I&XOm8y-om3O_`37hEK9nv2`+v(qZ&23}%m9&$8@ z?kcm5ggj`QM}Ksq{ccg3Ub9@fK{Q?j;45zb!adfbG d*p-#n%PiS5`W(nq zo@C@$GAnoOS44Rfm!qX9&jB^LNk$)=$R>E_#Fp+&soqUY1Dc-s#L#9vT) 1Dw z?R~}@+vMDLNzUt?CzOHhqmWeM8H!wgq!^_le+J&%eg@Nd`=LZM6~D scm12Plb!$$F^U8X&W!cUo S>y_6x$*g<-)?#$${Bbb`pSGmE9}e^nj4y+F`S|bV78+;fV& -Kp>yd*vU~-klew-*mO6^p%C4|dHX|nl zVbi9}g^VdO^J9lvcoxYdJE*C)bvZ+BVAC*H ?w$|+p z3b`Moa|$XQ|NkQVia!sADLym-=(S$T4b<)cLQO{AUp6_u3{_FB%%PwMwLhDJq58Eu z^P$bac%>W8`eDg8>$AIe#r8oS^VMbL#xcyD;2U1C<{91t>V?5xA>)QQaTFcs*s|L- z-3dm6q)18PSh4eE mua@5g;v8LqL zHBe88_f3q`3-18~={H+W&(VV~lx1sfN#BB&7sYtyIEe-ZIZOK(1lm}}yj^aU)}nq_ z1VX>(2}JtjG?-B$z_hPm`r;UKUD5@rO AZT@WvJS;S|&% DQ`tm)ht4N%{p1?}C9~lqIY5-jOnFxE3)28_v?)(btCJHTj#zLuInD@YwsmTTQmC z`;%%PdQ9>x^70D_YG3-{0jDpQ`L8&KM}fTbFsKgl>{u)}L}i*0MAEqpKK~cv&7EB^ ziIX%j2ii%`cL=1lL-()mDp0ic`EY!Yb&tF2HoN=|b;g<_GK=9lVnktk+x`)2TKkoW zn#$^6+a%B`zEs?hw77Vt<}J2O+8=D%n(>ZQlxyXp_`o7F^7&LDw+xljukn7^zemNF z6HtUXc?%^rBc@*PjP$zRrsGt+ScVGtB{*OR54emzKD$QKH8KLH%&(7)sslZL_N#+2 zrFx2Lr~j$|J`5!cx76Lb18`N@`IM*fVAH;-sQelgg9f=K`Ad?BpkUm-r$~}AUgKR_ z_-x>V)}D86pM}l^UfcyW>bc6z4xiTyWGo?DB?8!5eF}o7 OfoCpUIAcU6L-DqlywcL=zC%*i*?DKUl`Z@SpkdJfn$ZS0*S zz^}lH<*FC8XZJBZ&%o^!6y`T+#z3&r>BQMl2C}(nHRTYst4f6<^e}M`Y}kgW+PvQa ze} mrWJ>zvEO||YVgM|maQ9At>u; |vKz_AH{m3x%vVJK_fD(}x z^Rk8dp)Jn!SP10wVrKMzbu32uhQEIiYYr~1Af`TKhlN9}hG){TzJ#}#9}G^ABD1-{ z;iy;FS4h5LQ$ZuPb9YL4Mx8)hX+nXD1^L|OoB@!Oxz3MmWfbm7F?v4zlicc;PAN@x zSbEwV6zzv4=p13H0y$7+t;BcR(Bbgjy9@->yJ8ASV13*l5*D(22FHRJAZy83!8t|X z*>1c9R{C;oe<#bXHMZf^<1JUN(cjazy8XkElIQW8tJWi3zuXVT9H+KA=wuZyzs#=s z`qePniUxnQ?H#gZG%i*g--C_LstX^uge>74J @OPZT_M0m*efuv8pDJ#^{k_!5WUZh;Yr1WMpn)ld5y@ zJ9M!a)K&B(BUXjF0uQ((73e%(Q%xfe68dDN9e-VGw3d4@r~KMtIa9$*eM-uT=3_FU ziM7mV`%@Ye*nbJz((yXa>*;c8l*7bnhGkp9*HI-be|4bbd$WioF_L`PwSuyRPG&L5 zKB{fPHHIa_S_@oz_=gRqJR8JS^-TNM;36F0=VuP3$p>yslprM!d{Mb+z*PkeyoQag z!Dm| Ifq0UdP&-=4-uIVcys&oeTA(vZ|LZMaka&Y`-BMdn%D( zb-_Y6KV518U&{Hx$JkLmEYNJYg?IF8bNIv>Cb|{>{j`F;^;`_@BwkKw^7R&J@djYy z@MB0zW^zoV`N{8?6NWfk#9?fr``nEri@!oQa6>6{h z;@>ik;Ih z{7(ZMn 07@+zXg7=z6&`*4%y9- zjF?o(EDWo N*38DV^rYv_{|8Op!IA&~ literal 0 HcmV?d00001 diff --git a/public/images/course/guide/1-4.png b/public/images/course/guide/1-4.png new file mode 100644 index 0000000000000000000000000000000000000000..6ecd3bfb7b3b7619c6137b95d4be236f24dcb742 GIT binary patch literal 24857 zcmce-_dlCo{QsZWo1k`4TCLI=L2J_*ZAG>Arbeumsx3y0wl=LQp{U&=cI**q6d`7e z8bOU(v4t34ulMKkdH)IDU#{D^UE_Jq^*q;g&htDU_Y?i%xi%vm4;=siV0`*SLmvPD z60gcHXsE7^hb&G{002S2Qw?=Pf9tJT%7dVOquZy`zaCR@%hWSQkOXPBRZNor>fx~8 z_#L>~TR*?>o2IOmRDOQkwr^AM?j$4@F@0XFmpvMMdixUgYs-A23`QtV9Gfyiwf*s{ z>95xjO+s82ppLYWDD6622nyxf7PT`!!Gk!ti9~&@!&w)iz9LcBn5g4M+~bcK;QfCV zZrKx;2Tq{fl?R8fvAr0*4J@fQin!>Nm5K0}F^3i5rk%7pO`t2GuE=v$i!2c6QmO4e zI1hF7%wk*h-9Wi!r$>C7(@JpJ38wM9TzE0nW6dmsKN*odYz|uu*=5t}oF9)zoM`m$ zvw}ja4`9%XMBMc1!MuvN(0bd0fq&m(rT1Md+;Beq#JnhC-91k0vW6G -W{nt|AG1J_*2e(zzBT}uC)|()O=nS>Vgbj{j_=! zpwayA!}0UftLN%)txc$-&*xd8uaW1+QN;P8tWOBNX>-z0!G_Rc82J;HXK@}^mk#^9 zLT?EjWsR>MIU!}k+1i(^5hv5=i?JDVw@W?{wn|N}1IT0T)NG>>gdxH)r5??LUb7@+ z(C*$u@NfC!YyeU94H8t0>o&L#ghE@@-L^_dx`b<>?4jd7zs%hvsyss^49PU07ZA5C zT8?c}sD+!&q&ci39vg&_E$^-5c=_}GT5dJb%dfXhcyF I!A*o! z;g0 Fg?ss)B_TcoD(#S75x4kjqiec<6?G~mLMbB(TaW!@t7WJ~$<(soC+ zcJH%C0?ni0hZ8oI^ IyDdV+g#f>h37DWZ-1O*SYV)RG+(?ZM zAn+JBt(plS_9R4wT7BQ=L0jl;G&(9h)i_I`2alSWlkL{MK?c9O9B2kIHKx9>yU^Nt zuMEdx{G5@Mwk*@DztUSUM##5_Ue^6@+A0U7)s63M>jDPOHshVn;wAeOL-Du3vDT#Ml4=uVb?RDAPp=d^H>0#?`!v*rFbG-6~ITBS) zn6Qgf9WsY?U0lx7$EBtnOHLGR<0vqnygkmKZd(FZor*&gUtavV_)}Mdb3U(G8(F;g zPEV`K3nDyJ`XfuhxMIS?`JI9XvSdl)c!T(_J$E7Naw>cG807hV*Kwt&2A5^`US)77 z<6z!7j ptJ}j&`eFLGZqlg`3QTeFXYcj=uT5oHe|GdI!;a z9+nV^VqRyyoWV^`99$kXH#lyHew00FY46*&i=evvcb@4nb ho6h2ey}+9q}eY ^4RMEXV<3%5hpelZpQ-FAE%_Qktx{5<(zMK|2y;42x@g}`j;I& zubzG(Bbk0VZVsD`B9cPxCFKT_%ka=|E$0c7RV&C#?_X<7()SWk3o@j>88>UIA9{Yv z=7<=M3ECUvJ3r|XUeuOOwpci9^gX;dKmDlPnSm+0Bu4oYP9nj{z3fYc*ID5-f?Ntn znkQ#(+q9KB{;CdQ9=t{d8(oq AZO`~aEERT@kS_!Kp@G9W)MsU1JEefja zd_h ~ha4QmRvT_Sq$U 1qp9O8#PqH$~&{vB%psv%_zu6^=)QnASTRv@-J+b?Ii zZbRHb `G=hr@C z>vPhYa8vB}6)iYmPqk5c-X4JMKx@0crX-qpAX6&B8(vv*F|Qo8D*q^s%nOZ)>gk6t zfc$waxyi~IjN^L~-53B^KZ{3Z=ayetF0q;&k;>+-A+LrQ5`jS{Rwwmhf>js31l;sv z68(n9@fI#w(XN(Y#%(`#*;Iq8cVqApeRFMR`1NX80;fO_&I=wI&GdsJi J6*ypsWF?a7=> z6_>YvE8PBGaWPCsy#di{_X_J39B+zO*_CO-9jmtE(s@E)RZ}N; Ux)E_H34B^~xr{xMJSyQS~ zYTZw6wy7XVuuU%N22JIfekeH{v!r#d%Ro6jCkijecL^&(PydMpj>!Zf P~Z_;(0I*otlP!O@_eX4Xf=^62>On?vQx>E^Nx+25RruC z2Qy|hIcJ^QsS?a~rIP{u%4j>airQ6pu$iEWl+c{lHwZNM biI%qPFMlAzNKb(7{{u#Wpv6U(r(j-+4i`&98Xw2x{A0q)V0!#8Ex0z zUYbEwCRkn^>40{XX5Ya-4XtQzbTVsovQy5^(yqt|q$LLct=r$GP)qE?e+nf3w1n;3 z0#7!h(#Ud7n@+S`{$fZYvyzRgcKVwEB>On>4 BSaI9WAEn(JUoY3O*e{ud3&wtL-HE_~Nr7YskpUG8&?}l)qZu zuxD3B?&y%RE}{c`yS3nT9%B({iL2WrYIJp9kRCJNq2H33h1=0D=J8AH=->4)<@=g5 zw33Iq0$iX){W2LjimB_)hswp-=rc-CyQ4#kbKhXpVWo#7=cXkU;@>yrV!h9zmnXuD z*{3Q_KTlK-OD~jGlSXWVLMWGy(y7t&Fq$DO3#jSK$OViRHO~*aCgy$X)Y4rc@jurm zTAQ>sx@~i{(_{G`>DX>t@&a0OajAeg0wyq}Egm5)r7(kOWNLO^l-{y?gju1sl`Z_{ zSV&HjBq+5a3U{T&Qx{TWS~3)Y1_8BEX=>*bXs}akJ}1%mWGHQDql{&hQ8-r! zS)?Of4LMxfNs40G-6ROrbO{@> 1;#xl9)u2om+Fs_~w nYe{GT&4;Hv*9<6%go83jq?1Frxf>NJCz>5283V*o$V5B7WRd8i$FgbF+ zFJLEFFW~;$eI{(kMwH+e%K%GCyp#8??#g3RAE+2|S6-;Y8rkxI&OkgsoO@lAkK)OZ zhbGuqjxKV8Qsv??l(oC-oU3V?vRXa`e*8P?&W(jWnZ}v=%qthqKQD2!nxZ%Tl9(Fm z$3$k4)#jXwg#dnQ4@NSuoaDM}Vs<@(g>DBN&r#|o4FUcdUE4qV)Xwj`Lm&6S_D0H9 zGF3O3(zV~a=ZTx4xA6c!N+l)EeNp_1MNrOm+r78#^-^cY(NUSSU@#?Jv@4Ys#qF1e zkOZ~kt*f{w2(S^-uA<5gl0YC<3>&Zpp5I=zVo-T5q5TR-tNm2a4N5nkgT4>TmzNDu zKRo8n<}foxDSv`S``+)@v}0~^z1qV})pSY_>b8rg91Bk*fJ$r?KA{>K5Vb4>u6AS? zR|qqLbK2iniU2@N@sD1;vTfPL((LRDHhJD()D5v$X|Ps{*6C)cFi*K&4msjRm*8m( zdv=k_yxEzekEBdK2XAd+=^1<7S-2GATd@w_aY4VQJO>5j=yHE44>}jH&M69oD1mh( zsTQ&PAZjyygjvTlrzS;+H@9EZm2=x3M-D u)V&h`_Y3BY!uOcQYxvo+b0z-%(l_7E3vH zC IV zt20jypoGj+v@O->;f(UF87L-~(6jyr8J>eD(ay9<)rUq!6};ixKP-x9Jv Cd=W`g}~4A_x|bU*X1At@+UX?5>j(-F;Xx%1KyRY8?<&AA_B-n?Q7CzRa| zXR*FNL>PDDNA$+)lbr$48ET1E?a9uUF`h<{uGKir{8N-AD+P_)#>|h$FMRl{C4~Bf z>W<%7J&{vQ5h}OXJL#)wxjp9(Br4XgL)wEZs}IB(yvhd;Uq8eBz}UF~R8M &hsWEtb0 0{M(82+5><` zsEfhl (c(Fh|ONB?uATLu(Btw-d)hP z7N`4+pxjY|^x}qn!iR?;X}Fe&x~PL9q@8 @{-bT%Po=)D4`hlcO)ZB_PFbloxu?o>6|1bN<`jc`ut4 9RV_;%k3y9CHpsN|F0lGUynGaYje=UjKry z)44kY@;?nF(FAwqv!Aa5^jMNFo=x7S85%Ugl}=M-tH_1&407l&xak;GADmeko}Vqj zf>;z9=Fal@vaA4W<{B;3^FcsjlkKh(AQXA$bOEpH;^IiQ5oV7m5L#Ki&<%seG?dD| zkbjy|LKY 7*2g z-)iFrVW%T@X;d9szxg{RI)^r;0P@KEr>EKc@IMsD*!-Cvp>L*n-^fjyl7ip%7DYV! z@skJWBM1CfA5uk;&pW%DV2SAMtHynCp7>ipo_JDS80S?Nk{s>ZRirFO$
9u~9M9N8=NI};{4yMt4Ro|+z@12@^s$G0LAIiSnLpVKaw$oEnitb0*UmZ@zmsvZ zE#15sr)$oUwPj8C-jx>($RXqR?xqpTomP^0k8u6U40y|dK7J%>Nq+5zH(&?xujQh0 z#nFd_a-hzIxs ytGOC#vThUa!uS%!76s z);E>i9&vqLKWWtoL;W)2il8^6Yp`T$BtP;&C)az>5NzsDKgS!qn=IQP|E<9(6_+T` z_TRaV^e1kKIyvrTLgylmC6TE6x=j27PjgZduj@dpS4Yc%J2HkUPzHi68vTqnY&dAz z-&Z)RtnPg(PoO!ccV!0WVB2&|>a7q<7 k&G z{I@?HV0p*?%GS+pdbTR6D5w=Htygjsnh0TxfESbf(grzfwpwCot^s~*^V4r!`(i`N zoNc=v6h5;i_x~-47v}8L`i|#a(WaP$ppvmItCV?L2KUEF0vLj0?&>IV+gm90@(#F5 zW#^b)rR2*E?B#h>nuWo$hhkg2FNPl?v +}VheZJhsc4Ju-8l5<1d zYE3grpI-ezS40laQZt!V;_{?eLd~bQ9x{5|Gye1TXO6Sae)}vaO_M_oa9K@V^7kgD z?9b{hv`O&)J`1tw(Rk-#D)gQ2X%|ENSYxZ#@OxbGm;RN$LFJ!sr*qinAFfT;n0{I> zRCxd{=repTud;fV=!rBrsBMfH_$Gbq9-;>wp}L*?ntJcH4PE+r+x{&=@c?5unSqGf z_%O5J_3H?;3)8PL1Z$m~^%a*wD~JJgxo!aA`sPX2>K0T_cgwu3e?Bp)A$GYDOTlq> z&MLgTOtbe-gFF~9MLQ>MZ)ew+iJG)N@r8N@tQ*~V3nZ4j*m{S3PsT}SdFL&2j+(?b z89k4sBNo56TQiq18g9a8Y%}1@>d{fZjs$!C3;d(79tJw^5|e8Zi;qr(G&6Bz8~otb z^(?9WD+hpaCwnRXV<`vyp6pnX&Ju9JUyD!0w*2=XJ>`A&dZ!mxVb*b+PixTf|E)9! ztsM8?SoQH9aoOwt) 0kB|E$8ODDMM8 zv8Jp2Cf0Y}{-0ZCe%+~{+d=$%8llB?_vgk3es1Fj!aT>V~F@ih0qVh!G5dXHZWt_cpHxh?c8JC zk(1&LuW?f8hVD>-Uyl+x*PgU8BR`LuQ}N?}5O6L94_&ezQfpZ)kD{?k9^}ciHCMa9 zf5JuZgxv`^ nyL{>D7m^vP{|=Ufm2G{a^$MN8+kjBShginN(hpLMIg{zVQ`XYwJ&w?)zD zTDm(Pe62p6 p=sGo~Ru`!RJ3dfPvdQnjl+$$w3ZPs+@19$$NZCkL1VS*}f`N3J~ zOLq+7vNC!&Y_|aWiY);ne*a|KjP(QeV?WY^4gR?}79lT-FtB@kFlhFlW}^eM(TAE5 z81D;Yzn^Ag_mlneo%cwT%~c{6b-~qxZcVkRRXwzw+)56?DgBzdsE8tNz6xy)A=sDK zMJ_5*zxkqg-FxchYyZK;-;kC&g&ZR~Fp_x3`TV)>=Oc@wy#~Vda#gAwG|g^YT}+gO z%Bp7OltK;7k-@2VIZNnk<@yQ7_1}-uCX9Hr#)PH*wzT4|*I-P9KWC#~k9VsK4{X}T zxV7Yi_frmcw;w3YH)jRRM=B&D<3m-Aij=^zXT)D~5*D;ikwQ|sK7&%r^Ug@+Kb5*E zi1g~X;1M?!^J>>yE=#W8!hdpOXU$;^DNjRtb)}mOND^RyD>-F9B(o4a9i9cY4%K=5 zsjSkag+3^5-ojO+`mif_OUjc2{Fpp(9)qdu=h1aXQ3pX?=bt?>olaJ~Ar9W6?~wYS z{oRx&@-ab$3lZJB{<&`AL5mCuGbZk&OB8wN#@KXVDN7vonxLN3MEq=s2fH{| f2 zGp!nPDC~2SFxnqWv~^~x@o~v=E={zVUfhJz0a?H_H;6G>54C$ZkhN~eyFF8!0K(6@ zO>CeiwAI{WJkV9at?lxWMqKdxaaliv@!QU`r3~T4&^XQmFT1ui+3$6c{46|Ud~wzU z{_IC>bqP@teUPo3@%9PZr^2_%34UdVJH*)q3;{KpHSl<%`@uid!ERd{;ap_}08ta0 zTU8pME_k(0J+gWftxZEJXi0WN30gO?b2u~9YOtNFxbhRr%W|9;x5AvU)6Rn*RsL$i zFJ~30GXsg|+W0<*{vY0h43)kG>!jSLQ@4yNIg}jdF-?901-~(Tz`0jEC^E0I04$6> z8BZNm9C3oJmiU_m6qobTv(nbU-3)#JN%>bV558mp Kz*1sdz^WGqz>9$FbVL4+EIDn2; >ohzbW#DW$hVTnVac9{wqZUai53;Hp?}O`y5(2y@#B6AOfyJ zsS^Yeo!cp;n@#@TWi`QI`f}S#sOgj4lZxNLy6f2aD5P!Y@wSnh(N=nq* zi(PI0O-q98-9~c2 !{vumtfNGWj@#zW${LK7 z$cYoz6%mewwLcB$Uz$JD*i`d+ct8!9=VV;!czwNAfbs`I{#gYVYce-7t@cuGKaq>u zK6It&AZy9_C4D}4bTU7T_Os@q0^kyjn=U#!NlMQylzaZb^E}WA!_=>+6?rj9o#*#} zguj0?Wkqe>H`GNxe`Ex|m5p7;uF&nAoyw)(iS0lp%;_>m)Tu-^c6t1fjApi67gL!_ zMR*LGi?LPtrKq`twjF#%>`lVJ$sAh{$e%0aywm=63r2%9vMIm^5~!_m7w4q7hba&2 zH_>jV{bmNBg5Q2P`LV3Lp7M=5Bd*q}rx}y4$zOf{ ?R z{19^gAcERdrhFocJP5j;@MO|^{ 3KRKMNP|6>6Z;RGqJIjs2+>$%@77Vd~h z^1+jL&Ok4uTE7!4aCaWXRgU6GL22h6c6>Bbh+gTJTW`zvm{zSOdS`z_=EJiy!9#~G zB*s{tASkOt*j-0ERxJy+#;4QN-M6(m^#)5NYStFHWd*i>%$HsELI?#frpjv$JXSsf z-OuOm-x5@afD@J)^?i4O>C+bCQo5c=z;L+@f~QjCf_m N+K)&QJceI7krzAEv9KQ_?z4>P7sj_O+D z-p}Se6QTWfprNQ`N} =?e~ _{CAdf>x94u z%1%L~y>)q|x1JfSs!(S$-WE%W(s7g?_7X 5VTzTx|zuij8ii zkWB#=kbv2QgNT^_D=~VThKHFq=8xS#m4BHs`9C2RJqlrccAnem{6su>KhMG~pLq!; zY`1DN0MTb0rC6zqj`kgu!e@s^O790ZMy}Y3zi}w+cG@Ori^D6A%Metd+Yg#TbR%x3 zoa0z*d%7fpJp}T{_kQkhB2P4Ia%9@Y$j(TbojnKjaMlVAVC$7s D64O9?mj8Iv z_m;8*cO&j#*Pfs#8T!@2?hMVy@3{rCzSgS%8-^sp*=x9fjWqa;^keDKMd2AQW?pd$ z%AKRQmi;AA` Tyrflo994d zX)_VbJdlpXYgy}e)ngB5xY2Bp&+aJJehg_u9fhBVH}Rs${~3rZb6V1!qPl|)Bi=sQ z4e-Bwj&^P%@-9rwRdWz`YY0uZ2C}Aj5ho7UEIuRhU<;Ekk@FWyLNpcoP6;GiJ= {3~Bp_hLL;khC+C^c7Q&GI!H4 z6rVY0*4m6Iza8B1<;`$7)d8uKDR9*RcdVxOwwN~Pcdlb0kkz2VU-u`SA3#?)=C%7p zcWMJv9ft4^fM;>N{u9Rn|SBcVB`)?d%Hk^ 7Gf! zU!OeM@(iVx@iOp0^f+*eQ~d}qg(if3zc{!J0!9`NN8~8AK| EJq8`2lA)R+jsEDmSbQ;aa7u5s}n{b8dy5P !l13b`T<1g;65md_ivqorQbBQqQzKMWk>Ho1w-3IzHy~(W z>b}1MtJSKYDYbPe55(_s1T)8roc3_R1;qVJ%_uvr_1MqSwqY$j4auEJo0@QeHA|ep zBbSD_3yV4~