From 1a3efb929a2af75a3a235c7a2c1325bd4d42f45e Mon Sep 17 00:00:00 2001 From: CANCI0 Date: Sun, 28 Apr 2024 13:08:04 +0200 Subject: [PATCH] Updates --- images/05-Level1.png | Bin 0 -> 33230 bytes images/05-Level1.svg | 4 -- images/06-friends.png | Bin 0 -> 23041 bytes images/06-friends.svg | 4 -- images/06-groups.png | Bin 0 -> 23646 bytes images/06-groups.svg | 4 -- images/06-history.png | Bin 0 -> 23508 bytes images/06-history.svg | 4 -- images/06-ranking.png | Bin 0 -> 23416 bytes images/06-ranking.svg | 4 -- images/06-stats.png | Bin 0 -> 23135 bytes images/06-stats.svg | 4 -- images/06-users.png | Bin 0 -> 23657 bytes images/06-users.svg | 4 -- images/WIQ-logo.png | Bin 0 -> 2856 bytes index.html | 108 ++++++++++++------------------------------ 16 files changed, 29 insertions(+), 107 deletions(-) create mode 100644 images/05-Level1.png delete mode 100644 images/05-Level1.svg create mode 100644 images/06-friends.png delete mode 100644 images/06-friends.svg create mode 100644 images/06-groups.png delete mode 100644 images/06-groups.svg create mode 100644 images/06-history.png delete mode 100644 images/06-history.svg create mode 100644 images/06-ranking.png delete mode 100644 images/06-ranking.svg create mode 100644 images/06-stats.png delete mode 100644 images/06-stats.svg create mode 100644 images/06-users.png delete mode 100644 images/06-users.svg create mode 100644 images/WIQ-logo.png diff --git a/images/05-Level1.png b/images/05-Level1.png new file mode 100644 index 0000000000000000000000000000000000000000..1a44e7e8f5b3af2eda1b3b487fadd2244678cbf3 GIT binary patch literal 33230 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 - - -
Webapp
Webapp
MongoDB
MongoDB
Wikidata
Wikidata
Gateway service
Gateway servi...
Question service
Question serv...
Stats service%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22Webapp%22%20style%3D%22shape%3Dmodule%3Balign%3Dleft%3BspacingLeft%3D20%3Balign%3Dcenter%3BverticalAlign%3Dtop%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22435%22%20y%3D%22420%22%20width%3D%22100%22%20height%3D%2250%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E
Stats service...
User service
User service
Auth service

Auth service
Grafana
Grafana
Prometheus
Prometheus
Whitebox WIQ
Whitebox WIQ
User

User
Text
Text
Text
Text
interacts
interacts
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/06-friends.png b/images/06-friends.png new file mode 100644 index 0000000000000000000000000000000000000000..118dd1e808da5862ec254ed767419f80f8cf7b81 GIT binary patch literal 23041 zcmeEu`6JYQ^e^*FMTPfzW3he{sZ^7F+TJ8ywCDJ=XGA^ygwlqb=7xlJ+PI9g=L4P zhT3HomcQ~?SXfioHiK`@UM;@J!h&GYR6A?n#Y*be4jt}}IWmN-e&A0Cd$;gS$u1G| z!1lCT^Is3s)aR8CV7fnIO^bc@mTYlBxNqS<`1Wj*!(U}`e*98GpLc0$jx^^4Wj=dL zS>;#~U6+fPO`8>9g~8c45y&7G#)t0ks^$5jZVr4fv)$4or> z1K01Lf)7Dzoo6=g1bvU^dR9laFWDXi-JW@|P+rsjcn^ zw^iA2p*;LGiMzu8dP+#9J9GKW`+Eqxq6Jsx<_wndzgimEKK#H{oD|fZCsrt=vc3!9 zdJXBf%R(2oKa}gL1foJwq{7s{Yxsg)Pkob146gUxCR2fi&gelYl>+N+#mZ4xl9e|C z>}&VB`iq$imIQG1+#nluCEza_dA@;R__l&8#1H(r!XltywLMgPX!&Ykg*#0suc0p| zTgmfPHd$j6Okp?u9@77~Vl`?hjnAZt`p(gRd|A^by2QfFmwe8wKYT0P;|Tp8xBhX( zk~l?Qp)iPO-Lu?8jjWS!uPmMKyI)#*cn{muMfyEj7XMr^YciJV;mF!mn@7bGMZ?X; z0??$AZD_RmG0yH+^n1LX`E$i+(N{fEH!M5s22r6)PZ0l=HreaWGdUS*fXG#)-{bu7 zpDP;vD9JM$r{)o}(orxj(cZzAhO`W(-{Wx&bVVm#xx#2#ayanR%u>UGU|CL%o}pdO z>&??wZz)wOa9lHjlZAkco0b0akwjAgi;SYw)X52|!-Ec9-<2pndCEmW-_12vFa@5g zq7_rTRv&)Rwa1g#oF?!2YHTi<15?gUx7?mJpt=uO)O!Z@Pn`A31WxaK&Tv`S#Rd zv%G660oen+MG~n(MdUz(B2)xHUV!_%mDu>Dh~RF*!vXP5Mq_e5>s_!AvQ($Ug6>i z+c=#74I7FSb@=9j^b2j5Eo;lMTwU!h@(EmhR-UI{Xu40X&uPv)`{hB(e3#ci>)dx= zhRso*?yY8H|K;(PPl?0T687p*!g*~{Jf1eqq^JPjjD$)*C+=>USF{LHcFJ1bo5C;4 zda7Ff%7NYj!WI1&$Jb2%hm{C^f+p)Vw-5XzHb2;2`NH&q=OEp)E0Wp|Vrtnk-TkHU zB1w|6X)enm7G6^2yA)53?haI@DfWfKj9p&+BgVT5L=_Fh0mF6!gpXNus7h6*urMj269E+P4LBdQ)ea^5mOSz9!R)JmyZbz2$~- z1o5olCjI$sdGpbZc8*DWo%5u6f4qP*KVhUGd%?6kP}_p{#h_`z;{AbhUr*Eaa-2uQ z;<$^w{MEEsa`AsNqg5>SQTR*H#^DdC6uu%{o?HKo6 zwv{i9`-(d-(?Alpc+s&Mwe$QoxQwXlTjH?l54_(Qj?toc?QL7=i+L`Tx8z?JVxg5h z--cVONOqzu3G+3(#W(p|`L4UnhQ42mUT^EZtl~0#KW`;+UxD-3oBQ}18j#xWn{fUD0Y_G_mr#qWmRmKdi47g9L+_ntpFF%OCA>r zc(WF#f~w+Qi?BN^Cw2#Q0_*SKOVFgXrMaTm>TCy!)2nI|r`hpw zg2I`*89TElJ<-!3$3l7f7bC}F8oJay!oHo7KBHa9+9l9j`DE6hywEc0;!Q(6WnQv- zwnI)vG}&x<2c~TB)RKYG^oV5>Z`qV*%4I{tI6a%Vo!e|>@As=nCzKny7Psh#o;Q*a z?_{w^@~AA4`ztWPuG|Q0NuR^txGMXtA}ySJXOXzB@)-&N?XwVpS+T>0J9G zK;(OlC9RIKQ&V3RN?QF@qlZERSO*3yw!4Uv$)X~K-g({=r;2a|T@}j9QfXzR<(ZMS zqocN|p}6jnMs@!lNy#$-Wi&OJr$qx8QejH1f>5Ju1V;{fn}uG!MbO+bi~sE+kE#6S z{E}@2%SdSr%eycK3xT9cmfoeYkQ;g@9-XYV*q*jViT-Z#n6lWq>XsRz)NE041>g(G zb6(o`BC3gl2&uf{^x(^cb#7i7GD_(x!KLR`yGX7$rr%6p=W6mw+6w}9FilhL!q5d6 z&O*RRicmQ!)1aLq;C?{Zf7plSuaR&u;iY~+SS!t~;;0A8SCs3QUF8x@Uzxn>Re8wu zdLrpnGflUvUtQ4GX9}+fJlx}q@m&$uWaLAl^?{L7cSTM*SA?8UDC@1}49Kv%^|0z{ z74_tN@%;WuhtJPdBIqi$Z~ot)1L70)PsQu`d}Y<~Y&6L-5rsT&720@5X_!d?ZD(zlMT^N&mda&uuHs7YkeH?a z%;9|_%lm}mCY-$b37cwhn4HLOWG7Fm3Axm5i3cyVZjj?I?tl-7vy2w9trW{3kV5r( z&3sS0{3x176sQlKrDMEb|A}o~BZ-H#Wz>Dpm(TbqSM*?==-~@DPNIgzHK+OaIq``$ z^m{(=6O%pAGbJiJ6Q^`w54)o_JuE5xCny-Y(xtwZe2m8PuD#xFq3{QJycXMe!LR#1 zY4A$C`A_a1yN|tD`tFL2$Jg7!UL7xNZ3bGAR&3<-dJD9&fBnC;vbJ33p$kyky@`;n zSh$S;%F?f>;X~n#y?m!-g{qROWqsUyD-Z54&4-f_0JlC+{7>9kRIGdfXO>mzm8Pv$ zi+|gg?KI!{gG|Ze^Dep@C(z6_&|+&vY_5}``6&*pow78;A73lGKlrG+Z8s*EUR2Ed z?|$+Rj9=xH9d@%wx&XWOWS~=Fx$}p_hsHsvcwgC&>9+wKxE9?e!yKBq# zn19yo>U-Iu>n`-mtITTJli`JehziFW!cXoZ6Uk@0bKuK; zOI~=W7@~sLo7#x2a@zDMny_q-tqR}tx`roYD!kd=T@*QV4D&W{m+Ae)6Ra@VU7Qxq zAJZ?v;IMUyIsGmsSi>86&A+B zX~AE)`2rG=9<<1XzR~!&Y8cY>aI^SfK-q}GF0Bi8vsYSiv56xp?wOlM9{zO^a)5(q z;_55g^)ZEY^YThX!wEruADaArCrU4&sQ!D8UgZ@RP!D_iQkK`(M!jD)(9761lhfFq zsiSY@Optyts8m5#7!G(Uj>S8M1=GWnbAD?^u{Gwo>A>-p$U5?(+Q~Z`WD^Df1V(Ht z>6EUhP&RC~7$BO}&T!b~=P$0#noj%4C`9z={=60K=C=x{0}rq9P$NSsDXZra3ZE`H zZD^E~?s=Hd-S)*h1A&p_W+;rjNI;-`Q>`L+&baRF_d$ zd)~Kv$@Z?}%6f!{VO-&go1IvX>55sm-;zJ*nwzO4U9`Ir*lr z)T2!!zleK0>>$pnc4^qF_sk7z;+TK0gEUg_KlX2&N875bh2``3(1;9?Lqt#R48?jB zZ3p}C5%z`$ZZlp{-#YO5RLZNy%oy&SDk6E+a=|i_YkKqghQr=F(X-yC`F7@DEJDi)SyjlHPIF%EGYKKV6A>?D6!eSQh>b<;CcHqJ#I zq~DTG9TCp>|G#|L&)Auz0;DTn(44cy7 z-!U&&mNjH*;L23Za8_jg6u~!DA!Nzq+KNz?zsawQg{UveWd)0UGxbG#7eeOl4<8P0 zcaG)^jr`{PgjP&Yd+)6V$hsdf+o7R?^1FuxBj!I@&&?b!xm&HfZ z?iET$J&#gIFYx9@Toge>JwJ2wd=QAOjHpXb0MyjX18}x@ZjF#Bm%tT*&z2F{$|V$) zXtBPmdd}p)oOT2D;NxMCJTzcri})>YwmvO{y&rpY-M}RLn*=NDHhfl1M)>tav-B%* z)J5%v&n>68nIR1XTaZBdQE9jv7MH6-+AcL?<_dr4yRUzi47fy_2@4ckE4yZ29r!yl zE$m_Q+_D!0-ip-w18kr6<{m!i>)#k!#lNYqa_V-+lb9-HI3uNG_J{kMUc8_=6b|zi zRPfinEt}nX_42iBhb}$v?07CtZQV4v3qe%}fSixjJf7yO9)z<^X(5F3CQKgd`Pb{q zhPNhK{GYD}*@&)}1ETL_*f{sWR~7Q^-dBgSDVkT&8iu>7*x1xIcAFlOB8VKSfF)O! zi-~&_l3+CX~=OS;DN1f#i zP}~SkWED+2=)CkM*g@t~oR7)+Y}&sUgJpkS6Vd9X5LfY?3*l1d z9e^h-AlT78wQQVMRUyk}zw7P=zKpc{``We8BO6h_$_L~ps#t+q5E6lDg%`XxMI6vS z#N2m^rU+9(ddmE6`-qiO?j_^5WJ|vk?Vzd`z;UwS`tdB7>(D}oDS3aQeXqZiK5lkb3NsJi_(rABl2}5<NsGI^)$L&X>qEOX`Xa{> z;r*o6{c@}TC>^0YaKBq-uLx5tUKCTTTcRmTTwd=Xv05lCDy%TVUf1 z`cA0(?^q7Z4t6G7G#Niwx_A5iszZ>eR1;$WV9f{n;A@J0I15G(+6Pmj#Gf~S$M0rm z_|PMH!-pH_G*JU7X!7X|Co4>yn;{opW3wMHH$$?b-4JZ89Mw#8g29y`7gU}fVguIR z%(@`SaQV#RP+aOa$oBo=@Dv0XEo)7?k|g<9SytE$*mcdA$jfjxQ+m?Vu*p&30a$H_ z1(tla@_ip`oeo&#CfN0Qn4%#&XYmo}P5`-CC@Pd|1XWE!*G>M_4shBlcwgncYr2t# za*slW#i!-hSh8_;XE7A+T*SFqccUAZ2-;$IA79s?@5n^yv*O|li~IMpGMy9=3T-X# zc>N|FwkcJ{1w~=T(|4Y$lp8ez#CGj*k<0k_FIs~;b#9sJhnf3QR5Up;TD}}m*xofs zn#fwdmW*reSkW{4Fx|1Dy`orfDNHo5{OAIen&z|SRzb}!$it;I>-A8UpX9+}!c`PjYy9+?h*@0g8*s^P)vL2ciqMYtrT1p-3ZA_9_amfHHu$3Xd6l?N;(8~DwcZ~IB{!UsRaLP! zJqrnF(xWaFQGC2Ac5GWzlW0P}NpLU@-J@6IT3Vi--pki}M|a-k1^*6drSQ4{#BGKj zdmM!TLPbMF!S|s3E-~T2{@n}}$V794BVVFxt zBXK0eAzdn9ARxv-;eoPdh4cfm_UlP`mk!^;gQg1#SUr`du@60P&&y41E889lFUWQs z#vp#Q9Nm}&NZP2hO~%zrzI~0Xx&npHtgj7nQS5Kj=0?VCqEGv#_6kIj70{V+Fc9W8 zX*}XYoY01RtLd8A3s7dB*u@B!sMv)&MX(jr<^}A%>G^vTTh{cjY>5T2JIX*}~&};sY&9TL`3eqDGst#j1sKFJb5y$2qA@S_}sG zwr8SwM{mASX}fnttfczf&%dkALZ$6ly<2U7$H=QnOT>jP<*VEk2w413dd5@0hhvpk zxkl_+TOYMpOXj$cdcA4%$fzMmAJ6|}og1lXAf{&uU!)_ytkV)Ckg8NL5q!oAk}D=g zhedLEm=QXf`->bqAoZaLO~^kj4fyW_B|6AU$(2GH?Et z*PtrK^Zd&CjJG%kE&-f2L~9&W^xPhTyafS^TVj!ikwf~J=CvNa1xXy&F)-(#v*F%u zWBao~;5iIwqrF%Zz{i(t4~4lo_1HPDq8MJ7?eXXqfL0m|FEkZ8=za)k=@0U-zrHvZ z;@clbkx&DgJkF4{-*e9AFw)WmfR*{e>owYzD$I&qCG~kYh~+mJOY4gow|8XXRnSq_ zuvwsA8&qWmXUONd|Gh56RItLf>|#)A&^a9FtCGX#%+5* zb?pO*_z7Bi8_Z<)?<%m!>(V}MOdTY?&2e`iSV_=I^yq_YAVt52ND`%Tzfi!q49P=+ zq05h>Hux@AO{Ac&W~~F9jrR&8G8emB3I2G> zm_bNsGYKik?f_es{Zcf1!h(4LZR-~glJ~>le*;Cbm*%FNxBQD~uD`|~9pVHynz3%4 zpijFu>=C!?S)KFEqjdF)L+PVXTGo04z)qP#Qu$4b#?Eke$3brGLXkD6dkDxv6$3tp zU4=HBa8@HaxrD12%SiB^_;7nb@vs3y+%uHk0wd53A(Tf@9DMSK1+!%vBSY>?2qlC4 zQXF(OZ)TH}B20k^8bQtO=||cpk1^ZIxDKy&;ud%$C=N%R+vNpa<)BCU7N2Un2TUKr zSQuI4ZaV{*_h}4)Di!q3{PCA4+hS?U%LYn;O9=(P3VeKhGAgc2jJs3U^cOD2s;;aO zOkS*2_#7x7c)rqYZWP$mT;rrzp{YOzMpQbKDL+44|4^y_EdW?a+pMnwfCU+Up}XfN zmJTalv*~a*AKD);ly}t1&pYSxmlawAMQEw~MGZQ{(NJ{oDEoo{hDfjZfKWLW*G>b# zAjoig6REvucFu>AK&VcKKB22eZ*~Rt!gI6~Ui1&keE0Q1*%|6r42n;AO5-k!X83r% zbE155wpGd~3|r{R?vuN%9db)HyG8frfGz%R3|H%=9x-F5n)m|jWMx2BWOuf%kGbea zNt8lbY$&3s|`8RUQhf~CK*U<8%iXpGdS5hyOzR$ zT-p$ zNU@UfkG7ij{Z2k>rb=PT+;J~7HBF-yPqUkADd$T?Kd=zR^yu1Qb7h+Ke{>5cr-d8} z=M}|xQ@pWr#oAXWQf)<3U@j&9p6@M}_@OY5WKl3YA&ad}Q}a-)ST&xMrPN!@dhPkW z+x%YSUp)*e3&?vv^Bo7E{Sc@>`n-Aw{Y|^`@hVAh*VxRPn)cZDqalt_4?XaBRGe+Z zJ3E3uO=MS7WR>FCDGym~h`Y2#JGwkn-I-vd%-fzuCtx^2~OUe|+^f zb3<%gwO4^~o^==%cb;JzYP9)dAoe8$ZIk(|gC<*WR@MQTj=t1lBC*~ zFFFy$R_Y#7opvSU(L0KRx4$NYMO3teIvSNMoe>HZ7~HC;RY$N-TP=Yv8Q^f_MBOnD zXT`J?yOn;OS^55VW2tH$Q{Ro#kUiLIb`D=aRfu@V*kKZEkL^IQ1je@_)e3cmf{R8{ zJ~=E-*)9lQFcu_`$2e{zOiEs|_prv#8XAfg_n3J2zU8K!wm5=brX-_PXxUC}S_v=5 zLaqmtP3H`tnrcojb7h2u+#E0mtW_2Pl~wD0D4b7tKFbih&*EkEiB69$8G;gj`4~H> zilLOq)A>ysgiX+Y1+0__mC~$&^DaoQ z9GaSXtPpUB!8Q2Rj=y}x-JOh_K;5t_F%#S;%?k76c3pRqwddQ#Cj6^8a4mm%R5H*Q zaAB3{mwC^;_;!KeTNiCp>H#D>0VTd_k=NEBa{*%`GLc#~fCC%s#AjD7HM*n&4y?eng(lUf%U7?-^g-`34A_)fD(Vb4px+F zz|fM3JUmNjQ;%6{e4&lV8rg72`ncI{83bRHM5!CN zpje0z!tw3VT^p&?eUtKvr_FdFp6bKZla=#qW*6cYC!|ePkyrYVHiM8CF;Md-aU5s2 zt2+})srlTXH3XMA1jtYB21`!(If$Y$mVI$3MV&m?|?^vU>^XYkW?|m3;;t< zLBRG@@GJ1gmR-R6p52#0!FJLscaR93j|sSr7RgDgSemO*X^6$*#4w&xw){l@?( zWssJfM?}sBRW$-~rtis>YB&d@yP<8Zf-uN%P-kt<;a3&RRfXgVhSMoSJ`kD|t`i?seE^IbXwrVr zwP_PZCh9P3b)0B;6b27HhKS-tk2c0tk^VG13Ai6VAfiBo>};VD;1{Y40MTmj$sPC{ z7vvod;>8|poN`bNMedHhsmDa%SB;Q@`0Uh9HcmDu;%xhP9kBEa!7wN`s0Zru!|@~= zYzr5}?mcV*1n^7xw%QzfjLrx$h(xfh&X4DxgR}VwGUx#RR%|poryM|`Zojyz=Ggl# zGU}y)UvFAK^jz7);E(5zTaAFkqY5BLaGo+7ul{czR2jQr+X?3vWmHT`<b{NU-TZ z#gwa6qhX0-LU3Ga^d)XY?rBKfony9&8%tLL=2|H8snMmo6{BL3J^1#)1}nLR$x5mW zmDqiO^B-fx9p9fecfjRiAWS(1glvCSTqL1A}u2GnTEeJE4A~ zpY1HhYzGZfkQ6wZ4kUTxm=XxpRT{u49#(^v$rWb#=6uXZk$C$2P!%K><|qowf`PHV zd&8o+3kJUlg$(1=yIOEIHOReQ`^JDX3k~p35nw7G___HXdj;D2+^2&kMrl#BFG&XE zk;6l4!cEs=*)dtnU6_THt5FTAQijA@F*sqr5f)@NfilLFCkg1_0~8as=&3JkSo0zi zsJv>D2h{CfkhwWh93O(x;UW<0uNgE7Q4Cd^X#M@GTGC1|PpA?kOFQ<1{H6~ALh3f# zZny`6K_Yv)&h7^U!2%=~S>-P!PP86KlbOxLrj_JEgLA0pXxF? z4HOP><2N}}!5H=?ez?u-`y=X!4sdCWv7zQ>382Akvaf`JdN8?LwTO zZ*-x&q#N`1z@wis%J$k9;A1o}mbSb(sLMl`BMYVIijfgRkjaS<%}Z2I+zhyTE|5{) zbjTRN7MT5@1tsyh3t;erp>0zGQP6^df`;Nbq~Ho0+8=1l8#2Y1sAJHEt@zlXpfUY3 zUdjLlx(f70$f1imf3slXKoTk0pY?#9m+3gAX^N`_TZ5{OK^}PQZYyXDSb;#8tL<~ejtd+Zbrx`lvB3`f-8W$<JwnvYAmcz2_Y>3n+_UM&NZ9{8`z6e?l5y_ z-K6mX&g%l?qX&2B=fm0HAQ^Mn975d%Z6By<824p|xzYnQfaw`+Ck}Qn%Y#t>Z8FbK zoqI5Mp`CRXTL+p}$QXvLj5;#_8^&vh6gxBdB~BJYU{2Y9Ih-Pu&s2c4Bp88Z)X7%| z1co%gv7|i&s4A1`sa@Ax0fFY~2-)M^>Ba=0GP+4}vq6<@rk4exks8EQ-1{uO0k7gX zA?9fCQ_poyI0uBk6gaVI^ehK7w_Vzhjq?aIhd3X5++=$nOap-X0On}rje;Zy0j_|R z9TE+i;4XdzG%Ofi{#`T44)mNMu8U;!u?}zv!5|Clyy4F&m-5>O1HLviWwI;kGSZuG zpUxaef&2gfOj*5n5)L8+Ly=R;dXh;X@;gB4&T4G-+E}{pUO=FGQ=fp46$fQ&XPJvT z0MW+4e*H}p!=!cIpBL*ee;BR0d+%^WMr96F!{dZKj%o^gD_8b6WUM+|c zJE9o5aptP;Dw7hc8OMx)EDWJWkw#xSmJ0_?u`3v`l$p#X7-*+?bvit%!a%&kU;44~ ztT50j(`1bh1hX7a$jH~-0?6oxkb9k9kWzucqu3t`gOgOi&&&SUYps25D`;JEGIpW! z$qPG?I*!37=I{~&8JzmZ-fP>tr|8(B@!2a4(>wXAL6MX zgS}#+LRBnUMAdQ&WNtp49!@ajl?cSz@`D(QbcK>5F-2CMj|wG_3Wsz+eO zk6y-th$qAdhUyJd?BLM{81NzVIQS?5j1_&S49p;K{h?Iq>odT_L>EMz0PrXT zGKxlqQ#N23p^P%^d+jFxyKfjZvU~HtKb=Y=9>PE@seZ zIdkJJ{2b(h=MrB6h$2fbicekJ!7ayh9JIdoqQf2*j3KnM3^ykOWbqLMLaXS`Pk@7F zm`ZuIU5W(;FFe99mDBCe8X&j_$Xle$`{A4qMWEG!j;=aB@oR8ZCzQ6bn!6U+IK47~ zscM&rSfmY8`XwQ0SzvcjsFob8qtZM6LojAn_EDwFpolwd{)!SfRxl_UJg!UwQ*|Bl zW1+({)Cw?a=hD&Df}|gv)9au_pT*DHcZp=_tz9#s5*_kACa9^5u{ZJy&~Gcic50(b zttV!J(ao{He#wEMh2hMC7*I6cXXFp^qwGEOeG6)=qsIPxsRq%HB)w6Bgr8Vl{@M`7 z$WLSS&RPM%@b~Glvq=RG++E5iNr9T-Mf!%`f+mKk5tG6hnPhXO2QB#gy zD?-Fiy4Ph_C%jr`D#}x5$mE#$*f*qdT^RA*xHU22!$jzv{%I5Hd~2gDVM4J@??A5| z&RL4oY_L8eu^<o;IoW=(byL6x8$wj^mPR1(Z{>we>J1>{C zX**|T|9NnBD4vm@l!|_Yg0uztKY*Da ze|ssS7gR-$9jR)nnCBuvxFK zv(q)-XkS-X)I7@KR&G0{=@ydB^aB$9G*a{uUT^@{IR&lj=3gB^TZceCG=2BPU+Sgk z11H*Afk=INWST^pmWrN;r>Y=Yc}9nn>eg@K*(`L)f4$Lba(-F9tu&PoC*q_kNO;~H z`K4kiEnvlF(Lg2IZ?@ppmr;L?oCGbKV57Dq=?drZQUPMI2CtN ze0I-cQ`73#$OLXz-{w^=%Bd*Ar-upUnRTg0L^0j`^%LT7P{_?(|9T0ipXO6CY7_ z!)RU^m;L+^jjJXP1}kg^yW@JvgCc%oPFay_L}P4*=a|<43WaF0?lQ`uX=9&-+Dy1T z=l*g|K`77cqk_MQ`>=m+s(03Upq9jn1)EMU5f#^pt}Ji)RrsSKOYEeR*r^4BpK5}H z@?-^14cbUEWnO9Rcj^yN^yWK+9P)u!uH{{C0mBjw*ScO0CjCrli^E~+*UyZY64mA# ze(5zjvL1SxrWY%qocNyGZ;Xe1rvO1_%SA4W!ZWiCNfCAC^D|%sa|=|ob9}kg3(Eej zrjLY=Vo(alDp&fa)9JH-_r;GD8ezmm@*1;$%0$#U33sf>HAsAp_WwFGcchxptI?Ch zC4tBVfDM?n!gt8g2dTGX^cN(}U@I$w>lMpj8t@toP?Qf(8s~$SVKyxFM}yfG*Q6$p zNM+qx0gtwYIb`&t`3~s9A`loe#(ZcnXu9#=OhbVYdk3iI=$gv{m)GvDOWYzLU4M5MV0J_%UskQ=~?bB|J1Etpa+2N+2tiraigi6T1yl3&p&!xR3uAwTLdlsWu z;ppm>AG}*4ym9c_36t~ZK~V^S6h8jlU?=iy((SL*xFs3k4JLNZVf1H`b0sH|EOl|r0F3@sExau=?6_>E-05~vk7xH=4E%Y}7AV98D~E90g2A zC8RtHEm$|V4HV;BpC~_SR5=e0ino7VAQJVdtE1&U#L2RNMg%=UH&&9Od;L~AD-0G^ zu9Q=Ac96hf`wks{w6*Wrn?q&U++S=P#)=%J{XBE4UJu+n02?itd$*~5M_W%xktcCM~*usfJQb%_2ARp?@u58 zCYp}&M053)pD$kT5iV_XcDOd3no7P(@fcKm#mm(*Lw1~erKhY%C5Tq1F57uJt(+`y zIY}n=1#3$(kg26MlXozYw|jEGY8SKx)K3ulc_l@j^W2Q=h$Gi=G^gT=d$R4Xs8FSZ zDkGIw+}a97MiqAe-cR_GR4g1!7Hsf-ab*G9A61bdh}X}`YgOg{x?8t!ZOU%JyKBDT z#bk4FidpM-FIv>FhwOV@(-pqn83{*PZ%K2VN3D9u)Kb8tO;JwUT;w!dz^deR^Chv6 zijQOJL$`rnJyx5)J^q}&i*lhc#_wtTp10c6WHjGc(@eaAi#Tx#2@xIRT}5jLpVroo zE{cDkMV~?~^O5Qjh=H?NpY;Z=@RG~+Xnzz>W8c;NiT@e;K_Y!W*^pyXiI*gl}pVQ zu@tY>`NA{ej%B))2P4X#{;GcFvglo~ob|Lv;@jKlgYycLwyX1XE!tarq)-=|QRT;@ zxw_|gK2HZM;3p*mml{fbgl^$}R=3&YVjH9N*w3b6mga_Z_lw;Lh)w%C}k?&&f0UQq(m*nYQvVTz+EG z<6bk#QpPDYjy9J%?Jkw=qic+#QtYr~?Mu46DoQy-<>{z}80A2j0lWIhF7oXK_p4Zg z@!=*fee%+1iOel?mr%4s<2wpn)!b zI?O6T-RrrS1g(oymEy+Lt$i6VR*7muYzvaY9A5wmsQ`v^Thev%uZ=5O>}ect+~OL{ zp^UQ0|CGG;cZAFgZ-+zVw@a5hgx{k7ZWmFpZNO@z=c&E7e!DUimii_gl_w#bm(-P~ zHuZIeLisXTsOcK1fm2Xkvpu1#XHz?xaV*Ya%f)ra$j*URG?{kt(w1q7UD(csuSE0& zS9_W16%i^n2J88y5{uSYQxO?S(!3w&CJ}Xq-LV&gayg`IB%%0>9q?i4fHOFjS_7J0 z5NA+W=j(k{REU&qBY(0D*P?41EtbMg4bh1lnj7tPsd7vJXEV9VD*`gwRB%E%w!dmZ z9Iw1}Nj(!4eNgn7Dz>dQ)!HQ@PoLePvlSf3kyF;ysilol8u?T2Nv&@}M#qmm^-##5 z@q82-^s9AmHLnb4E7>u6LDO#XI7MfeT+wppW%c{4KD%2*`{(DDZb=1uyGi_92ebRx zYrle3+PnI3Yjdf};iyW|RCevEEG|?wb^8{M?8jr%M0bwy>rGaFXNNFADZK|M7`MLZ zc7Fc%4?6-iuFuZcu%rBo0|$ge`=5HO=j)cGgfu*>3;3DgB3UpXWP>v4m$c0d|&i5*T7B1>h9ox3vF`U zk$0NnmzzVUp!xD+uJ=}=lP`dN@d-TuX3zMi$~0?aDX{x#NKgVq*?;8fdmcR#QxPSM zv?Vks@J+Mnn%5^JxGc;`T)%>Te>YwL7pfHKv?`}}nPN0Myfkbjd+J3~Wch7eS`#ID z;k#3t_b_$%_EJg~+37>%$1Z@^@|5jfyR4fOn)Hd}spiER#fG{pD@yvt*N$`b=q764 z(l43YYi%*xUcacxtg?&CL42RD$ym53YO+MWK2UxCle=k-=GWPxy*o8^qg)d-hGHds zzcjoLnF{$dX)X1VbYLDg>QvKO&NtsK*VdhV#=P0#`ED7iB>!}UPC8Z{YwFolUl6G9 zOQ?nD;i>nv(l}OgN#^ME7=gsmwU%^Jk9eb*=%y;Ac)+16U@eN`?A-6yizazgs23)c zjEQ!=;|~O{LXNbA>-wm&oVw&;^N}Zi~T;g=lhCwSLY7#VWKhNk2!n_5gnBR1+8v)&HoHCF>nf zUm4(}aRDku2i#R6$S6yEBBGs z(0j8Ngc2R7q=_2vixS6QhHr&)#82({IaR1(Cl(W>%}xTrznI{C5De#s?Rr@gQTyav z4(NJ7<5jzwueg`ukoe>BW#TIVX2gj?h}&~g&p^ZA^Ad=tDgRARaaA4=SwugDNHRZg z;Q}Isk+OL7>oWmws15j@YZ1MGsyYS{8mZgH&wwaB1`#M@PtNlFrU2Ujm(V5whUQ#d zAu#db3<|eF=%zCVJkv9>PlAd1J&dlLfA1^sYu;<%A+MqbN7(xeAc4VL+ywfBbJ<$q zz?|N+&f46%AIjWsRqN zdx*Q6-Z>Bq@2_VsuD9w8nW_!Um{YbcmkBp>FyQJb5GoqbrJso?qAnc(-J!5OV5Xdy z;|Zf5Hf0{lM46lNaQBFO_YLsQ_H-PqKyg*gJ3%ibb*SPVYkBS$I_mf{sFk{KrOY?rDbVSMtOVqt zTEk~`%GCO+Q5vC>1)4WZK&H?$YrPsxjOa*Dw;*zTl(EtYnOcx+?)awHn?{OgGWGvi zndxV5+wG)_jvdM8o4&>CRMO%_@gB9Nzpg^js2Qsrt4>=yhhLIbtbhjm$j*Ot?PBI+ zaCCvI=P$9@#*}Um=ZOmy>uthbZP?m*Z=BcsXfL*T-W!|gp=o|4mGG2LncG+5q>?Pb zp&<+$+v`Zd2B;T&`SR4m9M9MP++e4_5#Y647_VYL+Zw9kv#pfvXk6d=)_U) zteoP|U}UHzuTt^ZyHEF2_D%J|1fzt+E^3@NTA_5p_P}6Qmw{+O2WdIMMHY9z_Fs(^ z%P@M!w%EQ#$5P;Tjld`QRyf45k|@vb()&sgTc^uiK0(RGItIU2Fjy}uTz%^{KR;@x zU>s=cX+wCkNOg#-l5q(R(8lGHxCgh9LW6(wU?Hffu){&GxIE>&?C2<4IJb9ru5A5!x|LsJaX#EzaaS{)Zw8~v|3|(VoKmAx$s?zw zWW!OBcHAv@tf&@bgVUO%rIBpS`AK=n=?>rZrPk+jJ8*5Z)vV9Lql8Z-4n^9DqAqs) z;5AF$RCH{IHv8O>ca0S~lN2yR=2lUkFZeZ)aT4Ri36XO_RVey=#63e$KpPnDVe|yG zn>y*E+`^y1$Qr$kOFsYxvHTFwM`Kil^NwO@)9Y)~lY{HD!3=@G)!S&D9dzy<>ISLT z=xnr9!gxRlo6sw-$36vcfhhabaI@@TMD9T-1UZX1CxV8W+E6>KL3Q(MFnjZn+0|W5 zY2|P%CVsoe)`vob2}jF|i+iT+05c^>q}XjxDnf_mZ3GFzx$E;T>sJ`d$!cN;#S$kt zkN}u~Z8|pqC7y{uL}doO1)UIG=JtG#UIPaV)0e~67sHN;Ut5lJNlmQ{l^ry%!Km_( zOnIKFk)LIUMXYNzym+6y9TfX}>ZT1tGc3md$8Zh=z@vD5{QaLh2;k*5{%LJHUY$mP z6Q%Utp2Ue4X&W1ZEWs%iPTDQ}9(xZ*pBaV-r^3L|4Z<7VMBh4kPFU?*%{Ufwplasv ztUHqQx#q-Oa_IGs4?uW!V9tAM%f2u>2hxz)aKyLGV9+!Ax~4Lv)yt0P z35<3zz_f4G3KjNWK1T#?7dBHajkA?=&B-2s&1b;?I$t(c*xl#>3x>ed2fZ7pR9>JP zgbWE}@k(b7W@B3$zoIn(Qsrhg>zl;p1lw&aH4Vc=>3VVCAd{ z=|FkAIV~h+y%>kVn8OyqF+B13bO6gE!0Q0G-rNMeO9Z0AkA5@;40ki8Y_volg0CM+ za#AJ#UOaC50A2{*c;FcL^vSa-^FR5k++3~(g#dTqvOC>)zp4=E+$k%#h4Uf3DFb}t zF!s(E7_4H(clrkbFwY=>;{Dw}rnk8;J2pb_BCnJ*EEv3Vfg`_NL~Do)jyw0)qcw); zqa=(|p}{db-IHUEfL}b6JZR3VdN|h|$T`04)*@U+jG=T{zt;UgzXYy_%RCE|k){GbH{h)c5-VQdu+b8Dl%K+BK&;Yl1C}l+nPl`Yty@k5 zt(WH{&TRBj8K$sg;=e5llBnn^5%4IK#N)HO*bX5o?p?hQiOAJtGAz{UuW@C^03YxH zDCw?v@dW+#kBe^Vj%K^SVNE)YQ0fkGECt;#9{S4tc7e5A)dr`$wJ!q(PUnx#C)g(d zJX!!}-^ni7>M(Vntp`48H%3>{{`9U_u#;dQVkjP1 zOtQz8EdFT59+ZR!)YZ$h}bbHVoe z{`sUdcxNQ1g-1ou13k;?4P^z#$oe_$JAkPM<_I>n=N5ML1k#a5Qu0DJtzNNa#7$zCRN4+w!rMMEGQnG z+h}k?T3!GX9|MD?VgFb-a1iF96Tc4!GPHuKw1DZfp2dQge;2%L1oMdzfS3~}DqqW5 zy)!|u-3!*f?brWWh^oVbML=689tW-`*MV%PYb{0O! z(k}jjPqTnayIym+{OwMVm0b&rQx~AC7A*(Ph)+i(b#L|Mz-7ie`hmWZPv0wG0gAdK zq2}pK-vuG@``uFZ3u>X>58SkA=M}df**l<3eUL@s*Iumx4s)*px_H$bDd5UjV9*-z z@B>qBD5NU}s!3O+Zw3wy%}`a?cP1$qxQ`E5do9IWZ3oissX - - -
User
User
Webap%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22User%22%20style%3D%22shape%3DumlLifeline%3Bperimeter%3DlifelinePerimeter%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bcontainer%3D1%3BdropTarget%3D0%3Bcollapsible%3D0%3BrecursiveResize%3D0%3BoutlineConnect%3D0%3BportConstraint%3Deastwest%3BnewEdgeStyle%3D%7B%26quot%3Bcurved%26quot%3B%3A0%2C%26quot%3Brounded%26quot%3B%3A0%7D%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%22130%22%20height%3D%22870%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3Ep
Webap%3CmxGra...
Gateway service
Gateway servi...
presses ranking button
presses ranking button
Friends successfuly retrieved. 
Friends is shown.
Friends successfuly retrieved....
fetch('/friends')
fetch('/friends...
axios.post('/friends')
axios.post('/fr...
friends response (JSON)
friends response (JSON)
response
response
User service
User service
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/06-groups.png b/images/06-groups.png new file mode 100644 index 0000000000000000000000000000000000000000..8330cd13cdc8d0a42a895c3d1fc750b58700a2ab GIT binary patch literal 23646 zcmeFZX*`r|_&>}v7!{_3%HF0FDx&PA^|qE48O)TV>`QhtOo}#C${Jd%Wh={In3+;3 zd)e0^F)@Z1J2U?0%tiNo|NhT&f1WqbyWg8Wnz`n>&f`3`@9{m3^SWzhazbeJ=G8nr zJVK{V9zDauvnr2=hxaXlAAEwsS(@l5FlELf-wi${1qznDAEACW5g>uu{JCCr0y8ow`cTgcjX`}4O()fi3m ztLmHD+41+&1oy|g9=kea*slkJBam|X!92X&Kk`=LW27ffO9=ksGyP!wtrShce_p1K zk$}NQl+#Wr{OdyfU@zf+{g9#zhqqZ9MVYMs`w{xV!8~-SfBv5bZ;e3Y5o32GZu_$k z&L6xjhyL|{7!irY`0O**Jhif1?$@v^&wu?N?kz7z8ND2T8tDxa3#1Yl?NF zYgNd0xQGa)-gygk@?!MdAsPl7hCdQnOm zMVWf*gqu@hdfss2ZLNGaSKe$IY&~d$oy-kk6rmi1%!#FhoraiP&bn2X*PZ2#U7Q^# z^qZUPshL4_((ape;*xK=EYJ%5mR?-1qJ>(wjZx?Ks~D6wmR{{U__Ur8Q%NdQvko5h z4y)dqc*Jv#m7QM}O3ilGilDS`guMFeKUGkj8>uWM+{cux>7d?9wRqio9cv`Jr)bC8FVY{Y`CE`RS^6VMCown0Pezp^u2g%jyjB6|I=Qg(XtZWm};IlA9K$_D-gv`P$FXL_gM7gMg)pph z1IKA%{?pQc#sb?8)LuCjoETG5yeh!OXL5lsI91)MTReSu+VE{ce8=t&PUZ#4rB6Bn zSrfW~WhHM2IO~eBmLlmB7&=$^H{MXMu5wxs{X7Sw;-+mEcm3S|u2Kd|hwBu@SZ@6- zh4;#dbcwk#VQAQqP~NVxKaR?iw9&&dh&1O%5UtdqXL>CrH3u-(7w1wmTTjdwKAnhg zXzgd0-~?`L#-tA@I982#W-(YMJ;xY&3z~uA>UpT7~w zo>O}NY4jR#v}}XkMtV?j^t^ieX$Cb^yJ?{>?X5^Q!#%flVP;6;$Wx7{3b=;^q^B|Y zwzc~~e665WneG<8Hm$GdNn*ob&Z?20Dvvz~MLL%zXa@Igm$RyW7Wx^l31VNT@jW|$ zF7>+EG7?gXa5{%6q`xY@G=d}2DkaMbT-Fi`28^$~-Eo6gy<8|4eWGeAm8ETIgT9v- z!9LE^VR=f<4NioaEP7z8?d=Yb2dq!80?(Ejo}Wef#+X*VSd8|}?8Cq$awFq;P(5MK zW-pz6t;gClikjC%>!s4}KZxpr_PUi@HZvMdZpK8nfptORWN zFOA(O9FfWsFnqkQ{Ne}>7Ozk$RI({Au}PKuHTP^uML$a6m$3Ee?cm8-KG+nxp31K| z_l`$jTCx5)LE3ZoQ>o3rLL7)LKRvJ*M$40&t{XlnS*~jf7%!>0Iy5@UUa^IVO4oCc z&)bf#u##nkJCc?zItmN-6U1Zvg}1wn&&PJzKiJbPQrJjVwC;*pn|x`ET{tvNl3)5= zR-=M-)5a#|no+|7o5N^D-4kp@>V?$$;h8bzxCcJ|=mQbB`Cl)o1;2h0<#>xWnrnUC zbTCLJWeLZ&bZ;w{?a@3uGa555=yVuUPJe~k+j(2ZdW`iW`NI`S&Bh-cVO9GvMf{&$ z>df8m|Irz7pS)+s8lTthf!QQd=T%!Ba%YFn2D}nCzX?P64J>!o4c%~YEk3u{G*&Tn zA?$K%;nKCk0j{2Db)>=Zu*s;^xf!`xWNepx#)P{&`K-F<5b5=v3%aCV7sQ|G^tcAs zYCL7BPvvd>9@_MSfgM22)dklZjZQGKMQ_B^WjvvLhPRaIdRQ2v!;;O?9QAIuFM1W> zQl^P|-A8oT1K$r9-k zoX0ux8_pPTR{0orie*>4k!9#LS`A=9oys z8Rd%O`t74}+D{|3+T&DBZKkz6%^KAbgz~z>g6}81Ulh3|;VLNQy0`J`!|JqCo8O~q z7NhQ|_R{=X0tQ+HEpr7Nw&Ypky>cTroJWTdR{Oj%ar}s4PM6H`S`atVyk0G=J;5Gu zaqg|5A76@Ua9O8UNSgF2mIkij?`!ozGDr9i=t!$XJ#b&QFoZEk2OVW<6?Bp7qaK)TNTLLUS|=p+Qgv0 z=0=*B3f>OYHt6Zyh9vC+87??mphb@8*3# z`W}`(EsqykorT33iL-HKcF&~{I~;3fC5~var>bXBcdDmS7hYHprps`19c4lB?3*Ek z0#qmI_SN%L8evr9dCbz2&kc|4L|Ud%Es`fh+oCC>IgtwNJXTW;qi(E8PWwc!35-h8 zokwbw6&8Kj&Wuzw{?Id7+^3te_OZg}vpuhV%2xS&%E=r%`a6k$>d|}3Qcjjthnd_c z2paChrAKyq2kUgxtaStEaE3>org86Icw}p3pu5W2QvEL0)%QP!nq@+Nql^uX!P7t@ z%B(D;juX!t&28nFa_#j0m0rQG!+41Os%EWQ*K|2zuTzH}`J9_j@iTnLu>3uqxUri^ znIIoq3W{HfqLzQ_7t#9_&!9vz)+V2*mVGnaDVvNA+A%gjz?n9m>>cN1zQO;*WyRG~ z`vl{L7~XTv_{RETLZ2$RJO}G&t$cy~A^K->1RcG5*o7(_Tj4%#@UEz5aWSi>(4MJ` zbM!fbg(qzT7?wZizrZS%d=mFmpm310|=6xL3%;ii=-@9-!7~$qknW*Z5xd$ zIPtbC#a<)GQ-Yij(60~cT+hJ-k^hMay6E#egDzJ6UUR;~ES{?SjEw8L$oN=k-P*^f z7`iP_sS9yPN*|q5%bBQe2(xlZ&7GM*Wd^*K|9uwN@_zPz-+O6(r}tlBzx_T;esr{U zGbYyt20D&!#N78+XbykxGclP+Dj`!7HFGRsB1o`Q1JZw@F`b;qulDAh=!_?;e%)v- z=uB1WIr2efNfB)D=l|Z| z1uNO^(QB`@SaD@op9$0*&pajSW-EUmypKoVIt-JB^3>|5S*aAD&yzp&FU)2)>^p~S z3+9vv+q(V>YyWQn^REJiW0B~8ly%u!D^QfGJ_1|Q~onWJ(EHWIWn6VzIt2EIcUAEC^9@I}7_mu&}^-7~xdgXbXcl#*@< z=3S^s1)u+;lFu{X<@FAWN~`|orw3o^$MQ&e-Cw+;kh)K_Ek1b4&QbNH9{dNw0{x>V z^%1fyUcYH-yHRlXy!=46HDcbN_YPS7*1FPtqP`D;rv~=bS<1T|1p@%$p zSFmyt?@v1z+(jJP37p`ET3XR6LF8;GSg@qN%?|zEtGx8;+8e^#^m`>?r&}d>rzJ(l zz)uiIS!*aY>*an2g729$eG$Y_G3X|z3142>n0-EmF$Lo5)JBumx5a?XLNikd@ab(x zFRY*_X6DBJq1_M%vn+v?iX6qpbrA8drTgAo-g80PtsR2MSV0T)RXNgjear#yP=_aq zTl6tIpc}rzo%HjTnUChdD*&mIf^$y61lHw|q^`UailT_Zfjz)RL``-Wub0aM78Jxg z;wU~Dt#1Tur^fGqA`G=`3SjL7w+VWMGYqXqR?9`>%0_!-dlFh>2!oD6O~zhUtuMce z0kKwZI|gj(6tF4Lgb)NWWBKP|o*4*y*y^qgx_oV6b&o#(F{{J$%ZIaHSY4hIq_CeKt7bD1< zce32C+Ln>*x?uK=%&eU0aYmavqZ0@%yRo%0uC+^s*tput>$xOS{im`g*u{Oxx)x<1ho(uD3G(w>$ltcgC< z;PuLMU`Joki8v{$K-DP=r6X37iyo+f*zf&|f%i!HJX-wY%2qawWM!wTZzg8rnvoc$ z2(JnGb}<7b%oNSV$xIxq8rKjE^7XzNy9n&q1xLt{OdI*oaHpdeuolDB3ykK)EioUYn<4}j&`H2(Cmon zjb+B{pOn_Iy+yeLiJ!jCR!P@R9yt^`;qLEjGcDOqUoZ=;EV_N!$9uwiD2lbaY%FD07zNn)7ZIc*mQ90_oAg2;m^80;a}elZw4S`dl`Ku^^sogJ@e zeHpXtv%$6U%rjH@{h==_n9PO)PiB8(*5U>Xnf=vc)s;iBjnw4TzXo!y&mC;uzoa`e zcwx;jsG)p+~-YwtYIF>E$)qNbg@41y_2!0b^?QU<~L;ZU5*jyq~s zCwK$zFuUj4ri@TZyDW+nZD37Ybts_IK{H3Fl$Ml?pqR^!&Ce3atI(rQ#Gb$4oGNtd5Io1+Q$oKp=-{=))y?nL;70{i zSt6zrBD?AWyFUd35*Kg0rZ}j5a`KlH-g-IEXULwx)tt+(=Ru7gk8qW>F*ORduJmUMrRQ6}wl;LAPIUgV2BfTO@zeb(av=7&iQqG46k#Jeb>dzi@SVa3E%wXS z)(5efgA(M~V^KIoKgBOC%F~4d>VhxK;RvVW6w7yUnGNe;eVmAS3Fg$KG~ssPG4DFx zm-?&o$n2@yPU%QAYxqK~O3+-j$l)UIx4B9)ANw5QdGOK*u2!;hRygkm^a3@KKI+YwpYOmF*li&; zI*!@P+fw`UbI!(Y`8;!cM`21)m&v9Z2|R#VwlI`|XK#WDYyepqktd)XCltqnXTl2a zW1UNwN`AM&o*LUKxr_h7R9tXlqfp=vqKgt&dadqz_Mqd@03PYSVe(cm&J0jT*e_o`6p-y_y+C;u=ShP z^TKwoE)Kf5&iou4VFVdoR>Ie>bHkDVnQX}5Sax@tP}n*-Hzcp)*TXwH_6lkr=ITwi z@5=XWys%EO4C@icYG4rvZ9TF>3dNWVjy#PE#OO&nt{(mJC9 zRJjH=iZ0r_W?o+|Z5g=vb!-yjg++>US0>XP!~hVKtFSF=5P6U6TiZa+w|uT1+Y(JI zT_yadr*m*Oq%J)zPa9xd%8mac(eA02*B=Dwn6q{nEw0qSboYGbw4yxj#WS z;6{YLKKBA;xkvKr0UA|0n!q zjqmtGD(dn+@!B4QoWmgG+`iZ#0Nb~m-9gBSjfpzFt}REOaT$$rA#QC}g~5yDdf9es z@}G;qFE2Y+Y7_zKP*z}qU4zVn*|Q+7ccnyIdRLFFL~ z_0DB!l6ZU9g8|w^gyY50@1E8V16+HqdKKx!kDSCg_smPzO3R3t zTUeQN*U^ehlDhHgDqF0v`K>D5SdxhC9&da#SV)niIhhHXHMVr0hn4I!>ER{k9z8Ly zLFw-KU8guGR{da#4%c_j*8(Imb1<&?R4~O4TG?E5*_qu9{CT=%MUkF)PCln9 z)@$3fY zpfJLmIP2gh%ze2o0-Aql(O0wRa;x9`%`us6Ao3n=h?jTMhxR*w;`#j{fNUZ9&U>?! ze8QAva;o-Gyx-@py=-?)XQmjQ!2e8=YVGRtf4q1@%6$|3%XKl)k zg|Eq5^u6U7whgsBc3%=nPYH-eC2mUx3X?0S8;=krDoM4g=#{z;?8xgdVTt`|*YDN; zh-Mv>#(2*4q-WS`jt=oOI>JVpKKgK?DxfsEwcwn$skF{kq&YYG+|QhBJDn(kYs5W~ z&knSTj@L!=f1Nx?K2WTEd491iCdX)wRWR!JoIx7%_Neyu{58^r@PFcjS@u8J1^IE-V?D+|T>(6h?+6ekyR( zWR+d(*`;$%nX%u*U{LL3TC48J(Ym0or-@tRLtI*MxPbA3QP&`Tb=lVG!o_rFo6oou z%}x&{?wS7@_qV8oy2oc-r(asjVVq`(bU&aSuoj|Nj-!P)(K>{oNNAU17KZ;7cV zd3gHtaEH9UTq#sFYtIW_3xpT#fPUm0I1f;KKU^0(uQt-QG)*AuY`W4-)^^b?INE#d zkM_SQpX%T4CJO~}tbgWt7<^jJjK8hmYKk6H&QYno!f1Fa9t#B^Y*M5@KzNC86Q${) zLqXH_zr*wv->YwM zoGx-w0D<(4*RK`MT8K$EjtmvNB>|r#$#6 zKGIY@4WJOJRX7}RV`V#148eB?;0~>iJ3JgGPXWC5Q7kX|Vmnpqk01M-X)xt5oSTnB@;2>QPS!xFun~jU14n`>Hqe*l4^Vn5V>SUu zgec~f%cHTrZQoD89zhqJRR0XFo(JfyMdRF70C*r5^HLo;1DGKp$Z|Jh&j|3s+(E*0 zr?q@RXhTBjF4TP21?pK3;Y9~GP2duP052vate4(`JPs`uAa4;*zD)>xB7%z-z4tqH z1M@oto|pvBy$BOnW_tt<3J5&{P#e+2-`L?H^6TA>6}~5I9TFp=+RXnKrspbL#@ z`~Q%MUdsri^!nL*JorLLs>1nH85jUJ#X)xu6cLf``7r-y0gMmQ6dw<8Vd$hdQ9J-1t|2efx z1b}JcZc84$Uo~!k@CLb?Pf}2`C;;1#8_79^f&nBvRxog>r7Y0j71w2%8wAi0x+gx@ zj{My-Gnd&q!L)0)*REsjG$P}0*KNpFEz;G2&OJ6Z2{W?sX{WpblOC`)ZT&v@8C2@w zrVmGff>zkBCj*)^tykDqqTIA@kzV`Zk@<)8jUnxmb2+shYgx)8S58bgGS%sxIV!im z5m7v29c>U z47c`ttO#PV2V`6mGMRWD{1;H{2GoqIsd-(RDqN7d?lO9%ZP-R?RYz7*;K&Hwf)sFR zZ93EJAV1@6P1d`wowv;Aq>Stb&MYk;59PjD#PtyTu1TSjX9_n4NS0Na=?JzT)2otQ z{eZDyswQ-AbX<9_^GDgkE`d8%iZk+fpckkYG@$CtWhAr$fjoEz6d6x$(APoOMrnY)X(ucAiwb77Z5cem)DU(3GB4`3~}O}V>=TBGX3OgureXnacK*h zDtb6Qk=wGXuAnPsQNH)xeA(FrnMv;U-aWY!3+A@f?==dsMY+y;^XeV4!Zjn7)z|gv z_}gyM&rt7O#yv8>+cz%2%R9a5t^yGL9fVu27}^3(fMN?z<1G?8STH;meGIrJKnD~HnHUDK)p9XTxR zy6al3(UFwwGJ~$$^uVrqxSm1 z*^;->u2WdnWACgLs74~&$*C-ykBw$TU<2aH#1849{R!A-0{va?=-lOy<+3AJH(eU+ zl^|rvcXwzX13Cl6<$kk~>BE~^T4X;K5+8M&42PK&r`R6bYkkI;@%F3d+WEp0yL>#r&b-J%%q zvBx8W)by6->J!k5KO~GTPnhtvb2?l+3k|BrZNar-TsGpvkxjrwI4R_}8h!&Nh($*e zh-2jW=G=HRdm_d@WTa8kFFh0tF};5cnjqNK+?=#}~Ro9f&@oE#%! z#Q#mRx5H{tOt+B>E#n4@tpOic1%MDxh;U$n zZu!}jc42SqvchbWqK_N*`ayy*kG}*>$!QKtB$A&J37_8eM`6ql-yK0204WTrf{K8` zI^#vk<&mej3OlZ87=D`v{|OT8lk^#0Uf2tO9bcrk_9C>;{egu+!xwYi0j0_nO!{F1 zhhsPbu&$WJJwUNNT~?Tby4Vg7iZ($@H&RUk{{wX#aNgp>`oZPAwep-Yg6q~l{@S!@ z#Sq7r<*H0xZ@JCQ3Ho(g{BdBm1Q2us4ZqNVohz=$)#LA=6~Ti)!)25%v@kft#2`>u z$(=Dlq=g|@t{kt>j4&QN5|RtKlmBoqr5niZ^Xl9_e8oz40rfMCJi&wX&Evwy(f8f0 zQXB%;ZRuUUV52omYngD=(u}zQsv)5@+|VK^^EzjR9`#lL-A$LO8-TG4fCA6V$eYp? z5Pw1x0`anpTWU72dWc<3(ve{R`am^-@j_6Y!|7Z~9-Q&Q zQ(nNiaVPA9ss-r!bMWqgxK#iKbEt7pH$7!$aAK=6v~&qc=9XoZ1XIp|>g1f&YJl0S zA?9V&E^ryg<4>%HYA#v7{nzgE;L|cWY=d7eh@O;3{`l{Hx^Wr1u_P*hQ|k zV(6gc1Vi~i6X|EQK~mk!mC8Fj-vCsYw;;c{jo*jl@ROh{Tl3~GLFBbz>bW9~EQk&2 zG1+b_xXxgbCfrS&Ec>$ z+^7LF-vqGyZiI#5dHu6|yf6h0qYE4PIy4P9`V$aGFWvmDSP+>3>f@$EyFloif`S2u zW0^{Sy%iv3s6a-2m#ADXheT6YhKq;PkHG4ejgTA7g7qObTRA%7+e!(Xv|Em%+lmG* z;$#FB_HDm!ghArUKjTS_XsLX69hqSjqF0d{R#lrdqA*PH3jbLeaj#d!7lE4aSR6E0{Pau@CSF7Rq}fe5bWYa z2S^Q3Pzc{4kO_K_Tz!HTBIH{>{x(DE_-^Re#M=$-fE(EY>|DNPv%K5Mm5?#9t zsD(Axxd{FO=KxOF36NXHklIF2>~nKhf@bZFP#(Pf8t!ucgdfMRMYI!Rh>>NU0+jw# z=CM~}@adfpPxA_|D+(AT5T+vYTh`-WEjQa=B|iKNb_okP(8A=I?3I<3n{C1=fS1^eOm2SX4 zE`s85f5tEZxe?OW-cMjGO8@zFZiq7ij_h^{0IO4#j&Q`Dbx?oM)@vXoy(f$k*~GLpap;TCVu#6cO;`3qbPjl5eW8fMs3~$TfrO`=y63hm3Gq z9mfJfz6FLaL(e_{1cc;2p}8p>WUd84ZswYyXU4C@yGl_cCQ^fT9K-?eEDq8*Vh&oa zE9v^oavd}fs0jKjM$?Gyc(2g*8=-v~f(NB>fj^pGT!-Nywh(`9EkG1n zAQ+AYzXp94#tkWkD8@JqbV^<*&bE;a{{|2Tp>5cpCLL zAU_F+0c|zh)o=m>n2=Z^2L;r?&v+ptT=j6%O5W(b@K~=Tc$y2D`E4qI&h~$pshZbb~Fq?k3RvU!s;++ zS}QC={k13!khVCuM&Z3_C%}>DypAsZ?HZBuj)mY%Xm+Rhu{_o8dkWq5G`lu{o1P#d* zv~DYaSV(Rs9)B~lWh9`r~e4Lt=a)T7)`r-ewk#6fjzm|mGit_ollgQ%qB z12ZfXb7H7`&V70^o64RY@M@lSVN^0B7dpzy%MPFwq&Y3!$?s*jO@*jjoXhvcC%FR# zWZdYWayffqqN8l-A^LiJT5{){`%vtnmH*3rZ#bi8`s!@$CBl<+7_Gv_7w(%e#NU>oT^sx>d)w8l=e~AL;k^(k6(R~%{_$yR z0kx%QMBPt}XeUCu9XO^C%NA`*;ASNPVVn+TI3ht%IWv^_!Lg^$P%E1eL3bo<)e6)b zrKI&nRnw%)q*8ixCA^;EeXsQw`Yl+EP=x!2Kh|9uWtZs<&AlMS47rTP&6nm)_k@y* z#_Xsbh-YK^1P1AVYx0Ee{lr>TMoLcN^w*Ffa$3LXsDtS$Csb=nuCeMIuYPBxyG!W# zDq1HATz$RgUa4l(kjdD=WCLTFXUkUTvZMZ42`HX=6(LgRT=;Gfr~80bFBti4^8MaF z;hgcwG3s|ySg}ibE>*DRMOIe7Q^{!TrS!eh=J2c+Gj`TPUyDdmJF2C>FsHm;?3Zn1 zTpsl9Y&Dr8I%|*%i*gc~x)s+t1TwpZ^4bbj%UWjox=_V5`5V_#)f{BgyIa*po%T}k z4D0*~vqu6nDB+fDn$hNkg)J9>>%Tn*cor1FXU)B|;t!P-yvXz=UY{pnoyBwJyFV*C z)uMNQ`0f@+P3~J5jg{I~KkeO;eCni;z`3T@(55X?1g`>W{eszp{rm|F9?x^6q~!tz+G@Cw4G(hM!*KJSsP%ibbOXz=-4jY+u@P9HNx^T>2j)|RIldozyXB(WoA$mv zA*X3^AIxN**R^OwCC5~&)F;VS*ekmYI=WkJnm;o%zTg+T2X@6hP;=0UXi(y3Z9m^k z(1W*$@_KeP%TOn@n$!z45(qCSBXg%%EJu}Y`^#YjMMCB3yzPCbW!L1LNc8Imc9Q}D zuy^ZBIh+uvHDZpO9=DYI5lYDOCO))nQ>2Qc;BB~=!Zl9TU+6uLt)hoQn)50yu6=Qh zj4cwnVw>k!aji3*IaO#E+WjeqdPqN_lIG^4=^F{iWi1-^-uUDt-?fo;*hZ2u-Oy_i z7t*-6u(+x3vhpCWy1?vLSJmlFZ9{9NXNXYM=5A`dRRNs4&^!Q}- zRQ_$?v)8d$>h1UJY+}CLQ-e!0Exr4$M3WE9G7QHhea*WoI`Q>oSg#hG)@#qoL_giB zxhZDnZ`baKzJ1LtVHA>V#m1|Q2=LtQxy~4^u}0l)$BHHM3@IFP?;F>>jK2sB;p6?C zVPU2B^gAw!k7hR9BHT5G0wSB+KA>#%pOBoUnUbsf+(nt~NNo^mds2lN77C}Nvg ze)QsGqiL-V73;Gt+90A(C=dNPX#dqUh)h!h3!H!0_qwq-Svl=;*Ul0B+WB|2N$An1 zJOS;MZ$Kag02VYyefH{B0C@Hn-q7*X>YVEW0~+KxV`Fz-W_2EKh)fY%}0$_CiX)1cm|_5959B#hYXR zN?g!f3y95BH-o_)Aj^$ce+s(zZ7@4GV^^`Fe*Y2X`(L08+Os^Mr;W7%@aUgq8{Pso z#2zpWnm1<>sjM89F@ZC58OEE|`rR^${bc4)(%7AYZf@3AHnMEcEniDNl_CIG&xEfh z(^KCfeUrGf$Ee@dZ~K99AWu5pm2T6id7`_%Em^-QK#bQri1tzj@M0$*WGqd5?Eq#1 z5lNr+aye0@u91EG7m@f`60Rc=H*Rn@(bhM?g^t_HBM5 z+`xO>BbJA_#u>bm00V{uIdhtW0$Cv(ye}tkaY=aOYWm4a(4M~uzzX~ZXN(?Ac{U>by&(P0IU=0_EmH;6v+2GHpL;x6%kF*C&X$@795V5K4bCTUD@D`%CQ z3C4d=?@?fhpl0&IuEV$<+$41b02;2~R#utPkt5(l^gyE{GoFpDH65#syuNd&giY;~ zN;0fp`rY%?5gp*%6ZGpd3!J-W&JTbw_)2huK6tUMENGbROgc;JoM9O{6Tvjd?+y!U ziTC$Mnb}>0RuyO0`$gJaL{Q3)sb(y}i`H1mY2|JZOmj%JWi(fw4nIE?xUFa*qW~~_@&)Eio9uB*f{oG7&}b;OIwO*p`Ohx z1Ht?NRFo6k9{*Z}-wIVzC*F0|TBz`UUGr*ZM8X&)f?Dt6eBZk1$81y8Mt^%};ekP~ z+NwEq4&#AryoLmG8!K_fWuo-kE*KFaW*Nf02x%GEWxclP{M0#S7E8t0L9Zg-`&cEd zlOR4rOm@addtXT><}e&-x~meBli_VlMuEJ~!8FJ8t~s3#H;&1^D%>`|R#FyE<7_H8 z9g}Eo2`H5iC?g69pN;`R`ECj=lrS9ODyBOVxH>a8nHowp(-wN#NMH+-Z(MH~y&^De zwUAFeviO5h(N~9dJXO5wfE+C0Z&dQh{$uFJC+cj@$Lp z(_5!KQQh`g_oORgV$udZFIexzy7o-ilj}y*B6y3s@QFpOSpF<}Kxv7}($~9});bq6 zmUi9Q@;q`X{jr^7_oJbyoVv?a`Sqbf{fx*Z3-;Nd%4v_e$o`Y$k9Ixjmz6z&S;#K) zI8okWrKJw6xAKzy7M&PcZ>NPBGnv$YuTURf0J&DP@4g2-gR5MDgo(gIxBCgWO`qnq*RmN3^J=Lsl>DR-XG7 z8YlYR{(FdS;0AoY(B4DW3cM!CI-cT}tE|hFCx24kwcoBk^>C=uXrR|LPbrmSwb$ zbmqlE>fVx`w4oz*Y|@*pM5Foh5A1%^X+)(M8tFjQVKSn_PlCL+o?$evc8D})niH`9 zVJ!6-%Fx5jSSx2J`va}&)7gEXXc+}GTuDq8h!osX4y8>1!|pygA{&Ob83mOFxAWb< zlK0Q#Hf%}0sQu{r6yu+tt5XAPZX*PgJv^COR=y>3Jjao&{=E;(iCJyq+X*I<3Nidie0ygEw(eizY04fobU2fFg33ZMQ45 zAC%i1M$}{8#QB`&Q)`um+xPeF8Q5Hfxu9#3o6IH&x#agYh8CN6>#6h>d&0~?)p*0iuEmG7t!ZdOB1zogmQekVvTM@#igQb4H&OPJ@ zu8}gGBeKR-$xAN|E9%^;pR64z9$&af9TXazJ6S2>iHdOcrnGxs9k_`LP^Jv_4ay}{ zr4rUJ3>aVhd|}0{S)i}BAW3aHB54)cP0qPDTC!MFANe9xD9w+y=k~+Ez`0`92(21< zrBwQBnR)CHYv>bY>Pa2}l~x!MNm$y$N-V0=FU$7i=`&9p_ybaK9)=d-|f5Z7?ImWtvVqIHpOH zbxEO|W1Ibag~pX@iClLOrj||8;!wSHN%vf=W%09a}c z9mj2sm|z~-NVBY>x+FyGLf2QOxUqW5f~qblN(Z=DdDTZA&bem0eo$El4IjO%YeP<< zb_F^Js4tyK^Kkk!+gRa;tgWAl5RI7*6Jd!+4OZ5YWNE&OyvJNh)-*G9jakRjhqTMF zUtRAfF%Yz>5N!DlO4CV|yl;KpTWeNN?RsB+l%K5`+bn zux@|Y8_IRS+!x#jCqoWqK!C;Uc*RPKv+LM0Wg2tw0yxWR4-Mew3;E$enlf%=ds?j= zOqv6yUcFTPA{%vE53y+HA5Z;Ew)*->X1s7V-PQre+uXkYn9lvu^7A_PHT!xGK%CZpjnllB&d~s!sW=UrXUl_2~OD-rQFtO=W~#;QyS@>z&QEX-_VU zKUdF!C?AOZy(5QFy1V!OXMIe<-=u54O4u}2jWyY`c#wW_&NZ<}e!S5!O8Ie_YC@7B zHKzW6F(FEepSs}|nmg7u6wFwdHu2icqfc`q@70kL<>O)7IO_6*yqQu&5WYslUVPeC4IFFVHCCZvg z8khPVpSEe0)4E#;X{Q)8-AKEuiL%3SQ@eD6UUo;m$d^ScE=_!Y(qCPf>~(TS`y0-i zm#{;)qkAV=N6Pab&3fBGkbYn^bL9}I+clu;hQ_7r_w^sFWj8m52P~wETyhRpIzrV} zi^#2~@4jg-*>=ymRee^RO3O*}I7YNKQyTs{FrUjLtyK}3s##Eb6004{-}WQ*BDvaw zS#%=oB^jJ}b)^P5_jK$_C2i39&NA_E$j%~M>#op(Mk#%My;NLbtHZ<~wpwqdX5@o) zPwlfwJ4En+$u-6C@z{NVwG}_qz6@YGiagH+JI8`9pjyXVnW6=D!hwih9})1`m=}jiKoBS&iD=!8+8w?LgR|4pIs75F}BKfKD zd(R#hWp(~Rrrm`71zIvgXCW}BjODNEi*^XO@$2(An4FTeT98{v^_za}ulQEeT$cUyYPJ_+O&(LQj5@=e_+6MfTMG_(gQ=CHvBzxX@{FNy#X0!4 zJH}wO+t8LTK_2=>tb|ZvPNm)4JEytx)K---fSs)tTe{7Oq|9M+UiC4vLAF?>x4g$9 z<4cJBX;YNFuDZb33kF{@GAYe2h)Y8o=b3Bqm-4=A4Had+Z~>SoAe-7 zYtVtEY1gHez?p6z`cUR|9dNW?$MAp>G$JkT_4)mB=Z+U93ewATlepjN98Ss3*ZTFz z0_YfmGgzEzIJF31N^lZzM&&H%QRam%;}zE(jN%;ksyCcgZdKvW$NJ7ChF-q^^R(9L zyhFuoI+^XrMXi7902J2&>N*1GN00ss400qDL&TBw3r$Bc$M*Squeo~3&yu&~i zXYNwsoFtQe$|y*?{{37-wx^V?CbyAk!Vdp&3gq`m*np1U2JlDLa(&f!B}OX`cd;=( zom`5LIsq}+5zij2Y|*F+Qjv01`LMd-Ea*KJLP8cYcAGBuzU16&KqS{GJf{35DcLs{ z)HBc+;GZ*r&q{+X8E`2+s27l$@Kx#xODoUOYV|M}aqazXc_yN)$ja|QC5QN1V_`VB z1!NRJ_Gi$m^9qotcLOO5`@wlPacFwswn8ZQ_>Ky4 zN+oz!)&3T|2%INxXG;yq+L?+WXm^aul4}_#dpm{nW_}!UUxEp2uSlQYPT73B|iKFfb9(Jd*YUO9Qy@ zasvyz#9_|uLOic%+jFq;kf@i2@SEUm4mXWbE+N}EGbhJ_yL-Q;83I-c>>iq@^Gu5* zta1Z*&4Xu8csyn6vMqoUgeRVLbpT&_2M+JQi@X2`J8SSzV&YaVb;lj@RWVHlpD(w! zIa`ex15MK&d$Xl~ehP-*A?o&Uok7L6yzAh#6KUz-^y-KuP&Iw1(GQleJb`*zFQshg z%@G>t8i7YWysK^mGerXVc&(%0!dtiumWT&T5}bP=tO2ji==EL)W{mTqft*UGrogoR z-z{yL!b>p0LekFy?5IN0ai0|ROo!Q#0Sh5vj52+%foX9;sx zAGl4#7LLuls!4WV-v+kVt~&pfD|}iBB6T?9E(`Cz1;F+J``kD9Z70I%G}x$57r!Zh zk04Kd&{(tc-|Kt^=qi)X%s+9M^GDvU<;ADfi6_dtnSnhxtk9DusI5<#pWwM-%)y?2 z-nJ5A;~HuV(qv1Fv2j=(Cv#%|N9K&y4k${%IZha^M)Cq^(T&&3{IozU7%5?y04` zRbb`9J5EUmj-35J1BS%q&da$>*3kKTP?BlRb`}TjbK0=4WquN~$_Epm>dP-oeH1{; zXIvY2>t9JJFfw_w0?U{USB`!JF6jU&)iDoY1|8`N2~S{Zzr1`gur*$>1ejtb-nyk! zpaV2zY+cbfN%(Fc&L>oEat?tT}?&HACSitAU2Wdf;AeU?EeU_oe5+J?LcY zJ%5A0z^(`)h#OA>b84#mdRSEkPE7~gpflytmi{Hp2Y{;f)_C)Ycgm2C)z17kpm z6S$K+?Q#Ti4iJcdl#g;h?iiae?FQCuZ_-wkOgZolXx#4EMzU%fq!C5??ww90Qydb2 zW%7fQrY21Oz&Nt0WHRwr0F9skQ%ubzDc~Z!*P!Eh5@cn!0+T(kJlf=Pek1VYBj|D% z;B=w>+$q52i4P2cQFh!SyY+w|Fu2_3lqRcvfNog(J>#;2HcE~}EZ9Phiq+6i4?nx? z5OAp86_~HY!=?%;TrlbVdNdQ*f!qr#l=(I9zitTw&N+VtT3V&83M`62HNo8JmsmKi zfRYu5-WFwea;`pbExeX#+zv=ThkMeP}|q2?yrC zb^EWOLVtj2&5Nur)L@8onBT{V@ps8>m%t;e=oCKsAI}dE~%zwSU6vas^fV)Sv z7m5J)XCp$S@i}mj+WD{7t&qcrBLpZoHJ}T& - - -
User
User
Webap%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22User%22%20style%3D%22shape%3DumlLifeline%3Bperimeter%3DlifelinePerimeter%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bcontainer%3D1%3BdropTarget%3D0%3Bcollapsible%3D0%3BrecursiveResize%3D0%3BoutlineConnect%3D0%3BportConstraint%3Deastwest%3BnewEdgeStyle%3D%7B%26quot%3Bcurved%26quot%3B%3A0%2C%26quot%3Brounded%26quot%3B%3A0%7D%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%22130%22%20height%3D%22870%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3Ep
Webap%3CmxGra...
Gateway service
Gateway servi...
presses users button
presses users button
Group list successfuly retrieved. 
Group list is shown.
Group list successfuly retrieved....
fetch('/group/list')
fetch('/group/l...
axios.post('/group/list')
axios.post('/gr...
friends response (JSON)
friends response (JSON)
response
response
User service
User service
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/06-history.png b/images/06-history.png new file mode 100644 index 0000000000000000000000000000000000000000..bab6ab480f700fbaf976ab89942e9d26c702992e GIT binary patch literal 23508 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 On{y~KKB6})v-B?(VZ<;1 literal 0 HcmV?d00001 diff --git a/images/06-history.svg b/images/06-history.svg deleted file mode 100644 index ddca3b3e..00000000 --- a/images/06-history.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
User
User
Webap%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22User%22%20style%3D%22shape%3DumlLifeline%3Bperimeter%3DlifelinePerimeter%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bcontainer%3D1%3BdropTarget%3D0%3Bcollapsible%3D0%3BrecursiveResize%3D0%3BoutlineConnect%3D0%3BportConstraint%3Deastwest%3BnewEdgeStyle%3D%7B%26quot%3Bcurved%26quot%3B%3A0%2C%26quot%3Brounded%26quot%3B%3A0%7D%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%22130%22%20height%3D%22870%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3Ep
Webap%3CmxGra...
Gateway service
Gateway servi...
presses a gamemode button
presses a gamemode button
User stats successfuly retrieved. 
Stats view is shown
User stats successfuly retrieved....
fetch('/userInfo')
fetch('/userInf...
axios.post('/userInfo')
axios.post('/us...
history response (JSON)
history response (JSON)
response
response
Stats service
Stats service
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/06-ranking.png b/images/06-ranking.png new file mode 100644 index 0000000000000000000000000000000000000000..afa5998494a2ea613dfc99c02c9f0565ce4a0138 GIT binary patch literal 23416 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
w@~ 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 - - -
User
User
Webap%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22User%22%20style%3D%22shape%3DumlLifeline%3Bperimeter%3DlifelinePerimeter%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bcontainer%3D1%3BdropTarget%3D0%3Bcollapsible%3D0%3BrecursiveResize%3D0%3BoutlineConnect%3D0%3BportConstraint%3Deastwest%3BnewEdgeStyle%3D%7B%26quot%3Bcurved%26quot%3B%3A0%2C%26quot%3Brounded%26quot%3B%3A0%7D%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%22130%22%20height%3D%22870%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3Ep
Webap%3CmxGra...
Gateway service
Gateway servi...
presses a gamemode button
presses a gamemode button
Ranking successfuly retrieved. 
Ranking is shown.
Ranking successfuly retrieved....
fetch('/ranking')
fetch('/ranking...
axios.post('/ranking')
axios.post('/ra...
ranking response (JSON)
ranking response (JSON)
response
response
Stats service
Stats service
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/06-stats.png b/images/06-stats.png new file mode 100644 index 0000000000000000000000000000000000000000..df8ef661dc7aadfda29b69d3f2cfe0a8265dc10e GIT binary patch literal 23135 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 f8V2%%|I8k{?k1Wq?zsj$IGVxJ)z4*}Q$iB}&v - - -
User
User
Webap%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22User%22%20style%3D%22shape%3DumlLifeline%3Bperimeter%3DlifelinePerimeter%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bcontainer%3D1%3BdropTarget%3D0%3Bcollapsible%3D0%3BrecursiveResize%3D0%3BoutlineConnect%3D0%3BportConstraint%3Deastwest%3BnewEdgeStyle%3D%7B%26quot%3Bcurved%26quot%3B%3A0%2C%26quot%3Brounded%26quot%3B%3A0%7D%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%22130%22%20height%3D%22870%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3Ep
Webap%3CmxGra...
Gateway service
Gateway servi...
presses a gamemode button
presses a gamemode button
User stats successfuly retrieved. 
Stats view is shown
User stats successfuly retrieved....
fetch('/stats')
fetch('/stats')
axios.post('/stats')
axios.post('/st...
stasts response (JSON)
stasts response (JSON)
response
response
Stats service
Stats service
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/06-users.png b/images/06-users.png new file mode 100644 index 0000000000000000000000000000000000000000..58592795ea98614e26112550c49df8f4e5867801 GIT binary patch literal 23657 zcmdSBXIPV4&^8)Egdi=5(gXq`pwgsQsVXW8c6t*Lln&AfB!aM!rXV2FZHUrrAU#Nl zbPxrk7XfLZNlOU%RuXjY{hsgL=kGaxyu3n^XRS3e_uO;OtVEtS)Mwqzw;KY1u%143 z{2~NGUj%{BWy2Z3D<&^ZzCj>DkkiL?F8k5V4;sb(_?WW3gvFi=Z15>WMWnPs=vgXe zue58T2LkMeM=ja*c-;NYV)3rIB2?zSH+>=N*C%Tzx=NuFXV`h;mm{;b@5fcKUUs++ ztJgxFktD@GxR4x6MrcFmVE_2XQG4WzHgfs^6fT5@{No=1x}=1Ezf(Jli4N+_*>zl; zt!(=U2jow9ym%|Nbn(Q5OyAuT$te{m(^#_dq45{{30B zHYXI;EA}GN@W8(o3V#WmoA8|8xO4-X8xDbXLGz^SouXF8wP1)xTsA0MREnm&9~Z`x zt~+_WoBLZjyYeY}an)e^V15^K^z2jT;3bKbamRkB1=4;c$~pz9-_JEdIFvfPM+@ql zQaST8p6Q~ZwlIv3`l`lO)0RqKF{DTT`_`E8B(Ae~*GJ8!$&$J_i202|wX*AXF0-D8 zW5Ow~im_MAX~h;xVOK9GRc|D2dc1d`D~Nl$DYYbmP5S;iRysxK3jJQ)EL+N}jkSd> zaZg>C-BAx)W&W`^gDrTG{o1Ri24bhaLGB_PO(;uVUi|;klJk5~K?_4xUqV(E3EP%; z*OvmO-`ii=hc|INRxO}@?h<_NAUFaB%Q1bl)H`DVOF5la42QzBYbht55J5X}lPSW+ zPuFAvUw;z9gydCHIF_3d0qf=E$vBzif${E6Zs6EmW=;79bdR8!oKBz8p$P5Qly8v# z{SD)UjqTuhX&E=ms^OVT?(FW6g*ydgulb=W@AM$o-n*m#W_xM9%A1y^Dn1i-#O2=R z=d<*;tJNiI-!r!^6CE7Z7K^WQ-x*wyeMZ3b;JJpL%zest(^6Fm8+UI(K?I3%J@&0D6Ty$K z9tzb?rF!1g|2myR)tWDSl`Si`jabropRzoZ!xE+@WNY!S`n_3e)@Jj|QKX-)RcTII z3`2PjMth}Mv3UPC@@WFA9VHXN?27ufu*Z8Sdn)*U+0&aMdI|dL1LtCDx>2mc%hK2; zxowYX^O>g75>jwQ8Fr@6yS>~-9si03> zmw)GZpa$k2pOoXUS&@rUFY+pXYV9_-N)mzfAg&MByS{QV3j1#Oexd9~Uqw~5C`Q?5 z^?RYy#<6}SobdT_O4zX^Zd~EDAsO+k>>48DaT}LD%e_U#NvC9?0?#%`n3)yd3J1hW78y^FsYXzS`@1nJ5@B^@+`q z&!%g+@o_v!@OAZYWckZcU+akByWW_!3AJFJOK*c$orV@i4GS(+;XS5&S-*R4b^m1Y z7CN7a9b0{1Is0b4F#wU7M|zEHCh$6UE^u-}=ft(0DlFu5oZcG=z`sfsb+0}kKOgZG zu_~zT-$=s@>`RevoK2B1ZeDTP{3a(zz+fLkove_W&i6_dUTFQ?ovm0UYBCo~@SZvl ze3UEr<0K(z?qzt1F#GDzph9@ZOkBB-oAn^0ZewawB=X0;YX#HBz5Ceov(zy4v$Yq| zgQtQ!7ZQ|GS&JI24|%CroJ+_ zuW{H;=&U7@bZ45|$G0+~e)#Tbq}t#ZpYC&(N5NayIt{nSOoIB~Y&0J*{b(68?nEGD zq(-i8WjJL%MZ7enBmtkDBoNhu8${{2$-*=}GVdQLB{II5Nt= zHRp_&<7(S^VQ3;#oEOFM69NR5wpMN-k72 z379O^$}e$uT|-H<)IScExE*l>@$w91scL_g8o?5JN4Qjc(f-r16G6C_)gkxSc}e4= zj7zoZt;e4)*?OSHPilKEh(Pl~f`2+Ws{}QCcGucRlv#*sc)Qg3#9C5e&p8VL{7ebiYNaEWh1)+Q^LuMkckTPcI7=_OlQb1;4gqGWr3fVp4jvoD$ zV&ChxKO-3_r|NBS=+K>KDz}$M{W4cfP)jPl3v$k|≺zmo;49%F7!`6I=QBW)#R_ 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 - - -
User
User
Webap%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22User%22%20style%3D%22shape%3DumlLifeline%3Bperimeter%3DlifelinePerimeter%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3Bcontainer%3D1%3BdropTarget%3D0%3Bcollapsible%3D0%3BrecursiveResize%3D0%3BoutlineConnect%3D0%3BportConstraint%3Deastwest%3BnewEdgeStyle%3D%7B%26quot%3Bcurved%26quot%3B%3A0%2C%26quot%3Brounded%26quot%3B%3A0%7D%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%22130%22%20height%3D%22870%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3Ep
Webap%3CmxGra...
Gateway service
Gateway servi...
presses friends button
presses friends button
Non-friend users successfuly retrieved. 
Non-friend users is shown.
Non-friend users successfuly retrieved....
fetch('/users/search')
fetch('/users/s...
axios.post('/users/search')
axios.post('/us...
friends response (JSON)
friends response (JSON)
response
response
User service
User service
Text is not SVG - cannot display
\ No newline at end of file diff --git a/images/WIQ-logo.png b/images/WIQ-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d9b9282fbca0c9b5091c3fadbbf4a5bcafba48b3 GIT binary patch literal 2856 zcmV+@3)l3CP)Kn$^$0I?At5C{n&B$mVmA%qa{0lpyM19Z=%p_3NUkuE|RMRY(qk`7wh zQradRBwe&5v_?33K4W?qIY%`3CWQAi?;P-$=NqBU~ZW)O_g)sXKm)#pMU;G z2CE~!S2FE7cFer>)oOF~lu4@YVk0{T!0u^lH4A#W&6%O0lB!)$SJX2NojYfqTe^g5 z06Gbsm6Og64VkCfzog{ANN=oKnIp!0w{M@hY{EEI&g&~znDZV9qYb8=M~|9E7R)mM zgAI-<NRzjjXr6SxC71k)%C zi5MDF6P`k*e)~JAya}F+>7k9!@fw~=7l+}mqzBJ^|hEpZJ%E#9%cGN4p2p~K(> z7^Sb9I@$CbKAh6W!$S%?jM_S+&K^7W{7Ma_9lz`h>fb0Z?LU6p+}+kn+1R#0$ua=- z?Y_Oiwlg14U}B$YG%nT|K809yi?BaE*ZJGRPy7Sn~bY!Ug73 zBv#f4FwNS$iSn3s`!N&SaNvMJ5Yv}%7h#2G7PlwY{Z{AdEZz$}C@|rREJ;SZ2yr7O z^`1Ow?r5E1&Y8pp5p4k3WzCa_4$Lsk#K}s62_606+V5!~T|aF~ zb{wzk&>@50+qR39Us$#@E2v3>i480w$ zT_wTv+rWUiZ6+5606AV3nHWTk{O^bOJ?aVB+rAI)^wYtEOtlw$hX&K>!9fFZXA2FL znHZ2(AIR{_%a=vvvAl^P-^}n_5=@BggzV?uufk)bx4}`r{wg%1`N>1`}$G zc@kSGhRbN44lyf`Q@dVYS>rh@$p=uhR0>QW`52;o?Q!pcQ-NERNZXGbp@+Lz@HV7N z5|~(y0}lqz6H6KggQoxy)K>Tfzh}Qf~W|lijjOdJ838dCN>Dng8Tx* zDi_*AY}<#SE4H{KFtJ-jG$UwJb(vW)Llk%u2zDqTh-w?iS7z4~OMyvykVMCv<*ASz za>iQ&Oe~iadC6d6zyL);i>4Zhclj3FytV~KIF>X@a>lELw&+S7c3uKZ z+7K^Z2{{e}G$OI>xV>eD={t3bRv{Tos977PV2BVg*1`)uPr=N75SVlm^ShK83)>0! zUMSUIaxB9d#Mi-^i}iU5MxKv1X|tw~_jH;&a#@3E#1!5_mS@tY_Ts8-A`R(Gn;4>-8b|rRfvMrM zIe{U=N8D|^S^zOL1B6UQp3POX5C*$QEbT>J0!$3Zq#fl;K>v>6#Q zv(n^AjEVuCfZS)4(7h61V(kXo#W-Y0NA3Qay?dx5@-7F}>c!`kz{IRTOB7Wbb{Mk9 z$ivg5EoSBz3dSl0CZ-+YopLs*g*qM+Cv0hvx?{QRoj?~aKKPIn$36$ zhBrZuM!s_lRT4~$-K3-Mn$=&beOroYhQC`0OsGMNXu}{M z{jfIrUZfOHp~=H~(z}W)PbHRO)ly(WedsK7ngAx2kM@Crd)sEwCyc~4$SZ?MTWf=n zo?X%&eUplibX&1dSvzTh*cNzNsB?s*hw6{rFA1jpGkB54+@PMW{y3_HBTG4H>+f@crO5DU%9M`FyqN+UKLb7X=&~<4r<-BJA z56cr@EQ%fv$FXr7A5VSjT-D*UGMHd^*2q3E<#-C_9Gp)U?)esyL*Q}mv+cz9*tE5; zFKGy}+vUEv0)g5GX1CFYE$zBc#tSg2yq>TKn6#<5tF(Qc<0%-PX3LOr)gWLazy#2x zoVJy=l+LjZSM{yDMZlD@-sBnq!OYae@HAHruB$FjGzv`MHWN3jPvTF$_T}EI`YIji zzan6QF|?qhuc5h~B9}MC7LvsvvAj`Wf=uw7u>ce%E1&mt$C^!lRs>9trY)EFz*NOk zupKLML0mBts*+fl_+C!JLy32FgA0k?qme_Ny}Khvcl@Rpn6!mlpHZrKid3G)EF^12 zY&4ieK3>%I;GEf`3MkCvs=n8<7?`vzCO$A#c^a5wOtwsBAz3;zl#dpeARl1^yx0pb zfw$Yy$T9#mzk4ek$8zmd3{0q4+e2glL*ZpZ>uQ80-C>bx-)z|C!tvY0000

@@ -551,40 +547,7 @@

arc42 W .arc42help {display:none;} } -
-

About arc42

-
-
-

arc42, the template for documentation of software and system architecture.

-
-
-

Template Version 8.2 EN. (based upon AsciiDoc version), January 2023

-
-
-

Created, maintained and © by Dr. Peter Hruschka, Dr. Gernot Starke and contributors. -See https://arc42.org.

-

-
-
-
- - - - - -
-
Note
-
-
-

This version of the template contains some help and explanations. -It is used for familiarization with arc42 and the understanding of the concepts. -For documentation of your own system you use better the plain version.

-
-
-
-
-
@@ -592,7 +555,7 @@

arc42 W

1. Introduction and Goals

-

WIQ! is a project developed for the subject "Software Architecture" of the Computer Engineering degree of the School of Computer Engineering of the University of Oviedo. This project is based on the wiq project, made available to the students by the teachers of the subject. +

WIQ is a project developed for the subject "Software Architecture" of the Computer Engineering degree of the School of Computer Engineering of the University of Oviedo. This project is based on the wiq project, made available to the students by the teachers of the subject. WIQ! has been commissioned to the company HappySw by RTVE, with the aim of recreating its famous quiz show Saber y ganar in a web version accessible to everyone. This project will be carried out by the development team is formed by:

@@ -1024,15 +987,8 @@

5.3. Level 1

5.4. Level 2

-
-
-Hierarchy of building blocks -
-
-
Motivation
-

In this diagram we can see the decided microservices that will provide all the operations necessary for the -application to work properly.

+

In this level, the components are divided into smaller components, which are responsible for specific tasks. We’ll take a closer look to some of the most important components, which are question service, and webapp.

5.4.1. Question Service

@@ -1180,7 +1136,7 @@

6.4. User looks his stats

-06 stats +06 stats
@@ -1191,7 +1147,7 @@

6.5. User looks his game history

-06 history +06 history
@@ -1202,7 +1158,7 @@

6.6. User looks at ranking

-06 ranking +06 ranking
@@ -1213,7 +1169,7 @@

6.7. User checks his friends

-06 friends +06 friends
@@ -1224,7 +1180,7 @@

6.8. User looks for users to be fri
-06 users +06 users
@@ -1235,7 +1191,7 @@

6.9. User looks for available
-06 groups +06 groups
@@ -1766,29 +1722,25 @@

12.2. e2e Testing

- - -
-

13. Code coverage

-
+
+

12.3. Code coverage

We used sonarCloud to check the code coverage of the application. The results are shown below:

-
-
-

14. Usability and accessibility Testing

-
+
+

12.4. Usability and accessibility Testing

We used some tools to measure usability levels of the application, along with some testing with real users (friends and family).

-
-

14.1. Automatic tools:

+
+

12.4.1. Automatic tools:

First, we will show the automatic tools results:

+
-

14.1.1. PageSpeed Insights:

+

12.4.2. PageSpeed Insights:

This tool is used to measure different aspects of a certain page, such as performance, accessibility, best practices and optimisation. We used this tool on all of our pages, and the results were kind of similar. Below, the results for the Classic and Stats page are shown:

@@ -1809,7 +1761,7 @@

14.1.1. PageSpeed Insights:

-

14.1.2. Juicy Studio:

+

12.4.3. Juicy Studio:

This tool is used to measure the contrast between background and foreground colors of a web page. We used this tool on both of out color combinations: dark mode and light mode. The results are shown below:

@@ -1830,7 +1782,7 @@

14.1.2. Juicy Studio:

-

14.2. Testing with real users:

+

12.5. Testing with real users:

We did some testing with 18 people, all of them being friends and family of us, the develpoment team. We let them try the application, play games, view their stats, create groups, etc., and when they were @@ -1867,11 +1819,8 @@

14.2. Testing with real users:

We should also consider improving our UI, maybe studying design tendencies and trying to applicate them to our project.

-
-
-
-

15. Load Testing

-
+
+

12.6. Load Testing

We used Gatling to perform load testing on the application. It consisted of simulating 1000 users accessing the application at the same time, each of one performing 83 requests. The results of the test are shown below:

@@ -1902,8 +1851,9 @@

15. Load Testing

+
-

16. Glossary

+

13. Glossary

@@ -1985,7 +1935,7 @@

16. Glossary