From a1438441fd393c6ca27bb301cbacff75c0f5d8a6 Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Mon, 2 Apr 2018 10:37:02 +0800 Subject: [PATCH] auto commit --- notes/算法.md | 41 ++++++++++-------- pics/5aac64d3-2c7b-4f32-9e9a-1df2186f588b.png | Bin 0 -> 10240 bytes pics/a4c17d43-fa5e-4935-b74e-147e7f7e782c.png | Bin 0 -> 5120 bytes pics/cdbe1d12-5ad9-4acb-a717-bbc822c2acf3.png | Bin 0 -> 9216 bytes pics/ed7b96ac-6428-4bd5-9986-674c54c2a959.png | Bin 0 -> 9216 bytes 5 files changed, 22 insertions(+), 19 deletions(-) create mode 100644 pics/5aac64d3-2c7b-4f32-9e9a-1df2186f588b.png create mode 100644 pics/a4c17d43-fa5e-4935-b74e-147e7f7e782c.png create mode 100644 pics/cdbe1d12-5ad9-4acb-a717-bbc822c2acf3.png create mode 100644 pics/ed7b96ac-6428-4bd5-9986-674c54c2a959.png diff --git a/notes/算法.md b/notes/算法.md index 1830732f..488beede 100644 --- a/notes/算法.md +++ b/notes/算法.md @@ -75,13 +75,13 @@ public class ThreeSum { } ``` -该算法的内循环为 if(a[i]+a[j]+a[k]==0) 语句,总共执行的次数为 N(N-1)(N-2) = N3/6-N2/2+N/3,因此它的近似执行次数为 \~N3/6,增长数量级为 N3。 +该算法的内循环为 if(a[i]+a[j]+a[k]==0) 语句,总共执行的次数为 N(N-1)(N-2) = N3/6-N2/2+N/3,因此它的近似执行次数为 \~N3/6,增长数量级为 O(N3)。 **改进** 通过将数组先排序,对两个元素求和,并用二分查找方法查找是否存在该和的相反数,如果存在,就说明存在三元组的和为 0。 -该方法可以将 ThreeSum 算法增长数量级降低为 N2logN。 +该方法可以将 ThreeSum 算法增长数量级降低为 O(N2logN)。 ```java public class ThreeSumFast { @@ -399,7 +399,7 @@ public void union(int p, int q) { 理论研究证明,加权 quick-union 算法构造的树深度最多不超过 logN。 -
&iklBj!?Mm@X)mn~FBK^Yx*n~_ub&J*?m zQ)H!@-^?nrf>PzxEY#`Pmcq6R-Qs}7& zeS9Aq{E)&3KYma=8tOYKEYho6KXadMo)RBX(Bxm#!|8QTo@OC>#3ly?NTrW4(M(Ff zBJ++Omf?(A`&E{rn|kLQAs-0#y_3>? L~slj5q`1(5Y4_8 >KO`itNZ`dRJVK!c2Wtg| z-N(HQCKM--ZEv0Xv{ qD`O5wWFT`qpPs-u z9_Ngzld7o~$Q&~d D`4e2Df0N-2-@% zR9mz*DJl7tF1^CPN%+` ;}+gX{tW*I%u *1GGlP!UJw%(6n#D>CgxS5GYJ*ew(aNV;zTsLG`!sbBQ30{ z=-Xsj#|Ro%E8_-gPLBPExig}%(n^IrIni9Uo47Vw(9Voy4h;>(lj507W|v%gas0F= z8+{bLd#~EC_-cc>|2`Na$Rys>{FAf gKF?qPvQ<56jEH{6B3Mo*%(tF 17uK85VN9U=Maiv z5o%L-iiYdj&SztLeC1gqA|opmZ19VqWl8pbsDzbNmGzapj0$v3r6(a= R|iN*uRRW#C$n!RYeb)p}R!Ll!5!)$K;bHB`0T>oi5S?(esE zm^M{g%#o5!2 d&~B|~*W^Ijk35SY@I%8;YM2ydbz4%XuwSEu$vSsYOq>d9tv zBcvB|Q=pF#g^AIaF+bMKlD!L0(x0%oAy2&_uW%5e =(QEh$$`Urcxdv#w>cW0bgwwP{o01Pd<4Cp;_+~l z<&6(0j13opN4W(V->s+CF-q|O+F7;3X4uQ#9LWpXGhD36{CnytPa9wCaJ2|sY_|w& zyxFyzaxakZh<>agqWFs159E-&R=RxkDgDfFwm&oD9f2`CTX4z28XnuSlrGX*c8}N8 zciQizCt-bk_W6)wl{{K3l|0mLgKnr)PQ?W9roP)*vPB|y{TNxzq*SoC(o>cvX{W%G zwC_y4@7Uq=&Hs^XF_X9cG<7YA_Gt4^8%?2VzSO1TTZ@_k0t0jH?d@Oa^7;HmD&HyO z8!S3}C0$t58Gj(yhk>(V@oJ+epUx8<*J(6bSFg$0X@73o%@EHIHoe)kt!7Q4#Z+Q5 z_4+xA;wnVX{V}UyA-1r212p|XXf|!Kw1UToj=gs6TGvR>{EsqG;e1PQKNygpV@98a z3B^FsvWLbYeU7x!QfHZ5L>9G#rGQhLKQo6c?-?kSj6l@Q0Znm^7_OfJKGogbUZMsK z`9MP1+u~%oIb ai;%ADT5mN}Lp9RkC^Ys4)m<^ZZK9P6h zM#LHX`|4{0DB?)p2GXRo?bE;i4C(wrgWMRnGF{&?L)b+3X2x8Ai7b2wtpxtX0d{R| zEi-viCKxaT0S0s7ie=q)WoswHhq^egCev)EK8@VTea(HxeQ{=T 8Zfu>y?$2JJl7`tv(C$yV&$3$YU7 cnV)J#J3Ef=0kgc$)3VPb0DDi^FQqk2pYK0MF60l>m$=Udkfq8 z &eSA1EIBd3Om~LH!#QXp~z@|GP-&Qb3C^0iBgsS|2z>aKzQGUR`M;x5wy& z6++bKfnM(!u5*_J&2{yZ4Qi+*qh~GDkZ~aeH2f`A93#-$aXzlKO}mdLC)OHI{2= zN?XUr!$b!lfM9LgAlU@hh~u8~F+!5)CAc~IVe0U@N7Kl~B%s|Q^hU|v+>jq;)+?7y z6efHre6-1<<}!Iv8_ah^SrJk?KDE~933BO3LdrnLC2V}*7+pi!T{h2yOpzn!KkWiY z4JSG#16Mj(8zT)3C5?vGkewQgxob2uHPkh3rC_M>Wcetcn&7g*NJ=)Ir@tIvw=p)p zuT Jb{Tp_++pbL>~m7 z*#$}W>J%rM6Cc?hI#g+zmzT$U7O5DEV^MaLC2yZ*0=H9iv$C>w6gKxd84T6}zkb4$ z2^?u|4VP;_BuShm6iTq+gANWoPFtorn2= +fcug6DRYKK?=V{;X(0=}Y?g zG=WE6Rd&CFp;=#3UfR{ l0@9%A`t)nx6Ce)U>q1p{fTdJ0esz0IU%I&$`EZeM(1c zlDg_S{T+C~OpXw~+$|it>cG Ne#bn!iMi`?E%OEIVc)tzugkCqO#n>L6iNNW{pD5KNmPkF z(TEvZYk`UV2PSbetKAVWj%Ru(o*9N2lZ~WI;ganczriKp)xm_zdgnhf3OHPPjT-TV z8r{EaStqamk|k$vy#W}V@ah}dMR|nWB2=@Nz%*?r(aJ!011s1K-yZwP1+v)QQjf-n z#Ya9G9w=6QGW`{)_7#c00Wh77=NWrT9t-LWga_p3()}8>b$7xM{fQMEy>^nOe9Hfk z9T^{?2^uDzfqh#{kP{Amim8az*`>pWfYAluL8tg(V+rJ}O|XjeEGs)~F-+Ua@dDEK zak|42HT-@|S)6}@sTyGz2P1CVXEb9DDtVz}&o?=IS%Jp$VeG>;WnP1uIUL=eBp&ts z`|yq~E^UFbeXRZU2KeegGm7tWIN8 Tzend6^O9+S?I-iRD(v>@&06=?OgIEr)4X zLfc1QYfU)H;+_)>*%LG8UTY4xuiXeN--NE?;!l=!^A+tV%uQ|ViT%?FXZA_)e+(x7 z33mCHb@@}H_xpqw`0BU$6u=$Ro7TV2qmtxPFZKhv-P{|mSl57T ;X5%J=W2Cx2AWJY<3dWMc!cNVzpap-+JL-LrNs4aX4) zzM7_FUFlW8b#i*~M7wHPz8?WZod)#p{_hx8LqkKD-K(h%6a*UndzR(2E~vhn*Ocdh zH9(`2ohn!?hx-26YIi7D^Mi5tC!Vp#7>U27=Te&Jl$x4)sGjpHO9{!Mtbj#BXJHN{ zaI$AaE2qvzd@F@7#3~5gtFuAIrH3mRo5CL-{tfvnr>L;Sywe%8xyirjhQs3ZdU|TA zs;V~*PE`Z^<2LtyVNRY1A7d9#B>p!qws^#yf%W`SS9lYsiPb|RN<> `c;*ZM)nJN62A1rc`I^v6T;#LXmLw+qJm;<5`MsTAVF*ez| zu~~0Tqm&RqQ96hfXe2LEh_y8v>;3Ml){wZ(0e5m{&`CMv{4BB}^mJiJ7cTD (SZ9>?hJ!i6P 9Z)d%p7?Wt8Ye{SS zRWrPFS(jFi@Mu5M{E~`9`1P4Q8tdmzIv9Q*hj_L+%C^ZM93J(u_fFqj&k|X2&1@Y6 z3Lp-OIQ__%AoM^<7CQ<{<)BWIQ9;RoHFMh NJ!NPeqEi>a<6OEC3F>0SPR||es z$Er>km5K1CTfRx&&)Pd?pOcg09}3S*O3tLvaPiFnKDFXeW#!m*oMG$?+4mxp+iBF- zMSPc@d@CLd7=0*9JFU%2nd)-YQMWt3SND1_!v82{3W->=XxAOlUf%6zb3R@Bi2l_< zp;Co-C|TKC$KN<=y0&0p0)PxI+n9F+43`- fZVuubDMnRVY)on<4s^TaZ?% zFE3eMd6+Wpfy_*gPK(L!{T)&LPv84dn16kQpq}vZ }UN*VMKodyk{Agyeldy?i31^e9Y}o#)`TRC+;Ykq#gg-bNZ~ZOT#pZHmPEf z4T`>?T#UT+=>3z53F-1^C_)z;y6?2Hzn!k#ytdIGo=VDVSO|sOY5_;vfA4Q+{smRt uw`3AZphic;Up!g_ewPH 3%Eu&Ie@!}_?0B!ameqokv#?zwB=YRwjsk5iZ)00O zHa5QcgX>U}SD`Z-n}D&&1-+{ThxyEoSZsqt!w@_#SJD&=yUy{2yDM%@{$dV45@ysT zqKuD98-6($_i;QTU61R}&)3v=xbDThh~s3Ybs6kLP;!p@oZy!}j_@AR%%o`!(Vj2R zzuWu2pqICU_|g})bMrBo3ze4sUb` @j-YV1C@wW*^uioC_d632PaSgHED;Gx|w4WGx1G>G%71J6FY6NcWw z8H!VYQczA#Zegh{>*OGDYHYOhOt>6v?~Y$#v3OZi7;S7sOZp6K^ux~H_F}`_oCl_J zf$nC_8kO_1;`7wOg^PijlAD?~y&aN3U?1I1mUEzuIB}N1YEbRV%oej&lSq*3h+KIy zCI^9y>hA2W4{3%)q*^Ixpr_5$=vwghMBfLl^-$0UKE?E^AIJMLKCYb3Fj9FfGCp}A zU5E% 9}zLym2Gy+6kc_#+#eAD6Mw1$cmLfJ;uZ zrz2z{0ejvfb !~=F`pk8K78WigQ5iz&mkMb-7IO$a z_avaoo+R_Ez&__!@Td<3b^f+N^}aC@CGPL8SDlbHk3{g@74y7@f6eBzu{6>i&dl(X z0sF8OuXWKww_BkjmC9f3F5WQA)yn@eAFnz%{WwYaC`pa2z#>z2p=N!M`r~@xf+fHC z-H&y3`kPx{Fgk4pUq#u`bNuW_YVUAzr}w1gRu4F2ZA|+O2EX#r60@d)rXKm_>1+%~ zQrF#FU18&-576Ml5ouJa0vf--Y#8U>78Ysyo@ycQZ?zQ|{idjRzhugB{-!osEerL0 zj0_K(W^&ZshgOT|>i|m%9X65(%0o(8)37u2;Mj?Y3F>-0w61iKX3eKuR=?KY;jfiZ z0H@8*J9^|mNCbVXxodOp)rO_y?|!G>xh>vd*=)BYIOzD%Q-XLGtJWgDzv0%oAR4N{ zw4ZfQjBYJkt{V|rU#E4yD5_5qE;ZggJ9{h8EQgCkxH$fY*|q6R+F?5T*RNkSP))Qm zM^b;Kcdkn0e9TD&A5K#^m<0oKD@NUoKcep%RM0b{qpnW)rYKd&Tc|}({g7K`O!N36`7m1*;$@=%Y7Lr(2o9qJDR#sNN zzoHz2jq-nZ(B746l=*1L8143;y3FXy<{YyW6@DcB+XV=iMaj?!rx( aJaK*KITQB-c z-7uTw!=LU?-$h6q!k$St4cpmZwY%TYej4oGmT6{Z>*#o9UpvHhck9RN?}5gxiVUHT z_9prFhJvOtGaX&H!kBL{3GaheTz#fHvzHgO0_JSi#gop0eU9#JPGyY_f1E$s^7!%N z%0=bGMfx^vM>9J wWe{YYQD zdDFtUY3O0I1w{t>L9OYH%VU*FAZMiT78`wkZyPXj9yWRiTNUu?W%GmG=1iIEfxajf zLl79|Ek(u=MTkB5ZQP-4_Dt-CkV@7e_((F4E$~h`ciA(I7xy>D5*IXsBB+EF^ zzE9GpVR+DV{3BJaajoE%h4EX EIr8E?4!^OA0< zZF}ORGbj+*_qPLalexVV1va#&v Ga^&_Nu2sZ%*o=r~CgbFV?JBvK7@2 z*5}BTVWd69{^VD$j~aU~;p*0r*a#J58V2~{4u77UboItGdnZ9y#Y=;M`*)O9HXbH8 zXzm7_S`i%#oCmeskDSCQtmHNw&BO+;FU)U(?UyIGo*Q-}9BgfUj-$eJN(J^#{t(6m z&rNAav`4yTZmNd4q-*OCvEDrSJ9BaR1pT6i&J-UrI5k+_yrDJx41L*k!n7OH4{s{5 z7N{Oe&}`jr;)Ud;!l+BkzFuPm#`JixrV$^?U+Z%^eP4&B)zQ;)mDP!c_ xw$tzKJP|$MH=}m6`053SNtBHW zQ*nIwY^g#E0+J$UJsl&FL$;y)jCGeBLQ!+Mr&9ay>Vs%A%pHCd 2PHZ8fQJ1bH6YUiuwf$75fD5#G0e%TBU!c)QUwCr@DgJjxg)U~5|2)I@ z`;bjd7Qk=@es)S()M=?(lz2pEURxPPHC#a=&C@^MLLb?Y;pb^>c`{MnQK7juNB~0% z3C<;~MJGRlcUJUbG6t+HX;iS39YqQLHLZ)dajD>@r3 CzU?4|en@BRR6jh_FlY+(Pb96isn=pn=21Z(rV?mQK8RSqF8 zFYfP@PnD{g|1b%U5gE 5?!Q}rw0`stpN=_} z#HCa$$9r|1JLIK&O=t3|i7bO{1s6ErJ|Yp?9t=5^Kptyd8LrMqtP&(9skB7HoFs?# z){MT)J`*%^uzIGmw(|mIex7q`jQ!qTXYw7BvkVfzg%Vfdoi><(eR9?k9_0CwtRDn5 z$a4;qNn#!vteEGto@6@D)U?<78uli)uOs7(i$nc3ZC6q(6@4rhjp_b#6MCFvnQ@76 ze-uPa;<%;np^F49IN93R^mj22e-9YAE#A`i3z6oeSrAlAY$bGHcwm4NV(~O9Ytfi) zF>4UEwkoYPi}r|=FsI369b1)_kLOk*NnP}dM+@H6#ngQ%gpO^sUWE *$dQ{DDN5yEuO5?XFOTOzJtsFt*=WbtQQFGicP0~W0LsZ5*05^BQ9aCT zHa{ZZ{6JiPNbC{R^F+g_{$7uB_?6Rqt9ja@{CMlqHsC9@&g8AX;G=qNDpD##v(eO^ z*exjJR+&i2rq!9%Jck}K;jhxR>7M6TzP~aN2RvMY za%de z@|4(i5`BD1x&@^r58@6Ne!F%MpLFPT+-yaKx?42NQjJfzk}3v-wS`QuF{oJFo54@A zq{M3iw&pKSp08f~2ZC=9fe@39nUD!CE)BO=cVb3g1!^m3Z!edR&SF%_+ynnf2k0U_ zOt(}E^t!<&lgX60viPq`h9 pFsoyJew5ym_{+8+;5~Q7xWftcF>_;Sk?T?O{zxWyNZjl_y zGxgA1-75WBr=U2HQB~zDH4xQ|Ns>T2vLkVMoDbEdCxB>ta8H@1=CQ&RG|$wdiRPff zNa{2q2Kq_nI7tla`t^kRc!ci+H>wN03jO4w=)*f+)#P_|WM|n N4tq9!E>U{|ohnu3Wj&@Xxc?83R{^TBSav@+^C;^`;C0 zK#k82CEy)>e>%ee;N2{4jQd)jsA2v>_A2-)^tlNdd{D`#e;)cd6Vn4wL-l6TQ=}#3 z7+(De+j?3h_=T+CC=WbzVdD7EL4ENVmlT1)#Eri$hB*4J Ga;!#yY%I=?oGSPcL!1?`knb|vgs(Lwi|>9#qFgNs+gh=P{@Oqit1XP zy#>hpWd4zcT6B~e=$9ONV2sqV!8Wqb5=D#gIS4|auVcPveNt>0ypif18gfulg_2|X z7@9Z==oh)vGoXEDZ=vf6CK7i lY}3 zcuG?e&%;Ry>VS< z|K8(!d3bpCU)8;0%) &YqL3mA3D;1Ul{QRKc2 zhu?tj5N};eKOUX~pMJb|)O%$)@$d*+UcGY3^q$>pk}biuC*VntVkhBZoWc>k^Y#<1 zhw85?J$fWq>GK@g*DX@&-Z*CZ?rHcHNry3`)3;7Ab-rhT;TKwdYq _#wauX^Q^1KOWd+2pBL8hxCL1qw(YhXa`_r9zpj2=DBdR z24EiWzWJYg=(|Ozg1Wk3MrLLdrxw4{fu3*c;N~WtsNi$@>dH(XpZ`qnrMlOp!eis( zPQ7JbNCnKa=~S@6rB;HrjN2b+t$xhb$6-gM&t3Pnn7wEPLb ?fh4`~w43axIH@ zU4ZClYwNAt*7J2aWL{QWTpVU{@}_clY;9MjVcdZi(I-!wkWdBxMPg)f(sfGB;A$)H z=rm__aqQ=Ani6>Vp+LWKR(|D6zs+?vBfKVH>6`b$@P~1mGEV{6Z@}Mrvj2nv0@N3I zyfLe2KTIkP^$z^)Q@dX3{z&BJw0WcAg$o^wRsTa@28%oELZb*F15XI@U%hvtw1v1v zXJE3W!f6xV3DLEIsbHD*KVBN0f!{duPd4Cc012F{V1D!{V;qt5{967QJ5MQF-rOV} zbB+D*{%Zg;Y2@)yyL)Z)v6+La%k9|e>O|s+21DF>S0RQ)gVUw`Jw5Z6>Fl(15tQYq zdx%Zh+i60qSgXZd>DOPNuGkKaQ=*ZNK!O^AN}9*ypL6cw8WqtD4)4UYipbQhyir;? zS@x9R5;&BfVDe(o7?q(QxLXks+k`L%E#aXG!x|DN3aKIHH_4*-ChL< (w|bxe4HnH$WY z>Bzxdg2zgAJPPXO^WKud$?CXjZkya;Nk_)5_VM^4^zoG6kyvFN&UQT#d40m_Xh8ys zSV{Xr@EM6*akh Ggn=Yg|loqWq z)JxrY!<<@H`Yg0?6{Ft3NxoOhM)S!lc6r?~^E%>8l! URnuC-dip0!o893!yFNDeYxNNLj4w~wx+Ug)3wXSQ`*`YG-<2^)}V*{Bjxrf%oQ0<$U(# n@GjIDEt zvFHh_daR7x<6HK1D{-r0){KJ&E_^5vHgpo(`hKnAItg5d7DO$7<)Al66D2muFQBgu z=854;KX{lN%~S67mBI&~xyifNB)-GT-kDYbllKuYKyH)QnltoMZ&5 H&Z7`WdtQZotf|JDfu((HPL$Z zM(T$!UcMEvwG%StW=R)Lk+%>rn0*8#N1s*kUH#{)1#IrNg!;IQvXN5=lapC?hmFN7 zoL7#Tb-0ZVM!7+jZ5GMv{h3yvF;XV@qfkjHnCSUgF}9W*@WuU>MS1pqTSWB}j2~6b z5;WlJ68NA;Y}4S#P7|X8rm!)JMcJOi9-}r~**xr~jhXgP6h(3%XOq}q;qNj^TEWbb z1Y^5=1GM$*)k-qJYMfq2{R6}4PjvbHB=L5;rg{6`ej#xD43Z_P{pGr!0iGt4=C;jm z7F&xzwMvSe^H4y@mCUfoT4p4g^J6WuTd#W~gSCyDCyDPXh=kz%SWD(tQ5lXBf=b^_ zsj>dkscP+Zm&_UbQ4cM*8NB3vE0s!<`Yl7;u_{@Mbp-7USw4G7Yj rBK3N5jT$#kgt9_dqQ&3W6Ak&j^%OLYx}XkFI`bIp^1s2`n6vC#s&E(2an% zd%2r=LF0_$J7_)hRbx7dNF-2p<;NRCB<*w%69^OkI>#I*^AuPcOPuo#cpAuzR~_%b z)2#$+$%i3d2Y#*FnrNKJjr3covK~?LiZM>zy?~Ds$D3XMNCR@sU!5shW7q2|GH&m{ zZcgez{;895`llZN(xi2%J47eq Z17MkfNNnA59c+7Y9`X5uts@RVa0?G{*U2;x|z_f5V zv->iyCy6r(#2Vr|fCu5!9WeK`!h3O)N`)NANz&FIZf?G2QR(l|84(#7DvPEGiHtNf z=>7>s{=m!U*(bNm4(Pr0<*82LmoFV19n(X3eBdVq1f&?5VvX^aY#681g9Cr;hH`~3 z)JY9|Owy^2O*GG~AyzIHFakYRHw01)TS+XMKVqx#8~S61CO2y7J0=c;2zFh%Qoh;# zV%(;3?z?B5DSe%|-yGA{oLLrlI HEUn!=66zRt;(c!=Hhl4A;eJ@=)c(bN) zt%&70=^3b;+qShHKVHQ-L-$AYI|OlSlCQP0)V^=aAF8|%XUmH5@6yR !_o8pUtT9N~ z?EmJJ*COe5SSgi_g-;{R@raS4`cu|{vg&_-#@gk=ZMFBC^8NCjUysezY;RG`6DAtZ zrto4{=4S7We0)qbH$U?Cw{c$ei7f~j#P0E4T^MOiL8)yncZDG>E&sC%9P@{4j2y%r zlk@1m0?B1XCU3MAI x1Irp;VKad+?1u4{V&%#d$>xa*E3(WjicJAvg5P*`?OXu -rc&TImIPr*`clJ3XXcrbt*1t|3K+r$sfqv zJX~J^ONUxf>W5Z55VSV8&@7F#{Z1O~kE5Uz`OzM%+qkW`>J93`vUJLQfGrW8E32dQ zIFllpzvpaQ8Mlm4KUT2WhT9OGsr10ED8&MY`AOsFtCp^>ws-~eCEpu;y0Db8ty0CN zS%=N%wuMPoA5-J@wLOUpUQT12)`jG{F1k2m+ysUF)}E()J{n#~ug$Us`<=rtk~43D zJZ#6%t{JAFrdE<=*&cB^*@A~*+KPDwZ-17^Pgc+=8fF7XspZ{HDt(Vim) _nywC^Iwj(@M?uCfsm3;-q5d+7VA%JKQFFp{F2N z)&|%Zd7*O(GEhq49twk67}Yo=ZVs$@UeYZB*THL>@Ient3|}r{bF$9iBU=-vwu*7& zTx;IfqWBOM{_<#p=-O2X9>}GHrb|huZ veT+@)BxA9M8c>6C{j4Ejq1% z#di!gLy~Len1dzT0^7lHGEAte;iPB9MC<~)0H+%G4UsZc<LCS8r4;$kf~O5dy6 zs^GQ)nP^Vg^Ay}xfS$eWSmu@NnA*1<$Bx*6OzuM`hrSnBgP#GOlXt9lef@!MHhA4T z3t&>BUTVt3y~#L=++V(sI0yaIHYlq{_i36XDABi^vfLn|CO-LjlYMOKITdb&;7tgD zEjvfbusb#ubVG}3b+jqD#;z(9>q9`Y>J#;cnQAK)3j;%2rAuUfl9YAn9lJ<<+l_+g zDd$C`tRwD3Z!%9ma!*m_Gik~)6keF`A&%by3zHm1 >t {W2_U%Vtk zfVxU+chF_P(|9);Z`gp1&*9bf+}}?iitDGsj$Y!fU69x(7Np!ur-jzwcz~cvP@p?& zy@~iFieFqemwNDPN}_AsEN Atrdf zUJzHc KvODzPSyL$#^I#IZqu)DhA-AoL_VwaI6XnSfA6~`Mkk^ILp`Z~OQ znM4{zZ6}UKX>bR&)HXakJi?`r;zR2zP}lgXg&4qxr=gRAlcs *lVHGFt4&RXBT zj} C&a1Bj&NS?@9UAd#?emhdb4t$8|8Y1(^v>-U6;fOxfK+0pFim zLNnJxYl73k)%)N#bg#qD2P@sUm<~kmgJ)~gD*V1Nz%QrA#c4`qP}d`2sc(fu^;7e5 zPzaXVET#u-8@O&=#`F5eEi4cZZ0q-#LL`;PilS>*?q|P50$e_W|EeccrO(n!wPGWA zZ(n8?x?XmMxPJkjmmUV<{!s+Lb>|bb*FW<%P{Z>5ePa9nm7o6~r2KzyN`RZa`q!tt zSLgT|1E?|PcjdQ2<&Y<~HX`L;blX&VddQD`2FQwmQ_0N^SR*%)Ve%fyle~oPz#(!| zCCtQ@l_O` *c~8c4W7OGCKLorAKNPde@YyM4f619ain9AqHD#G42GFR9iHXDZ)~3V!ASInE z` QJtlE-QD-}Kn?* B zt;+L{n911ur6Kz=buaifBIqCJ4!zeP8=Lbu!5=vKgWU^ncV)DuXhCcoV6Hzx2%7a` z69}Z^1J65tN }7Ecje68)aD`tQ_@_8;^W z_$j_rTZ4uIms%EPirb!KCf^sY`u;^CZ2tI3uBsP>O Ja~yo45-?95 z OXluNAWGB0v9pb2n4bjRdF2!$-H#zLrk8}45W0C~ zRFZn@t&*mJi{wCBh)tIWf@8%U<^IyehD#SF(<1%%CLr5b1vP3aTdQLL*c)z`K8N;( zR(A+0$PZC`x?#|KGPo{2kjL7ta)b)VWWE-?1}*t-wu>3wQjU5%Tci#=CA0FHC;Nzl zu5l)ops^hp3KIG2QvtatOJurP1&xXrg_$VQeT)_!zVD=WAmWGCIiJ!kH?}4VxWTfs zxcZu*ba$CF)cb+~`Y76lDuU>@s*ewx&9Tz~mS>;{;Vj+f zY-n(8pemxKCT{CW5wG6xgF0%h9JUWjR3PAE0Tpa|r|0t%*6w^Tsf43aRA7$Qy+sF~ zvxt&-H7C}Qjkg9#F!cemQ1f^IidmDWE9@N_F-0@v?ELi8X~>#Uw)h~nYT O*VRRh$B!_~hids+*FSEr5Y1(znbI(X~6+2?@64 z-TJ9R l5$;9a6`?}*7Weq*l>sAtb zO*xK s9cIai2RcL;f2IX8^ijMVtn9@2^5P zE;yl_9z`ME0PQZ3g0~-hdpgrMHQq kik%W2|i1zsvns*VhF z-#BLZ#2toj`xVHtL#mQ8P-g}2vf+ W44qA(^b#BP}8?w?iBPC&biOobpa%LRHSG-_ssLj^mr6xuoVIxeKSe$kaZ)Y*h zTlkhpI#=mJWMzGg OD)rLp@f#D8=n zyn04(Vm;g**su^bb&8NdaX}WZyfX!j**M> 7JIos5Z@v51ixF{q06Eb!IY@lKH_dQs9Vnld2MqX`HPgzOH>QD7J9sErb zfKwNjj5~jMH@>=hZ%SCh<{x#5A3uJ4US6IaaQYSTtYI>5R8*7$vo$HnP+jc)Om9&k zAgUDxaXFm@nL;qx>wxsS$z2JhU{_-2=!gI88>nJAGo#?plddH{+xQx<|C=}Y1%x*Q lIp2HcuOKzw|6uZ~TGy}SU$%evzw!US@&Bv6{eQk({R@@tug?Gg literal 0 HcmV?d00001 diff --git a/pics/ed7b96ac-6428-4bd5-9986-674c54c2a959.png b/pics/ed7b96ac-6428-4bd5-9986-674c54c2a959.png new file mode 100644 index 0000000000000000000000000000000000000000..78b3cacebe828e2a87a01f01200cbaeb59a4397f GIT binary patch literal 9216 zcmeHtc{r49-~Uu&-=~R?r6iLGNfKeolBpOaSqf1I$(l7Xv{>iPJ!ChL$S!-9$ug#_ zNw#buCdR&G9o}=K`}e%}bKlSLJnwzKzvK8F$L|jZ*Lj}Tb)DyVeb3ML^Z9%QqO~>I znE99?5D1&rIkig=$PPFJvhyG#J!lyi`lJPZ?Qp)Nc?Oc*yl)I#K&_A$kq}58mSz10 z9k^z4IA`b#fw0%mes+-Vrrm@<_77>PA@$r%CgWRd1;`bT7a8`QJb$G6AiKLQlU+pZ zqjd+7At*EK+?fMA&imB`7CP+Al0@QH^GeuY7s~?kkHNI=vM)tCyweyz@I9$(zl`C? zsVL!`xTCudqF&p4Tv|PS+IjCqv0()(<>Zy-XtLkqBUdbzkI7Cuj|z-@-o*}4g(7!A zc%gKVo1AdSFGw^*mHvONA%dm8DOSF(J>x1@)3@pOKF=>9OMR$s6di}4Nea}8ZVo+h z#73L&l=%VfEQ0)+Up@Uu#8s0qC8q=2&j}1nsK8mCtbwD#xMx1)LQKr6NKRb%S@c^N zH03KNJQs>QtN^8xK%!CX$Q|eZq^oYeMP;DWjKkT<=`}SKGWVQ$$- }*$RK8OcamTUI8+#wr;0LBjl^m!T(gk1Ew>Lga zFIfyQh&EXq>Jd08u}bxsSi`%A3(9s+y}i-avScBO315hMe~*DZ)~8bF2p8@J=|YjB zL)XGQ)gTb>K13U+s=Gj;8bssE7dwnM9e4bnhFa=wKI)tfkLt>|&b7Q_$l174uIbLR z>zxqwkJu%P6wKUb+Z@-U_)R|ixz$;pOg(fpHrmb&Z~fy!$*MW-Hj|m3PnpmW9{A?H zK9;S&FEZS+vLfBFvpZMeGIpt fVb#ib;Q4VB#L;P3DMGOLqfZ)OH*jcc;ZuLx)7$wwNRnqsfl zMrO9# z8vZp|WNNP3!+Et7!^?yUa6qpQRrqdJD(ECC_mw`_cp0qt(we&SR^7xStA*gD)Vs>E zsfkCTp5oPn5qwNR8klf)OgIvg^b~J>5W&O=4~43WAhj5f?}d@A=g`MtI4C0+1iD}N z<8S^#8^p(i+DRJ(x<4Y($7qAVU7|a-pD`wk;H3?sJ^H~hL|Iu`7U8v-yL-uSp>3x* zc2eUOdaAc{_+@G;N8`8a#>T;?m9xf)<1MjH%6CnWOo?rilapN*A7eDpQ};i+kn5U@ zM$0Ndc*yjfL&MPYBOO`B_I7p?Z_mtFhN9Xru+TsvZ_OieAsjA*omrWO;o@`|Mrt@z zCcLM49uS@w@|+Pw&gxv+2o#@+GSOoYEtmGEqmaMPKgLehDPdr21w{OM;cT{-hiCbs z9P)j%(!g^lGH)ROrlfAjj?yEXqk0tVh5Ls3s~WSQzPOp*KZ9mxaYZL#DTayK UEDyK(7<_@g%6rB_BhiM<>DHm~h2< zJQQ1@OJ&>Z=4}*#Tqz}*jZgzjpZFl_nxYo( yZl3k21Jok?qS&P$i*2}#GNiT>@;0@;o@7fu{2Eu?6H z_+UHYPNBGP i1%T9C;Y4(hp+$k+Fe+H2K2^PFZHw7I#mV+Up*+SiL*yQp@oSSDlF5bIq&p{KCnIPFvVLR3hccZzqa&_={rYuR zXJ==7fNzU|X01e`y1cCHa2<(c;cJhy{Pd=@wA)1eF}52IQC$&6K!pAAkO!=ooseUU z%#e5gqXvyx--iQU(-l^q%iN}mQt6iEp(DR6lT|jmH^v9oN2Gim#kAw3r$2qt^D=+n zdlt U$7T%V5dEShz2(|l^iyux!aU8_cRXTW|$9iqluvL*!03MKBn zWsrF*iYv$uzc-mRxR6!$j0`8-0(T=X@`eV29%CMIOrqmhBO_529isb)X!MBp`Ci5# znfhFV25AxaE~JbGFSjkPWq`TxKRh%=b$xS}nY*KMBc(H^c=PL^?jznRc4&&~#w^yi z_Go=#K4ZPKNS7ZT-k5U!nK_T8p6@kX+zpM~9mvB`1;)&OawYS&rU=em1fxy&F@Eot z8^+8m#(}iSfi=$LN &0dTq^l6W$ViPpRd*iHU-NJB=3lVNx)f !7&GOG`hnZcf^;IQuW~Kf&`m-O?(5!>IQ{ z*K9N0J^=w&9x0RKAnMUpbz+*Dy(16jN0m;wywD@Jj)(YUn`vNR`}e^K?st8u$qJf@ z?k}BpQ0cZZLXCX1X}QY%`Dlffb@P85@AvbNF{0>cxDC+$pz1cP3qVEvx6vN @NN+6O%yl2ayDPGAkOpSaI<(MI! z+tSG?_}(|J4WXf-0w*8$XX@@pFn#61Wf&{ko6n_mbn5#Lsg$mZ8T86jq_NjePA+kH zPq&OTv<**{ yMua2p74+7L+I{O%aQfZ^18Tg(W)Ae$46PSlZzBy1>_tWGXtPe4xs_ zkQ+C1uQ8*f11jp5PDdP=8RVCcri4abMORN>uI|B`=+TQZIy>~&!{93UiKnN!3P2`K z=f Kgbq-dYdB?XqM;uY*_3Mm6J|8Z(D#Wn3jP_s#(d8F~ zaGb-1*Ol^28O*4K%PKaJbg@=wz0Mf?L3APh8o`J9wn Np zVT_wE%-h@BugJ^GlMjiB87DGwU%z(EMOIeU-rHO0JDK~YMpkTWEMSGpQEbc*9LHZu zB!4v-E!1v{3tha*GwM#HU-nON!MsQ=5E4dwklVN{XRm8Ez3Tj#gA@KO#sO{OF%r?7 ztavX~#SKa)jwP(D-PsREsw8M)c3wY=KF$e$z`zM-gVKH30af3H+~E$sq$(OB2w>%p zyYS&ko9pxO{F^tlwY7^j;cBm{Jq{vf(EUDZlU=dO+6e|e3F2|!=^P_dePwy__v1DU zo}@C9pW;=;KPqLfSqMk_s9>RVm!6I~_6hBJzpw^w|0U=+mSX27s7*)&cfQi{yk=GQ zYl4q5ZQQR5CC&H5PE)-FnV4T38gq=F)b?CmQG&t01(lFoixm6Xa%c~~x}`4iIJ>4? zbO>9k<66?OUT9F+;TW|*0q^)Am#Q5 Hs4-eraz8)y9(eCUz^3Fwp4Y8+$*nHvd-v}3*3~__O(v83K7GO&8yPtr zIdbICb}sqID|M~p!?7u=iYQWuO@o7Ag|V@*{oT7c6+txpaQir)y@SJtf<@0hHda>Q znEY byXSPn@ za)F3gi;Lv~%kTzuZFGU_a9fDa?8ZWq)#!pVoh)Er|E6U4D<}S)2tsI}%hf7Tk^JcK z<35I_77Of{hAX-FR&M%nYCHB3 `&c z^h=(3M$~bi4$NF %TtnJ-}ptj2KdnS7S?nu6I-u@}DRk3QfmDr!Q8|8?d3e%o>J$=ZAfF!QC#< zl;IT?)X77J1F->3vWTj-2NC!H-;CW>k!~s;K+R;eY-iZO(}#d$1es5?YxL%QE7%oY z_-0PeL!O(t5ArKtWEr71*2aAW7&UXLTg!ygGEe3v$LzZAFFZ@+kAOF{NE(dXJ41!v za%|Xb=a@8SoUrfJC3Lm3IuL@JV}k2^C!{H77C|a2E*?;EV6WKl4OT4T2NMK}Eo(K! zPLP&>ZY3afU$LT0{+i1Dk3$w5zBVgU7nZx(G4pvAG*SQc(`~nn>RZl&9$&4kGzbW8 zZtg~f ft|T;1l}DQ=7?)bDus-_{1W zmvUturCHgnnT>;^j3XwIB-j=@jxV3@*UakP$>Y1EJ>f_r=1o!rx16IAf>Et4``iE@ z-h-R2T&=B8I^7>L|NZ+~9_hsuUYw%aRLR)b*e-HwSy2(U*A@k=$1l69NhSOQ%6fc& z|GpEpdUMS608KwcKgGi}2k1w}JHle4yk9LA67d06%sYq46|=-*hOkKh*Xs(bl}mZ^ zvf|09%&6tDT3Z>!v!mCYfRmI*S~!5z62?kmO{4VvVRBFKDFBx+=Ce#ASlg>cNW=04 zTW4gcD WE zngo)mKh~Yvx#63?7njzVeciU{+d#(h(h*0}3m~Zg-wv<{U#!sTQu2qbcZgBS)3?wu z)i-gjrh-7+=zbh+g~mv7BHuryAtUN0wEzp=KE1g>-ZhABy0*>N8@j$QiBirR(SRHS z>l+VfS`9nHi!%$}-Tqi~YPldC14|`J>Tv#&w$X>`oxKg58ok4a!O|on<{%ZT))hE8 z&jwgx`!{YM^cKvos|CvjnbW3S>ef7(7gydWix8jpew-Bkn+W{dg704jcq84&SiaPo zhw@jOR=V SXh3ti$T0Wp?-$zQQ;&}V1jBS zbCo@jG|cI=kUC`EdLp*zJ4#$|H}VH8a{aro_>TS%pykvZ|7))Pe};sQqVW?G6D6Uc zY;DagEoHA>9WE{?_^Pk3f8ms(BIVGbLs2rxx1w6h3JXWRfB*hDBhCE+^q<^@EuBKN zIPizGa1XW=ue3P9GPNil*|hTQ$2XWOP~05f%1j8F&9?mY+mo_#hyJ)fu^KM&xLs%s zi&Lrz*;ymIN?dD`PmFGB*#k_`1KZ~Em;fgH((erCzpV{ueC*wcH~B5`&NVePQ~smm zJd#WDDa3U7lCEvhTjD^)ZeS{i^HBa7-uO+u!7iHGG(|6Z9`T>+yP8kdlW>fwUr_I=GYOb!S9k&OEd*d}&2WU!;$Uz*7*dr-yh zEO*)KF%T1LzIX{KswAg;qkEL74ewOM;w4O03)cqw2h6c!>fkU78Viny zI#C-=c(4w_=Y;PRMluGt8EXY&&7tw4KT(Y!yj~Vea{){;2k!*PQ`!RMb9kw8?9Isl zQCloJCc~Zq$Qi*0@MJmd{|cC+Hu3JmA>c 3Pj|s3@nOVTx<`{#FfD@s#ZA}~gH#4E)Ecz1acNL1iz0Kk%LMQQlt7LhpO*1J> zVEWqIr ;h7$6HHRYQd@f7D(W8HnkHMp@1~xFogE2afZFcB$LF_pA`~ zlHm$2qDi+)vr&w|oUZKY@3%kw%D~mtwY{mSsr3E(_Z?ywbsip`zQ)E7ejy<&wUjPe zmohqP>9wc(tr{AFSNR`#(SOxK_?-pb2;Hug(HzqLix)4Jrlg1#zkY50vAf$)UPh)W zgco?!{aIO(#l^*)Ch9aq3e~7#V`q;kGRZ0P^V^~3{2OflQElv%J4hF=tV|tp2zhqR zn%J#P{}pWdRjJtdcOsh6x@N$6{h>Su@ykT7HHuJ^!fLH-Jj*vJ>s}dkMW;DdS!Riv zZOar`pf~eu4kET=<5)7NUIAYJ&b<8`+Ve5~1rGFUY*)F6=}++s>`1M{pg&~08Wwy- z1o;!hc;$ZR3GNIH%tuA2XbO Q=!3K;5pLxlAKisB`Z!w>1tPI zXDt38o)wgCl6Yu}5O|-SzaHi}bMoDdd=1eYfB}b*hr=q_>f5sfy2T=|3gBigRGH7r zukuTK+sUW<54GHwsW62EJp_y}DYyfOy|x73aZoMfp@}3rk81g7K;hU9SRbYtn+D!z zX7lNSJB-j6vC|l*Cwiw5Rpw2eZLfH2-T4QbR$YdgY&AfUY~ET1F+NYj2^x{=_;_YU z!+(h9k*TmF>7^W&$R~jgM$YC3wA?W3NaF;K=06Z9gG~K|Bn*YZRusrh<906YQzl^3 z^du33Q8z2{sz*yXF{yr;^XZl$%BR(vV3o&!9Tct#N`MlNG84b+Mz9QS!41EOoO3&7 zj?iN&7 0>qV{IGw1{ zRlW1bS+c~b#33c19vy{*gJ{e7Nsy#li0R>f`hh`)lh6-^{^U!RpTM2KG&jryQ8LYm z!-1++W7-dM{j~vzlK%aO!=ebjXx$%`u0M}J(lvB~@>-IyyK{RSR$$AnN!2c!=Q;WZ z!T#?NAvYk5vc&deWM^lC(w2g}f 2- z$hE-mpYfHy_}>tmgT0%(NaT5xtp}nE{0j&~OI=$n`-~Z8t2X}s&;S2R=l{O|>Noa* literal 0 HcmV?d00001