From 78551c45796af963fbf9c51d0c95a509953ce42d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Fri, 12 Oct 2018 19:11:13 +0200 Subject: [PATCH] add sib-oidc --- .gitignore | 3 ++- .gitmodules | 3 +++ Makefile | 11 +++++++---- src/dependencies.pug | 14 ++++++++++++-- src/header.pug | 4 ++-- src/page-members.pug | 13 +++++-------- src/page-project-profile.pug | 12 +++++++----- src/styles/content.scss | 27 +++++++++++++++++++++++---- src/styles/index.scss | 5 ++--- src/styles/main.scss | 5 +++++ www/images/user.jpg | Bin 0 -> 2567 bytes www/images/user.png | Bin 8208 -> 0 bytes www/lib/sib-core | 2 +- www/lib/sib-oidc | 1 + www/oidc-client-config.sample.json | 10 ---------- 15 files changed, 70 insertions(+), 40 deletions(-) create mode 100644 www/images/user.jpg delete mode 100644 www/images/user.png create mode 160000 www/lib/sib-oidc delete mode 100644 www/oidc-client-config.sample.json diff --git a/.gitignore b/.gitignore index 03780aa..5e6e5fb 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ /www/oidc-client-config.json !/www/lib/sib-core !/www/lib/sib-router -!/www/lib/sib-chat \ No newline at end of file +!/www/lib/sib-chat +!/www/lib/sib-oidc \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 99cd617..bd2c2be 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "www/lib/sib-chat"] path = www/lib/sib-chat url = git@git.happy-dev.fr:startinblox/sib-chat.git +[submodule "www/lib/sib-oidc"] + path = www/lib/sib-oidc + url = git@git.happy-dev.fr:startinblox/sib-oidc.git diff --git a/Makefile b/Makefile index f593ba0..130c744 100644 --- a/Makefile +++ b/Makefile @@ -40,7 +40,6 @@ copy_lib: # sample copy_samples: @cp -n src/config.sample.pug src/config.pug - @cp -n www/oidc-client-config.sample.json www/oidc-client-config.json # pug $(DIST_DIR)/index.html: src/index.pug $(wildcard src/*.pug src/*/*.pug) @@ -58,7 +57,11 @@ $(DIST_DIR)/%.js: src/%.js @mkdir -p $(dir $@) @node_modules/.bin/babel $< --out-file $@ --source-maps || touch $@ -sync: - rsync -rv www/* staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/ +buildprod: + export SDN="https://test-paris.happy-dev.fr"; \ + $(MAKE) $(DIST_DIR)/index.html -B -.PHONY: default install submodules copy_lib copy_samples build watch serve clean \ No newline at end of file +sync: + rsync -rv www/* staging-app@ssh-staging-app.happy-dev.fr:~/staging-app.happy-dev.fr/ --exclude=www/oidc-client-config.json + +.PHONY: default install submodules copy_lib copy_samples build watch serve clean sync buildprod \ No newline at end of file diff --git a/src/dependencies.pug b/src/dependencies.pug index 27d28ae..b017764 100644 --- a/src/dependencies.pug +++ b/src/dependencies.pug @@ -3,7 +3,17 @@ script(src="/lib/webcomponentsjs/webcomponents-loader.js") //- script(src="lib/html-imports.js") -//- script(src='/lib/sib-chat/3rdparty/sib-oidc-client.js') +script(src="https://cdn.happy-dev.fr/oidc-client/oidc-client.min.js") +script( + src="lib/sib-oidc/sib-oidc.js" + data-authority='https://test-paris.happy-dev.fr/openid/', + data-client_id='833925', + data-response_type='id_token token', + data-scope='openid profile email', + data-automaticSilentRenew='true', + data-loadUserInfo='true' +) + script(src="/scripts/index.js") // Stylesheets @@ -20,7 +30,7 @@ link(href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,6 //- local link(rel='import', href='/lib/sib-core/sib-display.html') link(rel='import', href='/lib/sib-router/sib-router.html') -//- link(rel='import', href='/lib/sib-chat/sib-chat.html') +link(rel='import', href='/lib/sib-chat/sib-chat.html') //- cdn link(rel='import', href="https://cdn.happy-dev.fr/sib-core/sib-display.html") diff --git a/src/header.pug b/src/header.pug index 3f945f2..36de081 100644 --- a/src/header.pug +++ b/src/header.pug @@ -11,7 +11,7 @@ #notification #profile - img(src="/images/user.png" width=43 height=43) + img(src="/images/user.jpg") span - | Sophie + | Paul span.icon-arrow-down \ No newline at end of file diff --git a/src/page-members.pug b/src/page-members.pug index 7ecd124..6ee5abc 100644 --- a/src/page-members.pug +++ b/src/page-members.pug @@ -1,5 +1,5 @@ script. - document.addEventListener("WebComponentsReady", function(event) { + document.addEventListener("WebComponentsReady", function(event) { class HDAppUserInfo extends SIBDisplayLookupList { get parentElement() {return "div"} getTemplate(value, index) { @@ -20,7 +20,7 @@ script. else this.value = []; return ''; } - return `
${firstname} ${lastname}
`; + return `
${firstname} ${lastname}
`; // + `
${email}
`; } } @@ -45,7 +45,7 @@ script. else this.value = []; return ''; } - return `${city} ${country}`; + return `${city} ${country}`; } } customElements.define("hdapp-usercell", HDAppCell); @@ -56,8 +56,8 @@ div sib-display#profiles-list( data-src=`${sdn}/members/`, data-fields='header, cell, skills', - set-header='avatar, user, pseudonym, bio' - set-pseudonym='before-pseudo, pseudo' + set-header='avatar, user, pseudonym, bio', + set-pseudonym='before-pseudo, pseudo', value-before-pseudo='@', widget-avatar='sib-display-img', widget-user='hdapp-userinfo', @@ -67,6 +67,3 @@ div search-fields='searchset', next='member' ) - - - diff --git a/src/page-project-profile.pug b/src/page-project-profile.pug index d0a5a55..b272a27 100644 --- a/src/page-project-profile.pug +++ b/src/page-project-profile.pug @@ -1,10 +1,12 @@ #project-profile sib-display( - data-fields='title, description, client', - set-title='number, name' + data-fields='title, description, client, team', + set-title='number, client, name', widget-client='hdapp-client', - bind-resources + widget-team='sib-display-lookuplist', + bind-resources, ) + h3 Team sib-display.members-list-condensed( id-suffix='team', @@ -12,5 +14,5 @@ widget-avatar='sib-display-img', widget-user='hdapp-userinfo', next='member', - bind-resources - ) + bind-resources, + ) \ No newline at end of file diff --git a/src/styles/content.scss b/src/styles/content.scss index 54e84f7..4124bfb 100644 --- a/src/styles/content.scss +++ b/src/styles/content.scss @@ -89,6 +89,10 @@ sib-display#member-info, @extend %shadow; padding: 1em; cursor: pointer; + + label { + // display: none; + } sib-display-img { $width: 55%; display: block; @@ -119,10 +123,25 @@ sib-display#member-info, } } - // projects #project-profile { - [name="title"]{ - + [name='title'] { + @extend h1; + > sib-display-div { + display: inline-block; + } + div[name='number'] { + padding-right: 0.5em; + &:before { + content: '#'; + } + } } -} \ No newline at end of file +} + +label { + @extend h2; + &:after { + content: ':'; + } +} diff --git a/src/styles/index.scss b/src/styles/index.scss index 8a87e48..6175744 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -9,6 +9,5 @@ @import 'form'; @import 'content'; -// @import 'members'; -@import 'menu'; - +@import 'members'; +@import 'menu'; \ No newline at end of file diff --git a/src/styles/main.scss b/src/styles/main.scss index 5b420b8..d767dd6 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -87,6 +87,11 @@ h3 { } img { margin-right: 0.5em; + width: 43px; + height: 43px; + object-fit: cover; + object-position: center; + border-radius: 100%; } } diff --git a/www/images/user.jpg b/www/images/user.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6edfb389e8d86beac7595571bb638c0013d10a6d GIT binary patch literal 2567 zcmaJ>X;f257Jh&Q-e026!1S zS+fKH0An9-8WR9?&~v|`9_$JDZNC@XnM*yxr9r}IX*^pD0Un?*3PSqu*)b3kVuO2k zcS4&1K+lRB94-xK_>(w7K9)U)!6xuUFdG0iyCsO&93CV^MnN%L0U7nIz8Qt&f@D;f zGXuvEQK49_ccK^yN(>0*B=R^!5aqT7xjBIZ3-BQ+8=1i0C6JI3$f$W;54 z5Gjw0`kYiaBM?ayiXo&k))B+O;qgcU0gHEXCJ^vwqyrA`V2^{1fWbSFoCzd{O~@}F z3XUcQqe)B}{Yxx(Mn=U-r6Q8OeSCa8Hr^2{6vx=(iA3U@hJynJMqng+1yXhbMj)|V zP@q8)j+iTwa)koqoFY3)7$+s8;7mU+fiL%qy->@@&BQG z{#Ud_%7p%t@Bb8*1n(6=_Do13j1zO=+2HVG(6tZk>cb@ zq!MW^E_4djkwBy^aA`tL93K)$7r5Y8E*|$y?p!hOMQ~&qBh0~Vudlyx(^UbTRS>BR4Ucgt5^H```g>w8yg#&o10r&TGVQFS65eecXwM`TW4qI z*qNFK0PvlG56vSuVPvWxM*b&hDc#stc`+ms?7H*eE;zb(#=6rV;eglCc|VPqK5OH2 zqRe#u?tW6}@nU^3+{uP|GFQ>xfqOOZ|ps9P1M+gwKJmixJF<4(Tbw*wI{>smhHnUzK zv*#&Bi|fUSM)e!+XF(r-U^xvhuhS%t(m9)p`XUmo4Z6NhI#BXPGqNpm+WT3_Xt*q{ z*wCNg)|PQjRJodV+ZK`5$ZS1)ZtIUmwWDUo_IHlnXb&+qk+lb&EVHw5@N(4|lAn{f z7q18G#vbKRL;02|509h`(WLLkb3C(>ffiGLWo*Tcp^V}Fb?P1Oz^W0q)?=#&Mw637 zYLZ>PR;)(dF>X7dmAzQ|yw~n%a5e6Aw=%dRA|{$uHC}YyT0md4OozIH+|;6ff3s<` zUE)qz+=^^%?C-rxb(K4dZ%G3XHd%fZD5X^XgTu-&X^<_?(vo+c8H%#x8L@O+R1Tk9 z^G;MHqwh6e-|8(_XPhd?M$5FC-?J4}?M@LYnYxZ@y`e0`=84sYGWz|WTo2{v$~@$5 z7T~)exU*I{Yzvp?%G~9Tl&QZe^uUu?S5+s8@_A~e^v}1r589$#4b^I7m-v@BOKZQo zrFqN%d6Pd$mRnqrT-e!}SeiQlgEr@(to_Db7M@XHz;})m`Gh+!`_I2#ZAkwS&svgx z92=#aeh+SI18sM$-7?VpCdMSUSafXiuy3iG@fx$yBRzQ<&q77|&kAxArE3CRTamqS zUz*&=Nxb81%i>6nu*Yl60+{kE7sVTGc~|@T1+!aBWyQO;*CJ%aiZdaZYUa=-7k1wZ z>s7MisqtoGiopSd4{IcXeXej!Z)L;SbbwtARLTpVs)S01$6i_V=J_pi9=(kr?3QXD z_zJMJv9W(tuHJsHk?dd5mqdS1T+UjLDhsmp+c>fH!>Mj7q~FuOg&#lg-5bT5-OjI7 zFVDTp0Vh`#4ArfB$|;Zq&ju6kZFDQYaedFq^0f5oJ1ad>-N=I%LhBsZWzjhk{;Khl zy0=F}Z8Khx-{;7XqJO4CMH}&`qZ2wknj;ERFY`;6QM{gh;PQCpy-4R> zH2IvW=26>9Gl}@OwYIL z!1Sb^e4-}QpNekX7Z+0P*mIot`0-4V#|#)`ug*|K`fT^qih)??KXPP9P3f zQje^-T17juLNnk!ykpmeX=85jY33nAowbsZ6=U9JvCopGK1NcH{Pod!%RP&Wy)O?L ze#$zt`fPsFifj4fvPM_hY89>?v0hh#y78bdMSe~6HlL;np;H#kDqHU|o<+YqdsZKD z%J5_LnLYX#`9a!+h{=@q#FZ~@O?6rNCmq^e?UuHkXr_&yI#6in5$KLuL@sPB74lHx?2nF(&C@C%PO_aJdCE2D3ZG5)r)jarCzgnNF0Jd?K zvpy}|WWdrfCxH3@D_j4wA&r!u4FEmNKHEXGDrMeu7eFlF3kYfCJ`duK{{rX%jN}ef TMp(_$xu@O7Gk{i3`6=b!0%cZ_A%ecwN)-1geM_onUC?PZqKa+lSTNlO$ZOR{AvE|IHj z#|CUCj%meF-~>nv1o|rhf*?Q)Cstrvk!;IS94m6vtU`&R8r!mHJGbx7?DTp4wsTJY zxNnzSks>LH3IgN+7x!U+x%d9Q=hwf#Bb;-N|BsjcK|R=*oNl*Ex7X#;rAwSTbDFc~ z&T{tbS+-hRIAdv)Bj%?jnVcA7VqyaAht%q$G{(l6o|&UusZlDG2*VH|#1G^<#cQnr zt=1+dPkf7~o<7RS(I|2zE|R7>LP~s3Gu{~C_Px8g=gvj3)$3Db2zwt1wtu2<liI5&>53ZZI6Cf2*DP$Tm;=vue=GZe@ zW4u;I*o-sJKEXf!?XU2bx4wg4{DoiU;KIT08G!Fe1KOQ7|KUIVJHGhYPhheET5EFa z7{ocwK~yT!?I%OK*Oa4>naK(6z5Q0+bkCja*|(qiwt0jOi=7t=5MT|YeHgT$-^F$} zAxUsTVFo=mJ2B6kKFzg_O`bS?jz>?Qqh}ny|K5Mjul(|Rz9+Nzt~9_pN2k~0W1sw6 zzVyY<((QKW4-%x5WSPMssn^PEZMNw4`UoK?mm)?=6?RS3IWRNM)Z{qjkp@x<92T4f zAqoHl1t2;AF9$yY>u|=P1XMIE%uF&B`ix12+hAGk98J z5X?@E^XotTHh%2Q4=^#m7q8Mp_z^-X5a8SkG{9PLt^h&E;?f$t5RAbfaYCVdO&A4K zDdMAdm%b^BXNR#5qb6lR{ti@r;ZH{%Oa2HDA`94m75}=eS1QLR; ze)X$7_hQA^&}2lWfpO3qiLR<14{rv&`(| z1X>EVZJXei-uZU6?>Pv538X9pvksH=8FYK(Rv@gylaeqDkfloTQjg<`_$-%h>`xo|c5Gb5;D_`QT|K=n7+IxNj^&LXwO9Ehw;quBdahi}DLw9|Nr7M>)&S9(| zNfR`X8-q25TC>L8d*<1*eVQM+_jbnTcM~)wKnRL7Lx6Q)bEM5tS|B_KJr#HalIWqExA=M47 zDd#KCKEnfRYwVbqc=Z6RciODAS`5;h!JtQbW0kF~7UfEnbdVyP!&i#bLT;f{DzSfd ziu>+dU}Acj(!?B2dWBjt^yoN9QnJNMoIG}nzj@@F^tv%K^)k25)oAwB%Sd)V_NUgELA%s9^O=fc9+|Z6=I{g98I;^!wAqzj@An-k61fO~KIKTPk zapX%>lrPeYB+IzGwnisTXvGOz-43lmMk~%KjWm%`Pzrstk_F1bL--+H5HY`VCsDnL zjH*SL1CR=YE-oFSn$y&`?O?UD#pfSA$~P`7vDmS^etw*Pc-KB=YmTJf!rBaH3}A7> zVe$-X47sPs9i&FlO>)+|ecGJ?&VkAE0&gKvN>HiA zf8jDKtrkm{ud#LYGRMxHX65Q7DuKsXIlxx}B^}NhD&-P6601XGsevptL8&6XBZnF= z%<{C49-Cr^G5q*F_Yqp3JB}P7jAPcIx@)n#R~L$?<|EP z9rYmy)(}=JyzTxUVRxfR+Ua1WBM8PRPfSyt-%Y7n#w7{y;zib1S6J%}IKSHB=!GRN zE^m+|Db^Zk~7O6Cm?_u+t$4{K+^0hT44*0_~cWC#{ z0p|H?&lr%J+SnuqZ*#QIou|DFmAPp~7Y-pCV+c>-Hma0eh=;HbhDhy3QAFlt*th`r@-b!)gtT_Lfc_-V}^S& z)Bqt74osFJm7+90hOX9#w(miYO(T2{oW;Zmr!QUQ%0`c+tpP_*o}rWEH0o7u-8F}= zB@aJ+iX=?|flv}D1$pj@w8J^VS_9<=q{fgt*ywiI?Dd#>DF9ABcY=qy%S6s&BkuBL zcZHsbAr}Z|!CFk3l4c2c?l3}8i9&>gKr2EmsZ}e5?AM)*yPd&u^&N*^viK=x(@H8UTIFlCNZVb{H z(%fKyG_yEoDf^PpS45si5Qc^GbE42gXTdP^2kHfWK>-paB~B}Z?+;C6n8c(R{q20r^=cL;|-3V{$3 zfnaH~MVw}YzV|!;X}6EJxW+Rlj+5p+Dr0lxxfxbzrikXENIlz$!4m>!C2^Kgj(k88 z1OdM17rXBq7(2B6>%L%^_Ya>*65|FP@O_;25J6a&i<6MWblV*Sj?sFFFb{bBfj#V+ zpW@8w8hWI}#X*;Lr&r*4-NKy1^A*k*=J)Pl$FAK7XOU>6lvwMq#&UIYliiaO&jTPO zlqPFD`Il#Cx3-Y#G-+yY^5zalzc*l`GhnnF0x(E2LQf-{KuJ|}WNw5%h85jV{f#Yf z07w#OujAHNah^m@DV$#_%47#F?$c^@@dPwNg_1sb?z5w+@pVqwgGZkF7Fn7P6?upN zpgoNr2HgF|H#1tV6+Ty9&qy6s6k2c-0MDE}#((_KhuK))z&ZreTT$(~|u&s5nl|^i?i>@`1(+ZIr z$PJJ~uSc)dp`;X%uqe-v3P>}k`aaGY&Rt%*q547&-vxNSW^8T;3rFrE&kR~hv;a3O z$fOetk^yO+<7-_2@X$kF;q-~q*G0YIv7OC%eiiw3uQOn?)uY)M!5BlD3viCDPM2P{ zL#5f|M)GsRrUzu3o0zRFTz^2`*~BSHI6aRFOXO=;v4b|=#0*kL*j@*dW;DZ)P)LNe zARNZ!fZ_PXE3{hOBAz=C!+yS6n1;PJ@swN7{l877G4-JI#R|-@U>)hW0R{_uQE9|U#PvkUfZXb%{5x*oV`;s`SD!fr!Xc%= z8i$ZWN9Qc#(=!}8e3+4PiGG&TPBR91PF1J)TA`%G7(+jfsg+6v04GkIxJgJM70$gh z0M1ylBx7rtWarv8%v9z*9C+;y`+m1kCOi^}kbo)Gf>ax5w z;L7S2GZQ0x?a8NTtz0Yo!1acPvq(Qg2LY|+Yg{;ciS|~Dyx+%VIpi6xy+zjPpn`~t zS64W{x`GrIj3dh|gE(Qc+vk~!i+u6PW29LI5~Kj_NrVt+Pcl9=!R`YG3BwY(F=WnQ ztsx&?))gFuC*=)|*HDlgHw!PGPi9_X**qst655+vgq0c>;+TEgsNrFuhY@Sn}-^2Q|i(LHb6KtCu!H=q_SfJyg#15kp6ZJYyNh-b~HIB|8rky67 z-`wPXe*H-1))__uO<60-VL(ay1fIfI z@_7I{oz4rlf4I>v1AwvQSw_FzE}BuLh%;B#nHeqf&{rQ}|J*o@#yA9JTyAkvF*$z*h=iD?Fu8N}+gO!!>~Cd1P7k0uf({EOJ<5 zutJb@yLg_Y=M3kUHu&^6p5l#1Zs84g)^R#VD21+$Ai@ZYLq>v;`5A&slC{g%Ff$c8 zGj&$i)_L;LGiYDo)dR{}qKzR=Vvb(C!oyD=#~6bOJd{=_XNr;;f!3OGrNp+$Nk(f` zDq#sFH3El}5+wveN}Mec5hL7S3|DDX)QoVl{X zfBoCfvAMolw72~bS*;aL4}mi=*6ZU{J;sbi9lcEH{1*9Ahs#TwoL$`@$qhmZGGkfp z_IUW&Q>?eUAO%Wmv?>}N0*f#iLF6-1ud{3S9>yy*YEekp*Z5kZr9>)?l&WaS50fS_ zGyw@P+H5dgDpL!>LRR_h0>89ISZh&IFg0Fd|Mp30l?p;CKK+fS`SVYHfqpzd_#t@F zu+Y(99eLKJ6ED)zZHzAvofNy=X4lLVd*-K^uGJ_9KAZ7?FFbji;}@^uD1?_pO)P8@5 z<)~C6=B6e&ymyW}4(?!XY7FiB{P`yz;!BS`iLv=mqePMFdJ)PiqoN9F%0pM--{V=UgLbo?yyd0vx3kb#Q?s-;HmHo$ zIC%IDcFgZUt779U4(r_W9bYGkLKF~AqNOJE{O19f7@ub(sxVnCqXLO|l{|Z?95PZ4 zvDT3pu-1^~7KdQGS*H~EoL^evzkTGRyyfn@Ik^7-I(HG{AE7##4|j1d66v7ioO9Lv_^YH zAHi9Nl&T;{e4qCEI*ri=_dW0cQ!{hJu22Dh#A1y_Ue^KPP(omxBL^DQ+Kpif4Nz{@ z*!hM-ocR1jE?-zC8PF%NLz^GQe}@>-@NU@H5ll4dH)PNN+6!2?aWjRHZ5D2YM z(&DT`NQE&Oo)$$0C_rk-v7wmf&iRBkb@LR9M0u9lM|Ez4%~K_BZqGT?X%i$Rq#qzX59xczp}OAmWD6!Mo+*_EXVFrSB?&G|$>MH7 zf=HOCm1stql9pt-Wu?_(wbh}QW*A#Ufg%zJq$nD&zV9(sZ`}0G8vqC)dHdUc4oOBB z=~o_26@qFMk|jmUOE}A*J78<8M{kglTZj|G@(YO{Pl-F#J1^KYRxekN47_ktL30x;P8cQ|w)s=IVtty6wRY^B6yHfS-ETPqJ%n zj=62yIDFe}EUzq)TgTM4IqHojT1pz_BHk}`dR*RY<9mHZN+s^vyYD5ZL|*ilFpT(> zU;RfM+P9Zbcm!4=5{t1=ua{9uB9x{SsDdapMS)?QAvT62FL=0iJYcoeDo6)ebcyp` zf-;VUi3WHs z`5jovkg<{ko=?3LFAE7a=FJImTL&Jg1jtWIzTit#8ta6NJ(@1ZI#D2*sh<8nry9x7DNBsNjVG z8@(bVYEN~Sm2-RvGA!IQ>WDV90 zha{xn;LH?v?%eT`!o$l9NxkVE@8bNk$N1Af{v$*$W};Ce@CpJ%2#KczLOP5soE=i5 zr9nAOoaJ1+wp@&?04~m{mjXs?!j6#$1{P~`8qE<>z$n4^c#U0qrnv9U-F)q_GxWL% z0L}UB{Mb+YIJI(_+&ZLS=-7&)CmU*=b2g5bLcKuXEa z{?vnh$bo(2wy5L^ zlCBt&%Z;TSr*z}ENZ*}B%fgwLeUJNZeH}B+=64kSWdQ&fX*Btb_x&q2IvcESEwj9F z1>-tr#Q;5ogU69Fc~h5$%LTQ&$wm( z9FHA6g;x&gWRAy9p1UEu@;vJG3L}jwUZ7FUNp{T7vAD6twN{%e?Jh!iG)fW8D5NqJ zHuQbUK}euIv=Z!{onxxeeAQzz06SZ~xANJaP6E^@@k*X_TkYUWv8{ zxYEyAkL8e7wAeHO=dcbgFRh^u?P2%MDP&OMbB`aRpQe<`5zVnWBaJH3(zf_6 zZC_xymvXtcMyEdjA(?KL*g0CK9tKDyaaQ1@Akdm>6tZi2hVd76xL->E0OscA_^S{9 zcmCpIf62!2&(mqA^g#$eN$k&S@?=-nVSvwq;me*L`>@hJl$(Nov%i`)L z&52RQw>3Zt+WnaB$|~JV+TX;~)7TUq5~stwUz^9;TlrbXpsfB85{Pz3%mn zFl=^v9J{nc62~07aFvmXCe86WYppijcArYwBS{j1`Y89@e?NB~T%a6!M81!&^$mi< z-6+x=o>J_aon~%g5?_CB$Dh8hQ)AW`{`#XI;Y&x4v+u6^`Qk&L;maTYFeR1JsMi>D zQ&yKZNsc~d+%dpSh)B~V#TmH z!l8tw7WvdlW%kW(XXIrj!C%e#zD|xxrTDp@`vvZMV1qNuZ65w&hD#E*20gOOF*-KF zj=eLqH@kG(U8E;yjMhO)t}U;V<(6G@6O=-a=gu!Nx_d7V+6XT?L4iqDAxPlM# zrDUSsWNv(%@p=O#U))ppZr5veaMC)*%Gw%_Kl&(t{=q-v?>_Y@(2|ixjqzrM;;@Hc zqt#}8qleUzTlUPN6&yQxiGE@@^v3)6*YEoml%k@{Mu3)*$d8yApJcMpAPT}8q{eHp zUh|`~*Vnb>Wj_7c&+?fse2(KMPauV5v(u*2>JSBr-Lp-!l00+#GK16*H5>fYFTIDK zedmwiDNW${jMp1XG#ZSQDzEvG+3V{E2EYr~=GGQhu3lmB+BG(}*6^goWC>T7)`?R? zsZ^#uKEdJJk1#zxMk$DheE$a~^b6Pj6#)KUUjGM#$e;5#-awTA0000