From c9ebdcda77600e78115838bd68b7ce0affac09ff Mon Sep 17 00:00:00 2001 From: pkuzjx Date: Mon, 7 Sep 2020 18:53:12 +0800 Subject: [PATCH 1/7] add iamges --- image/flow.png | Bin 0 -> 16544 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 image/flow.png diff --git a/image/flow.png b/image/flow.png new file mode 100644 index 0000000000000000000000000000000000000000..a84a4fd0f5220c0b999ecda7a61742e1fb764130 GIT binary patch literal 16544 zcmd73cRXBe+cqi@H4#Y!K@cQF?`714s9_{}Ck(QAT8qIZKqqD}PZok$|u=ylXv z8=dGG40|ET{XXw=zkBcZ``+KT_aA;^t!rK9y6Slz*Kr=}-4n1p2{AP>4h{~9qQWCJ z92{IS9GnY|gcpH3Z<0;@fS(IcHF;^A!mis(z{MrYhbj+oaEc=?A3ehZu8CeK=t6OD zu6{lJyU^nB5rTvBKv40~Lk)MMwG`w0d-6UD3nWGq`m4mC;Lw8W()V9Vg!671@OKHa zv*iC64Tz^z{oIsrUzE|`(V|o47P379Rxa3@>{TwO3wk^g$KiVI;hxO5ux7@fH?;RW zUPc+a(yh091f#<|-hQiljny13s?E!*?Os|I#Ui>e-aBzVHMKQ0xd&4Vu4!HiBSk

bR9t8E zcIoOW$JGcVJb=kilvbV~TT|>hC&*yLh*tmhGW>?V7cL(TCOv2n2ZxV`xIk|NbY z1{Yhy?X2yc<}}lgxGYyEZb!CuV{*FNv{p^&vHJOZIU?Qf#_blxT4reHzW6?0N;d<` zZ&l})+Jno(MM(5+-%JZ}v_>)F*b;w-8+omjFFX@9@?6T&ue3*DFYsJUO)C3KBruN* z)$S_0J%7jLYB%*Ngqd1SnRueDl4HI-LSD}=q~UFK>%|mJdujGot@es%k|?$8x20Lk z!OI++$z6FlE{|*~X)0xr#BT_yKVP`=_4v495@bRQIWp(I1&uB}9#1p4qdwoYKjkvt z9=Do_bL;gujb7Q88Ieb_EUSSYt+NXLxq(_AW%I+ULg3wn-Wto4M@yz)700r-1-6zg zR*%YMCH2yBx;7h~UKLs(s6}UNCy#y8S)owT#)A3x%jdCCUOUeiqBDg40wsofX}Es$o({Su`DY92=!Vau&JSCFih zgE<1}1{wbL50e+YtMf{%D#MOrIjcl&mf&q!88+$>_JqRvQ`{!zCmy!KqGF6(FQEl| zcvx=HlLsd0i1_Jzc6=KQp1X}Ix~UuW(KDFSm^|DzY8$nCt-Dk0M9zy!>LhpDV_ySi0`zD4e&k$w{o z3rTs%%x2uOC*CaSUL2!aoPnD`?t6nuy7%jS(qZS$dR>M^gGOFqLo_Ph8(YSC z&ySiqlvjk`DoJ-0Jsc@ved+QFq(TSkHJ3L5_Y*+<-?dKGF33!LP(`0wG#!?WitF@zOLm0>E#NUHdPnRcG)eMwZ{}ZuCW*uP4NmvsXC> z<4pyTFsQ=%=bGT?=s5IU%Z{Q6%<k(dXDUPBHNLOj$20f3;dfW!Sddm*CSa&y zLZyq-m)0c~mJe=vH>3#@p+omiE$Bvous@q4I+pK|8XPzlAYW`&raDgH8hfuFI(Xd^ zn_F9;i!7Hq9`CNh1R!Sj;gKxTgo?Z?(TE20&Yqjm(TvX?zSYm4KB|qp=oC-IAvZGm zrK?(Gm z*(lW$*6)_uW&ei!^3#OnZ05)I4HKnx(XsY3eQc=fR}5ZlyAkQYfqE7ou4P*5lBH)TVOKQa8?mXG~M1&aQ3(uQsrT7Tc~ zie4nj%1__0gp)nCcc^Dp|0a5sedIDO<@h5x7nrJzZbB+{w)h$j$cE^N-cI+ zwZ+p}Z*vxA zDSLNKT1~l5h)4pNQ)M@JoT}~^a-|wmG5Jk~ZL?&Vna-C$xEa6ZT?cUqlW8X_ea7vD z+7-U{&B9~b*Nbs?nitBHv&=Bs^HRQhR%2<>&BvG)i|3h6jc<;J_>+#07RTm?56yF~ zRE~Var1*P>bZt<=>f<(Aqis1Yq2-0LnHj$ZZzx?wnj0Do@skm6w50WVVDAyv$UygE z+ph85epNuSY>NHNE4LTA=AV+QViV3b^F$1(XXK2^bxSGo#emLTM96PTSt`=TP(9;{ zV`i?w*6`2pBvZN>bJINNr0@C?Yo}t_k_>(ILh6KkyK-D!*{Tz-;pg7b&Q;8yMw8Ag~IHeid{7e7jR6zx7M3JvAdBi#9}`a zBMxO$Svn?h1RNoY6AP_Ia^O-L$j%3Fk(U7Qq(D0i59(pQ@E^P{_!$`2D(2OzYV6+F$+D`{*jatjymn0d#tqn_0Iv%`o79V_ZKf(Iz^wKkE&ePMvKi_f{ul)<#0~1 z=gTIL&p{b1=13b6a|T9VJ}V}LbL2?5p1vN(L}wM3r<_*CV|0K*|28v2X(&Q>|9#kpW5U; z*+@&jRibd{A;4Z9x zkpD2N`x!XU8EDyg8!9-46av+yb|`m&sKU!jqTdn2BVEA>Q@;XJ=Yf%-3JoMmtK89Z zqt2Fg=$)^Kp~1V-6YE|07N7>C$BC2ZS&A@J(kXqvZT&FuvQQCqU z$%>C;y@h;dtKP+#FEdgk>M_MwqbDA6tWow6J zfn`e%i7-v7g~NnAl($R6_;RW!i*&qCyYWK{yNYt!dS5i8`8pA*?Dt$iLbeWARUOCQ z2vjrZVxF+_;*Fw{+gza~Z2g5C2j4!1fHZTR9*d?)K>G$GLJFsqA+vvmcI}-c+R?Ey z+f+fX$^zWw&5!DU7p9K+vH9%}H^B#rbJ4MaChtI~f{|g5?`d1sM5xbyUTfoI|Dh&E zR`aXJGvROiEE})i`)1{MzZM?hM~G{8n;XB{N`BbNj0X+A042tUGLBu3y3$RjA=cg^ zZLPq_Xez5^P@)O6w0yKP=i^BZG~0K(GU+x^tsa*PO{qI}{8&~DVHB5dzRbJ5LNT8h zW4m~qU+3+M9Z&?u)0qcxiw9xC!%~9x^z!vOOW9!ZCkeG zlXlyZvfEwLPI1nAKgiU>7t>W~T=#>jDB3P0^kry(FkeS03FWIEGgiKH^BtX5`yV3K z*VZIR1zp|T=9m8hY_?MQ9_&~Z-~~P6vY!0QtxeVU$6)P7je6b)^PFk0$RUe=HfI)DAj4`W*%1GLYVjRGgkskZ&df^Cnxwbd znURfWU@uiaqv0tn$Rz-qS{PsQy!|-p_n;iS0(H_OSqYIj^e}Z=Br7K{TSKPcH*t+E z-m4=spClKw8%0G&qEy8Q{F#M}2JS+rAtBijvlH*4lRK5+rO6uxt6z&n1klf!i{l$Ak zx2$1uTXtdbj=s!@?(L+wU_0XM*uuzqo_ul&9z>Y*KQ%$O7Btu4RY>Au|?!6>C-lyJ+K#0%-5-N_Ug4V(a>UGmYP(l`4E;!^hIb!b%d&R2*4x!bT7p~>|RxxA)_T;Kwjg_Jg18K?d2Z97cQ=hd^eJSr*C|kaW zj->!xybUkQiMYc7&CI-EODbaCIefA(1m%?2DkYeL@_mi2oov2+lIk$3UacT}vrw}t z^kFJ!-cGN7?VIbzS#w_Yd^RfsK9fPA@T*tLm_*C2V~LkT7}?!{RmcuJDDOI%VEfTo zI-$U7pVJaMrdI?asu?a#iN`X^@!kssY4yg+JK@SmK%L%nE003^68j^Rj1S;ihM&&| z)2L@yCv4^8vun^koB5kxBkgLO@Z$9K2gnBpU~Z4Zgq#{7A;3H+3Ij&6t0=>) za95^=-lH{?=VOQxW4!JP^TdLdu7Tu}gadtadJ_QtAPWzD6A3{>xGt~9d|0)aVKtEF zq_F}!skj>9KdLV%)yCE_=^eIWqd8A^69amVq!%Xi>DcZWI7}mA4*$C_VltqjgnQ-U z`TinG1JQE8r2?xd9?a=CF|Zcbz{N3U&DKhgeVeN2Wmf^?twGcXJh%2B7lH`K*}Co$+ZU$qnW4sy8gvB4tz!7Cvg_No%u%8F)R@@Lk`;>t zTV1V*2QshlGwT2s)VJvcRxLuPeZ&!&IBfqkriYl|5hZ9k~Tb%KWr&FG|AEzsibc^UfyzwxnjD#)V`EucoT zxRF1E!7M2GtUEQnEG=M*iyO}w5{&(T%<0SWM-ORG8&l<76szo$09|R{9WM~Fg$ynq zvvs9Y$ho64!?u#1a#4=Eiu!zXModz=Ij-DUyjc5TIbG;q!UJyuNVCv*Jr>&BpGH`& zymm2nJNe`BUgS}auHCzdAl(xlKh`H@AMzV*t4dpwca)Z+iFFag0i~pD)|9r54{%G6 zfU6`r2y#FE*{LR^R-2X8o>PH|V_^H(Ra(B1yL;g}5;j+~=ln`twx61dELpvNbMPv= zp4ID_!D8L+3G4a}cI|y_NBmE(uOr*6+(5VO<@IX~m%#Ph>!y}D!h~JX%jDVQ=W&Y% z;T!rK{N}RQnvp_%$ouWo&ds+6cx70BmR(KCQIc5B-hx{0D{vwA1id1U4khdQP7?Ki zn5<)KCEW*>Rjn5R&wRHPo+}cT@0>S;J@EGX#>ckp%sBN)>JI7w?Db$UoYjvcji@uH zdQ9W|+QlzUDTJD;86F%YVpqiBHnz0$p)bYLc)a;BeiMgn&6hI& zGdFMrJrMB_+2+^B1nbb<9ZfW>T#fK;mMz6N1Pd8Ztc~)``_WEuadQWwoE^i2Mn=ci zo~KyE`{i&_pxnG3E1~%xwUxxv(s3Y}UZ&r(P|l#!4ACTY)T0A6hJ*uOp{h5rn5xgS3{b$JWd03!H z<}9i3X(#3m$ZQrr?1=42YR~kDXj0Mq!~6+&@Z_N5ferjiS8Q>4LU)j$%lI~`qPCev zq;}-%`aSjR@<@%vtMF1(P@`^=)D=EEW22J$$(@}QNrKE$p~!qaJlOl?@23lJ_$L}4? ztmEYQ2eK;ot8byORP9DwDXfi?ouvWc=(L`{|USr#75_j}(ADrZ1kZ3+gB5)JP zCIQ${{Fyn)q8<3HCM1u`5ZTr+ zrmx1AHhpYmvOSnpcTXJQ14DTOnd8O7asiqfa1ITUI&&`PV9%Q#0K$6(+Qt1-_8c9%{;Mub z{TdKG{`4o*0(_9o;k8k5!2}GD5yTgv%LIQgcpSQ{veJ^{LhkDN`koM?AE9c)$#b_J zAPs8Q2iPizK>c2@{&!v*y}OmJA|4y42A#;QQ;CV_04{RKdO}tUPAr;F-~~7A z$EzH-(JF^1L6+)^<25cFzW6Uuz|K5<%j0WM&;8mdpS@MoLYm((S=!HUlnp=dFrR8` zy=J}hD<-3T^?5zqqIXBot3czOf*mvkJf=75(KW+8KMW z%Z|gtnucAqGkE9~HXQuY8l2 zs%XLtZ(xNJxQ&M~WlgCb_lth~pEbMgT03yGF4W|BU z51&4pDD=O2S;99}`{P3OgV^!?>W#tneBLRq-KdB;8qeyAGPffmxW^FtgI0~G*{4OV zU+?UCUKdk{Pfj7IQ^cQO&*N%7Y$jszMJStwB+ygn47P(#xso;L(O7G z+zO7}iA!>eDBrS+tuNV%Y_G3-SAXFO>_K=hV<<ukj!TA^&DpO_0OM^@_ZG=FrIv41t#4G;d=`AL7EfYR8Pbmi0(uH0`^krYt22EyG% z{;3Hudnw617l+;$V-ErSxrV>IfPPBCI3-+GLAF z$E{3XRl$pW2gs$qjAn06bp_RRH3V0^njs{Mjf{0WF2}5;aZAZa)#w(Kn&yn)byjkK z_7U(m=W)>#DN}XBOB__<9Ol{3bHk{r57tSYOQ;s8jP)cuYdnLDeGR5N*U=jK5bYctjm=gzbjZSQ-f$^a61}s^PZ{d5=oYkoXs{Qz=1}iF9c8(b zER%;+6h3I}aIi|LZjX(r7~x0l!;^$GhHU$O?8B8cM{|ZcQ5ut-s7o$kkrk~MGPLKO zMIJ~D61GxzE+rfH?mJ(l_uf*|)zK#XL*#48*=0X?^Z~y8Y9^sKSlbLOJOI)26IR(O z*rHrt@356K@6gcnnAJj3hL(>QtBUPKt&R;+cPCwkwV*wHv_q1tAxOUYtDqBId^7}jvOtB&cLMWuzdcXAw7 zxa)d6`Mu+%<5^CYHRox-f%&|@%n5P)o)v~bWnk8Sv9B<)|GP^78nFx?w`IUiw()4Xet&Y?o4D?zP;5SExxDf5Tz(Im39;v@2ng1lCRMc34XdxOC!niq zvGGoLs{`OPYfhSAxSLUtu;d@FZHiplZ~Wm=U_R+RGXMrw?r#e%;y#{GKo~TMzH9%X z-1a`Kf3yjX56DI?pZ#|O51LB=9c?uM|KWM#0r*LQ%mK6>On;h+57h&bgnB#(Pk zaorPCqwruY)`wv$%Hx62`+~FO0VyQpblm&Q*N)C&g{{u{`jX>kdC2_@wRU{J5$RTivFTmiTJv3R zzts)Dswovz*HYzEX{JkCmk|)~xxgmxvfVW+w!Fa!a#V(-7>8w*CD@0wSyV#a>Z2w2 z*b(MZc)}Hm@&Zl2$+GQT+5IkGlb=F=77Iu&pSeS%2EZb^R2f$%Y)B?-@gi9_R0bq0 z@H!6d^{$oe#xr-UuJIw9?jC$p?|w?%4&N#iSpymDOugPjL#S`o)cmv2E9kPjB@6|o z_ek9G%S-b&Ty^aSz$j30f@yFBA_b)C|n%CO))VA`3dP5L+map# zEDHSI^<*%Bth1@^q8+M7d4^bb)bJ2MOFBBl%DwwEk?`>YQo4+hfLf^^MZK-m`E?_13=@<7a*fl^MN#1iD(N{w#{o%J`u9$A+#Hd*!cnWzs;^Oi*X{JA7&s*W*J2+(K@w z-d3M|HhVcUU9n446E2!usr7-;|7uNcUrn(b+7eu1v8jD~)hu`Ksa|{46jYS$5jS@f z?X6T17pXaFuhCC6{37!jufI#&*{(No@XqWQ#hit*zjQB5B$=j=YO@$P58 z*CVe$NinjbW^9qW388&_a=Zw5E+dMOaeaOKlT6`IfBaycdd=uE(*t6U`pKUP3IBOL zhk@cKb+H;o3Hn@9DO6wKt0`rDJpB>rMWgn;xA?yvx!c>zKiS?wB6$*A?*OsBNmix1+|A+>{sh99hW{)lr)zkDH^@ zH!XfZuq7{iV&j4Qz+kuxG}c4KDJlOZG@jOJ-rDHH-e3rxr;ZSyXu@V;(3zNqCRh;8QJe7@eh zXC~x_5xIG=AsE64;d+CJZzfcrNKn`N}wTr^5fpc z&+F-gfFv7m+?E3poquo-5AeGDKwVL3Jzo7~z5n2EcCH&hvVf{cl zf7b*|1H{VTz@k4I(1!jWGyDzKzj3sl;e-p5qOV{0THmRd_mXw7cy`XD!5dRjC}p;{ zzwedYKRKB?RPwieGkGU}Q^(}R| zt+1uy*@mORscp7IyW{Q0##_`=_loK_5k?Zpl%S0|U<3adwH+bgbje^t^fzPx4xib8 z#^X1F`2WQvj7HeLZpCn8>v-b6bZcw%$t?XYI&$ruLEtU`a$)@s0J`HD1bU;;ur~Wd z4uqrpEuryfp3=zuA&W^zl`po&DE!TZ^U(`+0ORm*R@zV0%!Z4B;UXXUact%*_Q#p` ze|Dlfg{KB4!{6F!pVK-^#f^XT*LL=`JDLfyv2@pLDzsMHy=5u;T?IBp_ zoF2*y1f)v;nI4ijr-z8_GT;>+q^jFFcJpb#_gmgoX-b;t!koQKLi({R0vJ>~4mv;5r} z4<~@SJ7z_rESh5<7iaM#KWt)*asQU;Gcq@)!9=*KEc@CvxE~AX`6W z((JyT6GlM3|BU972B%4O0+iAjL)40PUKuLrSM~PXpNXstFYJ`YkrQG;4bg6RZ2(#iO<*70ZT4P{*#~d2{NzPc^E7}au*YJ@^Jzx+0FFov zIT=H02Ci>96R(h7aQNf$sN_TMca>O9qRHSdUcoaA7KjejWJkd`C- zeJWQ-GXO+L#Qn|4_`+0uNKDJR6m*WlrUQ_36%AY5koNrhIH;`=Hvqqz`k1rh^5Onz zav(6D_0RdMUX34te8UIEe&QI4q?a@&2Bcv5?Ej%ym_;+)tOXF03C745rHSTnxvY+0 zbJeB1+p*!Xi71`WYkd-bKi+2oZWeAST~J&=GJQk_4tz`%O(5@=SI6)pDog_-3;ztq zQrtZ>pr<&(bfPt~^#CJ+e;X;8vrF0jzP4PAMSwY1X=?7F2cG=v6F{R!H-^lOt@ygr z;-#S0ta5})e-vVok~vrjmKB-#DQMqCgs;2cNs8DMylc%^eAwt;%zS8T?AG|OC;Y9O zlaEXkGXUBigKjAj-)w{?s913C>V;gF7CqPR0Gca6!uLlh1*`}~g5P4S|7HR60Q}hc zWN9JICp0wD*kB4s3d;L#1r&J>M!(wHruX?ub3_-VRA=4xAW9whe;qR~Hs!nd#j=jL z?HZ;u#Iml*;XJ-7M}q1BwbP{Um{;nXY1G6-Twajyu>_;o{t;$dkM+v;$;rue8Twto ze&&rFCHB`%kui*D-P$7@kC{oYGOk84cD+c9z)%_Lmyqi7%W|I991=87n|k z5lal~Cp^nWZC^T*MgZC+jn8mEHVVktl331?V?drN>mpj&Acw=|EP$9g zS(S-_#f%%BRwF|1lo$EfxfQ@g9Hm`yf{_Uw@;&62pwuL1^*Kqm622q`fdX zvIQP~H3VzH744MXcDwd+uww|-C#N67JgYWR(pmwaFdX#2OF={pzito@i;Qo>vZ8D3 zRBV81jbLh?uBOl~8m6>xN(r}VIbIMRp=9Cnpe&gOJl zakjX&R#!OD6K#*F;PC?q%eWa9GQaL6)Gg3+&rQRxJ#TI^NGAk9$j_#q#Gui)zBiEr zP-*y9#IqzCUHVeAu)=8bz&YyWLxWa= z2uIiCiK9L{#QY)N`)}9Ua3baIC^6b%8rAzZi*{ezRR^uNwTqE=G z&sHz&dS_0RM(p-@k;P(2&{kF>Xl-kyAoUgcnQOI(*}{AGv@(&NxQVcuITD`aJfEd@ zyO6>S+X)*5-Qk%YNk?w3>tND$H*yjQ!!83PtDpXYbMuomFi7Nb${K~kt&xh}4&x;q zq_U;Jwpxjx8^Hoikx)-o&IP{8C7tLj68+WB-_Qe?ks*nGf#WcFFP}F<`%#hYK%*z& z?S}99lX{-UNF?nJ(Zbr@=f&zOGWea8Xo1vH>96beNkj4>Al=#@LUebr=iAIe z8EP%QxoX}M8?TDuFtjd&l^{VYErV zigXd%VWSxHw6gEExbx%bi0mJHfRdiTQQa_8z`3QX?|78jmc`{(aEZs%c7cYRYEQ7U zXmVfF;A|7JUzB4$+eI!e9$#cE=k{Y2{namX=-Az_;g5p+Y?D(Lbz%?iC*N-|wj6y} z>@w*3@vqR7EUO-fk@=5yVi!5`TK69l8a&mY`Pp8fI~0}!xnfORpP208VXE`uhdCk_ z;n<`CtBIO?{b0fMnXF-%0QJ|Eca6)++){pZ7;p#MwihHyca-DOUY1^TVn*l1S!Ncl z7Z&7+Sz4L<@;l|Y*z@WtPUPF=d3A{mVg$95GBlQ1KS5oZ>kz0%Vo*SOBeADHHjsjA zi5!p0x$;)*lL{ar=pd|VfQrL(;BIqrI( zu@|6SRl?J@4DLPSy=@$IJU&PlTO~waZ^qTo$`K z87>r?N5`eq;k?Yn?EE3Tuu-f|u1vV7=01=U1YDfScLA0Z^KNE|Qa0F^`SK|P3U3&X3nWuN064>_JU5gSE`LU~vaOJFaW z+6>hr7oK3Y@elb|^L-0LQ$GkbPP>0BjIBgy#eFEh(B+!jqUIBl0vmykMy#RD`qup3 zapnfha1{;pmf17b=9qXw+X*r~9^FKobak-~yNncb3u0;QdNkv_y}%RxwIMEwK5iP+ zPr0^|7dV4)&$rYjQc*R_G~6q9sK=&}qaZb^i-u^yvwH55Yoyv>0cx8l-6hy-+;*Los*{qQrb-x16iN4u25K0OUQH_&A9&z_ml4${$WASwd!nxi`3{Z zj#a07C29tWN$w9e8{1Hr6|s5BUs__ovc*O{+zG>;ZJ*%jLXymkrmiOvX=#} z$TnE}3YN>Vea$DUamwLzLL_mb(PJx>+ZyLRM-sM&ItCK_OcKncU~` z8PKO-s0g0w*BE3o%;JOB{zQtB-}R9q^(Aj^`s=k>+A$H4#W> zK496=q3_;WYCBxp8~>3I!K!5LXBg7-q7BEZ#M)g-N0R$e1bT#MOum809o=Pt^+D(#WpyS zw0%7yVT*s^Nc9K+F<(p8&4{4XflXi!Bx@X$;(R&BBHIjvI|#C!#ly3u?HPR3$Ouzq*81a#E7ViF$xzl)Q2VEy7}+Tv3& zH#yH);{o9^(V2b`06#e|Pa{3>oyospB@-Tm$C=FSROrigzRZCSR{!5XH~=87Ro1tR z4?Hsgl<~vn;DzqAVWnq0dwY9;c3dq^i#ULRMK%+ZQngQ4a5-oWkgoxPMs~oZ`!s)} z_rloZ&*5{rhYT~2bnQG{e*P88-=6{ePfAnJ&Mk+NhcWctalp$IdD9N&>S5{*fCC0- y1($<&svDBt(WfQ+Vu0jhxR(0TW}Y$DuTxfU57yFQ0DQrOqbLi0R48rY|9=6c+!;*( literal 0 HcmV?d00001 From 70b06bc24f0a734502321a2fbe2a53931f9c237d Mon Sep 17 00:00:00 2001 From: pkuzjx Date: Mon, 7 Sep 2020 18:54:42 +0800 Subject: [PATCH 2/7] rename image --- image/{flow.png => arch.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename image/{flow.png => arch.png} (100%) diff --git a/image/flow.png b/image/arch.png similarity index 100% rename from image/flow.png rename to image/arch.png From 49dd10850e77fa0c805672e1180d6a9b0da858d6 Mon Sep 17 00:00:00 2001 From: zsjyxyl Date: Mon, 7 Sep 2020 18:55:25 +0800 Subject: [PATCH 3/7] Update README.md --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index e69de29..ff46314 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,8 @@ +# Cocoon: An Infrastructure for Integrated EDA +Cocoon is an open source infrastructure for integrated EDA with interoperability and interactivity. +It contains a set of cross-tool interfaces and plays the role of EDA agent that can help IC designers +choose EDA point tools to assemble a legal design flow and to produce ICs with higher quality of results (QoR). +It can also help EDA researchers and tool developer do research on new design methodology and cross-stage optimization. + +## Cocoon Architecture +![Image text](https://code.aliyun.com/openbelt/cocoon/tree/master/image/arch.png) From 652f89be8995f0a06572cd4cc3a679690f1f42af Mon Sep 17 00:00:00 2001 From: zsjyxyl Date: Mon, 7 Sep 2020 18:57:45 +0800 Subject: [PATCH 4/7] update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ff46314..39485d8 100644 --- a/README.md +++ b/README.md @@ -5,4 +5,4 @@ choose EDA point tools to assemble a legal design flow and to produce ICs with h It can also help EDA researchers and tool developer do research on new design methodology and cross-stage optimization. ## Cocoon Architecture -![Image text](https://code.aliyun.com/openbelt/cocoon/tree/master/image/arch.png) +![avatar](image/arch.png) From b4c2a206d3dcfaea2333539af6b4ebbc8dd5e6e7 Mon Sep 17 00:00:00 2001 From: zsjyxyl Date: Mon, 7 Sep 2020 19:03:37 +0800 Subject: [PATCH 5/7] Add license --- LICENSE | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..266cdf5 --- /dev/null +++ b/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2019-2020, Peking University +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file From 879fc6409bf62891a20d7156aed284dd9862b4d8 Mon Sep 17 00:00:00 2001 From: pkuzjx Date: Mon, 7 Sep 2020 19:05:53 +0800 Subject: [PATCH 6/7] modify images --- image/arch.png | Bin 16544 -> 15995 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/image/arch.png b/image/arch.png index a84a4fd0f5220c0b999ecda7a61742e1fb764130..24ff4469ce31fd212bc3a7a1025319d02eeb7792 100644 GIT binary patch literal 15995 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

bR9t8E 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 From 90ef468b70b525bd2f940e1cd8c6e24f7d29b70f Mon Sep 17 00:00:00 2001 From: zsjyxyl Date: Sat, 26 Sep 2020 13:32:14 +0800 Subject: [PATCH 7/7] add two more branching demos --- code.bak/logiccommander.py | 46 ++++++++++++++++++++++++++++++++++++++ code.bak/sys_place.py | 41 +++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 code.bak/logiccommander.py create mode 100644 code.bak/sys_place.py diff --git a/code.bak/logiccommander.py b/code.bak/logiccommander.py new file mode 100644 index 0000000..a0ab877 --- /dev/null +++ b/code.bak/logiccommander.py @@ -0,0 +1,46 @@ +class MySubFlow(object): + def __init__(self): + self.ops = [] + + def flow(self): + op_syn = opsrc.op.logiccommander + self.ops.append(op_syn) + + +class MyFlow(object): + + def __init__(self): + self.ops = [] + self.des_list = [] + + + def flow(self): + des_list = op.min_cut_partition(design) + + for x in des_list: + sub_flow = MySubFlow() + sub_ops = sub_flow.ops + ops.append(sub_ops) + + #merge? + + + op_floorplan = cds.op.innovus.floorplan + ops.append(op_floorplan) + + op_place = opsrc.op.dreamplace + ops.append(op_place) + + op_cts = cds.op.cts + ops.append(op_place) + + op_route = cds.op.route + ops.append(op_place) + + op_drc = cds.op.innovus.op_drc + ops.append(op_drc) + + + + + \ No newline at end of file diff --git a/code.bak/sys_place.py b/code.bak/sys_place.py new file mode 100644 index 0000000..5083b06 --- /dev/null +++ b/code.bak/sys_place.py @@ -0,0 +1,41 @@ +class MySubFlow(object): + def __init__(self): + self.ops = [] + + def flow(self): + op_cts = cds.op.cts + self.ops.append(op_cts) + op_route = cds.op.route + self.ops.append(op_route) + +class MyFlow(object): + + def __init__(self): + self.ops = [] + self.des_list = [] + + + def flow(self): + des_list = op.min_cut_partition(design) + + op_syn = cds.op.genus + ops.append(op_syn) + + op_floorplan = cds.op.innovus.floorplan + ops.append(op_floorplan) + + op_place = opsrc.op.dreamplace + ops.append(op_place) + + for x in des_list: + sub_flow = MySubFlow() + sub_ops = sub_flow.ops + ops.append(sub_ops) + + op_drc = cds.op.innovus.op_drc + ops.append(op_drc) + + + + + \ No newline at end of file