1 `+--------------------------------------------
  2      FileName: shell.note
  3          Desc: learning shell
  4        Author: Mocker
  5         Email: Zuckerwooo@gmail.com
  6      HomePage: http://hi.baidu.com/new/lsin30
  7       Version: 0.0.1
  8    LastChange: 2012-08-08 13:46:36
  9          Tool: Vim
 10 ---------------------------------------------+`
 11
 12 mynameisYoungWmWmmWmmWmWmmWmmWmWmmWmmWmWmmWmmWmWmmWmmWmWmmWmmWmWmmWmmBmmF ]WmmBmBWmBBBBmBWF\#m($mBmWmmWmWmmBBmBBBBmBBmB
 13 WmmmBmmmBBmmWmmmBBmmWmmmBBmmWmmmBBmmWmmmBBmmWmmmWmmBBmBmmWmmWmmmBBmmWmWZ_m,$mBBBmmBBmWmBmP\mmBrdBBBmWmmBmBWmBBmWmBBmWmW
 14 BmWmWmWmWmWmmBWmWmWmmBWmWmWmmBWmWmWmmBWmWmWmmBWmBmWmBBBBWmmWmmWmWmWmmW#\dQf#mBmWmWmBmBmmD\dW#WL3WmBmmWmWmBmmWmWmmWmWmmm
 15 WmmWmmBmBmmBWmmBmmmWmWmmmBmBWmmBmmmWmWmmmBmBWmmBBBmBBmWmmmWmmWmmBmmWmD\dBm[jBmWmmBmWmWmB'dW#mW(jmBBBWmmmBBBBmmmBBmmmBBW
 16 mWmmBBBBBBWmmBBBBWmmBmmWmWmBmBBBBWmmBmmWmWmBmBBBmWmmWmmBBWmmWmmWmWmmmfj#BBf]mWmBBBBmmBm[)mmWmW[]WmBmmBBWmBmWmWmWmWmWmBm
 17 WmmWmBmWmmmBBBmWmmBWmWmBmBmWmBmWmmBWmWmBmBmWmBBmW#P%$mWmBmmWmmWmmmWmFjWW#m[]WmmWmBmWmW2_#mWmmm[]WmWmWmBmBmWmmBmBmmBmBBB
 18 BmWmmWmmBWmWmBBmmWmmBmBBBBBmBBBmmWmmBmBBBBBmBmWeJW(L]WmBBBBmBBmBBW#W`dB#Bm[]WmWmmWmmW#'dmWmmWm[]mmmBmBBmWmmBBBBBBWmWmBm
 19 WmmBBmWmWmmmBmWmWmmWmWmmWmmWmBmWmBmWmWmmWmmWmWmfL4<B)WmWmmWmBmWmBmBfjWmWmB[]WmmBBmBBm(qQmmmBmm[]#BWmWmBBmWmWmBmWmmmmWmW
 20 mWmWmBmBmmWmWmmBmBBmBmmWmmWmmWmmWmWmmmBWmmWmmmB{m7jmp#mmBBmBBBmBBB#`mWmmmW[]BmWmBBBmE.mWmWmWmB[jBmmBmBmWmmBmBmWmmWmWmmm
 21 WmmmBBBBBBmBmWmWmWmWmWmBmWmmWmmWmmmBBWmmmWmmWWm]Qr3m[$mmWmWmBmWmWm[jWmmWmm[]BmBmWmmB[jWmmmWmBm[jWBBBBBBmBWmWmWmmWmmBmWm
 22 BmWmWmBmBmWmWmmmBmmmBmBBmBmWmmWmmWmWmmBBWmmWmmW]WLQm[3mmBmmBBBmBmW[jWmBmWm[jmWmWmBWFjmmmWmmBBm[jWmBmWmBBmmBmmmBBmBBBBmW
 23 WmmWmmWmWmmBmmWmWmWmWmWmWmWmmWmmWmmBmWmmmBBmmBm]W5mmk]WmWmWmBmWmmEjBWmBBmB[]BmBmWmD'jWmWmBWmBm[jWBmWmmWmWmWmWmWmBBmWmBm
 24 mWmmBBmmmWmWmWmmBmBmBmmmmBmmWmmWmmWmWmmWmWmWmBW%WjQmm/Q#mBmBBBmBm[j#mmWmmW(jmWmWmW(jmmBmBmmBBm[jWmWmmWmmmBmBmBmBmWmmBBB
 25 WmmWmBBWmmBmBmBWmWmWmWmWmWmWmmWmmWmmmBBmWmmmBWW[#)mmmLJYmWmBmWmW# dWmWmmWmfdWmmmmZ`jWmWzhiWmWm[]mWmmWmmWmWmWmWmWmmBWmBm
 26 BmWmmWmmBWmWmWmmmmBmmmWmmBmmBBmmWmmWmWmWmmWmW#mqmj#WmWmp?BBWmmBmfjWmmmBBmW=mmmWmW(QWmBmWyoummW[]#mBBmBBmBmBmmmBmBBBmmWm
 27 WmmBBmBBmmBmmmBBWmWmWmmBWmWmWmWmmBBmBmmmBmBmmmZjW#mmmBmm/WmmmWmB'jWmWmWmmW'mWmBmZ mmBnimBBBBBm[]mWmBBmWmWmWmWmWmBmWmWmm
 28 mWmWmWmBBWmWmWmBmBmBmWmWmmmBmmmWmWmWmWmWmWmWmW(mmmWBWmB#[]WmWmmW/QmW#BmBBmc$#mWmLjWmBmtingBmBW[]WmmWmWmmmBmmBmBmWmmBmmW
 29 WmmmBmmWmmmBmBmWmBBBmBmmBBWmWmWmmmBmmBmBmBmmBF]$[w)Q#mWmm]WmW###L4$#mWW#W#'#mWmf\WBWmdemmBmWmmfjWmWmmmmWmWmWmWmWmmWmWmB
 30 BmWmWmWmmWmWmWmmBBmWmWmWmBmmBmBmWmWmWmWmWmWmW[/][jr#mWmmmc)#mWa/?w)Wmm#WZ'jBBmB`jmmmBmdaoWmmBWfjWmmmWmWmmBmmBmmmBBmBmBB
 31 WmmWmmmBBmBmBmBWmBBmBmmBmWmWmWmWmmBmmBmmBmmBm(q]%m\WmmBBW#p4#mmg,]]mmW#`jwmmmWk.3WmWmWmBmBmWmW'mmmWmBmBmWmWmWmWmWmWmWmB
 32 mWmmBBWmBBBBBBmmBmWmWmWmWmmmBmmmBBBBWmWmWmWmW[qd6swmBWmmmWm/$mWD?f]WmmCgad#mW#Wp]BmmBmBBBBBmB#.mmWmmWmWmmWmmBmBmBmmBmBm
 33 WmmWmBmBmWmmWmWmWmmBmmBmmBBWmWmWmBmWmmmBmBmBm[3WmmmWmmBWW#m[]#mEM>j#mm(iqdQ#mZ!Gp)WmWmWmmBmWWZ_BmBmWmmmWmmBBBBBBBBWmWmW
 34 BmWmmWmBBmBBmmmBmBWmWmWmWmBmmBmBmWmmmWmWmWmW#[3mWmWmBmmmW#Wmg"$hu[jWmZqagdWmWp'JG/mmmBmBWmWmmCjWmWmmBWmmBWmBmWmBmBmmmBm
 35 WmmBBmBBmWmBBWmWmBmmmBmBmBBBWmWmWmmWmBmBmmBmWfmmmWmmBWmQ#mD?!`"=__)e`']"?9AWmVw+/'mmWmWmmBmmm']W#mBWmmBWmmBmWmmWmWmWmWm
 36 mWmWmWmBBmBmWmmmWmWmWmWmWmBmmmBmmBBmWmWmWmWmBfmmBmmWmmWZ!~\gawmmmBBmmmwwgg,!"L4o+=m#mBmBW#TY^_dBmWmmBBmmBBBBmBBmmBmmWmm
 37 WmmmBmmWmWmWmmWmmBmBmBmmBmWmWmWmWmBBmmBmBmmBW[#WmQmmBY!_wmmWmmmmBBmWmBmWBWmga,;]f=W#mWmF"_gawmWmWmmWmBWmWmBmWmBBWmWmmBB
 38 BmWmWmWmmmBmmWmBWmWmWmWmWmmBmBmBmBBmWmWmWmWmWp3W##?~`gyW#mmWmWmWmWmBBBWmmmmmmaga:jWWmmW[]Y?!?WWmmmWmmWmmmBBBmBmWmmmWmWm
 39 WmmWmmmBBWmWmmBmmBmmmBmBmBWmWmWmWmBBmBmmBmmmW[jQZ'qdmQm#WmmBmmWmmBmWmmmBWmWmWCmg,]#mmW# ]?YSmW#WmWmmWmmWmWmBBBBmmWmmBmB
 40 mWmmBBWmBmmmWmWmWmWmWmWmWmmmmBmmmBmWmWmWmWmW#Z`"\jWmWmmW#mWmWmmBBBBmBWmW#mmWmWBWmWmWWm[-Ynag"9mmmmBBmBmBmBmWmmWmWmmWmWm
 41 WmmWmBmBmWmWmmBmmWmmBmBmmBWmWmWmWmWmmmBmmWmf]'jwwmmmmmWmmWmmBmWmBmWmBmBmBWmmmmBmWmmmmW'+mgp4maBWmWmBBBBBBBBmmWmmmBWmmBm
 42 BmWmmWmBBmBmBBBBWmmWmWmWmWmmBmBmBmBmWmWmQm[.sdWmmW#BWmmBmmBWmWmmWmmBBBmWmmBWmWmWmmWmmE_,:3$W#mmmmBmWmBmWmBmWmBmWmWmmWmW
 43 WmmBBmBBmWmWmBmBmmWmmmBmBmmWmWmWmWmWmmBmQr=j#mmm#mWmmBWmWmWmmmBBmWmWmBBmBBmmWmmmBBmBWmmqp,-?$WmWmWmmBmWmmWmmWmBmBmmWmmm
 44 mWmWmWmBBmBmBBBBBBmBBWmWmWmmBmmBmmBmmWmBD_mW#WmQmWmmWmmBmBmmWmWmBmBmmWmWmBWmmBWmWmBmW#mmWmp`]$#mmBmWmWmmWmmWmmWmWmWmmWm
 45 WmmmBmmWmWmWmBmWmBBmWmmmBmBWmWmWmWmWmmW#`jWmmmBmmmWmmWmWmWmWmmBmWmWmWmmmBmmBWmmBmBmWmmBBmmWwp-4#WmWmmmBBmmWmmWmmmBmmWmB
 46 BmWmWmWmmmBmmWmmBmWmmmWmWmBmmBmmWmmBmWm[jBmmWmWmWmmWmmBmmmBmBBBBmmmBmBBWmWmWmmWmWmWmmWmBWmmmmc $mmBmWmWmWmmBBmmWmWmWmmW
 47 WmmWmmmBBWmWmmWmWmmWmWmmBmWmWmWmmBWmmWZ_mBW#BmmBmBWmmWmWmWmWmBmWmWmWmBmmBmBmmWmmmBmmWmmW#mWmWw,]9WW#mBmmmWmWmWmBmBmmBBm
 48 mWmmBBWmBmmmWmmBmBBmBmBBBBmmBmmWmWmmQ#`jBmmmWmWmWmmmWmmBmBmmBBBmmBmBmWmWmWmWmmBWmWmWmmWmmWmWm#Qa-4mWmWmWmBmmBmBBBBBWmBB
 49 WmmWmBmBmWmWmmWmWmBBBBmWmBWmWmWmmmBmB[]W#BBW#BWmBmWmBmWmWmWmWmBBWmWmWmmBmmBmBWmmBmmmBBmBBmBmmBm#C)4WmmmBmWmWmWmBmWmmBmW
 50 BmWmmWmBBmBmBBmBmBmWmBBmBmmBmBmBBWmWmLdmmBmmWmmmWmmWmWmWmmmBmBmBmmBmmBBBBWmWmmBBBBWmWmWmBBBBBBmWc )mmWmWmmBmBmBmWmmWmWm
 51 WmmBBmBBmWmWmBBBBBBmmWmWmWmWmWmWmmmmE]WmWmWmmmBmBUYVWmmmmWmWmWmWmWmWmWmmWmmmBBBmWmmBmmmBmWmmWmBmWq,4W#mBmWmWmWmWmmWmmmB
 52 mWmWmWmBBmBmBmWmBmWmWmmmBmBmBmmmBBWm[)mWmmmWmWmP~gag/?WmWmmBmmBmmBmmBmBBmmWmWmBBmmWmWmWmWmmWmmWmmm6:4mmWmBmmBmmmBBmmWmW
 53 WmmmBmmWmWmWmWmmWmmBmmWmWmBBWmWmWmmW(jmmmWmBWmD=yW#Wm/3WmmWmWmWmWmWmWmBmWmBmBmWmWmmBmBmBmBBmBBmBBmh,]WmWmBBWmWmWmBBWmmB
 54 BmWmWmWmmmBmmmBBmBWmWmBmBmWmmBmmm#V!.dBWmBmW#WfjmmmmWk]WmWmmBIwillmBmBBBmBBBBmmmmWmWmWmWmBmWmBBmWmWL-$#mmWmmmBmBmWmmmWm
 55 WmmWmmmBBWmWmWmBBmmBmBBBBBmBmWU?^. jmWmmWmWmm#<2~$#W#mc$mmBBBBWmfindyoumWmBmWmWmWmmmBmmmWmWmmWmWmmmWr]mmWmmWmWmWmmBBWmm
 56 mWmmBBWmBmmmWmmWmWmWmBmWmBBBB(./)wcp)$mWmmmmWfjL;]mW#Wf3WmWmBmmBmmBmmBBBmBBBmBmWmmWmWmWmmBmmWmmmmWmmc]mBmBBmBmBmBWmmmBW
 57 WmmWmBmBmWmWmmWmmmBmBBBmmWmm#,dmp4#Wa/$mmWmWm[]=-]mmW#p]WmmBBBWmWmWmWmBmWmBmWmBmmWmmBmBmWmWmmBBWmBmWmp4mBmWmBBBBmmBWmWm
 58 BmWmmWmBBmBmBBmBBWmWmBmWmmBW#.Z?Wp3m#mdWmmWmmL)agmWmmWL)mmWmBmmBmBmBmBBBmBBBmBBBWmmWmWmWmmBmWmBmBBBmW6/$mmmBmWmBBWmmBmm
 59 WmmBBmBBmWmWmBBmWmmmBBBmBWmmZ\LgjkjmQ#BmBBmmQm]$WBBWQF\wmWmBBWmWmWmBBBmWmBmWmWmmmBBmBmmmBWmWmmWmBmWmWmp)mWmWmmBmWmmWmWm
 60 mWmWmWmBBmBmBmWmmmWmWmBBmmBB'dWWWmWW#mWmBmWmm#L"Wmm#(\dWmmWmBmmBmmBBmWmmBBBmmmBWmWmWmWmWmmmmBBmBBBmmmmp]WmmWmWmWmmWmmmW
 61 WmmmBmmWmWmWmWmmWmBmmmWmBf"^<mmBmBmmmWmmWmmWmW#wgM^agmWWmWmmWmWmWmWmBmBBBmWmWmWmmmBmmmWmBWmWmBBBmWmWmWk+$mWmmmBmmWmmWmB
 62 BmWmWmWmmmBmmmBBkeepmWmWmmwcjQmWmBBBBmmWmmWmmmmmWmWWmQm#mmmWmmmBmBmmWmWmBBmmBmBmWmWmWmmBmmBmBBmWmmBmW#mr]mmmWmWmWmmWmmW
 63 WmmWmmmBBWmWmWmWsmilemmmmQ#[]BWmmWmBmWmmBBmBmWmBmBmmWmmBBWmmBWmWmWmWmmmBmWmWmWmWmmBmmWmWmWmWmBBmBWmBmWm[)WmWmmBmmBBmBBm
 64 mWmmBBWmBmmmWmmmBWmBmmWZ?^" jmmmWmmWmmWmWmWmWmmWmWmWmmW#BmBWmmBmmmBmBBWmWmmmBmmmBBBBWmmBmBmmBBmWmmBmWmmh 3mWmWmWmWmWmBB
 65 WmmWmBmBmWmWmmWmWmmWWmk_wwm'Q#WmmmWmmWmmBWmmmWWmBmW#mWmmWmBmWmWmWmWmWmmmmBBWmWmWmBmBmmWmWmWmWmWmmWmWmmWmp]mBmmBmBmmmBmW
 66 BmWmmWmBBmBmBBmBmmWmm#WWm#T{mmmWmWmmWmmWmmmmW#mZ~""?YTUWmmWmmmmWmmBmmBBWmWmmmBmBmWmWmWmmmBmBmmmBBmBmBBmBL]BBBWmBBBWmWmm
 67 WmmBBmBBmWmWmBBBBWmmWmmm#f.jQmWmmBmWmmWmmWE!4#W#wg,,.. -"!V#BBWmmmWmWmBmBmBBWmWmWmmmBmBWmWmWmWmWmWmBBmWmm XWmmBBmBmBmBW
 68 mWmWmWmBBmBmBmWmmmmW#BmBWmWrXWmBWmWmmWmmW#L .+"?#mWWmmwaag,=""?VmBmmmWmWmWmmmBmmmBWmWmBmmBmmBmBmmmBmWmmBWrjmmWmBBBBBBmm
 69 WmmmBmmWmWmWmWmmWmWmmWmBmmWp3X$#mmmBBmmWmmmBgag_-!?$mW#mmBWmmwg,/MV$WmmmBmmWmWmWmWmmmWmWmWmWmWmWmWmWmmWmm[)mWmmWmBmWmWm
 70 BmWmWmWmmmBmmmBBmBmBBmBBBV"`]a)WmWmWmWmmBmWmmmmWga,,7!T$mWmmmmWWmwap#mWmWmWmBmBmBmmWmmBmmBmBmmBmBmBmBBmWmh)mmmWmmWmmmmW
 71 WmmWmmmBBWmWmWmBBBBBmWmBm=<wdWW#mBmBmmBWmWmmBWBmmBWmap,-"9mmWmmmmmmWmmBmmBmBmWmWmWmBmWmWmWmWmWmWmWmWmBBmmWrXWmBmWmmWmWm
 72 mWmmBBWmBmmmWmmWmBmWmmWm}=jmmmmmWmWmWmWmmmmWmmmWmmW#mWmwg,"?9WmmWmWmmWmWmWmWmmBmmBmWmBmmBmBmmBmmBmmmBmWmWm(]mBBBmmWmBmB
 73 WmmWmBmBmWmWmmWmmWmmmWmF dQmWmBW#mmWmmmmWmWmBWr"9mmmBmmmWmwg/"?$mmW#BmBmBmBmBWmWmWmmBBBWmWmWmWmWmWmWmWmmmmc]WmBmWmmBmWm
 74 BmWmmWmBBmBmBBmBBmBWmm!_jV?!4mBmmWmmBBWmBmBmW#wp )4#mBmW#mmWQwc,"9mmBBBBBBmWmmmBmmWmWmmmBmmmBmBmBmBmWmmWmWf=BmWmmWmWmmW
 75 WmmBBmBBmWmWmBBmWmBmW(.?^'_.,"?VW#WmWmmBBWmWmmmWw, +?Q#mWmWm#mBmwg7?WmmWmBBmBBWmWmmBmBWmWmWmWmWmWmWmmmWmmmk.mWmmWmmBmWm
 76 mWmWmWmBBmBmBmWmmBBm[. _ammWmwp_)4#mmmWmBmmmmmW##mg,:"4W#mBmWmmmmWmwmWmmBmWmWmmmBmWmWmmBmBmBmBmmmBmBBWmmWBk-mmWmBmWmWmm
 77 WmmmBmmWmWmWmBmW#Wm( syWmBBmWmmWw,74mWmBmWmWmWmmWmmBw,."AmWW#mWmW#mmWmmWmWmmmBBWmWmmBmWmWmWmWmWmWmWmmmBBW#f=WmmBBBmBmmW
 78 BmWmWmWmmmBmBmWmBm! jWmWmBmWmmWmWWa,?mmmWmmBmBmWmBBmmBw, ?W#mWmBmmWmmWmmWmmWmWmmmmBBBBmBmmmBmmmBmBmBWmWmmmk $mWmBmWmWmB
 79 WmmWmmmBBWmWmBmmF`jwWmmmmBBmBBmmm##mp)$mmBWmWmWmmWmBWmmWwp]$#mmWmWmmWmmWmmWmmmBBWmWmBmWmWmWmWmWmWmWmmBmmWmm,]WmWmWmmmWm
 80 mWmmBBWmBmmmBmW!-aW#mBmWmWmWmBBWmmQmma]$mWmmmBmBWmmBmmBBmma/4BBBmmBBmBBmBBmmWmWmmBmBmWmmmBmBmBmWmmmBBBBWmmWk/$mmmmBBWmm
 81 WmmWmBmBmWmWmB[ jmmmBBmBmmBmmWmmBBmmW#aJWmmWmWmBmmWmBBBmWmmmwWmWmWmWmWmWmBBBmWmmWmWmWmmWmWmWmWmmBBWmBmBmmWmmp3BWmWmBmmW
 82 BmWmmWmBBmWmWF'wW#mWmBBBWmWmWmmWmBBBmmL)##W#WmmWmWmmWmBBmBBBmmmmBmBmmmBmmWmBBmmWmmmBmmWmmBmmBmBBBmmBBBBBBmBB[]mmBmBBBBm
 83 WmmBBmBBmWm#P qmmmmBmWmmmBmmBmWmmWmBBmWc)$#mmBBmmmBBmBmWmWmWmWmWmWmWmWmWmmBmWmWmmWmWmWmmWmWmWmWmBBWmBmWmBBmW6)mWmWmBmWm
 84 mWmWmWmBmWm#'j#BmWmBBmBWmWmWmWmmWmmWmWmmk"9mWmWmWmWmWmWmmmBmBmmWmmmmWmmmWmWmmBmmWmmBmmBBmBmBmmmBmWmmWmmBmWmmWr]WmmBBBmB
 85 WmmmBmmWmWm(_m#mWmmWmWmmBmBmBmmWmmWmmmmBWw,4W#mWmmBmmBmmWmWmBBWmmWmWmmWmmBmBWmWmmWmWmWmBBBBBBWmWmmmWmmWmWmmW#k]QmWmBmWm
 86 BmWmWmWmmmZ=d"s]mmWmmmBBBBmWmWmmBBmmWmWmm#LJ$mmBmWmWmWmWmmmBBmmmWmmBmWmBWmWmmmBmWmmmBmBBmWmBmmBmBWmmBBmBmmWmmm-WmmBBBmB
 87 WmmWmmmBWm'`qyk]WmmBBWmBmWmmBmBWmBBWmmBmWWmc]$WmWmmBmmBmBBWmBBWmmBBBBmmWmmmBWmWmmBWmWmWmWmmWmWmWmmBWmBBBBWmmWF`3BBBmWmW
 88 mWmmBBWmW(=wWWCjWmWmBmmWmmWmWmBmmWmmBWmW#mW#p]WmmmWmWmWmWmmBmWmmWmBmWmWmmWmWmmmWmWmmmBmmmBBmBmBmBBmmBBmWmmBBmq,]BmWmmmB
 89 WmmWmmmQe_wmmme]BmBmWmWmBmBmmBBBWmmWmmmmBBmmm,4#WmmWmmBmmBBBBmmWmmWmmBmmWmmmmWmmBmmWmWmWmWmBBBBBmWmWmBBmBBmWmWc4WmmBWmW
 90 BmWmmWm#`]?^{Q[]WmWmBmBmWmmWmWmmmBmBmWmWmBBBm6/4WmWmmWmWmWmBmWmmWmmWmWmWmmWmWmBWmWmmWmmBmBmWmmWmBmBmBBmWmBBmW#G-$mWmmBm
 91 WmmBWmWf:.gw,$C]mmBmWmWmmWmmBmBWmWmWmmWmmWmBWWc)mmmmWmmBmmBBBmBWmmWmmmBmBBmBmBmmBmBBmmWmWmWmmWmmWmWmWmWmmWmBmWL mmBmWmW
 92 mWmW#mm[ mQmk]f]#WmWmmmWmUmWmWmmBmBmBBmBBmBmW#m,#mWWmmWmWmWmBBmmBBmBWmWmWmBBBBBWmWmBBWmmmBmmWmmWmmmBmmmBBmBmW#W,3BmWmmm
 93 WmmmWm#`jmmmBp=dWmmmWmV"<,)$mmmWmWmWmBBmWmWmBmmL3WmmmWmmmWmmWmWmWmBmmBmBmmWmBmWmmmBmBmmWmWmWmmWmmWmWmWmWmBBBmmmL]mBmmWm
 94 BmWmW#[]mmWmWmwmmmmQZ":qmm/3mWmmBmmmBmWmmBmWmmWf]BmWmmBWmmBBmmmBmmWmWmWmWmmBBBmmWmWmWmWmmBmmBBmmWmmBmmWmmWmBmWmk]BBmWmB
 95 WmmBmW[jmWmW#mWmmWWF'qmQmmL)mmWmWmWmWmmWmWmmWmmm/$BmBWmmBWmBBWmWmWmmBmmBmBWmBmWmmWmmmBmBBBWmWmWmmBWmWmmBBmmWmmBQ/WmBmBm
 96 mWmWm#=mmBmmmWmmW#F'uVVmmBk]mWmmBmBmBmWmmBmWmmWmp]BWmmBBmmBmWmmmBmBBBBWmWmmBBBmWmmBBWmWmBmmBmmmWmWmmmWmWmWmmWmWm[#mWmWm
 97 Wmmmmk]mBBBBWmmWmWwgqap]mBk+WmBmWmWmWmmWmWmmWmmm[jW#mWmBWmWmmBBWmWmBmWmmmBBBmWmmBWmmmBmmWmWmWmWmmmBBBmBmmmWmBmmmwmBmmmW
 98 BmWmWmjBmWmmmBBmmmmWBQmc"Qk mmWmmBmmmWmmBmBBmBWm6/$mWmmWmmBmWmBmmmBBBmmWmWmBBmBBBmBWmWmWmmBmmBmBBWmBmWmWmWmmWmWm[3mQmWm
 99 WmmW#mmWmmBWmWmWmWmmmmmWp4k)mmmWmWmWmBmWmWmBBmmWm[]mBmWmmWmWmmWmWmWmBBBmBmBmWmBmWmBmBmBmBBBBWmWmBmmWmmBmBmBBmBmB(]mmmmB
100 mWmmWmWmmWmmBmmmBmWmWmW#mJEjWmWmmBmBBWmBmmBmWmWmmkjWmWmmWmmmBBmBmBmBmWmWmWmWmmWmmBmWmWmWmBmBmmBmWmWmmWmWmWmBBBBm[]WmWmW
101 WmmWmmmBBmWmWmWmWmmWmmBmWpNjWmmBWmWmmmWmBWmWmmBmWk]#BmBBmBBWmBBBBBBBBmmmBmmmBBmBWmWmmmmmBmWmWmWmmBmBBmBmmmBmWmBmk)mWmmB
102 BmWmmWmWmBmBmmBmBmWmmWmWmmpjWmWmmmBmWmmWBmBmmWmW#LjWmWmBBBmmBmWmmWmBmWmWmWmWmBBmmBmmWmWmWmBmmBmBWmWmBBBBWmWmBmWm#-W#mWm
103 WmmBBmBmBmWmWmWmWmmBBmBmW#WmmWmmWmWmBWmW#WmWmmBmmk]mBmBBmWmWmWmmWmmWmmWmmBmBmWmWmWmWmBmWmmWmWmWmmmmBmWmmmBmBBBmm#=BBBmB
104 mWmWmWmWmWmmmBmBmBWmBBBmW#mmWmmWmmBmD"(!#mmmWmWmBC]mWmWmWmmmBmmWmmWmmWmmWmWmWmmmBmBmBmWmmWmmBmmBWmWmWmmWmWmWmBBBmgQmmWm
105 WmmmBmmmBmmWmWmWmBmBmWmWmmWmmBBmmWmP\gy/]WmWmmmWmE)mmBmmmBBWmWmmBBmmWmmWmmBmmBBWmWmWmWmmWmmWmWmWmmBmmBBmBmBmBmWmBBmmWmm
106 BmWmWmWmWmWmmBmmBBBmWmmmmWmmWmWmBWF_jQmL]WmmBBWmmf]mWmWmWmBmmBmWmWmWmmWmmWmWmWmmmmBmmmBBmmWmmmWmmWmWmWmWmWmWmWmmWmBBmBB
107 WmmWmmBmBmmBWmWmWmBBmBBWmmBBmBmBmF_JWmmk=WmWmmmmWhmmBmBmBmWmWmWmmmBmBBmBBmBmBmmWmWmWmWmBBWmmWmmBmBmmBmmmBmmmBmmWmmWmWmB
108 mWmmBBBBBBWmmmBmmBmWmBmmWmWmWmWmm )!?VWh.#mmBWmWmWmWmWmWmWmmmBmmWmWmBmWmBBmWmWmBmBmBmBmWmmmWmBWmWmWmWmWmWmWmWmWmmWmmmBm
109 WmmWmBmWmmmBWmWmWmWmmWmWmmmBmmmBQqwgw,3W(WmmWmmBmmmmWmmmBmmWmWmWmBmBBBmBmWmmBmBBBBBBBBBmmWmmBmmBmmBmmBmBmBmWmmmBBmmWmWm
110 BmWmmWmmBWmWmmmBmBmmWmmmBWmWmWmW#mmmm6/$[#mWmmWmWmWmmBBWmWmBmBmmBmWmBmWmWmmWmWmBmWmBmWmWmBmWmWmWmWmWmWmWmWmmBBWmBBWmmBm
111 WmmBBmBWmmBmmWmWmWmWmmWmWmmmBmBmBWmWmmL]'#mmBBmBmBmWmWmmmBmWmWmWmWmmWmmBmmWmmBmWmmBmWmmmBBBmWmmBmmWmmBmmBmBBBmmBBmmBBBB
112
113
114
115                                                                     *笔记说明
116 =============1===============                   ---------------------------------------------------
117       brief introduction                        ~ 1
118 =============================                   ~ 2             ==n==
119 script language of *nix                         ~ 3             title
120 sharp tool of OS management                     ~ 4             =====
121                                                 ~ 5
122                                                 ~ 6             --------
123                                                 ~ 7             subtitle
124 ==============2==============                   ~ 8             --------
125           explainer                             ~ 9
126 =============================                   ~10             #subsubtitle
127                                                 ~11
128 etc:                                            ~12             ------------------
129     -------------------                         ~13             |                |
130     |#!/bin/sh        |                         ~14             |      code      |
131     |#!/bin/bash      |                         ~15             |                |
132     |#!/usr/bin/zsh   |                         ~16             ------------------
133     -------------------                         ~17
134     ...                                         ~18             ----------------------
135                                                 ~19             explain
136                                                 ~20             ----------------------
137 ----------------                                ~--------------------------------------------------
138 执行脚本:
139 source 脚本名字
140 ./脚本名字
141 ----------------
142
143 ===============3=============
144           注释
145 =============================
146 只有行注释#
147
148
149
150 ===============4=============
151          输入输出
152 =============================
153 输入(读取行):
154      ---------------------------
155      read [-n 提示信息] 变量名
156      ---------------------------
157      输入密码时,可以:
158             ------------
159             |stty -echo|
160             ------------,关闭回显
161
162 输出:
163      --------------
164      echo
165      printf
166      --------------
167
168
169
170
171
172 ===============5=============
173              变量
174 =============================
175 -----5.1----
176 |自定义变量
177 ------------
178     #声明变量
179     etc:
180     -------------------------------------------------------
181     |var1=linux                                           |
182     |var2="linux or windows"  #or var2='linux or windows' |
183     |var3=$var1                                           |
184     |var4=$var1$var2$var3                                 |
185     |var5="$var1 $var2 $var3" #only " here                |
186     | -------------------------------------------         |
187     | | readonly a=3          #like const in C  |         |
188     | |                                         |         |
189     | | a=3                                     |         |
190     | | readonly a           #set readonly mode |         |
191     | -------------------------------------------         |
192     -------------------------------------------------------
193     注:等号两边不能有空格
194
195     ----------------------------------------
196     "   可以包含$引用其他变量值
197     '   不能引用$
198     `   命令输出结果赋给变量,等同于$(命令)
199     ----------------------------------------
200
201     #引用变量
202     etc:
203     -----------------
204     |echo $var1     |
205     |echo $var2     |
206     |echo $var3     |
207     |echo $var4     |
208     |echo $var5     |
209     -----------------
210
211     #删除变量(unset)(删除后的变量将不再能被引用)
212     etc:
213     -----------------
214     |a=3            |
215     |echo $a        |
216     |unset a        |
217     -----------------
218
219
220     -----------------
221     |a=3;b=4;c=5    |
222     |echo $a$b      |
223     |unset -v a     |
224     -----------------
225     unset -v 变量a => 删除除a以外的其他变量
226
227
228 ------------5.2------------------
229 |环境变量(set查看所有的环境变量)
230 ---------------------------------
231     放在/etc/profile
232     或者用户主目录shell的配置文件里面
233     用户可以修改
234
235
236     #常见环境变量
237     ----------------------------------
238     $USER                 当前用户名
239     $LOGNAME              当前登录用户
240     $UID                  当前用户ID
241     $SHELL                当前shell
242     $HOME                 主目录位置
243     $PWD                  当前工作目录
244     $PATH                 PATH指定路径
245     $PS1                  PS1提示符
246     $PS2                  PS2提示符
247     ----------------------------------
248
249
250
251
252 ----5.3----------------
253 |预定义变量(不能修改`)
254 -----------------------
255
256     ------------------------------------------------------
257     $#            参数个数(相当于python的len(sys.argv))
258     $*            所有位置参数内容(相当于python的sys.argv)
259     $0            当前执行的进程/程序名(脚本名字)
260     $?            上一条命令执行状态,0正常,非0不正常
261                   -----------------------
262                   |test 1=2             |
263                   |echo $?              |
264                   -----------------------
265                   outcome:0
266
267                   -----------------------
268                   |test 1 = 2           |
269                   |echo $?              |
270                   -----------------------
271                   outcome:1
272
273     $$            当前进程进程号
274     $!            后台运行的最后一个进程
275     ------------------------------------------------------
276
277
278 ----5.4---------------
279 |位置变量(脚本的参数)
280 ----------------------
281     etc:
282     -----------------------------
283     |$0     #the name of script |
284     |$1                         |
285     |$2                         |
286     |$(10)                      |
287     -----------------------------
288     注:引用的第9个以后的参数时候需用括号wrap起来
289
290
291
292     -----------------------------------------
293     |file=   verbose=    quiet=             |
294     |while getopts f:vq; do                 |
295     |    case $opt in                       |
296     |        f)  file=$OPTARG               |
297     |            ;;                         |
298     |        v)  verbose=true               |
299     |            quiet=                     |
300     |            ;;                         |
301     |        q)  quiet=true                 |
302     |            verbose=                   |
303     |            ;;                         |
304     |    esac                               |
305     |done                                   |
306     |shift $((OPTIND - 1)) #get the optval  |
307     -----------------------------------------
308     getopts(类似python的getopt模块)
309     这里有个技巧,v,q同时选中只有一个有效
310     shift移除opt只留下参数值
311
312
313
314
315 ===============6===============
316     I/O重定向(/dev/std*设备)
317 ===============================
318 ----6.1----
319 |输入重定向
320 -----------
321     <
322     << 配对符号
323
324     etc:
325     ---------------------
326     |wc -l < /etc/passwd|
327     ---------------------
328
329     cat << EOF
330     终端可输入,直到再次输入EOF时候结束
331     注:这里的符号可以为其他任何字符或者字符串
332
333
334 ----6.2----
335 |输出重定向
336 -----------
337     >   清空并使用
338     >>  追加到文件
339
340     etc:
341         -----------------
342         |ls >  demo.txt |
343         |ls >> demo.txt |
344         -----------------
345
346 ----6.3----
347 |错误重定向
348 -----------
349     2>   清空并使用
350     2>>  追加到文件
351
352 ----------6.4-----------
353 |标准输出及标准错误重定向
354 ------------------------
355     &>
356     &>>
357
358
359 ---6.5---
360 |特殊文件
361 ---------
362     #/dev/null
363     将输出或错误重定向到这个文件,效果是命令执行将不会显示反馈信息
364
365     etc:
366         -----------------------------------
367         |if who|grep mocker > /dev/null   |
368         |then                             |
369         |    echo "hello mocker"          |
370         |else                             |
371         |    echo "you got a name?"       |
372         |fi                               |
373         -----------------------------------
374
375     #/dev/tty
376
377     关闭回显在输入密码时很有用
378     --------------------------------------------
379     |stty -echo       #turn off                |
380     |stty echo        #turn on                 |
381     --------------------------------------------
382
383
384
385
386
387 ===============7===============
388            各种运算
389 ===============================
390 ---------------
391 |expr  运算命令(速度较下一方法更慢(新建shell的缘故),不推荐)
392 ---------------
393     -------------------------------------------
394     +     加法
395     -     减法
396     \*    乘法,注意要有转义字符
397     /     整除
398     %     取模(求余)
399     各种逻辑运算符号(=!=<<=>>=&|)
400     字符串操作(具体用法man expr)
401     -------------------------------------------
402     注:expr表达式定义等于符号是=而不是==
403
404
405     -------------------------------
406     |expr 4 + 5                   |
407     |expr 4 - 5                   |
408     |expr 4 \* 5                  |
409     |expr 4 / 5                   |
410     |expr 4 % 5                   |
411     -------------------------------
412     注:上面运算变量之间必须要有空格
413
414
415 --------------
416 |各种运算符号(与C一模一样,优先级也是)
417 -------------
418     -----------------------------------------------
419     ++,--
420     + - ! ~
421     * / %
422     + -
423     >> <<
424     < <= > >=
425     == !=
426     & ^ |
427     && ||
428     ?:
429     =  +=  -=  *=  /=  %=  &=  ^=  <<=  >>= |=
430     -----------------------------------------------
431     以上运算符号要放在$(())中,这一语法好比双引号,除了双引号,无需转义!
432
433     etc:
434     -------------------------------------
435     |for (( i = 0; i < count; i++ )); do|
436     |    echo $i                        |
437     |done                               |
438     -------------------------------------
439
440
441
442
443
444
445 =================8==================
446             条件测试
447 ====================================
448
449 语法
450 -------------
451 |test       |
452 |[  ]       |
453 -------------
454
455 参数
456 更多参数:
457          -------------
458          |man test   |
459          -------------
460
461
462 ---------
463 |if 语句
464 ---------
465     -------------------------
466     |if [  ];then           |
467     |   ...                 |
468     |elif [  ];then         |
469     |   ...                 |
470     |else                   |
471     |   ...                 |
472     |fi                     |
473     -------------------------
474
475 ----------
476 |case 语句(常用来做菜单)`
477 ----------
478     -------------------------
479     |read choice            |
480     |case "$choice" in      |
481     |   U|u) whoami ;;      |
482     |   L|l) ls -l ;;       |
483     |     *) ;;             |
484     |esac                   |
485     -------------------------
486     ;;相当于break
487     *)相当于default
488
489
490 #文件/目录
491 ---------------------------
492 -d   测试是否为目录
493 -e   测试文件/目录是否存在
494 -f   测试是否为文件
495 -r   测试是否有read权限
496 -w   测试是否有write权限
497 -x   测试是否有excute权限
498 -L   测试是否为link文件
499 ---------------------------
500
501 #比较
502 ---------
503 |数字比较
504 ---------
505     ---------------------------
506     -eq  等于
507     -ne  不等于
508     -gt  大于
509     -lt  小于
510     -le  小于等于
511     -ge  大于等于
512     ---------------------------
513
514     etc:
515         ----------------------------------
516         |pth=/tmp/demo.txt               |
517         |if [ -f $pth ];then             |
518         |   echo "file!!"                |
519         |elif [ -d $pth ]                |
520         |   echo "directory!!"           |
521         |else                            |
522         |   echo "not file or directory" |
523         |fi                              |
524         ----------------------------------
525         注:[  ]/[[  ]]两边的空格,不能少
526
527         ----------------------------------------------------------------
528         |use=`df -h|grep "/dev/sda5"|awk '{print $5}'|cut -d "%" -f 1` |
529         |if [ $use -gt 80 ]; then                                      |
530         |    echo "warning:sda5 used more than 80%"                    |
531         |fi                                                            |
532         ----------------------------------------------------------------
533         -----
534         awk  \
535               - >很有用的两个命令
536         cut  /
537         -----
538
539         其他工具
540         -----------------
541         sed
542         wc
543         find
544         ...
545         -----------------
546
547 -----------
548 |字符串比较
549 -----------
550     -----------------
551      =      等于
552     !=      不等于
553     -z      为空
554     -----------------
555
556     etc:
557     -------------------------
558     |if [ "fi" = "if" ];then|
559     |   echo "equal"        |
560     |fi                     |
561     -------------------------
562
563     -------------------------
564     |if [ -z "" ];then      |
565     |   echo "empty"        |
566     |fi                     |
567     -------------------------
568
569
570
571 ----------
572 |逻辑测试
573 ----------
574 ------------------------
575 |-a或&&     逻辑与
576 |-o或||     逻辑或
577 |!          逻辑非
578 ------------------------
579
580 etc:
581     ----------------------------------------
582     |[ $USER = "mocker" ] && echo "mocker" |
583     ----------------------------------------
584
585     ----------------------------------------
586     |[ $USER != "mocker" ] || echo "mocker"|
587     ----------------------------------------
588
589
590
591 =================9==================
592     循环(break,continue功能类似C)
593 ====================================
594 --------------------
595 |for循环(类似python)
596 --------------------
597     etc:
598     ---------------------------------
599     |for day in "Mon" "Tues" "Wed"  |
600     |do                             |
601     |    echo $day                  |
602     |done                           |
603     ---------------------------------
604
605     -------------------------------------
606     |for (( i = 0; i < 5; i++ )); do    |
607     |    echo $i                        |
608     |done                               |
609     -------------------------------------
610
611     --------------------------------------------------
612     |for line in `cat /etc/X11/xorg.conf|grep Option`|
613     |do                                              |
614     |   echo $line                                   |
615     |done                                            |
616     --------------------------------------------------
617
618
619 ----------
620 |while语句
621 ----------
622     ---------------------------------
623     |count=0                        |
624     |while [ $count -ge 10 ]; do    |
625     |   echo $count                 |
626     |   count=`expr $count + 1`     |
627     |done                           |
628     ---------------------------------
629
630
631 -----------
632 |until语句
633 -----------
634     ---------------------------------
635     |count=0                        |
636     |until [ $count -ge 10 ]; do    |
637     |   echo $count                 |
638     |   count=`expr $count + 1`     |
639     |done                           |
640     ---------------------------------
641
642     while 和 util 的区别
643     --------------------------
644     从字面意思就可以区别:
645     while 当条件成立 => 执行
646     util  当条件成立 => 结束
647     --------------------------
648
649
650
651
652
653 ================10==================
654                 函数
655 ====================================
656 -------------------------
657 |function_name(){       |
658 |    ...                |
659 |    [return exitcode]  |
660 |}                      |
661 -------------------------
662
663     #返回值
664     -----------------------------------------------------------------------
665      return 作用相当于exit,但exit会终止shell运行
666      正是由于函数可能有返回值,使得在if,while里面可以调用函数(有结束条件)
667     -----------------------------------------------------------------------
668
669
670     #参数
671     ---------------------------------------------------------------
672     在函数体中,位置参数($1$2...、$#$*)都是函数的参数。
673     父脚本的位置参数则临时地被函数参数所掩盖或隐藏。
674     $0依旧是父脚本名字
675     当函数完成时,原来的命令行参数(位置参数)会恢复
676     ---------------------------------------------------------------
677
678     etc:
679         demo.sh
680         -------------------------------
681         |test() {                     |
682         |   echo "$0"                 |
683         |   echo "$1"                 |
684         |   echo "$2"                 |
685         |   return 0                  |
686         |}                            |
687         |test "1" "2"                 |
688         -------------------------------
689         运行: ./demo.sh mocker fucker
690         结果: ./demo.sh
691               1
692               2
693         结论: test函数内部掩盖了$1,$2;
694               $0还是父脚本路径
695    3 lines:
698     #局部变量
699     ---------------------------------------------------------------
700     posix shell里面没有局部变量这一说,函数与父脚本共享变量
701     但是,bash、ksh88、ksh93、zsh都提供局部变量功能,可惜语法不一致
702     ---------------------------------------------------------------
703
704     etc:
705     ---------------------------------------------
706     |wait_for_login() {                         |
707     |   until who | grep "$!" > /dev/null;do    |
708     |       sleep ${2:-30}                      |
709     |   done                                    |
710     |}                                          |
711     ---------------------------------------------
712
713     #传参
714     etc
715     --------------------------------------
716     |wait_for_login mocker    #30 seconds|
717     --------------------------------------
718
719     --------------------------------------
720     |wait_for_login mocker 60 #60 seconds|
721     --------------------------------------
722
723
724
725     expand:
726     ----------------------------------------------------------------
727     ${var:-word}          var存在且非null =>返回var;否则返回word
728     ${var:+word}          var存在且非null =>返回word;否则返回null
729     ${var:?msg}           var存在且非null =>返回var;否则显示msg
730     ----------------------------------------------------------------
731
732     ----------------------------------------------------------------
733     ${var#pattern}        去除开头pattern匹配的最短部分(非贪婪匹配)
734     ${var##pattern}       去除开头匹配pattern的最长部分(贪婪匹配)
735     ${var%pattern}        去除末尾匹配pattern的最短部分(非贪婪匹配)
736     ${var%%pattern}       去除末尾匹配pattern的最长部分(贪婪匹配)
737     ----------------------------------------------------------------
738
739
740
741
742
743 ================11==================
744               代码块
745 ====================================
746
747 ---------------------------------------------------
748 结构   | 符号 |认可的位置               |另外的进程
749 ---------------------------------------------------
750 subShell  ()   行上任何位置                 是
751 代码块    {}   换行符、分号或关键字之后     否
752 ---------------------------------------------------
753
754
755 --------------------------------------------------------
756 1.需要用subShell还是代码块,个人喜好
757 2.代码块与subShell共享状态:
758                           2.1 cd命令会对主脚本造成影响
759                           2.2 也会对变量赋值产生影响
760                           2.3 代码块里的exit会终止主脚本
761 --------------------------------------------------------
762
763     etc:
764     ----------------------------------
765     |[ -f /usr/bin/2to3-2.6 ] && {   |
766     |   echo "hello,"                |
767     |    exit                        |
768     |}                               |
769     |echo "world!"                   |
770     ----------------------------------
771
772     ----------------------------------
773     |[ -f /usr/bin/2to3-2.6 ] && (   |
774     |   echo "hello,"                |
775     |    exit                        |
776     |)                               |
777     |echo "world!"                   |
778     ----------------------------------
779
780     outcome:可以看到第一段代码输出hello,而第二段代码输出hello,world!
781
782
783
784 ================12==================
785              命令工具
786 ====================================
787 -------
788 |find
789 -------
790     详细参数,just man it
791
792     etc:
793         ----------------------------
794         |find / -name test -print  |
795         ----------------------------
796         打印名字为test的文件(一切皆文件)
797
798         --------------------------------------------------------
799         |find . \(-name _* -or -newer while2 \) -type f -print |
800         --------------------------------------------------------
801         打印以_开头或者比while2新建的文本文件
802
803         -----------------------------------------
804         |find . -newer while2 -exec ls -l {} \; |
805         -----------------------------------------
806         罗列比while2新的文件
807         这里说明下-exec,该参数以\;结束,{}是其特殊参数,表示当前文件的完全路径
808         -ok和-exec用法一样,不过ok会在执行每条命令前询问用户是否执行
809
810 ---------------------------------------------------------------------------------------------------
811 QQQQQQQQQQQQ[vnnnnnnnnnnnnnnnno=2?QQQQQQWWW
812 QQQQQQQQQQQ[<nnvnvnvnnnnnnnnnnnvns3WQQQQWmm         ------------------------------
813 QQQQQQQQQQF<=nvnnnnvnnnvnnnnnnnnn=s)$QQQmWB         ~1
814 QQQQQQQQQD<onvnnnvvnnnvnnnnvnnvnvnon7$QQWmW         ~2  where there is a shell,
815 QQQQQQQQQ(InnnnnvnnnvvvIvvnnnnnnnnnnn)WQmWm         ~3  there is a way
816 QQQQQQQQ#|vnvnvnvl:::i:ii::lvnvnnnnnne4QBBB         ~4
817 QQQQQQQQflnvnnnl::::::::::::::vnvnnvn=7QmWm         ------------------------------
818 QQQQQQQQfonnnvl::::::::::::i:i:vnvnnnnn3mWm
819 QQQQQQQW(=vvnI:::::::::::iii::i:vnnnvno/WmW
820 QQQQQQQF<nvnv::i+::l::::i:iiiiiiInnvnnn=WBB
821 QQQQQQQLlnnvv::=g;+::::iiiiiii:::vnnnvncWmW
822 QQQQQQQ[vvvn::|QoXa/I:::::i:ii|::nnvv=vvWmW
823 QQQQQQQ[vvnv::{noZZ6p|:::iiii::::nlc==ncWmW
824 QQQQQQQL=vnI::{nX#ZZZop|:l::::liiqwpconvWmW
825 QQQQQQQ(nvn::l]oZ##Z##msg=i:ii_gwmWmpnncWmW
826 QQQQQQQfvnnii:jo####Z#Z##ws_au####mW[{n(WmW
827 QQQQQQQEnnvii:>n###Z####Z###ZZZ#Z#mW[ln(WmW
828 QQQQQQQL=vvi:ijv3Z####Z####Z#Z#Z#Z#m[n=vWmW
829 QQQQQQQpnovii=vXsMX##Z####Z##Z#ZZ##W()n)mWm
830 QQQQQQPLw/li:jon#6p?######ZZ#Z#Z#ZYomc=jWmW
831 QQQQQEq#Zq,:i)oWqoSm7Y########ZZeQdWW(=jmWm
832 QQQQQ(d#XXo|:jn3WWmwa,3Y#Z##XZ!Qu##BE=1dWmW
833 QQQQQQ#Znv3p:)2XZWWWWmag2z##+1vXSYYU[ia)WmW
834 QQQQW<#Znn%[-noZ#qZVUUAmqq#ZawawgmmmEIdcmWm
835 QQQQQm#Z21is]oo#Z#Z##########UmWWBGmC=XZWmW
836 QQQQQ%Z#Z1vvjoXZ###Z#Z########qwXmm#vjvZWmW
837 QQQQQc3ZXvv3%oo#Z#Z#######mm#####ZWkivnZWmW
838 QQQQQm)onnldWn2###Z#Z####mmmmm####WCj{XeWmW
839 QQQQQQcM*5l"4n2#Z########mmmmmm###W[iu#fWBB
840 QQQQQQE_s%In)voZ##Z#Z####m#mmmm###W(X#eQWBW
841 QQQQQW\nn=nn=3{X#Z########wmmmm#mmW<#2\QmWm
842 QQQQQ[vnvnv=vn={####Z#######mm#m#BF)MqmQBBB
843 QQQQ@:nnvvvn=vnn3Z#Z###XX#######mW'agQQQWmW
844 QQQQ[lnv:vqcv=nv%S#####o*YX####mWF_)QWQQBWm
845 QQQW1ivI<a%1vnnnv3####Z#qam#####F':q)QQQWmW
846 QQQF|lviw#mavvn=vnMYX######Z#ZXMa=n3i]QQmWm
847 QQQ[lIvqQQQQQ;v)p=n_vM!YYYYYM5wmIXn=IcQQBBW
848 QQQflvvjQiQiQim;lnnlQmgWQap<qiiilp==<h]QWmB
849 QQW\vn|3iQiQQQiWmg_wliQiQQm#iiiivz=o3v%WmWm
850 QQfnInjmWQiQQiQXQii|iiiiQQQQiiiivkvnX3k3mWm
851 QQ(Ivn]mcQQQiiQZWiim#iiiilililiiv[in=)!jWmW
852 QQ(:vn>YCQQWWQ&ZQiiiZiiiiiiiiiiiv(=novcQmWm
853 WWmBBmWmBBWmWmBBWmWmWmWmWmWmWmWmWmWmBmmmWmW