design.png

Path: doc/design.png
Last Update: Thu Aug 14 03:51:09 -0400 2014

PNG  IHDRzi"5tEXtcopyleftGenerated by plantuml.sourceforge.net:gUjzTXtplantumlxmKO1NpXF !4Ǧ-N:+c9CR K2aAԑM1][ ;*aܹhO^hbC0NH1Om3v|" Y9L2’/Twjt0’RjVZl`,$/1T To8ra蚇87Be57{S׍ǯX[vi¼Φྦྷ:v8K]b q% TʦU-Fэs7м$1+ FHSڭJmfQ’8l,es0v06aT؏iuEIDATx |u !,H !jYy. GPmEAՖ P(E9[qBRZ lڄi&y_+$̓gޙLZ4`m`mS(/M j<J/6u1mC7;3(@Ѧ;mM j$Na@Ѧ;mH[߼y8mE:m՞[V 윜*Pz FY8+OZki$<jBBBRRRzz$z^^U(aچ5=fgy܅qqqb֢YhSmz)=eH\gZoߠ It1k`4)@Ѧ6̥$<rdypppTThuvv6E(al M6, FjpP,{<BѦ6pDlM֙m^*:3CEn]Lm#."NhSuiZ3^LuPAZj P*KZe]2ݫW׻jмy’ܾ}9Yg&%zvZ}/۰"mؗm]]{gshd|nnRDG#F<@c֭K;vlm۲* -؆>lcٲwuP^]y\=K֡Cڵk+c~}׮]/Xji~u%Kvյ^>dcУG‘7Æ l‘NMhM4i8i՗S޹uӧK)n/[ ˦E˖M\٣e/6ƶw&STn!-еVv`nG"m6bbe+ر`< ԗЩSv۷<J~dgo3fkbǎ~5k<|@ ÔII+$=3’/ի|iyy-b3w)w-,/?>\F}UH65wj‘Y(WE ;]alþl\믕!C/9t(R$I>;s[(0y*Qvy.]% <##Isnnٗr7:uEOK ~˦ETǣG?}Xrllfe/7L vf2`aG"mFM,2F}II>u$K v2U9%CY&Oɓiժ;V 7nfiRS,{Ϟ,{eӧ(,$+_mlc߾6mZFGLPHY.k&v(؆mC;g99۬yssO==~QLlսz*YwI9Ye5) >>Ԋ؆<ovZh‘YYH)k ,؆lã_\@LvNt;wb :{vkYY^^c.XU6!q.">Vw\u>XlC}u{G+rllfǏvFm\!α\HvmD=+mMY5#E6t`bݺu/.{ɜ))+G|Hͭ bmddյmرbҤ=zt;%Ut$>zc%V ۆAe itHKum˚StQ ; 6u۰BIV5o5qVN,;M֥m(^l9f`E:K8’Y6Nd9؛mPú s8K]E:md9PFكrH ʑ`gR(a=rБmP:KEwfhݭ}vTd9 m.m\kƋrѡ6u rhS2k^eJ’/lh8;p/ j< hS62wZo_itDD?D9-s9f-TWײe2 A:"sunC #/@6hna{L8i`i:GCZg٥eȆɡ~Na{tieѺ(].ΠNgjfƗM "//J z-ں-ΎW6}E CHWI~!IE]_6l*)h8;^Gې&6z aqq-nsu44l%%%TRioqv:\rrEq]dTHR|@ql 13fG%}o9@qlNGijB ?Fo;F5 qgڄNG’jM@ql㎸t6N3wIB   glHh3`$4 (g6Hh8c$4P (΀m@q6Hh8ABP m @ql8AB  gl3$4 ( g6Hh3`$4P (΀mg6Hh8c@BP m@q68AB   @ql3$4 Lq6Hh8c@BP m@q68AB   @ql3asJ sS29$| K/FGudJwwfP j#a{Ɖ@ܔq"p`۠6wПmHܼyhK66= ʧ-+ CfffvvvNNNAA ;TmäSV QZ~b}>EOHHHJJJOOˣRj#]ۆ5] S܅qqqR"n̠6:;6u}R:P>

5 F S۠6:;6}gU|’%MЩmP  ƉG >Bm$*F j#mTP#kѺ[Wy-D gH`5v6P6FaవVZ&v0QJ~jA0AWy,wwѣӻθre5)m8mԇڵkgU۸zuҫWWiM45jPBb VrN6laa߷z~-w튋fd{z>Oc؆uҎl۶jimCꘇG_|ȑ蒒}/~g p)FMƲev֡^b{ڗC6kV^\k ZZ_sɒ]wuקO46ͭa~2ۉqS<ڢESQIF?<4wέ[>}|^^JzມC+!۴im`VFX(uR# c*djwĉ#+TMF&lT=+qAxuNsYdIZj.}}xXlvćy w .-fͮ$x~yNڮ\n;VGްa#:ujt׮}GZɪ1c) Y(i/4kx )˓V ?ٳ9s^ʧgl6mr7IQO?}[-؆X mXcsF;,+l ɀz eG{’!W4$Gh4i{KZd޽k‘O~DFJIWw_~9ƌfhY+ƍ=!a#sYjrã_lV> 鯾СHu|C{;sJB(Òj&O%c.ϥK䛦<##q/v-wvFƘĽx䑇fz 6nke.7Lvh2`jAWmDE}<z\s/׮67n(kd22%eeϞ%Cy:bRu\dྲwn>l67oMk1K]\Hkז2Ωf^O+V+opƁ.|KygkUյ^n_k6ƾ}!mڴ3d^ig\M,*⽲lOoQ2dmH-򔠠99<p|| <qgPY+ц[ 9~͇mؗm| d=|PQ_~F\V/wi|m`؆pPdvBB|WƊFI5)_2+L 4GSdQ ҅sDGg]6ZhZmva ~qq3)9eҥI4lVX[޹sUl#77iF.12ۀ; c;vli^խr FsV"wKT !:#Vds*ò 瞻w^#_I(̕h1mCB9Cd`N&’!FeXKT;"׬y?//(M?B)2`@O˗  F@?qHwbI.]α\vmD=kMa5WoMlcР3fL<r$ڵS7orWgZȣYczlݺTKxɒ>K$֭rۙ+bۆ4c7mԤmw7؆mCB4SFe;8[},Pddյ|/Gl_{^/c?6mC ;f s*:Oť:涅Q)I\g޼{, иqѣ޸q. V^]y kCF<Р{ɓ^ZPQΞ~ۙ+bۆ’+ҹsUY66l *;8mʷH[-’M96 j̙{w/zWc[tp΃FwÆnn’kS6N66aJ667 j#AGgR-6L 6EO(lQ]^*:3CEn]m(6 j#mةJpCFm621evٔcچ=F=m NpT {;62wZo_i#{3(r+v<ǚa絑⬏C-~ CBBBxxx:C#&’mh4ԎF^m#33S+..N&r0j!o-cŤݤ srrΎFֽ^m#;;;==]E,, [QgogZ35ʎv֓6ˣ:8U)κZz .i/T$Lrlgks느${EZLMZOڰ HUm8j;6!ļEFcvMuװNǸlrm7~9aII Hqպwŗ9"V8}LޮC2p*tK)>{8Qlhd KBˣ߾8q#4{Tf5wķwM@ql8ZfmB _&8qG\:|RTeۀ;$  @ql3$4   glHh3`$4P (g6Hh8c$4P (΀m@q68ABP m @ql3AB  gl3`$4 (g6Hh3`$4P (΀m@q6Hh8c@BP m@ql8AB  @q8c$4P (΀m@q6Hh8c@BP m@ql8ABAm407%\HBKE՝7AJSXSP A>̨Lz4AHƖo’rS"6q"ϖ&HiqƖo7o$Ĺ[fқ m[V 윜J3AJ҄cdl-NFY>2+O>[kil =jBBBRRRzzz^^^# R l k:!΄ =d8uk1k# R c)cMm\’#K zI\ X}Ho&jXS0 =r$zpppTTuvvvu& R 5c Lz4A6NO‘58.G8@i& R 6sD8pi& R j6J/ߙF֢uZS:Mtқ .l!!Io&l|ԪUN^\UOrxrc,3nܐ _6m^g.۩m*սJ^]wmҤQ;|LֺGN;ʕ=؆I׿SՕǷޚ~.skZOr>9ݛee[رV 6iڵkgU6Hu;kz^|GKJ]Wɯgr22==|էk|Ui|Я߽ܐǗ^zrAY#OfNүmlݺc6۶-mWi 6-{]=-M?7Æ l'NMhME'My|P_7;nbyy)ewĉ#-fu-r4,!;R͘1}|^S<8v,poЬYO‘Lm7 /OJZ!?7=3'/ի|iƕ[3WĚūHL\"IR&%'ѩS8++^v~z9F NYNf YJgY ~\2C"IڶASlPe<t)<.DT_<e˦e_ҠWNWĚūo{+˩ %#߄̈Gyh֬rjϪʒl-͒.1{Ȝm[_yF5}e?NEEij26|}g"$ d9M,d)nuXg67oM1KYI\Hkז2/2y _3j\y+u7vi-gfo-ZhzbvI/Jþ򔠠99,k=}&/Q+5Y.`ӵlG sk9ϵƓS]kXo_H6-L&Y,’sma.KIue&Ifa3XABOoUzu纬<g{Z}ka!$GSd6UύOhWϤ[_ҥ}v$s ߵk{=I5j׮UHvښdmSufsK߹hЭp2s窊6kz‘Y"wX G6mT,oٲs;;’Îg{Jԭrkl<’9k<9Nf~^=g^ǏvF܆6skY{&\YKS_gzsn߾EK)*JP~ SeaߥM,;hP3&9}Zx͟W^Y"wX\櫓c=n]*),*^^cMwVyzuNC_&ɣ ;mȪ㥗_(yV~&&.QRZX_ @6hyE=CC}{ɓqX&ynM2k{RR>֭Hq L4rC"nne@rB>p`OWz/G%Xvܳggyƍƍ+"w[+YO6}:b 7<fT{L\v=w+.Kq0ې:th# ??j+:O..u+`-yNrxrFM4?㏉{rQ m$Se)nu.’:҂L8ؿ{NBf ǫ6l~Y>2+O>[ (H1}o{۷Ga϶Azό4Qn Pr ΄kּ߻wjp]fr%:Mr:mDulD$h8Gz/ͤ7AJ]؆T%t]Io&l ))mʍkEߝ& DZH pؙ&ҥg}>&iˇ,>|*t )M6sD8mބSC݆҄.mRjd-ZwzEh{q=IoQRqMFFZG$.)Mػm_13$:M=/>y_AQ7ۈn8"R6=[O; lmm>yctT箉s~l ۆ.HGW!Ɛu?zfSیn4|S3w:n]-ҵfAzW4[FYJ߼~oסo$s#!!!ħƶCni4)MתD:mtI^Dqfn{#W^s t,RWeWݖQC.\+ A ~3SopC"ͷfmu]h3&Π ՑWNf-H5[$#)Wm(>{]% Z !`-ps򺦞K],dhOuBz[CgK܆kZ SG}V81^Xp&>F5 *4}$(RtZ-FffM\|v0&w ^*h<"lԌy%$$$rrr6Hok3U9N#H4ӹ"[OO0aHy51 ) z,–l#;;;==]>U4’ |# 78oeD/#nODݨavԒiou{yyyj [9܊FJT.lKg^s>7oס ڳ’4[ <zcE6qv|↿hD׶|ƮY2MMNrZm-xFlgAx!4ؔ}ާ _dd;aG2Hip"l6Dm#Fc6䷩*;hZsNpyKȴL|+))V oKиNǸՈrm3v945dlȬo=) pCc䎄,t@MP.3} baO#E2:$BD<sWLg\G^’Bi+lÉ8zg-R%)lRtJ yuQ}o9c7[: omm8#ϰ=@=4s"?%ΌmCemYVөl%&ɞ~F`PJ O.;?y`;G}VkPm?*~’oq3Cs73T?Cr6`?\:|RTke:  K6*^tIkB GTn΃m8)g<zf`P7c’qcRǾq::C؆3iwʨmYYEllčk?DlK%%65ύA{{m?Th"n m@ qhb:cFi~%SǾqnG: m@cg܅p82r_ . &l%c&u`zt6޹yFΦ_OxK Y{Ћg{aAw+sm>ry5l6*-{Ҟn4Bj=ilƹQ| 6)?Ӊ?_ύ߰ThbB g3 pX{#6lɅ=?ذ p J ?_^_Ww&6dINш+sLa©D}8zǽj9bv$>>>X׋~rI#WrU6N{Y-D6<==9a3fΜ)m>t m"ŷg<;(l(scWlCdCFI[y2Աol?.@(7Rq{=Q#<쯾jjjjffh,(((;c=z/[`ᓇ,{c5Bhh4{>}D89g2υ=.bo m;=E;D>jFuգ_17WVX!a0FcII240c’ &H6*Ow^R7g۶m<yrvիרQ.]L0N2imCxGe3gFDDlݺȑ#ɔ33}9`UzfY\_"g̘]ZZzܹ?wnPYj0pЄ’{]j`UϕӹGTqo`OTb?z’"##ܰaCu@SN۶m?j/tڧOǧ]vwuСC=]Fոq&Mxxxhm{>ֿ"2IfPg޺uې!C׮oZZZӦMG}ٳ2^z"111>"W>4 j?ԡ>٣}Y4hٽ{m<72kĉ.\}t?udXʜ)))u>|ɓ’/^sωmN)S_u9 @322ϐ2,3!o{ԩ~A*.۷oqqqYrɊ<ojf̾51^@P|±{gNᗵ .cd\Qn e>Qv2CN?~\^}zڵk*sgȤoVy+q*O7o,S( .T_<2,3(s2D)OEŴU+7lPWbbbʮעEzjE߯BºWPݲG[5ƶaaRiivh:uj۶mԩ E,}u1reJ 4i"63bĈf2rHy*e̠&-**RSiaՓǨrcZk_jLlhq/UxFΤ6ld+;B̽m?^jKtر2Crrh_quuMII2I(w>ڵk;’‘G;[OO{{P2?+Sۨ1rS2U=HrtСC OOO^~9Xx̠(YfMPP (#LΤ@3)Vj";wV&}jC|q(>>>2+S8m=7u|;mvh+`˝ȰϏ=r{nWW.]ݻWV~uPgT!8w\nn (cT9KT^(?@^Vjʕ[޿ t_233eF])=ra>{ܛw/ٕN4[[N{1~B*cǎyxxԯ__>zҥ a’NlٲHv6dnݺ)W(OI2l :WdlbyMFY{Ɵ&׸ ɜ’S E}B G毬rې("}䲓e3)tdO{ܟOoFuS/C\v%ݝ)nPqcێ=j:L`n ,d 3 {ܛQ}|j4~Φݷs֬YqN`D}ʨۨn^>7Wwǎڷog0L }pz{c&P / 9OOy΁Fu};蕽x{V?<xԩS_ޛ$%%ۨy{=81?Z΄FZMDk@M`#@Pqpzz3ۨ7t m47 /r(m#sހZVzfY7eP(|͜jۨS{’{;m]%j͘1#333;;[$6*oܔ ya)8n}-’졚yyy%%%pTӕ@؆{]ǽDޑl܎t2c& Nٔ)SD8233JrllCž=em\au58qbxxxBB`0>lCA7v~qqolਨll@Oc=s6ofʲɞ m@؆rT{6dŕOtY3Ptt6^HuنkB=gYs{Fqg6lCKVq/az {’tP q::9u;?ioV*a9v-`/O;F+9`mU)DG"uE6@H}{ uE6j!b1hKO-ND5’liv+Qc\/zdM~3m>)kQUHj͛s ֕hlۨ3T1ó{ʹf%t22=;ᴶ%``̔eNNNAAsF6jn4\ eRNǭ v3 IW[%>+OZLkiHQd.̼<g֕hlۨh|[0L喳=)y6z9TRR3,:l 0<<<..Nv^~;۶D;`؆9dTCGCN *= ezɎV~ lۺm`6F5Ńn[NǭuT$,//y{cFl5+aSr6:cuM4 hGut6l6~Ryʺ,?/cbbNrx㷣UP Τ8me[c؆sdJS-|*EIoKlC_D l~9aԩoie]3<Y&<<|͙Ur͡Sz 5uUO1lC_6RRF=oe]?m(7 C\sCpH׶6 {z F}0{Ebk׮IMMk |lGʭ*/6 RҞeRz ooFFFVw}w0Ӡ<ƶa23Fq^_ٽzu͛7yIۗcmF#,5[9mT6o봶 gR{gshhGnnRDG#F<mg쉬;X )ʞRxp!no0$D58R!8xpСa ceLElٻݺuW<XU<p:]h%Kҥk>}.=:6loTgw޽C׮Ŗ]rtY/tgWKK ڗXXPzʻnbyy): iSyU+ lሺk-pyxsxޜCv_4W%jmƴ2omm줘ر`< I7.nŅ7۾D\رXyoЬYO‘Lv=w_lٲdvZݷoy| >f`,I`zugl6mXنkنU lq8’ތt0kC"ϊ\FDDx^[=еk{w/)’?c62/6_+CWqϵysq eXȇ:ne 5(==Twh6,/XFFwvlTG!lы=—7jִ!m8RqvnÞy3tka^ oDHbj8{Uz;3ԧVZo͛7PʰQ_P /7 퇚<UZhj2\]\Hkז2`6,/؍aפ-=zv~Ϟ]5k6L)=111U(T&9?Wn䓞&dLU6*a<bm4hBפX`z m-vլiClpFQ8HڵkE䩌INxWJrs6mt.u /-[6=wn:puR8G샧Rs/6LΤ >dyϥK)wMVA{&ӻmX)R6F^^"7o298_=P@?qHiƝ9(-)iE^]՝J׮cb;ujaSyھ}M>-KK ^7n2[hfyy)t宂 ;1⁈Ξ~ZzVVlf lÑ ’’G(`H2R& 2Ӫ{~ݶmH]DZjZBC}՝Jt_.]\conu){,/7ܹݪU^bm }gKDGF|aC772*h_b6vX1i͛HSiܗ._6Xj69*FcȀ<N9ߓsm`UQ;jժUKi~u U֫Huf׶6(..^`A^ׯߤIQFmܸalCB֮GիW6Ñu8mk[c-JJJ<<<^|ţG^v-??ƍs$PBNnlfzq ʷ ˗/֭[z/ŗ.]ڥKWW>} kmذa+4[VV֔)SZhѤII&*/ 0`@ʲu]Ӳm(>}M6&ʾP;fŊ;w.)s wIjJVj1J66 lۡCʣ ’$$XхǏ͚5>|t„ o߾W^tٳgΜW^2NNδiӼI[l عsLJIIԩ!B`mlܸQy{ʵ s )k׮۷om`Ng 4}qqqZ2diPLUTh6-5<:۲eKeXEUAӲmСC<ȬY Q%m/rmB6nXvgRIq3):q{h޼v u{Mif;uoժңE_~)Zh]6˽D]]]u}mCܧh-|/,u~np^D 9b6,07SvgΜ~zqqzOf!E*j>o㏟z)yjJKEwfhݭ"}?HW:mk[c-|}}-מОIBhذaQQ2j͎gR,Ljٲenn:>##ܙmnڴm˙mC_6nQ\<hР3f=zT~’&&Wv)%%E퉩%Z1`ʕ7o\^N6mZNN˗{%ڥKZ&ɣ W6Ǝm6y,ҥK|Al6 իž={6nxћ6mR.[[nu-{l( 駟Zy`ժU^ZQ۸ps=\ڿ0S-Z$Xo_}Ո#4h>yd_؆ Bi3۰m]v66z h/5 lÑ6ӧ>|ʕ+{۷lˬH%`e| zJ’lkVmc[W l*ٻw0UcÃƗM h4:󶶲 lGff븸8`s٥eȆqmm};`Rgeivi|ٲ!9ᶶ lb-?( Civi|ٲ!

v[[C*o4HK& QRRv6 [T3l6 l6 ll l6 l 6 lp裏|=u ۰kp {$%%Ee5eʔ;<<<!!`0FlqqqE ’RI56to(}"LT켼<l/0 ID*1f999!i4T0cRD5JJJ `m`mm``m`msSV-)?IENDB`

[Validate]