From 49b4d8aad2ed99ee7e5d578f032b6d392d37d6a6 Mon Sep 17 00:00:00 2001 From: Don Mitchell Date: Mon, 23 Dec 2013 13:57:48 -0500 Subject: [PATCH] Presplit stack diagram --- docs/architecture/presplit.graphml | 547 ++++++++++++++++++++ docs/architecture/presplit.jpg | Bin 0 -> 43129 bytes docs/architecture/studio mapping.graphml | 605 +++++++++++++++++++++++ docs/architecture/studio mapping.jpg | Bin 0 -> 48247 bytes 4 files changed, 1152 insertions(+) create mode 100644 docs/architecture/presplit.graphml create mode 100644 docs/architecture/presplit.jpg create mode 100644 docs/architecture/studio mapping.graphml create mode 100644 docs/architecture/studio mapping.jpg diff --git a/docs/architecture/presplit.graphml b/docs/architecture/presplit.graphml new file mode 100644 index 0000000000..0d97955595 --- /dev/null +++ b/docs/architecture/presplit.graphml @@ -0,0 +1,547 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Studio Client + + + + + + + + + + + + + + + + + + LMS Client + + + + + + + + + + + + + + + + + + Studio App + + + + + + + + + + + + + + + + + + LMS App + + + + + + + + + + + + + + + + + + MixedModulestore + + + + + + + + + + + + + + + + + + Contentstore + + + + + + + + + + + + + + + + + + Discussion Forums + + + + + + + + + + + + + + + + + + Grading, +Analytics, +... + + + + + + + + + + + + + + + + + + Mongo +modulestore + + + + + + + + + + + + + + + + + XML files + + + + + + + + + + + + + + + + + GridFS (mongo) + + + + + + + + + + + + + + + + + Assets + + + + + + + + + + + + + + + + + xblock +runtime + + + + + + + + + + + + + + + + + + auth svcs + + + + + + + + + + + + + + + + + + SQL store + + + + + + + + + + + + + + + + + ? Discussion + store ? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/architecture/presplit.jpg b/docs/architecture/presplit.jpg new file mode 100644 index 0000000000000000000000000000000000000000..024cb8994bb3a566babb32b9d4677bf2447fd0c3 GIT binary patch literal 43129 zcmd>m1z1(x^7p12MCq2021P*nph$^yw+KiHNSAm31*A(rKpLdG8v#j?4(aZ0IB?Fl zeeZii?tAMW-}61shtERTXES@PnOU=DelxQX0Fc0c0Ado505H+f zG0@R4F)%Q&urRT4iSTf7aB#_Q-Xb8Prl6&vrl6vtW8`9{qvv3tqGEZ#%5nD|FE1}G zv!JK|j|kU&UY?&skg%|@aB*W@LvIX)-6eM~8nGgwu5DC!+ z(1Pgo1*Mih_oQiVEKC34RWs5~AI_eeWUq zEoCDNdOIQ>?}$`PhDRk|h*bvm81Fx~_rby@AtfWHV7kN1!pg?W$NxY;P)Opjq?ELb z>=RWrbq!4|Z5?A1(-&su7M2cIkS+t>Dv&aUpkq2ZCyvGE@h^9zeh%PXsE>l^zAheyXJr)TFEKi7o> zp!{iB;P*c*?Ap2r!F3^{qN1Q;{9G3jvI{s+2vN~)-$TFoP#MF>?iM|dHzv`eh}4oV zSPb`7_K2U`4`7op^3F5u|6JN{EBp5r=JQ`#*0n(3@*RitO(~1$Gx+I5PtP zC1X@OyZt}b`+u|_{@}VmG6@3cTup_Ji@^|pl+Lg^cMx>Rp}%R1))N7wb6T=p?gl_+ zXVXOU3HBZZvJ?TE|7g42uSh=Tr#&Ga0!3KJcGP_+YIY^>f930l0It{r8+aOFzD-lh zaOQJ{&To*w2FN#-w7?71ci?y6kH*4lT?D|8`HLI8Ku0@>FUZv0av|7RQEPoJR#?Au<3x|3eL-EBHDEs#_>tAb05;=sS0 z&R+10rWJiZi@LhHV3=q|0I1+R_wY-2?gs~7sEpnAd|7K4@b##FQvYGLUdFvCB2_!n zd-7habjt$Y1->w6-$@^^-QB(vozGz!zEfj0SwgidpyK>7L)al~mu2a2l5b+q#pjc$ zXVab8X=8{*LA$E<>?GH;7i`INS(<&$IY9nan+YA7s8C`KhakYY_(X z%WnE^&XjQ;TO1|hn#Vftf8~v^AdTWuqKY1uB2W@sLh04%SvhK~LI6um=Qlk|XR|IJ zoF|3JXmRm~_o49hS&+JvSPfdlQuv>|d(p-9uANuqU5Vc76uc~Q>NAn}A|o@ST-P8& zeVvJ!jTNi``p|il_uJoO)Urj9tj`&8XhyVQA?Y&lD28I zs*1uKR&kcQfX6jR5^3H}P0U9CImMu^7J_yy(@yiVX51!Z<0WK^JqrP>>#46tpH6YY zSGo5gT{Kcgm+I?qBk=DAKi!rjQbPKJfpKeL_MGa78-_6pUF*>a%=}fc3={X6VX!0V z3U4^3vLx{wwUH$8*B{U>YFikp90Ew2sLGU{V4ux31b203+>;Iq*@#ajW`p&O3$lh! zEBZe+^2$v*JB#-BkyX(w_Bdav)XMWu^BNLy)}NeI(M}MERMz^?9d-y$2ok8Ezrqv+ zP#p{7Khnrl^%hoYOmo^cS$pD+=r)8F7c0lm5va z+E_cuq$M(x1Z>U6NicIPNCEqG@5ndMMJ;0kMsY~1NR*nxTQe=07_^4l@0RRWeZD_Y z=12U*&iB|7W>L}Y#E~HUggv-nq#|o%p=59|{3FL)^|%kQw#z+SN;eF1oUo{HMbXkt zYgJ8nzt4j1+{vKTt#KS9Z13f;`>2)otBGmGH?UTchs}C=zcm>kfcGBi9$H)Gh0vBJ zOY>v?nqe-k5~zrInf2AUra(I&5^UH1%$T@elTYW(cN@}%pr92^(9D#P|4+;IkL3MF z*Zxx-Fl8F#9Ui8*a)hbZ+dN$$o>91$INtY!QfhE!R9ADTfMP~l(y$slt3`!HW?;<6B>>(NZ-}!^xpSi1|$7U6#I3XFo z))t1HVsTtt3&prpMdkmeK=*ghO__VeavPY`V4@ z;2Fw_^#96csg*Zt)iG$`D<9jRBDannWcJz7B3JK@ArFbA+cId32F)}!0uV<4*;R1- zBFNeH>+crf!|e;y=DkcNE=K!ynfMyPwd|^JVz@T~P`16KHh}I=K;{kCXpceX;mgP> z0-!E>aHUp&03f7Oy$GP3;qtRSan5zRw0lKI1Q$Wjxs5{v5IO+Q)j$BrK|4lQskF;H zYXypDnim*Xl1+O~ZU~^m90B-3Q=r43FNC3)eCZr^tWtG(Y3M+(jfntQVyt@>4+x;gAmdZmDV{rc7hPD8h_1Ciw|qoL3Ozyzr1mi_hv@toe`T1rL`{~ zqAf55o)OR;6~;7%vGgo^rK~^EtZSN!U9)>`#Wu7e18(wTg;)Q;cf0PB>E9`vFW@$a zpRhXH!L96GzxBn112=bB4!6B0+?m_(N#8XQG@9{tS{mEom%oTC6)rxj9`t9I`j=uJ zOZc;#Um$>=E9D9tzD76fy5QB>p?zOZ@51}T4&od&vaZSGSAkvR=)&J{*MJ@u^g~Zt zbzeZ00nMIR&OGd~wNgSt1k)URyq?M0zZ<$-q@o}V^J^d$L7QJE)TdN8H41OlsizBr z!KD9|NN-xjHQi3XruidJW)Js0zd`=@)x6j0SI?)jXDI!_^q^VEF_V3Ic2Dj|poA~l;*gO@S<*dAKv|Lq_#Yfdiw68> zdLr_Ry7F>*!^^Z2E(NBxc*THjOUzJb7Nh;wbkxw~`}po*PxfM>p{Zvt`ecV~B6oE8 z4sOmP(U@4Z+$4~w0)mqgExB)iu9-s%^n^GH0mu~QrKBJSviz3^0mXh*%lv{Z#e}8K zN)`)zsKJWe)!GYrhNv=0Qjj5rlZ?^v{G-FLyXL#{yeooMes_g*$5{IxMd7iSn1>7o zH^SYit5HpkHkDod;Sx!=Ku{kI>hAs0aFM z&?Uin2n@Rm0c2>Z_y3`v{6~J%A6>(MEYP0gyDGw4N}=n-BaXyu(<%=;5WwNt#1szM-M?I}W09b~>kkvy8@FX&sy^N5)PD3TFzHd9< zaX$C>w6oH;zCi$=e~|5mieFGB??s=r!lAs7 zOA>hm&_(t(+jqu&fbXmi!azmsw1?-ZAU0HL3ztcU-)tg-_N{=3kWW|BIem_@ z^vS63ImjFM!|y#!zmg(?wrDOAoL}}MfIaO82!K(YjRii@0fo#pbqfA)xkf7NIvX-2 zX(zRIS1(D=F@(9egX`7Nro$$f2Qq!ECav6V3S%i(cJWBb7z+YkKi1qevou2upoK$V zOb7BZQ(3cQY-p)ExB8QCqM3__<5nHT!^#RUU}&)S`3D;rU%1_Xev~&vSFU7GryWx9 z(2h6E#pVD3O6x15mhJ4(Bm>R8PFe|vYhwAoCSe3{OwautN?i%;@daSBgYbk__Sz5L(_8Q}YczjH1AUQ}M=_(7Riq{9OjF);RyR+vn|*e&twxYH&rH7p;&?^li=P1fwqkI7!0$-Wyhr zuoh~31m_}50wr-nvu=B@Nj}Z_&UPR!D`~Pev0!y`I>qbjlE6XN%kvVd?QnOLiYB(( z`&uTy-PK&X>{Ce_95We{nnW1QX2Eu@| z96uq%KN^R#w9wA66zEvUDcs*$>$qfb_nZQB?)Mu(aC2cWiyibdjTX16KpbsB3ws6Wd6mkke?yC=R%pmX2l(EY- z(P&`%E>bNgN-K}%OrI5S7V)v56{_@f(KyIfkkwf;?m6csWhMECvTGUT_A(PUolhQ8 zhXw}v49YH7YF5jr_d#mHYa_;e#Np}>E7}wZKSw?j)`l!Dx*+S>9PDovlVpdm%9h7W zydO;~Q#Bl7Y$UO8i2D{o!q5Mp(7vuDc+a(uSKI31MY@oLg~N()s^d8sI!YnP^*%a# z)>^)sbwMzn_Glty?VnB+lFs3ka~uLN(j~ZJ3v39jxBvC`#vy;mwCPU>SnDO|MR+WO zY!OHMZwwlbYaFi>0kxmOz#9P=Jea+pt}q^JH3LJ|umQ3@Fdkt4${0HLjn3g^NqO_@ zAO>O;&rZ~^&M`h3Z%?W)CtQv22a^o7a=g*?DUV94daHaU%UTw_j|)EsP9$2W%1dYO zIJo--f?~657SmDs^6FTEX+Io}R3uf^)R*mYk%@B~7F!v!?O3JZof`5fRREbgx{{1Q^Ua zJKj{-11suB4vO=8Y9~zfCq4z^i zrauFHLM`dhY#kYERcPCrr&ie1_m!*nKH-TFw#UT3T;P*3<_H~#1_}p4u@;$`iKmq{ zsZ2(TG_yA0Mh>KMr40|dJl(@3O9!kMWj<9(*~^(q3E>NNh>VU9X%Mps)|G&A()RwJ z67YX6ICf$El4RvU#>&cr%SA?;Mq^^tO39Zukr;L^G(w19CA|9(D=xS#A=5M(CqJR9 z6I~V0bobj}_%~ygsk9^3_%C$(=r2HM9MmnxxMy!by$=)?yND1A6>g{+4|2m{Z1D%ruF>u;+m~dOu5$lHG z8KDJ;bZmCRd)lFWm5S_?lES}!v`*35W}cbQ68~O_N4BP{nf4SOwpDL-2{Y<$OUqt= zpp#T*%hw(|zX{8xk4v#&s4kyuunQ+h^rH%ul5Q}Enz_cpeMLbS9GMexc18QcweS3- zH990MtszK%D4&bFu%0tV+S>Y-Jp1`cmL&`0C#+IejLfH%G>oRWBFs5Aq@*u?pD{N% z0uURwFJZ~LM)bw3;p}>RW>SJ@%FN{Sj30j&XKz}7^CI271o9=jPlwVc2KV8f#mg^z z|BeqS>u^RC$X>t(^iPaf`x76i@~w%xeq4$V71?w!2#e8PH~D2;F(zv@}QU;fnZSG!vu3nOidb&0os;8&FLc$o7}q_z#`lQd}| z;aim|irrZ$e4FaW+B7r;xFYEq{I6%z_A`CfZEXZ;#u z$k(r*$z?hro7sQXkC;H06PEz!n(A=V9zB?K4I8*hTrj*KI_AE_EC+GBBdF;jWOWi> zgCD#R8UTPngQ6+|Xbw_@L)0A4E38#}Ns=gr<7ISBN<>CWxJ(U(`LAf<|l5iEbSN1qKEXjOgK2&J;dFv5o_bzYzM#aUCrE%9_? z?(uTpa&%&YQheQ0^D{(t^_<+L=AU&L>(PUkBh?v5!XB-Kar!Nyl)YBmV0>~d=VuR5o$2~9LSD<9$&uvk<2)I$Rvzq7ufDNCqqHJ;S0-w0 ze09pb!kyN?v2~s?NTOzNn>S^Pgfc;G($;ahMkL=KRwyePmsgl=Q((PYU{X=%Be=b+ zUnXL%vcpY<6d!VUtqS5EzBBJz=tfzWYC-vdfm71qkR6N0kveQd`_$RJN^Zh7f(yu#JbD}aFolH-zy~r@aJfmPbDI2jXywPA4LmjP<6Ih@ac)ClCVxh{`Sz#? z|IBJ0&*Zhm109%NA75r_)2(T<*J%$+d44dyJ){vPVyN%{af-k^^}d<@Ev7|SRV+4C zEja9J2TbIMeiW_FqvU3ge~7Wgy)Jb|?<2IZRq>kxU>tE6+urMraGsVVu_>&7S5~o8<2b>TA5K^L_J5DQ4 z=&DXohU&<`!+OFz;Vrd7srl>5RziA}Ds@u2cvM}dX%Py_W7As5Vjqy+1a|G6v9dENw>INRUhEa;e{^^0I)O`^q`kBn#FPz2h7>`0 zFtV6=@9@XB(>Ju$x;TDJOO>Y6)`Frgbg+DAeYN1y&bm0|kp{K@`$65WLltsnLwt8& z;oZ$0ka`tIXcn$;c7a^Nrj;OPdUYIwN6zby5>&RH`IFL(#9{N|B)>UG@4SyTI3dh@lo-Nbq?|$k``v>5Q1ihp1VC^o=AYK+3R6f&01tZ|5CHlq&ta z4)tA0TgOOmcJUsp$Mi8q-h1JEkCid1i}5f%W5-dct)=4Jo$`aSKZbWuxV94 z+mp)BHcdIT@`tJq_-Kux)z{D>?cpAWs<& zr8QNK!b$q%@%mM3HMNyres8~oWzzg)p^rU(8h`GO5tUV1z@ZRZV;-hokyyuX` zNd@6$hO3;9b_f7TN%}MdFyDwjiA(>WyICP?f&es;kq^4yTb4Kv=Gb{>&cZYSEp6!x zUD|WkVT`zYv|BA%C>y;I(^hhF{f@nq9$FKO_FeEwXQt&37xf`A#>aQc%~8A-O@T6F6pcLsBgBR zlMHrS7c+Y89a{!`(vAOg5?EpJu`ZG#+8?ImCNg5nrt&t3bi zP8B77?5(-`hc|cL(U#?6^6{eNlXv$V2S+NxIN(0DlFz!yW!R)1QsXhCbq0r~MtI}q z^I#tF^`1G+N)F%IYiPX}N_5{M^4@pY%ejtZtu7q+y2Pe9HQ(>x6>-rKOjMQtOhObawJ6OpwS18XMkzWp z+5ZBSMCeet}*Xu5Mh)vEI@f|svoDoj!J74Fvo0ZTO|4xy*cjH~9cROB1v7kCb z*@IbIdyKt6f2HXK!y9 z0L^U#aALW}p1il)mG7Fyy|WS6x;9!&yBZIy{rTAF8+H6xk;u2r7_sm=;C2$E2{+Kb zuyGFl`t27!-PVixv3*6eY^man(WeY`0b=WY(-HSC@zJHT=nn8+j*>KF>7Dm)>gd=E z=MTRndBv3~QZ7AP8#UmcDhN!c<*rZoR_0~3dYUiK$GLDxVQxL7elLhh^NvuR4??)^ z{N}` z9d3KiNk^Ia5r*IFV(d%ZnGf^4xv5qYiU8W4hAO|ETpvj6*G>8wc3B<{b=`x!!~c8| zou<3~Lbj*N!Bb2G*0pC6OI7BQ>yi9VT>8T#BA7xdtI!3MpAx$B%9Q?A( zho0E=&&4Ia(zUkD%}4mZ&_JcN)69#j2Ezu2wwA5ewFX7>9d=jaT*bt+<1&B*ykBvb zVmMy8)QIRB#>83SN3gwXtC+g8e*)&fj z6&djpLfz;i^<~5(>MLV0L)Grzs1D=wu1nT)?9=gDzyGvK%Hso%p2*Xub~i|kFvvLE z7ZP&J`=GA|gWf5rixZF>_{!4dbhdk3EEb63sbqN?9%o$=nvHy%*8PgA;%4o%RGy!1 z{EUB2un*O#!&m`6{@92-P&?Dj^s!d@W=XL$^K22V|C5*QB3&F3+d(I;g*x*Lgbq>F z;ku$c9aL|eI4BGw!0gv#Wqn_j&Ha_TVhtr{11XRf0vrA18b!FOPi>TH>5=Np+hx1R z+ND=Dthv$~$^%#EzA)-H-~Eyw_mZjDr)O(dSRU1y&^1kCDhmVkRtMd)Lk-6Ss~$NI z^A~Ika!$AnGEpLjM=2`7g0`erRtNwX0*n2~e3b?uOGsJJv3$b|%)DcX$6yf$dLo#N zDS@uh`;0Zi4Riiyjj{&hy_1FGq`-XX<5<;(sLry0T2cn4gsW(vrTtdZ+%WQ5p@gZKn~Xylc;g7VO^QRoat<_TEMctNb$FkN!Cz<7=9Q zvi9Tc+j{k7kePTXK^I%+=ZcFuf19XsxPWvm%-)o~TB(dZ46=oH>7zNE7&3<)f7rUP z{_u8lMeprp%~YH;`WuQ`ne+>(`7mW;GPIK zr@zQ|J)}KQf;Na#lhYx~0{9tY5bmID=IDYWIk)3HUt!&?XKpOeiI3rL*RX6Y&G+JG zBbeV8t&B_-{TO%CNMFbPbQjDx)|?jlu%!Di1+t6^^cyLo12kSr7)b`}wWEn|obbSU zLm1?7Q}UJ2m~42_k0k+QsgGWhT62Qp9|df8DYlOqNaY7o&C53h3R*wavGmAzYKL)n zcHJqI$JM+mi@Kj5-kC{FWx^BTgSo?=G*HMm;B+neB~ha~#I;2IyLPd?W))9w1xE;Rv9tt1uqy z*BErF<9s2ASH`1=g(F(tQ)*5*Fnk~yCNX@I?JGRhBJ+o=o9C-=-F7iE2k$M>t~FpO zex+Xbgq-`C9Ao08LQaCj^G7`ttNHnFlu6wEJ4L-;s#Eh7a`JVW?01G#+&n9;m4N$X z1X~Bw*03JGQFxU_1>o7TtL_V6I0J z0(2qH8Fty~%4@*7%E0g0ON~1Xxq4qYD5PT4Hmba$pFhAc_n(RLPx%hO@6b7R0Yu0A zwzn+p&6V!Kzf~Ds<*+3m`vXC*Jink_k>XtHIdl~mv@ zcSLG`*B<{=R&~LTfrO`cK6C zD_*$TU(BZ`%MP3JSi0L`alCuhN8T6v;1UzxZXnvyuPgP0P%$?noGJXj173KFd3sBefle~UNW46m8t%Cj=? zr~qSn=vcun+}Bo5-c+;?hxYPWeu(>0X1zwhtCQVVZEiViBo*4?7@s#5XAkgBqQ|{rMcaWIh3`aQ0_!d*Y}?3 zAb$)YXGZ%b^Kbls>~TZSv3_ZwYHUR)0zU0)dM5EL#L&w z-ip`ETTL3C(XPDE*?6G(<@4m^`$+9Mi^P?wdGY4vRmSB8%ZZuqe9+RT#vzzjGsd>F zuWN*L1;_-??LOfS7iDVK-<4c0%|{_5iirN;j*bB-km2C`+T9mGKD4tF{gJhu2MO#F z>ZQQyCdjhy1%uw=@`_Nj7th}2QN_ncM9qrlQZQe7fpNrf5QwS}zxl;;Rym{XIp!X# zaJ>bWUG;0)A_lE{T1>shb!YmOC`Z}$>n7C{Ft08#@*8IG2MuP}Ecrz@EO#^3=O!OB zH`UmoeF7cu{ODRUaO-?LQNQDL-zn@Y`#5!escUGvvN!kc+SMZ1S>)}xf&fgAE}e#s z$cPhC*V)r8f~;4{56j4HxX6q?M~7L+wEQY`s|B7)=T6f^|H7|b zC{uGDBeeIwQnZU?FZ5dzXnf%OIz(WK+U`FUd!f;okYO<)TJu(+)Ng`cIH5<6R4m`U zi)k0tjcxd$g-Uy^UF%v;kmh}-g1a-eS zW?~*)2TOCO8lGOwNP}lSAWlw!UwrZD)z8Zz5VnkwWYn;UHAHjEK~tLKtf4HY_HLDuZVM*M5iQTqVvRi(AX;4r)K(04R` zUK|6G$|Fu5oFqfr4~E>#wdh&UlB7k6iR{05V(=olh9fb~VXv5s+SWg0*LAgv5f*pu z$*bK7c7IQ_&j77B#eh8~l;Q1_Xj| zRC`Y{O+qDc^9i04D1$bbs^bTrBF^Q6YqHuPhAy+`7)dKU?%vPDLc8D*vu{DeeYMh2 zj+mX6`4{gZGlG5ch4N6ki+3Dwd#{<`1g@wl&3+p!d^lgU6;nQe$?+% z@VeP?arUbKEJ3{p)y*GkYkzip|NQ^I z?~?z%Jp~&cz*(>C%3mxhHgJn2c}O7ucNs`R_7R5=lVfyZ!Ma?&Mc7NGyWjJfsuHE1 z^5k?^U(lpicdl8~;^$6O#xus>##`cgR_8@^uF5?_vzUre8xBT(iJ*H#qq%Pemw?lN zrHQ(;SJ*Sv@!O5py>o3vhn5ZmKn4b}QSX07vPDeC`3BDC(XS)Zo+1GJow$pY4B3T9 zi|5klG9?YtdrKy2ACyFY7DNA*MO5QeJO?a5Z=V$I!*=BYCpfd6_t-^Ud*DLiVl8sv zR9{LwT&PB3KKu!Z4kfA|SDneB2+!YXIMTVIN!6>!a*z2kst*r3&NhYsBstBXEd_hA zm*)mxwdvp{h+K@R8X4Puwiq2Hu{(FJEMdI+dBHi&i^$~Q6|kvEHh#4C(d^NwOU?5@ zmR#YVbNZu!>Y_D}IL?;c1-45U+CI`4<0IMU*l0nQz>lNEwf2gLv)jB4gh}E|#q*Uq zZOgxYfJ0mAt6d>&c)s*zOYr!$1H2hBgI+6+>;(c~0ChH!`EQ_K$uYq#ix|=uJ-r?U z667%AH1f|U-9^(h+upn4l*Ee4BQJS_pb({czX=}aoQUQrPhdl_c%{^9pR3?BScf`i ztIn*JVG~|JaCLbx(hF&=wMm3bMBYg{3g(;ciF?5?7L`Q+N9SULB*xq8!BgSrH*@EeaE=BSZUGBiUDQk=QWc+|JSpgr6)+wthu!2WVb?P@Ycp5ZEcQ&JybX9hh!q!0=1{d(UgQD6(8yq zd>c#Rt&AM}BLDfV(8tw=c*uc&~PDsYF=qHOrns4SX6}(j&|9#BX8zvz*2wDafUcr z{UNuVv0X4__F)XZNB29gjy$}A&Ct?cnz7k_L#R!DL#S~dPE5aFdr0LYOxRf@7UOZ+ zXl0edbsUDdKD3=Q|9tj-XH)apig`N2iYa9ffWMuus9k6f0Pr?UZW)IVxMUJ zjG3JFXrTDfh5c;n+Y(b#>nyD=rWQB9+9IQdkb-uT+QP*eYC$~mX}`~wZ6{RgBTw-$ zs@h1O{@EK3_8LA~d^zgO;gCiTS%(v=sHtLFyS~$5vtd4+L8mi5)|qbejMCu+@|f<| z7$~rAcOhtb4NbL(5_-em#yjB8RDV~2uX(MA{@2b5%?J6=wzry!H<(FO(cY?3N4rZy zE>RQnp|$pJ<_aU@c$KFl81K_}5d|s__(`CAL3LL`Su6Bt9g@w`SDdfQdJ#E*8e?D6 z6+irmOVL^40JJKO$qo8=fZJ?a1BUiUg(%7DlOd)?IaeFw57HbmN_CGkuZ#;FN@~qA z?V9!iz+P)#tJzEJ3NZ8^*%?-={_LRMqMFBLVdJWJN&g0Hc1qPb1&e|Tpl8Rle|Nib zXD~eV@m})T<4aux@Tg)J{u43W-+;{D+PA&J9&0-L=@@n7O=qV^U<|YT?2y1r4uY;} zG=SOUJVUss^z~gl3Y{b)~uT+|Y8~5aTS>L7mWfR>yH+8qY>5 zrVUYK2H~wX(B(sQm5eZTuN$jybQLcla;8wScx`w07X8GSIPMEhi{c<7~Lo{_DQ1zx$}_s(z@=HbPh(>%4m_N3^6 z_*J9Yz%l|zaxZ9ti+qLrL~~o;2uc*3S*{GV)lwhr=}gH}%sgu1eeT-nnlWL2|6mca z=P)+#HL4XI)N^bQk(y>0%x zBk(ekQMo=+D8n4*{=H_viLoCg?}6qR$C3HsVNZ{PAiJ#<_HK;xkviOD4nM=&Kw=&N z1Y_v#@6_0$jbt_yGza4G%dNkAm6qx`NEoi2;QT1~Rx_h9-=@1l0D97{3uBR6_O}#y z4}P5L&2nR3MM*vU%TJL=iTM6*h4R#^0X}Z#U*-nWt^3;^c3KczR=i2x3T=+4t+ixH z!JT%Hk$>L&nDMS&+k%yDG`Tqwt&@L|3g!+L##`mJ_^#oXnWPZ~6;}yvn#DE?4^RYA zkEO^=#r((UEAm?2+&$~j7%)v@DW~ieTG+rSwU+*->9;`AM@3N2^JK|SFGMOG(}79390NjYxBF5m!Hbf@WE?{9fXb<6-k) zf81PuH->$6+7MdYOMQ<;_H`$ZUgRqi$AidypCEH%vhI#Z91^1#I@);*Um~Pgb9eDU zjyRK#Q#0S;PSZWOp8k(V(x0NyL}kO0cf&rM{ur#4G}5KzT2H!QQngHREMt>M1%=e1sc&~-xgU=%>X{iZW zY&vI7Vgk$B)W_g~mcSzTCLnIG{pkvP@eF4Im>>GtEz<<{Af2Xy7P%7aLCW7?A2=a` z(UM;k1pn4D0|ItfP_W@@R|2eGc=@M>D>w+fB{zT>GPE+VY0FGmx;SebQc;rpv#*I4 z`Y)fr0zLrar1Jjx&(0>PuuG<2>Cx`Rf<04jj=-KNu(!C2I8lJ~aFi#&>-J+cs@B7*IbYtB`XC~sl-ejfUY3Mzs<*)A!z9Rr_in&VBvM@`~W4_Lp zUuOMy|7^FNAa_dJ?Sky!S)ern_%Y(Hm2|IvQyAdp2h-TCA9GMDVJsctvo0ozlt5~Z~Jw^8cswW*q(3y2@gsyC3DV- z+Tw}7N7&_ARQBr?b{UK*M(7neb$#4(rx8+J``ZUnRYuHh>eE_DXSq6WJiK&?e|=~M zM;@buKG{y$mkumQk)cay-GBVnQko`~EjLUYtpn`d6ZIAQ@(*{0y6vUQA`YcVLSO%^ z}geqhcX45yXq+!qmHdd`QZJrDvfF}%@Y(#_Owc3STs*7!{ za1Cmk2+4?vEtsE7aFZGf)MwMspqZOe*I|WWd%pkkekhpFIiAHD?=#MrGT)z&6ILj0 zc=wH-17NGE{yuZxN0D*#@09Vsw_zpmoJBR;Y72bfr4!Vv)pxUMXkd<%x>#1+ts1JKHe^X15mt2TbEA0zEdhG-7Bxm{N_;<)^o zjhWltMx&gU_uK;#lioxy5FJmv8HhMjy}tFr{J(G;6--!ONPhK;b+M+4pctKajVkD{$q3J1jpH@DaqfcEr`h<RxxI zSHrUM8J-H*8M#LDf_0U_5Zn!y2hL?$mXgql^3@yq)?_#BK155O>c8>~ou8;;kKgCu zv2amxP5RF7#(Ar!F#!GPXid*E7ZZrU$rL28mgPn00_LipWF#w*kkBVT6&_5nXbh!) z`i{S!nAYm03uw9z+nP?WYZ1VJJeZ1u3;!(hSTKa4=|k5(rx1vx1^TV*Onm3&-*8P0 z6PRZ3B|lnea5yYaaDF_j#y{qK8sS!1_LbMIeQoM)UluVRFr@JF1!aE&E(ZcVZ{bpj z67c$hrX#^kmC`w|pgv0pgu2*mukhW6GpR$^E)AK^>CysooN_HrRNfcvZa<6gn~VIG zE3^LTmcq$x$*v#t)5NsNSg!qYH0wmAc&!}hJkr@qZ=9Hri~m%6!ozBu#1un*Q)bFk zAO9gu8yFI&fyG`vgXl>s=JNq>jw0`>Q`g+_dU8SkgpE?SM|V89GWKpCnXugB`DU>= zT4hxwJl?IAKLb;x#|YpYLlOZPRwiF4Q(IoQx14dAv>Z!65p($RjSi1f1j@_QN&-7o;Uq%nd3HoI-FfYD6Q(}GJ{8^Y^9gS9_+mMRFJp zon-sM=vrhTo4^iz3i!z-8wU7=e#P$HM&`3<3;HZ9|f6W1+RJ{X)SM z%STULU9_QiO(d%9dKM-}Y8a>C&}OV|1W-B-N70uwb$u%%)EgGpv5U)ufKHlKO^)h%^>iZXu8|2^L z{S20G?t&Sa0O%GmIP0|dpQRVS>b*FPrq) zsiL<*>dfB`-`#q8`bIB+RU?VXWLyqkQPpole6!bCi>zHBEwg27f^XQ^q^aO_)!3fE zq#IuA+4GYfH{1eSdjI=GH)RjDF;J0pF+z{g6Fl87_%rS9q>@*|`y!U#>EG`mYNkqj zN5GA`h!To1S{Hv$F6vuR0lRMOMIAJ!)iUBq%ozW{jD9a+MMZ5y(u+=8UO%I-+Pn9? zJID)!H?y}Z5+C$5z$EK3WMbA`TNLApnVKODDnhFQC}I^u%HE3Minl!Up&H;jKwKw; z?{jc^@ZR9hqo1jo&>~A0o)GzT=^Z-z(O9hFh2V}&IgBjkVzo0$&GmV;HvaiD?4{S! z9b|p4QO4po_e6yTWF@}+AL8CJD$Xoz7luFrBuF5*2MbPcryw*QAh<&a?(R|v1P!ji z-CYWIcY?dSyF>MP=$@YL&dj`L-fyk5z8_gtyHd|)*Opta``WghZ;Bw$hUQFLka3+3 zCZv9`+wyfXn=j4bG@dRsY#X{CWDRv1WBK-rLEMB(WK_VWjBEz(D%_+;&bbQ+l;Gsu-1l7_@234GvXUC zv#!Jm4Rt+7qUEtRt4Ys@99Y_;>5uCMX7(7>=uWb$>rUF4os}x_WT=Q-v$A#lVMb|Q zqTgd5t(f*}d{Ev>BlfA=q}@7B%+i50W;G$IqIZn$!=j&qV-0bX!n#LC8M^Wnm_&z( zHR(<#b`AE0=FO^3G+D^Tm+B4|-qoS!iTcdz7zkOqR2g(8xmUAEo%M|0BW9w%=f!{0 zZ~`ZlzqH`q8;d{M?nFhoAhcl)ojJI6uS*QczN(OL9MzhiYryB3clprs0jbGTh97a~ z$JLLhPeAU~jkiTSfsz?p4Vd|%-A;CPBuQ4Reds|JjH3xsdSTXfT|Du-C-Kzl) zlCuCj0r2FOLnIm0n&!;(E$0E#z-*vgtR{l&VdcZ(x8NFtv5;sTsld%`<2DPK`)_kJ z`YEr%BeMBxpog5qqDY6*j+Jt~3(*%*O#re%{l*1~Kwy#Aw=|8z$?0h)Yhg(|!}#77 zK@VE}5!9fNEVKNph6;^M8I`i<}B5Hch z#YprkS>y~6;_$?*Assea=A#wc5t5eJGqdy6$*!W34@d1qT04(pcAz_(lMdlwP})EL zenEQLz@Z|_TNKM+9Z5$`5FSeLjMk&HEeW$+IKS1Z*i=Cyv^=v6t&&ZOVqjlWAHCkH z@5!xWaZ`|7&t2@r_q{`4<}Yf8O;prQunsCTAM!%K?@>5W#;~Iz#GGs)wsXNdz)T5? zU`eR9WsWb5vfKkM0$CL>LD~x7?Pm}=rjF)QIsj^TvB3%bY$hL)0dChWIR~PfadB;P zLOe@avz@OXO+^kol6_q7BCAeiEk+^`>H^DBWw6_Db7~_9lty$NX*V2gmrKdhS_tn{ z3`7j`=JKZKby!S_0A1fN><=BC5Dj;ol7AmNas#LLig@l*JIhHT^V4edzO}hH==8{r zvYAc3sJVU<4Z~pL8Yq^y%Rqq%;m87S$XbkVN>}t5a|rdiN9*b*=qNljDjnDQnY-5GLa+B5!lK5OGD79!76 z;^e!u08!bvZ+&J;EIA*{tB|}Vds;Nu*_+s-%Rr4POt`$?OMY#WOtWK0h&{W}>9bz) zL`yvdG|1?P#$>bTLKi&0exg9}6T50Noa<4qj3LCFj5(qA@_va? zU_iEiU&e)ya5EuIYhhk(K|-JiULKNw7hS9_!LUK3nE|`;C0X#XR(=Rr$RoFaRlWYc zjJe|*LgD_WlW`xfUP*?}nF>+WNL@M4F{dQyzu~nNyyV8>$ns!w^?_O$hROwQVwP2^ ziL2?oW<9mHmT*rb)T^Q^Yw2R{#NA@EbqU>*yxO>TKLQejHfQ~A*unWal!F5iFSh*R zzSF-AD4p)I@fjZU65JWXf~;&gjU_m&<496kgrc-2(jLEy<%?ils-ja5(#w($P8!(K zl4RuA1(dAZm-^!?z^DU58w#7xdE?I|&zk+3Pucb!H;@64Aef&@SBcYDGn(62IxKzM zMism=W*@r!94;ot55^$R#F?flZ6Bt$E{D;p?_tgrv>1dP%${CkPR7d7SDn2M5ubj< zNujN%LJ8~Q7jk}BWw|i19XDx~6GA#`hhwSSlAl-KNy@&XhI9SHWczoo0Q{N=2>S2= z1=e20&F2cg(IEkd(e-4Yw7FG9=awcHZa5cUJsTeSr|I{XevtoX1td2;TGDx{6Y+RT zzW+}U=%1{|BFX+KU<^b!51zB&onP#;D%dja#cwm@1F5qOe>P!$G8L77vLqR^L$A#y zpkIJo1S>F(zva_@ZgYD6i=F25^D@%8o8P(DKTHw>Jt`X+E0g%|7e5y&*cpi(uY4E^ zFVXN1;p+h}3qIk;Q=Htugw<}lT~Zi3I4YvR&=~R(pLRmHAu%n}9IU=qNT%d?voU&M zWMUC&Z0TYYy1m8-nnl}vYCrxTiNusW>$AZY*KP`YdCNeVp{jxrS`Q z)iFOH0HDaW#wqZ&-Wd2;{#Tes#wNN2C#Ww!ClLN)dJOPwM=2-IdJHk`?=zi}13|bI z?Y-u6=AGti8t@}264qfoU`-Gw0FkfQ$H>;XB=zOkA<4|N&brut(Rno1M4P(0v>l^+ zjh+bsk@Yia;#rUOJKh)f{wKp|(~Hi2I#XN}vn4X1?uIMkcZCHs05gwc+PZW>vj)0;EQ*qw|M7Vt9hBPZ$dc@MuR-HvKvF9x^h zyFMh*E|uxE#()0Fv!!d5x}yhVS1agqo!_17j;OmGNJv zygRCh^~)&UqefiAz6cLJ4{7FppzZ$Gd6zpdnzv$V=U)y5yvU!&0nqgQb)J%{~A9*TF`*;BaE6e;qc--+!1&x|~>5iZyho4bXCYNB^?uKdr(q>7f<^D-TIN z&|jRlg6xB(T9b(_K3(aQMo`9c1yV&VCk?=oKaeLfY7m`-(3#G)%rruf>K!;4xpB>b)#%@l>&W1d7e!z#~LJBzP> z*gqYCfN6JI$<@yHwsl^oTe?>vz@sOIFnftQKhDc~5*2l5Kl$cQvdgHtkjkOc?xD(8n+TS?9|I33w$mwtAS35ui*v_55P5yuR z<=>CnS@Yj_6p(!QdC&cI@2`-&Jm6DWmgZPe2(bXkml>TNQb@fCYLQ)_aLFM(9}?pt z+GA>szf4<`YBe#U*kcrQ!TE&=8GHnq^#!5p2=4MYWEbUVnq2*$zpO^oi{aSrGxIz4 zYu8)R!k5xucqawWU{btY6otj;kdZTx3H{RjiF;Pm_z&444F21}|5rJ*V{tD`nbhGZ zK>EepQvYMPW*XJ(^5yfb!!qdF$6M?@jq^Xx)D-@1~*fF7ytBVrKhaOT_L&2#9i>tbp7N(#(KmWks1K)%V%cS*cO>ag_F z(WgAlS=r244)s4HxL6>(<+xra{Jej1^!_#v-pvcm^$Pz#ibEC7m41R@jNRMKII~r0 zc1!z&3@frEhM{AwMbIdZB{B%j^xj&yFBF=WLVzz{i$nmemV#Ls>e*7sJY0=`GVv} z4szx}|6c^9mCZ3w9b;lar?GddSpiSQwIme|$HDcq;q0@lJ4u%FMso-MI}}MRkcN<+ z17=}XDH0Hf|X{!lb_Mb@AmU8URcNMDL8 z4dw=s$HZsy9i;}|0;#;|UaZ|h*Q7+>#Y@U<3K*h(X#W#DkMB;;s_5cQo^u4`iLCl# z-Y}Q${mH{=8Sr55z+3DeGTEaBQnffnn5wrd+uL&d+AyU)$vQbu4e6 zs($pIS4Qx{YhHOinr0VU<+oobtJ(41=tA#$6=IwLO5`9g_J8f; z-@O;Hv3k1D5Oejmn+=0TCSv^|41;hLJihM~i#Y1Va46_g#ro!`0bi3yiVVE4r| z^R5L?a%$L<*^`8Y1a$nvDJn>ul&as6!$A|?P_aUP^tndw2oh0ZPOnR(tC2Z4&p%UE z2x~bf9s9kQsn|%4WUh&>YSfQI-LQXdSS$fl8}#s2A9R>gWWGC_h|dw}kUPKLX@zH- z&obafP1MT;;~K7b&zwDPGAnv_nj_y3UR?70ly3_9(#;3mgQl-!pX{u$SUeQ3LCoql^wMhup5P|(|+{SJGWTlK)s&%G^S@E=aqkbiYb@QMsK3FJ(kgHH6suR5J|m68R~NE7AW1Q259H;StkT zcnG(tHx`2T^edu7JxEMu!EoLxm3tlIZ2eNx(2Win+6UYxpd__oa4YD|*Zl)DjaQT* z{CsivuWw0HQ6I&@&qwl~?b-*W2(fuVg@D%J+CA0Rr<5iG&)2JL3jP(Ci0-hnV%rL@3#q-tm6jIu4SZ zVR)?a*TXY3!HkD=>zcht;KVi$)vwN3ytUKIGH<9qcNx9~ejqX)T21I=ooUbUW&%e- z7Fv}BkI#6popYZpa!D`DEp=O{0anTHSQ5KrS^<$G-y;NKnL>Zr%5Vv65GP4kaY$`5 z(S7o(yR ze$OoGIutPC^;0e$^Z>S4>q(^q#q}veEq0g8yJQ#Ll|2R;3TYk-$w3N>!>Ze)0o{ab znVDy@jT(1^Dd$)K)rB44E_BmQVBIWDmFb*a>bL<67JE$v!Z$ecfz5i6KoR>E6x9;A zziNZzZ!Puo(2`HhTl-B{P~8i4lAfk@rN4Da{kIlv8&A)d5pNniH3i@NL%69=Zd-NQ$#|oy$iQ=!le#MEk_<#AWiRjB?dM z(^hDLypMp4cvjOAIe2VIRA-f2~zWWOJS8FaN2cLM}s z?sc}8URvU$HjR;6^S@_#t9K)l683*Pn*iYqbW7oQV@n7-V*^MO83H$^fR55rq92K< zr`C@vueA2Fyv_u?Xyk<-H{1Vs(tqBFHAEVM(mGv1Y$_T^`_YUg28il-he*#bBi;(y z!q98@;>nnmO;0&31G1WGdtR zeHi~|;FMs(%J+A4(bZHgcut$do)VQYdrV%vfyPO6gZ4QHrbEoqa+&Ch90(*Bm@HOn zs-rBNvj8DHkH6K_S>$ZCIfgH-BSmCx6!}1g{wvJ;Oue(vOUZ)gZ*h`)WyTm@KNTLUM9>|c^CT<{9>RxOYL+lqhTw9bU!z>%8 zy?1!Vny7zZq!)GEaTRlUi)?r-ZRKRS+(Q0=>^TcAaZWOjSDVc@iT63(HY3DIAEal? zJ&eMg_&VV9upe5-0o#SfZ&nT&J-?%QUsc8NLtMqgIbDguRUb7Pe$th#RCL(DgwJt! zqYDG}P1Fn=42+F;(5+r_^z@112Gxy|S^D9v#pF`J@IF<9=A6qdIC|i^MT6t{xXAM<>|bCmU$pYy5Y?T> zsyjsQbzM0+o;8RuSC;wGdQ^-iUD9dh-LY{?Am_W6wI^=))%I>JmR+9T5Gp$9IHjZv zTlyyVx%bW|2T~Warqb2^y%NKEV*dJXC1*_qzTl0chx*%OV!KNLaM};xVxtQ&-+yP} zJ${BYyr;7beFK~+!P8;=?jI89kpOPnM{MH}4#4~{8GyCDXW(XGE1OQ=4+M<}nFNXc zM--vl z!4i&8&X)ut(xQpp{VRCS9ndm43yB?(JtT5vkWq_HT(Qo;?at3Ep%*7(;J%9A?>T>z zGUPW?TW@!fuyW#!RELW>ggO>oN8@FAE_7#q5AX^2^P^lJ4g*)0I!;8xjm%w(YCuNd z+ijjU&&-lLt%9sfdo}d%ahB3n0EUqYs|pnGJ`WEQb5-9Q@^(oVH#(lrt$NUrNb>*E zyccP!E6{=k6zn+^+-f(QN@mr+^uM6hnYT>8oeSghCm*zlzYpULv` zuc#+B)eo|3=^gyIsKFm;>gti5Vpnd~ucmvdtA`upq7kyv(yH9Ex0EgI7^R{_D3wF3 zp=EUg4iA>3wY-7?`hzue+`g8wY2rwE*0DyaUb)J;&>H5OjqJTM2JaITcKf4>9ra4= zOEjY1@d)AaC!AeI$eAw%KH~86*d+paB=xRA5z#q~C% z#7znIfQ~|8xOH?!*z=&Irfz}rSZvOKRQ0)Uj@V(l3OA*Y3Mqfi9`c82(sJaqmILn| ztl1ISy)g?d0A-1A-+5uYXSHW_%6cyDIh>&(yxB`FLW?i1P9Bu#UewdF7XKqXa4oSm zbNx06T{DlgcJghSk9M8ohNo|!enNl@)LzhbZ2 zYw!q^RGUepVNBN=G#e;}45m>y#riMLpXS2Uy)2*B)3D8cu{k@N?JIhaeabNwWzU82 zpy{4^rYlFN9heLcS;~J^r;+~a!7s%79n@FsXnvKoY(;lUt z=Q>#Xl%G?jn#VHtR~Xwj9wV~5x{*K~stm4^oJQq8lN&1BYefQA3df0)vmOOnn%@%C zlrbITS9$#xN>zP^CiukxZ#hmxl94HQbzW;^gJcFu0fgdZfvm=FRHI@5_bBL3lG3Sy z5pB@rGqj4kVX-?E^aYRZD6r9WFi2neqs7KZTgQ8iw4+_4{z2mGuS#v_fh;t&{k!VTaLrfePj}& zE5FNP^18ba@;gvR%AX{}+tA^YH-B;%U$|03TUsx{&S2A3-jbTrP=JsQ1N>JCCvVriA`80{@@RuM&!tQmDwtp#y^O z>j1D5#>0;O8$|Dg?>@wvpILH#g$daDwpv9vy*-_5C01wf06;HVUdED7{J1QRC~x4+ z>do9f>9pOW+%Ftk=;7fTa^fa#NkkKbIZ*#|d;UWt!46&zUn%1o9NpiVR)xr>x+qhD zqI~Nlw;G%XB$l;IGVmf^sMHAUjzEt+^XXh^u#F=Wxq&c&hfpe_Rpp(u%p-Z%TFn>e zsW?!fFdfpJTgdTE{doJ?)ZnB&WDh%blrooQlIwaS(l;$%_>bo!T3b!OyQAdu1 zqvj^{kcH{|JK08w>cgB%~ zb{ta$4WPMOuYqF*^o=F>AxDt z+#)n>X?Vr8S!H#>ucuU6Q&xLiR2VabUTNDckO^Zz4o_4Duw=-fy}XtJZb+g8s9}0h zN1RNDRRpL$Pq=o~@@tY6L zMcBG_ndzyOjgaQgvPO0&9d9zjdWd9KXLR_#S*_irX4{ATT| zyKBO3ye4ruZaX>si|@DS_lOr?l~NqTz>!+RZY%y9V4{$RY4xnfV8%o5s&T@0OX!}O z_KP~RC3s^e3~-?tuKVy+8_ZHJd#&cu7ohMrRoVzBgF2iC*Httv-P;$z*hf9~+50KP zIhjUJjoex(yh|8v9DOkbkZWS1V|7q}+ba?c}44yY(2&Rng%Q+{!Rpl(P?J!+2hruxWo8!j#V zGf2rgxgZs`ZzfVogqlXEy z6}uay&J9hTEIyR4$lw#;CU1=2qT^aLhtSrZDBUleY^?-K_!-qk;3`51`oU|EB-DmF zO&Tk=R2`F()E17(Utx^DdLXNjf*T5yNl$eA4paKSsg<39w<3pf*Pu_V!IBV6>0X(# z)jWaC;7mb&{c(M}8$`he6W^^)0C~d{Pe{DZ zuWaaddECIYuF^V=*z)b2q32={|3Dc49=zru9wy&sbnP-HYTyb*Yh|y;M}W;f zLzW-t27PxX8=pT>WT>Y*z+DRGcJPJtch}B5o|N9S?mhXE;LLAOkUMvN8*hWQ;@%B8 zuo=2dX$(TJ7U%=N?RGyYr#g}Gei6k3DU3k7F+%oI0XB=uoAb0W|C^b~9VpWe2RffB zZ@CcOY%UGAXk$vyFJW{fEy@cnTAQg31u9k5$M;v^AOZ+tgTH4c*U}B8Lo-@deQax0 zznisDGQqb3yVn%!Vm4$<6p^3v5h#+msmc?%rGkp>FBBBViz+=>);`o5zHF&aFg-Nf z$3$I^fFS|^ezjKqVf;Ysdy!@qiL$v=Bo2m(#c~DqGk>?bSKyIF;a1`gF@0(Km0*f>nG2cm9m@gPTKY3@w#yrvdrM#6^iU7GF;~B!Xh-t*@@^>bgKcv~>(*@&A*fPhE zvSEORyvf(Gm#?JRUWrRHi%s?BqDSi>*s z9cN2#MVZT0J1Dn)aR95uWAGW?fgA7j)ooHp99oix)6+`uVszWqv{7C$sB_lmuzLAH z-{iR8EGH{!m~#9i%ET*;mt1%V^{rZ2D;EOyE9z`{^GiwU^xDC98OhETx-P|(A=F_8 z$)eBm`Frz;Urzvv^IYP{i>|KH=9l6*#a{A4W86!EI9oU5Nn~w8-&Mu>DGKOh6N0sy z&ww1stpN`0XV=s2TDH-egtAn3vkYv8Qi(MM+aezV%Q+(-aip{%zH*R{+x zKAku)gEud0aylN(Yac%r>|IZ+_;+l8DV4>SgTbxYuQvISlMN1tBgYb;vhU#eU?No zy4Y~#U-TW2gWf9n3Sk95#NT4y4WseQ@N6uOaX}ItUPq?CdbnsMI_1jTxx`Pg`>~xL zubhEek}+fIxbhVz=44(J_v3*BGV77I@*Y{+Z$V4C*p!aC%-hC`-ANAph!29IQUY^sYIRScO%3p% zJ_`lB*8uPheuy$*&)#-12#Nv1M7xPS2j3F{Hg?Z=%5lVXB6y%V^Y@`;L}+=(5d~v) zG6k`(PgM331jEUYSk}DsewKTK~`?ssdzF{+LG-MYe;sbwvbW#s@(}m zk1lC+riN<3nb((rjm~Z<~#AIvA z>Vzm8JESrF-3pM=Z}4wY+SSDZ*<}NZmKRhM8_C#-~PJ0?pj_)NR= z?(l6k6{3fX)%Eq>wEly2DU!X$y!H-HO1}q3pPZq_!KT#K=A&4Dw0qYO(chL)iO<0d zy(=%vG~P6%ydNfp`NBBvn12pyRDEF%AVYUBvBBzW@TQ@c!Bchh;$mk|)gS+-_WnbQ z15wC9=K|=vWFQz;S^!-1PBdr_8FViB+b8TbEI0Ypr8E7O2OgMc&uI)6KvYg>)q?NfP!;rkRrBC^#>d>0e=}mrt#EowC)gLsswPM-MD2`)kPU z!Bs__iDeIoJ~xWou(EvCGH%MxBGZQTR)(Kfa9CzUH9$Hu3V;UL#Tj3g6ehqCCVCdZHs4kZTtc z)S6i!?}n^f^p#$FqFtYb-ei+T9(I_k6UIW_MAprm3V=eAG1IWj4++bAGl!4Eedy&_rnCx^T9{oyd3Jzu59P3N2Mk^bOrm+cR=qP#X%9|1(hh4XI*@^FppX6q;A{{yZ z*3WBDQNhX4BqyQ&?Eqo0EkuGAm-xVYimy2=WUv9W@{QLY>)eCiATF@$$h=SrHqny2 z81_EcTnzaGRga$d)Lm{W+Gvd`gTKkj*gX^K*%8?H9?H{+m;fqnuQC2{3lm?00B zBWZa`f77GSKouD15`7$WUT&KHTT|(e=1^5nom&#WT{0(-PjO_rL)uxoRYS3N7;;{N zicB}}zsUjb=(BsVGjJf126@lc9KAG|C5{+$zoi^Uch5FE;E=OajG5&$cQE7&>GodA za)h5$&iP~oA$r?jD`5pc$Vxp|VXaVF`sNM%`bT0xzK{5`U53~dL|1-ml^k`871mcO zPZkMmW6lf$D{S=I*0s8(V#sz!R@I6a3*F-s#RZiY8K1x9JLmV`>omX4 zUOd&ym{(JiayGxfN)}JISDq#hmmruCQzqJb_2I{bg}StYVnlyW{Q8XW(+qK+Nopeu zR&E4Kna$-_Ekr}qaFYBwnr^*?YXZbIbzd!GD4Xr=i3{s-L%Y(wJK~GxS)?t{e6s^N z(d)a5D`?BOo{Lv6M+kN|8Z8*RHvTw4O)?`b5 zWqAtZOXZHe)jQLq^lU6IhhhdPR3rPs3G=aRnSDqtyVYI&LIPzz!e_?FkoYa{LD_J!kYZ50WkV^6a1-Q0NbcWG^31>md zf(%C)$7W8nk2wOLG>0(6i8wv4>06#K5u~?_^U0J(ZKIiz{Xki57#*XyX7Fwc29GOn zOR?`^SDCJhOHR6A#gZnXT6ojoX1TfM6H#$wnfcEWn_q~qQ_{94&8wA_9XG{bzNK7* zw3nTsN{|GroCE+&EaU*HxYVH=`pq=5?a~R~%IAEKF8986`HS3`HLuMadEmD$&?&{< z(j{sQ5MQxS`k^H&0c3=u<~RAkRwzq80)saAy~uSwUv0^eeHB~~N$=3r(&w~CRQk)D zFU%v1dxlH;l2}oj~LCEbQj4MgYCX zto~Ac7<1ID)q=i=p^0SPmf8$yu@LEk$$>E;vTEwcp}3#r&fgZH9l!2ZqmU& zjF}O$BrfqR`8$!Rh4Ren1jXc8EHi$d-4|j~1@*BJ%3%5mqrny!$+w8yt(*C)Wjn~N zLiB=gdF-(ctNa*)Rr98o%(dIWJcl5m#Q0TE3TVvvK&G)=cbcj5S|n{n{>m(>s6PaD^NSe3ETJ1O{e&rH-{poge9!mfWL zJPYg?zqfiwN}Jh3$*xdaSoHr8=U7@jJ77d^C7nBfGe#KV{SLJ-UYC7fPn$)HPPJ}q zv}gFzgT?GJc5s#z7omUKh15HFhLCVd2p;g@A-)#%?j2}BTX=ZcU%MmUQ`NfZU_-`s z?fgf1HF&cia(wb#YTxoL=M_UT?^9j%gVv>S0{2%T$rd6F!LhN}+htv+7-ih@9n=&s zFcjx_+40YUPffl~&_KRXm*`fq@D8&ST^Q`iux+XH2GO;-dMTM{PL}_L?E<%{~Gu9q~FPeZ?)cbA%2&(`X znGDOFZX5oE+1T4S0p2T0`n`*0al&zr9j<6%aGY?v}W`?}W ziq>yqWc6Y}YF%4|kRBpsztT+h&M=;x^ft)L%9<#d{eB;))sZ_(=F0 z2Sz({^M!0JB7VkKbg|&fRcr{v6uOZGcd|eXmU(C zCaKMlP&=MZarG?Q%9zk!955c9?Q>L+u+h9mX7moye29`u%}^dKzg3N@XtcX z?nb%K|0-#c9W^HX!8hLU+3GYN-zyomvG?!rO|pQOUu?S~e>o9PTXUf8YbW&{SCS&4 zZI{A$L7Z`nIdT>%&Nll5nqkMGb0I-7G@SgxB!~6 zFD-+5$`bn~h>+Se&8-m7y5=`%o2wHvMp%o;E*Z#qhTHyOMturK>dlTat8YhFF|I!G>BlZr*^trB4vHwAJ8LXj3#o~h&L;?9}IyUCSI0@>M*XBp&tzVCy) zSa_~dMfDfS;~6w0%Xk=;&CbKWS9E^oz(TM_7P_0^dK09_52trx5H%a9fynq3Llcte z9tU zRCXx`N*sI*uYIoQ7nCf7?6yuwc%o6~kXJUgT197`1-m+nMkSDWpBEX@R5@`QFrAjR zw4^PYD`Nj+5T&w>x;V|htGtwiYgVmk&n9t=n<&^UQptW#wp6v-;``8OH*=cEM!>ej z#YF+d1exmB$u~iub&09weIgs61b?~_)&Oqr0hs-lXM|BcRsFa{Kdj{`7xvT zJsk5Fn9Sz0V)I>Reap$~6RgFWn%k3C_*E4S227Vv8wbAx+L6p!s%f~ifEvvGyV}Fg z>^F;7%jOr1lSxX)#A_hFbOsgBA;!*XL|mWKDPQ(R?^g*rMjC z*rr(GzDFTvNrk>GaIKg6WV+?rIQb+~cJ)L?O}Q%DMUofpaKyl(>Wc3fm8y4es=jh^ zbxC9NVXgk`*YE|7482QL@1!=WQ@Cij^j8h9#wbFvzoilJn9OoyU>!wcNDxlFxC}0C z!Fvt(wreILxP&%pJi}i_O9~(Id@^m=N_)w_g4r9&Q3Wms67?KeFjq?tj~I*Clut8X z&i1dqsI2=w52;JHiV7a3rvF?c7k<9RPN5z&IaP;VH~DeAy3qOt+x43jy@A0i80M|w zw*=N}x&oDlpLfUF;}z9YF1<8Lze|oiW#tam*Y&j_cJ$@u`;si1SHxmA1QCM{P4Y=m zaK^rrrR>a*6luqnQa+7QQ$p(QKSOD8Z#d7yvC~{Aib*M0l*p_q!F;!YV z{z`x1jjgtC=ob)BuW1IPp_^}M%u{p_yC!bjblArD}#_#PEdM$ zxwOV)<@zKW?*sFk>B3wutd(@1C|JGqhXca+IRS62iunPq+Spx0N#EY}Tit7=mbjNd zr9|CC1CJXIV+vq9W(Rlhg@?G8g$!6D^{kOM;})#A?bs)AN;Sv7NH8PlZm(c=v3SoS znpShSEDpObIAm+1<-*oxCWUVInfU2A`4~J37-ewG{+QzDv$FAqc18g`jN5^e0W zot8lOLjh4;YwoOC8(FX%{_IZn!WZwbk!+CqIMsJ)`FG|UTgM0M@d6o!6y5{1O*Eef zx%Yulv{4}~5gX4}iR#W7s$&UX9K)A74+YW1K`7xQ*F=ud{gj4-V|73pEmK!B zD&_P81YnL)1;UGSb$ezZjd2W~WSRlfVwZy~GYtLKl*a2djQMV16vCmxN<^IuA#O^? zNk{$=nyhB8zE+B=Q%`Rvok~Gy*7GG z@di;(a@AC6MEWhc7Q7HF%_@MOYNp4VxaDIGNg|P`7%e#{gvT!R?>N?~uLvJoXQqaO z!kg4}g?qS^sOhNDa~vQA@lV${glC||24uW|jEBVOdPxvJAOW*bNSEk#?WW|rt|>^r zZl)!#ac4tOn64D9$-~*>h~DhQX+)Ga2_JQ>R5wnG)Is_xHl_ zCDRoE!(m6)Tt5#*kF2RG;(5_fD; z*^I*%Z&=T2rml}2?={Q=J#?XnSmr4u^dY0f>*cG~JU(pe&I7Qc2rG-1u_(}s^Mm`v z#3uOT*)W-edXlANQK*F$VlPa%_q_aQ4KB&C_qE~!fNC-+2Ty4jfHzTOtyVy&>Mt!C zKw0m^gozT(LVJ`uF=2Yr0^w(nCGf!xn6S4B+yAJK-n_SaR4U+qD3u*Lkmjh~BlTz%q>$uKg}0Je7TYxziNDhR3Y z6x-MokfD;uevQV5Z_=FwNDC8xG|j8*<7Ws@yi793V7P|d#w4<+Dl8#<^GP6?(1W@R zw3u1eq&O%I+VPv(TjXSF3kFq7`((fq`^zDSIx)Nk@Np8LZl$9KS(-fYU zJ=}!=)m0~fq5vh+>!t_P8OiT9#4yd>fv&I~yPAFMDhc%XEr1U3AK%)}IiMi)Ul~eR zL%V$n^u_*LUpZ1IUw(!8Zs-RjI@FqP@ayxbFCz{K!?_SE(Xf-ilH>SOqSe@uo)>H5 z2I29~aKkyiV-gQ=6Xs8WMX(sE4!feO08tv&mcPqm5K?438Sj(H`GL7NL=l;FI`kdD zgbfhoBG5x$yaaLxS`&q_*Pl$3SD6p)CJehvb>%p|tok=kn5i4I>{E>`5S$pql3X7+ zj4Ny!D~sXUFX1qW+jH|n$7lfn%)pWDJtPEUOj zr<~*wi&oy9iZ7sx$$R+NArGxybmsCyTo}WRQ4t22$%nCj>s%OhI-3q zH5#sKS1J0D75iC}2~eGz@V$vsI$g^pG~0O8qZEOnKooUbEQhj{91tF^Ft;BGKf7#= z%a8n-hxlVCuVK6pd-#P4U!=f0yKWjLv7MOk5>`&K@K;3czBjPD-UO5$T$B}pHZX(4 z0#xH49Hnwslf>34IX5TJfvU?u^1JxSNUrlpnF!XK0RIQN()5D3z@F8i*wu?2Y(J)l z1}PHgn5k^3b361)Jl+*_;yd`D(XmotE38(o<5w7?Yd|;*unOyd4b z(_wA_kIT9X(3lX93iXAsIcs#trz`KfDO@=AlMGcoD)C2UqIR3@m$he; zZ>s!O^DDQg!%c=j{(|D27u~x+m`#G#0{~$_x?m??EjLQDVEMt51@Hl{A5=UDIzIrn z5jBh)@pHCQ);{3NZfJR6j>lt#cjCG$k=zcV_5o8Ra~pE>fXbdbkW8xGgk5iSyX9mF zPV}mer)|vi=?i%^GzAzB3gh5oD&S4XNXpA<*%$LA5BBw+!Ee|XM#L(^Y{`AGwdrCX zv_o@5j%;#EyO+Z`&+=5-o2U|@XY!+kQ#FCJ5_89&c0s~gS(t7TPN<5udCP7t&FgRS zcU4+0LWf?8-TZ`ewWb%W$aAK72+td_=kevC6K3WYc+oF%a#a#cy za{ed$?*H<0*vM5awR7nwyO+2f)ui;wBP2H_tfk^p+iI}_Glk-nN!CKR30rwP_1IJ8+fSu9}k&S{?P>T_Uo>rk0$0X zjD|)8Ks>|`MGqJOV9)TgwHAYaECFe}rEef8vpW2wW3{{eAja*D=$02kIL_SwY|FjO zQvvZyR6}ED{59o9Y5CndC4dX!PNKSk6a8J0|7kggo(Me7JooVYuQrAGt@i=;N7j={i6Xr+jCm9G_TkmqjFWZ8^i#C`5-yXHXDZ;?=Pq8d zM;1FI*%HP7XLn{jPyNs~Rjuz=wf6f;o@MX3pZ{$0H?DiTzq;JkFvR1>*Kf0r8oxLs zA$-E&%%yW-;jE5#CcgbST|Lvfjl(7^q|U5&k8SDd^Q?P3Wma-Ie_KB{c7{fzW8hN( zkMs8qoP4$|{lcZkQO!Z~zCCl!dHSHCgzDo}NB^O#oW3b?-e^U0RNX2clh~{1}dH%0N{dc!N@FW+%X*b@iX*wzCVqX6E7$HxXZskAtK5F_*Ec3LDQag9 zaDbfukCJ%(7xV1--`|}Fwt0Yu(D3gDt~J{YoGRU4R{y6z^sS)HnhCQKP3C`SyIX(Z z?z;N>yY2tEF9DwHYV`bH+uh=Se}U`vKH1u5G*9gCHJDZZN3mS~i`i?0d7ShAwVf^g z2fC>2Nmbod?uiqHL*Fgvdvz_ka(YS7LU*|ZJyJj`Ib804F#|f|C~yah@}>Gi{N{go zXFdP>5!fU-@#XIt=bM|}H#Fd`>T_o~dNbY5$%zif4kI_l*WX?9!>vt0OFBm}abaNp|0V#Oy~u|E literal 0 HcmV?d00001 diff --git a/docs/architecture/studio mapping.graphml b/docs/architecture/studio mapping.graphml new file mode 100644 index 0000000000..da3e274462 --- /dev/null +++ b/docs/architecture/studio mapping.graphml @@ -0,0 +1,605 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Studio Client + + + + + + + + + + + + + + + + + + LMS Client + + + + + + + + + + + + + + + + + + Studio App + + + + + + + + + + + + + + + + + + LMS App + + + + + + + + + + + + + + + + + + MixedModulestore + + + + + + + + + + + + + + + + + + Contentstore + + + + + + + + + + + + + + + + + + Discussion Forums + + + + + + + + + + + + + + + + + + Grading, +Analytics, +... + + + + + + + + + + + + + + + + + + Mongo +modulestore + + + + + + + + + + + + + + + + + XML files + + + + + + + + + + + + + + + + + GridFS (mongo) + + + + + + + + + + + + + + + + + Assets + + + + + + + + + + + + + + + + + xblock +runtime + + + + + + + + + + + + + + + + + + auth svcs + + + + + + + + + + + + + + + + + + SQL store + + + + + + + + + + + + + + + + + ? Discussion + store ? + + + + + + + + + + + + + + + + + loc_mapper + + + + + + + + + + + + + + + + + + loc_mapper + mongo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/architecture/studio mapping.jpg b/docs/architecture/studio mapping.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8654dcc6219463c5b12c0b91a2238073b58086a0 GIT binary patch literal 48247 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 literal 0 HcmV?d00001