From e7bc3087d150fa643f2549fb2ff02ed814670bf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Mon, 28 Oct 2024 12:59:13 +0100 Subject: [PATCH] feat: add branding for reformer.network --- branding/assets/styles/imports/_branding.scss | 162 +++++++++++++++++- branding/constants/donation.js | 2 +- branding/constants/emails.js | 8 +- branding/constants/groups.js | 2 +- branding/constants/links.js | 40 ++--- branding/constants/logos.js | 2 +- branding/constants/metadata.js | 13 +- branding/static/favicon.ico | Bin 5558 -> 1937 bytes branding/static/icon.png | Bin 21631 -> 15287 bytes .../static/img/custom/logo-horizontal.svg | 133 ++++++-------- branding/static/img/custom/logo-squared.svg | 133 ++++++-------- docker-compose.yml | 6 +- helmfile/environments/default.yaml.gotmpl | 4 +- helmfile/environments/production.yaml.gotmpl | 3 + helmfile/helmfile.yaml.gotmpl | 5 +- helmfile/secrets/ocelot.yaml | 14 +- helmfile/values/ocelot.yaml.gotmpl | 6 +- 17 files changed, 329 insertions(+), 204 deletions(-) create mode 100644 helmfile/environments/production.yaml.gotmpl diff --git a/branding/assets/styles/imports/_branding.scss b/branding/assets/styles/imports/_branding.scss index 7505859..c3417c7 100644 --- a/branding/assets/styles/imports/_branding.scss +++ b/branding/assets/styles/imports/_branding.scss @@ -2,4 +2,164 @@ * * Here, all SCSS variables and classes can be adapted to your custom design. * -*/ \ No newline at end of file +*/ + +// @font-face { +// font-family: Overpass; +// src: url('~@/assets/fonts/Overpass-VariableFont_wght.ttf'); +// } + +$color-primary: rgb(56, 57, 55); +$color-primary-light: rgb(149, 153, 147); +$color-primary-dark: rgb(25, 26, 24); +$color-primary-active: rgb(95, 97, 92); +$color-primary-inverse: rgb(226, 230, 218); + +$color-secondary: rgb(244, 142, 0); +$color-secondary-active: rgb(255, 172, 23); +$color-secondary-inverse: rgb(255, 238, 212); + +$color-tertiary: rgb(0, 168, 181); + +// $font-family-heading: 'Overpass', Helvetica, Arial, Lucida, sans-serif; +// $font-family-text: 'Overpass', Helvetica, Arial, Lucida, sans-serif; + +$color-header-background: $color-primary; +$color-footer-background: $color-tertiary; + +$color-locale-menu: $color-primary; + +$color-donation-bar: $color-secondary; + +$color-toast-blue: rgb(0, 142, 230); +$color-toast-green: $color-secondary; + +$chat-message-bg-me: $color-primary-light; +$chat-message-bg-others: $color-primary-inverse; +$chat-message-checkmark-seen: $color-secondary; +$chat-message-checkmark: $text-color-inverse; +$chat-room-color-counter-badge: $color-primary; +$chat-room-background-counter-badge: $color-secondary; + +/* "a" link colors */ +a { + color: $color-primary; +} +a:hover { + color: $color-primary-light; +} + +/* ds-menu-item link colors */ +a:hover.ds-menu-item-link { + color: $color-secondary; +} +.ds-menu-item-link.router-link-exact-active { + color: $color-secondary; + border-left-color: $color-secondary; +} + +.v-popover.open .trigger a { + color: $color-secondary; +} + +.main-navigation a { + color: #fff; + // text-transform: uppercase; + // font-size: 16px; + // font-weight: 500; +} + +.main-navigation a:hover { + color: hsla(0, 0%, 100%, .8); +} + +.main-navigation .router-link-exact-active { + color: $color-secondary !important; +} + +.main-navigation .locale-menu { + color: #fff; +} + +.main-navigation .base-button { + color: #fff; +} + +// #nav-search-box .hc-hashtag a { +.hc-hashtag a { + color: $color-secondary; +} +.hc-hashtag a:hover { + color: $color-secondary-active; +} + +#footer { + background-color: $color-tertiary; +} +#footer a { + color: $color-primary; +} + +.avatar-menu .profile-avatar { + color: $color-primary; +} + +.profile-avatar .initials { + color: $color-primary; +} + +// .branding-menu .ds-text { +// font-family: 'Overpass', Helvetica, Arial, Lucida, sans-serif; +// font-weight: 500; +// text-transform: uppercase; +// font-size: 16px; +// } + +/* avoid uppercase for user slug */ +// span.slug { +// text-transform: none; +// } + +// .ds-footer { +// font-family: 'Overpass', Helvetica, Arial, Lucida, sans-serif; +// text-transform: uppercase; +// font-size: 16px; +// font-weight: 300; +// } + +/* chips on group teaser */ +// a.group-teaser footer .ds-chip-primary { +// background-color: $color-secondary; +// } + +/* chips on group profile */ +// .group-profile .ds-chip-primary { +// background-color: $color-secondary; +// } + +/* chips with primary color */ +.ds-chip-primary { + background-color: $color-secondary; +} + +/* number count color */ +div.ds-number>p.ds-number-count { + color: $color-primary; +} + +/* active tab border bottom color */ +div.tab-navigation li.Tabs__tab { + border-bottom-color: $color-primary; +} + +/* submit button color group form */ +// form.group-form button.ds-button-primary { +/* ds-button with primary color */ +.ds-button-primary { + background-color: $color-primary; +} + +/* color of active filter tags in post teaser */ +span.category-tag.filterActive { + background-color: $color-primary; +} \ No newline at end of file diff --git a/branding/constants/donation.js b/branding/constants/donation.js index 3e36ae9..ac07b2e 100644 --- a/branding/constants/donation.js +++ b/branding/constants/donation.js @@ -1 +1 @@ -export const PROGRESS_BAR_COLOR_TYPE = 'gradient' // 'uni' is the other option +export const PROGRESS_BAR_COLOR_TYPE = 'uni' // 'gradient' // 'uni' is the other option diff --git a/branding/constants/emails.js b/branding/constants/emails.js index f5bd9a4..da0d047 100644 --- a/branding/constants/emails.js +++ b/branding/constants/emails.js @@ -1,8 +1,8 @@ // this file is duplicated in `backend/src/config/` and `webapp/constants/` and replaced on rebranding by https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/constants/ export default { - SUPPORT_EMAIL: 'hello@ocelot.social', - MODERATION_EMAIL: 'hello@ocelot.social', + SUPPORT_EMAIL: 'support@reformer.network', + MODERATION_EMAIL: 'support@reformer.network', // ATTENTION: the following links have to be defined even for internal pages with full URLs as example like 'https://staging.ocelot.social/support', because they are used in e-mails! - ORGANIZATION_LINK: 'https://ocelot.social', - SUPPORT_LINK: 'https://ocelot.social', + ORGANIZATION_LINK: 'https://reformer.network/organization', + SUPPORT_LINK: 'https://reformer.network/support', } diff --git a/branding/constants/groups.js b/branding/constants/groups.js index 1c49d3f..5924440 100644 --- a/branding/constants/groups.js +++ b/branding/constants/groups.js @@ -1,5 +1,5 @@ // this file is duplicated in `backend/src/constants/group.js` and `webapp/constants/group.js` export const NAME_LENGTH_MIN = 3 export const NAME_LENGTH_MAX = 50 -export const DESCRIPTION_WITHOUT_HTML_LENGTH_MIN = 100 // with removed HTML tags +export const DESCRIPTION_WITHOUT_HTML_LENGTH_MIN = 10 // with removed HTML tags export const SHOW_GROUP_BUTTON_IN_HEADER = true diff --git a/branding/constants/links.js b/branding/constants/links.js index c62c846..e702bad 100644 --- a/branding/constants/links.js +++ b/branding/constants/links.js @@ -4,10 +4,10 @@ import { defaultPageParamsPages } from '~/components/utils/InternalPages.js' const ORGANIZATION = defaultPageParamsPages.ORGANIZATION.overwrite({ // if defined it's dominating - externalLink: { - url: 'https://ocelot.social', - target: '_blank', - }, + // externalLink: { + // url: 'https://ocelot.social', + // target: '_blank', + // }, internalPage: { // footerIdent: 'site.made', // localized string identifier, if undefined default is used @@ -21,11 +21,10 @@ const ORGANIZATION = defaultPageParamsPages.ORGANIZATION.overwrite({ }) const DONATE = defaultPageParamsPages.DONATE.overwrite({ // if defined it's dominating - externalLink: { - // we use 'ocelot-social.herokuapp.com' at the moment, because redirections of 'ocelot.social' subpages are not working correctly - url: 'https://busfaktor.org/en/spenden', - target: '_blank', - }, + // externalLink: { + // url: 'https://ocelot.social/en/donate/', + // target: '_blank', + // }, internalPage: { // footerIdent: 'site.donate', // localized string identifier, if undefined default is used @@ -39,11 +38,10 @@ const DONATE = defaultPageParamsPages.DONATE.overwrite({ }) const IMPRINT = defaultPageParamsPages.IMPRINT.overwrite({ // if defined it's dominating - externalLink: { - // we use 'ocelot-social.herokuapp.com' at the moment, because redirections of 'ocelot.social' subpages are not working correctly - url: 'http://ocelot.social/en/impressum', - target: '_blank', - }, + // externalLink: { + // url: 'http://ocelot.social/en/imprint/', + // target: '_blank', + // }, internalPage: { // footerIdent: 'site.imprint', // localized string identifier, if undefined default is used @@ -109,10 +107,10 @@ const FAQ = defaultPageParamsPages.FAQ.overwrite({ }) const SUPPORT = defaultPageParamsPages.SUPPORT.overwrite({ // if defined it's dominating - externalLink: { - url: 'https://ocelot.social', - target: '_blank', - }, + // externalLink: { + // url: 'https://ocelot.social/en/contact/', + // target: '_blank', + // }, internalPage: { // footerIdent: 'site.support', // localized string identifier, if undefined default is used @@ -126,7 +124,7 @@ const SUPPORT = defaultPageParamsPages.SUPPORT.overwrite({ }) export default { - LANDING_PAGE: '/login', // examples: '/login', '/registration', '/organization', or external 'https://ocelot.social' + LANDING_PAGE: '/organization', // examples: '/login', '/registration', '/organization', or external 'https://ocelot.social' // you can find and store templates for 👇🏼 at https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding/templates/ @@ -144,9 +142,9 @@ export default { TERMS_AND_CONDITIONS, CODE_OF_CONDUCT, DATA_PRIVACY, - FAQ, DONATE, - IMPRINT, + FAQ, SUPPORT, + IMPRINT, ], } diff --git a/branding/constants/logos.js b/branding/constants/logos.js index 714e78a..78b66d1 100644 --- a/branding/constants/logos.js +++ b/branding/constants/logos.js @@ -2,7 +2,7 @@ // this are the paths in the webapp export default { LOGO_HEADER_PATH: '/img/custom/logo-horizontal.svg', - LOGO_HEADER_WIDTH: '130px', + LOGO_HEADER_WIDTH: '260px', LOGO_HEADER_CLICK: { // externalLink: { // url: 'https://ocelot.social', diff --git a/branding/constants/metadata.js b/branding/constants/metadata.js index 3d09066..700aac0 100644 --- a/branding/constants/metadata.js +++ b/branding/constants/metadata.js @@ -1,9 +1,10 @@ // this file is duplicated in `backend/src/config/metadata.js` and `webapp/constants/metadata.js` and replaced on rebranding export default { - APPLICATION_NAME: 'ocelot.social', - APPLICATION_SHORT_NAME: 'ocelot.social', - APPLICATION_DESCRIPTION: 'Ocelot Social Community', - COOKIE_NAME: 'ocelot-social-token', - ORGANIZATION_NAME: 'busFaktor e.V.', - ORGANIZATION_JURISDICTION: 'Deutschland', + APPLICATION_NAME: 'Reformer.network', + APPLICATION_SHORT_NAME: 'Reformer.network', + APPLICATION_DESCRIPTION: 'Reformer.network, social network', + COOKIE_NAME: 'reformer-network-token', + ORGANIZATION_NAME: 'Stichting Rudulin', + ORGANIZATION_JURISDICTION: 'Amsterdam', + THEME_COLOR: 'rgb(56, 57, 55)', // $color-primary – as the main color in general. e.g. the color in the background of the app that is visible behind the transparent iPhone status bar to name one use case, or the current color of SVGs to name another use case } diff --git a/branding/static/favicon.ico b/branding/static/favicon.ico index 430cef437289d45eaceaa1d096a3674fccbf62cc..b189bbbe21e2257cb327cbcbc150ca52a6cfb09d 100644 GIT binary patch literal 1937 zcmd6ni96J58^_1m%OPtHl0)|8loLamgkv3-eJNyjFl0+bmeOFvj5>Bxh}Rh8rB^~^ zG)PLyz8ql&*|#Ai%y8~=&OdRU>-ycl=X!q6?_NIN`*~7rt&OM@LOfO<gty- zUy{k>p`oG3$jIg8<%PdTdU`qpdiClRc-!3E)YaA9-rgP^9mQg?5fKp-3I+Vw+uL8i zemyHI%fZ2+v9YnTva+S61*(ALArmT&K0|WRMwn3hdITW6on+wDsM00a9kw{ETOsuc32V4La$~kf3 z#6O6{#Kc5IM8w6#)6&v*cXvfaMWv;sp*n~KIrsGR01XKV3Fg58FqD*(1WJ%+Y;5eQ zQ>Wf`bg)<~c6RousVO5Pqw(=^1qB6JSy>?=Az=IM+c!BmIpEyi*Joj20qUr$t3yh3 zI{o|i?+y<3{{H>}0Rh?B*?D<+8X6idE-p~c`ue)6s%l$Xo1LAVj*bpsX>V@_2ueyy zG#X7xN~*QB6$oRo_n-%$#>~u2OH0eKu`v)1df@EYvmgg>`v*J7&0sJtU%u?^?cLws zpOKMaZf*|1LAa`_D!>Ii3kwTVQ&Sfg7ePHfK0ZT3LoO~ZKR>_O*;ynKSyNNvQ(3&P{h~Q7id3x`0&Gr4|R2Q zF)=ZqDM%0ELfe#=mxCNUJUk5z4Vs#ogM)*?!NJbX&P7EaX-&_?1pe^F-RlF%Dr(TDt1RlZ_bCr##?7jSsp^Q_zCIDVVQ@XDnRO6}La`rJj^X*oBRjljh~bL7VIfG$0zHMpZ%*=O)rwe& z|25BEbv`ohVocVN5+6|aD$j=FI!^ZMMN2E#Z8YM~kq3vm9wZqN$g-c~Vw~?*b9ZW_ zW%$~LJH^z^iQZ4%BGn80fNSz_cJjMxY)mUeyjDc1uZqzkGI7N>(FDt=pUa|igdNkf z^;a$wOq<2c@{x#JVRWqQbm~-WFd<)*)u8?^tNQqo(a1olrrUkaFUai_5&z*A6vIBf zD`FP%g!?^O?i%Mv1)nmxJUBUIUtFBB^c1oC{iLAK4U(J}RnlskD*X)6mU7THo{v2t zD{U+2gBKQG-!-I6N?=}Cm)UMQbbVKnalNqUVb6uWrKt8O^73u^oM4TIpo~_^U>i50 zl$Id=YJ@N^xdyG7FL5A@;tif=hFkqm;)*!`VQ@|B?%D%X z;H6G^d}E|RHpNj%Prwx+a6Ivbl?R&m2~*XYr^4>>o|>b~aAlJ!X(72{16mbbg@gh{ zPP=kMyM(@fEB}1P*IQ)^)I%#U})|ETIQSSFfADE;AvJI&3j zp{K3P+%CLgj5=QDqP7#4@PwSOFvC%-#`ELEmoS5`oFWx?HPdrZYiz6KZ%np7?<&YJ zRQE)r9ffA0p5-GDZNiJ)MY|zFkWW~uW&kQ zBUlzA7gVdAT1b}a|2>!(+ES`MdhE8U_l{h&r`%wwZF$-JeEGJ(=2wOFw*A{r=5URn zr>%RA(V}nLzSFltfW(&WZf;o<}W(D>D_H;KHW4Q z%wuK3wYVgK)!$B~&3|#j47;T4K3%v}wB^{L>s}N2Q4lrWUt&qD5DnO`xEXM!_JNIw z3WmPkKr$OS7kfx?QLa>pC$_&U$W2?`Jc>ho?sd_Q!g^4{`)B4ftJdjKY7}9zR7fD) PD+siSwehoGy%PQeA(=to literal 5558 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 diff --git a/branding/static/icon.png b/branding/static/icon.png index 1c81fa5fca1a415323627f025eb8a68fbc2a6b79..8fb7597e913862f47bcd8002dd2677ec0374ab83 100644 GIT binary patch delta 14096 zcmZvDRZtvV7wzEg?u2~65ZqmY24|4q9-KgMX9ylV!CeP;2@W9y3GM_Z=-}>lJO9J2 zx>fgqhneo7y7$><@3q%j=cN>(*(>2cgb#I$gh(`;+zgoX^z`m_*485WnpSSkjvnrI z&Q9VCf;^nuiP}h}GJNdZT*T?&crN-OXjq z-L1qKc({1}KldkIBR!z;(DQKcbMPlVBa;#R|Ly^!IG|5C%jtnY2tkRND6gQBP2dr( zQn_e)3&UIX*z7d=O%o{vNukp#qEBJur^*(wSmZ}yRvNlj z4VOz&wLL@@jPEZR>)t?Eri|tGY^9y^l`s_X(eu%!-nHH|rmxX`iA)ohrQa z%)9Hylr^5syKPAS3Yl+G78J7IhNQ}8E|n;siSC}kwyZ=w<%UvfCCl^J)3LxTLXUVjLDOBEH58F@6)gr?1$h&JJviPAt9OCg~x+ISrn?x)41} zcL(n5uEjEIsuukPB5avsDK(}f%j|EW1!-&=$ni16Zv2E68qA3u{Yfp_kT$;Q6X9wh zS=&aCuoJPLYpQC_v}h~PY`I_MI@h&t|N9$hCo39GjDSRs3v`otfl z^E6|??@%4+s`GT4XNZL1Kd^LHv}Y8-4Z`qPq3WIh@hc6Dl|HOZ#sw&fr5?0#HlevU zueUFAUgkhCWR_+2%^mgbWe53mVu zt9gHI?V5W>Ec%t^+R;MR1AX$}ts`$`Yr8UT@~N`&=o0!^aew zTz4|Q)334m}}LU7+1nZYP* z-M~>gK-s5@Th?wm>)P%50UUfxYUKE4o+CC|HRLbN5mh59i@3f=ao%nT(KrdSinPQt z?JKAisr~8-hJ%Mx=M4Ca^o?QeY@EOKG%m5U#*+E0jqs=wDpx|s5A=RrT;1Hy*(=gB zu9?@j)p$`dFAzGx^8IZ2FP`o>_1ktE?2S$#UT4|ITkUGQi?F%)C(6ow8=l6(i$)oY^>4ep~&Up~buX3E(&$tyMGerw2j4W9(DW49BFf!|T~i;#hWl;a%q zFPbWSiVkCv9|$-v1LRfGQEur=+IPgRqzdoL_+9%8=SVw@29`oipnn%*(JNbvwV?Qw zxeKMV-nx>lLqAuz*wmDsA`iIc&H{y%r5uvHqmwTq8ke_8kGGxLv{cf=46Z#pbP>=w z{?r@>>b&exVcndc5%o2y=dn(mnF!0R+Y_5E9vJgaKAvLS-F}fCVw>s6l=LMTTxX4# zS*fvW9UgV+?>WV-b{U4a(@A=aFhM_;K?*{@qTeV~(Z$tgUlE@(1WZfQ>v_V)6 zGb2DsFz(>;3qh!_<0dx85n8tJgklL{DtCX?4aNwyyv{JRLO<8=r7?aD_~cUEcHvC= zOwng35oS@E>uVMJV+!2ms%PSX$1!HrjUwkxI{n<&x4O}7G7FlEY>ot5L3I!cq*@JV zUi(@a*@E$V%X{DUX~3h(t;l?zE^n0jU$<;AUmI$C=x|@sMc~)Mq>r^%*d3yX2aWdn zA~9qB9*_P#jKM6N`0ZD-9R!1;Rb|-y?pQo2$acYd@o*cSKhA&KCBU!%$HUoe zD56xMeVEs_@%@tAo2e-#`(GcIcNu#yCnFL?wdK6?6`P zSclZ`0z&E+q^3i;p`Gq;Lx}xUE!WL$PA`<`J#n7Bd>)mM4fgYD@(9jD3&(MTi8uUc456D`(pQY;nDJsA_d zm(fkqqN$ZKwudGq`x8nQFfTAtT?E?;`*;Yza+DGj4w(#&hN#KwNOIim+I8VVMuh& zb*^$!h3~N|J5U{+G6Ni%FvxgA)icKW)ZIU%hjG#+L3LL`l+|ka!p&W(+XZK4=S)^? ziOHx>19>xCEPi=)8B*V+2dFc;@~Z<&mcqaGYwj)RXFE_`EzaGzDmzt`WjS;N#7dto z`IRlnXQn)MMP}+#M_bC$x7@2EcMy}GMS%oy2&Z8gS z;J+1vu32SFoS-ZbfeMbH>I?VS!`;}#y+s(Tt!eq!Ikp*#bEP@WW9{c^qzcC5i(~vw z6!t4?W1F8`;@Teg+5NskEzb5S2hYA}{o6Jlf@yeff2y67D;7Ogx@fI#w>>#-%mohJ?2>r#x!@4IK$TWL6hqO{8`KxZ)K|< zkM4-dgiJ|rF=sF%9+2pBx%A;L^)w17n)>Tc)_fd7X3I%l?aWTHRhn#)!)#3@5TmRE zW1a-Y{tyRIm9|aM16HIe%>{nLm75e^Q%|)mgDVC0w%&j30oV;@?_y$G(OzxuLO($S zIL2PdE!>{JdfMQyK|BR2myeQ)&+l_jrmxD|&I1jh!cw}t^GP(%B2srpoAwHYMH>Y+ zzdqnZn zZ>IYEj0g1f-tbZ@&iP-efj5GsII;UtUVVDvk}I|O6T3AV34&EwWoD{S@!QXBn^w^X zT?v~aG2889>!LA8Ss(g>H{tc3uE{C<>XJ?U8}{nxq-Y%sm%cxT@N&$ohNt(Ry|AfV z>+GsA93BITPi$fd*=qcxhD|>F(V*s2fZt?=`OvZq-&E&}1ZMb(m&)Nu*rDbM&5mu1 z)Fcck8(cH6JJ5DL7KSZBAqUUZF3RS%m0`>k={2lNrhJYA%xcNPpuRW$ zR0ye>Y5-G^SwklcU0f`Uy!;&mGGhZh6FYpP%Ip=54%s(OZ}uV9xTK%VQ|k9HQu^Th zW*Uurp4{_Jp}(2SR-Fe9d=B7M8V%LQW$DlF-uxwt9a?*Vh@L|)1;A}J4jb|fjK+5T`A#p8FVnhOXZb2+@7lR}`w`HXe~|8aw9e(T6ucY6QxO_D0q+zI#Y81GBS4zjB!lES~@`hc~V zul`5!Y2(x@%tSrIPs!@D*PfJ&sf67jp@exo%W$|*CB(?}XL~IfWXLui+kP*jqqnFR z7XtO{s64hdHpnLxFKUD?T`H8Bu4A=tT}CW4mxd>nh3v)Q17Y$zhkBw3US}`+>Uo!-*Yh$SCjECe+ zknFWt!h~*P`@tF@5aF*L=a%E!I2YeSn)~LCYY8n{_EMcFp<5hZDu270`X?XH%y1!r zxc!oOziwJp=Uxx;-Hh6)UpI2P9c!u+7jyNEa+ANSmr{Cah2C%Ckh$`Yx7!nTK^r4r z++>3N{DEO#%;U{Ynwt+w<|YhVj}69~x|3&_NFw?nqZJ>-l$;S|7T*=_WZ;8)&co3t zP~KenFN^y)BuZ5TnY$eSHl&C@zU*iME~)+(5&VvlpDesFzgd%q)}`FDiI-C6rqil+ zBjg=r!=QGZgVjNU!L{_J=evY{C>yat2OapB9s!a0%j?zDeh!QDYug2^POXq0=H&z6 zL*IcuuxZ;~j6H{qmi|h=q{2TYjRyv;6r)a)JA{C|mlda)!kZ~FM{D*j>_5B1eJ z1}7fd2%WojjPN+p`Jh)HaXQb5cS6AuxfV7jiYreU^_HYC1fVgB`-oN`RqmXz?MGn6 zPZ;J$s#Pm4vB^#)oL|Vgi7`!s(0%CTq*zAOG0s%pzTxmq#es6GC`4tf9Oh*FrtFie zwfQaO?;;5MB6ORCxQC2<^fUNuRbXt_B7&l6m zu`=QIzY64Ce!Gk>%MSH(x(j-Z4_b*Oy@oN1n_lw_R);{n=RNXz@K|+rE}?6e;T{Qic}u?fxsU#g)Tb-5gi$?cQ2h0h!F%3l2PThk zNjNjn#=4+h_J(_3`;JNPrTWz1_#t{@S6=P{+}KBVdpCPV+*wH5s};4SWpe5r5}GN{ zXRFhHdP6htj3FEN`@#}E`#I3sn^WIPTL2OkqT%JeXYrq3<2KOx-W|zlJ+%~xWOJd| zPo;^2s+m&b=+|{F`EeVkyX4`gez zN?Yxf8}hRd829Hd+fbb=UkK#Vdy?3x>mUz&%y4$qP#BCUt># zeJCeTg*Qv4wVJ;}ab>6AKH(5=*M7^G9$|1B=h~f<64KQKGbs~S@mi$}CMEiB zXk}N(e!jX(PoO;!I94Bhg+0x0UgMSh&Or`L=G~s6%@L1J1o5FRUY$G(##5=YX@xdk z;E&bLHzRgQV5`N?H!L_nL}SVVzwFkxt*m2l6pirE{QC2$hs?{5^on1{EEWYIFl0{f zJqDs z%&QhQqfsoJ!1wTRo$qylv|+>AW;FltqNk$z2YuoKsv#h}e&H$3Ra7<3+>FxBkh!m9 ze2MrkJie-S^!TCWR@109UBgI@&tF4n?~udr zT}pXB8^j`bye!4(vJgac$*KQ@eHb&RRC=W_{ssmqiJR{&f@u0inY1RHxY9+_JRMr! zFKWC?*NO08IiLx*2_y}A#Vw6F>P%z$r!1GhS{xCyPGna;G5+y2tR(HQmakv{zYzYR zpYr{sW5on?Rt0`X9-X}y;UFko`(3|+6(DN7ITFt=0AAwOqWH@@Pt=(JXH0S0I-_uy zd}vO5ncrHG&|+D-n_huGFw{mJD=QioT5%S=(3YD`g7fi){Zk((Vn9Go4!rkMLdw5M z^e}m|LdFGN{Ho7$M!LtWTh?wvh3Z&KS=my$4P~>w;jxrPC-oK2KYYxrIRJ*$+bId+ zm4OMuwe7&Lf=NqLOcqW`j;7e|E1=jd-cfDA8x9>x{p@=5HPHY1A;anS=_g3~m{r}> z$G=TU6rZFw$h>SDhMe4y2fQyowp0olXI9B)(*{N+^I)zY1rT2yd=4jKWl9J`s;xGZ z&Kp1`I1&&zC;jJ>=URs;QU&`@d%FUnCeDOy1-Hj|T9meuRe5w)x=R>Q#Wn#`aTFy5 z+;gRYzDV0|HY0MnJWzxn@C#j1Q5=k!f)c-T+>}}`k)p>AE#8O&g8Rp0QtZ;<`?DIo z!wHgtT`DLtHlNZPPDnvjKK@UywqEEd#SggA=aYNUizZ}BM6QkyKKrf!(c44o2YDwD zYICu=TN7LH=!72DcY*Gb)Z7-K9^2Ti;?mSUS&<}Of8U&iw z3(FG|<06ubD3Z>!5K1ma0py@))j}hf12(xm@$Pi}ORX@yXoJUW&}Yri1is!l6wSaC z?^sr(J@X#T_M6*oMpHWX$ia(ZB(u zP6`H9(=QfsXWF{f@QGRJm*ofJ!poMWV!Wqusp?UB(VL|*FZBrZf`DU>eaBPE%W-jI zJMGvhG8Jq}Mpu@;?DT+xa&EJRj3he##Xa1`9Y~J^Ln@NFbHpB!(TV%6?yKGy)9Ds_redN|G}6Q^}A{+B>1DS za5ZSZkV{@(t|_!@lfI5c_Lcr%`Pg7x9{k*fBN$&EJE41nf)=m}zsT93j*^pSrdP0T zj782o#tfuZID!V0QN(Io%1?sX=Rx+9)3xfq3}snNF+vRU!Av#N@`!c%ql38(OvK6W zT%bKDX!?P#fN5?>hn12s$%U99MP(?>_qL~rW>xCI!|<1N4z;AHnACo1qS?N_7YVq7 zXgii@&9dOcrE#!C-dvAbxrZZLB-!bHVhzN>4{lc-fOfqQ)7&4%Jy%!!HRciOH6xn@bl###VM+SB?b!FMm`#x z^2goB#s3Y_dzOPYpbRaya!c2aYU4he%;=g!KN5G)k`v0XdGhYet9bml8o`)AqUKH`JKjb6D!VQ#gL0h=E9q$V6t_wL6>se; z=uj~;4$^BJ{NRuGIrTrk40mh=GamuTq_d-sZ6%b=&IW64&Ma#I)0NVv|8%455~p*!d;mUf0Wrf zi8EjL&?Bwtr=AgE9ma@3u@VfOAjaAUZPYd&tk0_jJjlXGM61K^uN76dzd1~mo)GDP zK%H<`k_4yE+njd6nDcgGbf$j8ccyt=0fRjE8fy}jdx9Dv@_P*iAq(~-JG<1XwIKy< z?+VFgz93aUb-H1Z+E0N4`hS1QGK0=dg>vQ*bHth=^wqZcbUY=8`(Q!&0}gQdA*f*# zRnIZ(e2~{2%9PDn+&Lq3f7a@_ffv^=H9z@nix*=>4YT(DNU6Y%5QcB}b4Y|kThY&J zV!e~fuvFiVKeq7NCJ~>4CWGG`7arxRI#PO}R4%Wu+^_WktNjFsNLHHaJ*n?>^D0}Z zk08J$fJIuXMWvtSpuDuBX=?#Bdu&NW2+a4cmg>;v_GRhU?%oYMQS5-a6IB!V}ipHWCTPs;TY5`*Af)jXcb#lYAS z_H8_m$jJ8_%(eDOXr2iKGDtxp>CXy&o=e-9#3;sA@6y(7khlBd)TpExI9AJhy=jyQ z0@)7ih#D#{<6buR*E;}xM6=_qf7#f8kbNH4CS(HapfoKsgxuY6S=%CQ4zC*4@F0W_npQGpH>>nT*$rpQJ{=g?7D+FLq9>7_FZA4ad*LK^cn! z$w6w(q2GQGgn5}M3R!U#UUBo>-_B{dt#FMou|SE4HT8pzU|%W}J_)W^v2MMqnuvdy zZ#~vSPJNX9oi0T-!YPk^&OPV&D?;A*Ytj+N`&fC8d?Wr!!UeM+&CpRXhQ-NN+^as3 z%bPyE0;k3uc@Bv_l|rwzdw=Zg<|O6JjDK`1=e5r7cADGozoe*2 zc1bc|#BNAl+bo?WrHJLjZfSue5m}QqR{E%U^s`+GZpX+Q-p^#7+}Y~+!9~B)aR|R1 z8YB0_>cfWpH#2)NS0|e;fG_mrz`vOW$@iE?N?mh{xlsv_N^^BzNps8Kd`zhKSAx=- zk*^Yj_uscE4G%h&?08=_z&_2?H`i3ivP`S_+t?QMnBBP5B-u#@Y--#5nN;&vaOqZH ze~@BXo`}pIs?&}YfqYDTZf(vDXrS$BqCyBMIMORk92f7*K_(m47Hf~=8~W~8Q1S*~ zpuYBRrr-%@wn|?;x~H(DgaG|h9O^6%L$I_~1X#==oqMv(VhA~52!qH&n^N^oog-Tz zT%wU3vB05K87G#H93T*nDCh+$w$kK=^`*}oCS-ki(&(K^ z|1IqhY_*F?wJw)R+?0Ai$>&z%P>$fsi_2hGHw`dsu*JQ-w0l)BhWZ(rFOMT}b0<0B zToZge3(U|0OsO`uZrh>CaloLQwIAEl5ao6X6Hh_~q$5(%d%FxZ?B?niKBXG;fDO^z z*N{69h}c|F_N{ix3O+fhg5%c+qDP&McyKeoh;LN`4Lnf@UkNF(|<#zeYn!Y!3@Yt0=|)8(z`y)X;` zm<32h7r!{OAW_)QB@;>;t@NK#7(E!;i4R(2{B+Ac$-mRsuWx&y0dP2?ts9upwajzF zu*7#0%i~3~QFAD3u#Pd6?@yb(5Dwe8L7ieo0xwI2Ae{A(fKz3?vJV!xFE;X$wMkW7!1-)Hc zW*kkF8nhVi5FqmpcEs8^YTF@7wRAU!GngJPen|&L4_^V^AeymFfV{a{kI$ZqepA_x zWm0ec^?#D;tx6qX_JtHmcelR<*lhzZz&g;!NE2B(_zhw-jgdRH>7s(&j~0)X-2^C8u`q9I>|#ufHYkq1Y|{f%xMRdxV~vi<6XBvc@2 z;(88f$&X&#xIuvFge>RAdES_JD98a>Jm?GUgG&&P4v)K8mJ+k5iDKBshoKk>NTl5|~&C%HmT z*=&WQ^@HgaCdZwoTuHSk^LAERa5wc-0I~R;e%JVL)*yGPu+=QsU2ame#JX#YPdxY? zTp=?V5tJ08KqYgo0LX4!D_Are>~m_>?&Xr83Z;I_OD5@aH{y~jQ+mBo|7_RnlTTES zsz(Ncmhy3=n}* zi1~;wJ3Qj3Unib7?2mO%F1;(Gt5a2r{3aaXN`cx8P!LupnHaH%YJ|Sfmt@!f4eBdD zFK6bE0B3peOGN zuQL21sm!#PA{Oz77c?ypQ9d`!C|+m_r;X)lnbhN^f=NVIvTm;&E$bAl<2gDvK8Z>O zmWz~GHEWcg2f53gLsv#-c?C-#;P7*Cx)Qz#^_mjrrDuzw6>0Jh^lz=^S#bhm$Gtj6 zt<}VgyphSMYyH~+m8326`zuTkK5A!w+A*!^qRl6%wF{RJM6>RmEO`WwbPY4y&U{9^ zQc@`Yq4%gRiJX`DmC|Xx z(t}?i``wg_nq8y9ojBZIh+v;RAG_Umj}9CuICB7X+2<)HJey+Z^Y~L;7@wp_F22tb zc5jII4vg>z8E@03sTL)G9)qi`nMBY5C`o8>e+8^Ua;`^_qj>@R!%b&^@xL-z>?qFhw#x)e|mL z!{;mUu%}NHZaY9acu+jKlm|S=*2fr(z@}bk?vUg}F*0zwQnSB(LG*l^`CnR4P{Jcy zK$`Yl}P~LoR=N6CJ`!1P7^X{eaOK9NyZ`ZchBqxUy7AClblV z?9f~aA)ZXn84L2pN^aV>=BLU*z&3u=i}>%M#82l#WfveSdTsPxLp^ar^@y zuIK?d#dzzt8%{@XvdW!Xdb?$w-fdovyWj2Z=!}BOMEug#IoBLCG0Jh%nQytZDVvj? z!#Ze>;JddLOfbMd#CDlalTT%#To~j9NGv6Skna+`Ir3Qi%HR5Hprv(EmsjiGHUUlQ zlR0VO0uvzk+3eBFd`A55-KK7ywPK95;sS+LMUT=um8T!YYcb-$R_lxXTl)6*FGDs! zs2WwK1A$sR%cg8M?~#ihv%D7Y?>Sq(ygBVtIjMie=2A2Tzq>Tb>i%Bw+o5FY_1InJ z@y24j1wS0A9e6kByWX{YGQIink2*1Gp*0ceX$-i2OSKgLXm%y55#d?e$qVSIfAUa0 z9vHYV^Ch+ZfFy+Ysl$-^Sjrv`jSpz7F{J8JEBs5^VW{~xD*5AD{YNvHCs8hdc<4DC zi^*pcc_f1NSkux{<^BL@hjPe0;gj(I^K zsoIWX1a?0HWyAd4O~AI~m@MXK29K)0qPPm`vCqepa4F~WMc7>62L)-9dUqYZy{VEX z$X=PoUCR3MKC|8#5d`v1wT06F-P=TPMV8+)vdFO8tkR;C_VGtUrCpsVPOI-?gClyO z6tor41FB4Gv54{6YI2?6kDSGUTai+qEh$lg93+QME%SG)_*4C2h>SONxty3bqtkQ3 zIxn?UxOH&I0pfQ2r%6nOqD0^~hsWmPF3J7pW(fbz54Lo@lrtvi!&4*9l zL%nZ`s$w8$v-rki-YTM(&iy+;i`anvSOCo$U3a_+;kViyKFr7Wzlng&;Hmm3|HTp& z9}b`LvQzOXs9i6WNBF_W+=1mc`PwqCJsnxbkG*h0Nt}x>a zEW7ZNxo3p`E2|WtQ<7pw+<97v>vH=C`ju_!DD&e7yjr@;hV?(qU5iGt%#+Z;mnd(J zOv&-kjUNjeTys8%UH%gdE#2SF(7!5=h`~&xw+I$j*hlnH*ov(4TJ}Tt_c;w~) z63$IfECwNW@useletwQ${Q6SZ{B|EuRnIst3wt{`^+%3L?OXW-2_T_TNucu| z?B`_IH6Z)O-YOJ=)>#$Aq7y&wzyvoFixmMCm1YazasX+Y2`VH1>YugbhQVHKSU`vK zN0`FwN{zj+vTB%*%f|>sOS0beIi_6sEsyC~t&wx5o0-l-w5Q_r=jWU5hh7eB`!B(U zd-4mBr`vR&Io#@+(|9?;&yA1KWCwP?*RO?P#oI2R|PZX;DYFJ{S@F&WLVc% zfWEu!<69=ph9v6&3`K(Hm7r;^t;s8!dhyYdlEJi>sLBwP4 zKl4Kcj6L(lTPow&N<*xgNuYjQ&EALpW6y@4XUh1r`4;hy&N7%q-%xNN%H53-jDI1L*EOG ze-KvMUW|8NsRJAgw$JlmkZkL|u>iKIgzcYiC+9)#2R7Ea_p|COqJ@t4(bq)mXb3cL zr?CO`jm5R7McigCj|RN2%77IHAbtQRk*~b3$g--JQtw(w{!!&}j1JJY*ic?+46jyy z$$U)nT(_~8DFlHuT_zhofRv%x*43Lw9K3ayK!zDHI{S}QyJ5(JMbe{HH!Y@H=8*PQ z>pUkr?!#yR16+i#GQSlX%&DVc zCI^5#Kyw;D*UrV8OfdkGW4!5?2YkMHbv!Cqs;0?28JU;F zmlDh6GkzCHE9YKs6IuGO`u@B4z&R%p>=O{sOP-Twz~qJr`hkMhu}04Px-|HJ?=9eF zQAW`b*|N{6-^F2f2xKRoyMEn~sh+{aBsrihnuGaOdFzVT{X5|pK9zqugb_KLPS89FuKI+Dn?mhW=R*YDJ^;UZ!Js$ni)c66?7T6Zjpzg@1^ zl`Now!ML%b-BzADw?kD0%6Mag%gOI*6ebU<9ub)pd)GGGUw*T2iUOWHQ32E8jPd%{ z?<0QH3Q5?tCGd?3cdHc8K<{N&FaNVNFrGQIo;N-)e@7LO+vlO5NQz5j)&U+JkjU3w*m-K!Y*UlX&9Mo8*Vdo1$}h)x3R;9aZqrR@UJAeI!a1K`00JOJ9DJ`~b8Zol1K9%W#_D>X+fPo=KzMrpFb7^;teSYTfl}ZXWu*@S^t@UZ=zmHHtA1~xFD(l zKLADEZw?IYq%(DwB&etTcbQ3|VJUSKQbP^l1-#)Y>2BKVvVc_&==D%Ut{?#}eoPPu z5EoC%zmN)W-i>)-u{3Bz=LEvFr9yy?;Whew{Vi6nXp7Us(AU?5Q2Z9))$pC`zC9`*3TNYYRjU`&p0es`}agCeq!riJSz|nmIh6MsQcy^eMY2pF93uFMRf8h5x$z&4H zs74BJ+)kujPb@ARL>_2=&%9pX$nKEi>4=ahv*P?VIN`DK&j||Dc}ZAWd=d;q!6*$@ zBqa^z_rB8gBY+^;4`dYnf_z9uKyF}xJ z4^t}H^4FZro}5SedPqy!E1f!zQaSZ*)GwLgX8w11Il0xlC4ft~9{JD2-}Wa(>PHcG zIpHa2`(lxaeIus-c0${O4*LzO0z(R5vvd$dY^pflg&Qfn#_8!B00=XGCS%ElN$Kb0 zjMAGg)%$hw6+goC|5ZDiy3x|LgU_!%whADbX_IM_7?M$(loXN`q`VwrB*;X??d^Jf zJ8y{7_X01Ljg{R{Rw1TR>+c6CU690gZ)>Za1ppf#6P_iF;AE}+7lCIb?5eL4Te84thtB*z+gU5TZSD59Pzm41**$7+hp8WU+VRohiMja zlhWVB;tPz#gH6wGERS z8kFHTRz?=!hf|G}laHN+kA<6_g_V!x|K8}o7#>}oDZ#>T?-|7f3h z5B0)Lqu}69!pcelG-09rU#CF7F0SJ4u6!O==0K1CpL@w*Y~Ys^Muk8ih=9ao7*cRI z2dnotMnoMcEqWyOxK(IcW0Bxgk(y|O8vIiI3w6;|Si6wGQu!M3H<%_A9XJtX=ouy} z{rTcucY9cgeZ0Tp+}*r~EH1FNGf@eg)}3(^2X|65+v!;u9=yb5y&~*cjl)>q2vEYP z%d8!^F&Nz!EEmd&9%?u#)V>9z^X-7q#piDO_WBa(y(V_$cibtz$ifpN{cvr~y=p2N z9(y%&Djz4tIh~P0v#si@o@b8vFrlon3^_RX-H;Y|<3fB&8EtKEp|fb8rjIKIkKQu~ zZ3=zO-c#!-?E83>@ zV)z-0hr1}-<#gE)rX;61;OtVAx|J?grg+0z(DajQ+WgPI93?;g8f1pHwQPmUYf(!4 z0!ISYw=}|9SQTP#@NHlWp`bvMfu#6{AtO~9;Ez@G`Iruo%o7`3xGqrapH8)=8g!Y; zH`T9&T1S+w@L6b5@P+ox4{4XfJ@wB=QziDZgqnTfBlAds>YJhpoR;82ND zCoCcdO}H|uG;9*7Fe(YznpUu zgBwdqd2Kh^)T=aZNr_?o#r(@CJiqWV;W%#mC{y!(yfS`w>7ntvpUKS3Y;5EJS7}5F z;8&1QH77=YXGBWgz39cjY<&oIdvH755oq5Se5S<>ok(N1>^;))VUTLrd z`f6D(SbqDvcu*TX)7cUGv&#_Vl)ncd1r0s6lQlFKWo}QkZjE#*wXgRB>yz$%R za1t2vR3>k~yJ)1;&N5d$5sEkphhDh zrDFaQ3aTCJ(h65=BG@PTle@pus9!b{2jipcB?WpIG-U6?7WiW~ zl3C+oR8bjwJV*E=2vx|aU?A@AEciiFIwZO7YqIXh%;^|2HZSg;va)gtv*BNN*d4-Q z5Xhn98dgpT)blDdDuamyVreSy=})b7#M_e&;w^@w3b{U*>bHtUhe^2 z`R-3K_4I~yCP%_m&`TU&Gb)8d+EnofuYA{l)!4M z%b_9ot?9(Rs${z-nO+n26JcsbMx?+hpU&f)lDvM=79qC_c&SQgtYd?gmey7gep~DG z5RbZ_v%>!R>-P0=sc;3{ecL3f4P;DkkBVF z9R>ZT*~!?Cf(B${z)b1WTL3^5kE8!NV8Vk;>-rw7)godS-;fg_US_?BjKY^D}dV!RRhYgKACS&F9E6;RU_R$i8 zaUI>j=&mCVm11@W0E{Ou|31EGRV@Nb1@^gH&>Sg%B=iwf5@e?=)H%GuKY2#_%p{f_ zwal*H<xbDFCt*4ig}3E%E58sl@NSv6U=3il4*)Lv z%B}Fad}4D2=&B>?aIjTO{Jv8cyn)8cMY1Ug2?@BCWcx=E*z`t$?orqaAQ1>KD4z5Y zm~30&xt1+Ie)lu2_Kg^UXRLJ^8X75CSyOVWV8X3ufm7y7kMXm<^<^cjCX+$LN4a9c zBARl)w`a%4kyYh9K^yCP5QrLKbG2&C6T&X>WUgdtu}b%wXt{^ra~LT#b%|lO-$)M$ z=xc#eZ<}(SU*obT49wR{b4swLY_?Lksj2DZX6Kj|b(-_P?cSiPB`X}#Qt3cQ5H!!D zwf{-98VAzD`Px#2X3gyEY*H4{_xz`S*>HhK9%U zio`VT&y3sYVs8q;V*ZW&RJoCR`fjA98svNz6F+~u%~G|;#d_JbG#G}s*>+{N#let^ zKy?dRdU2U$s%Hzo-`@g*2Or;J8!jQK z-n?aGMuEAt_R|mv9*q1POUOHG(Lfp-<3RsXh98wHfKJxu&23RV1w6x@CwrMyxOYbI z$9+;t3j1avA$9-+jIyyK@27p zf~6$GM7jHfE%0WbA?}f$nfc@GVM|al`}cJ%8Vm^eyMc}9eDp8nzAu>ld;Ms}kvdh) z02Tr(TKc37!`103T(&PYiw0IFQ6SZ9kpH{9i*|4nA`KU{3Md_1LsrRMBQ@axuY!?gSv@$$V`@xCmv0jtFgYvHdoNEvyw7YTSVvjD1jwo`Wr-Dur|LSIZg{vZS%+kk!Lzgq;mq} z<;s{5DhJcuUu>*({&>jGC)=M9y53y{Rse!Q2Az--7x^=jo>AtKfC^28?Yj($KX4~7 z2B2-|xz&f->+9_l6x=5c{OFN_sg`&~Vj`VmwL*N*_)O$y=94?`=evFaAMnXMZAxU? zJ&`|>AQa(_&u}cUqP#rt2>Xet^3Xb~nS2CHDweZN`*8(TpUv)H(YXc?F7pS@Swg<) zes6IFS20AOX*RanBpV8hK4^Zb;FhoQccaPlfByU#iAn*(5`G#^qE%gXwu0e#yun*c z4f7YBgNHafb#}QSm5iT(1+&sTVfk;vAJQ{1DJUw2^<%w5IPzr`NJNXmHb8)Y^&Y&M zo~eTBgFnH>1RgfOp1!4kYw*A z#DJ`xM{~6k0xnP}!Q`SGg<8)1i=B1)(~mGeU?~7N-7Z#}D!456x#iN>V7|kh<5NFh z8gb5+p<^k1bHBK`ab6{&1A*Y7Aqj`^ltVw=kB*51*rN>IzLajR6qrVV-|m*6V3Dtm zRi2)nczJn&r~nAOY6Sx~>`M&eD5O0U3NlI%pdqus3MEUYZhTn^B@Jumu9BSi&aHY> ziQhTWEhf?_fs2YtrbsAQ$imX{zt8>3vtOxqmK0yBAAzjL2NNFJ^)@6dB2tdZR3OXU zRnL~i*o1#2n(gpLm1?S2`2CTbo4ZB1K*IL2?Z?B#!C1<7mDvxC9Gu8K&mdTobZ&?2 zByf`0M@DKYO=2B>)Gr2YNK`t?$CDj=x7=r5uRe(Di8p?M{Zc(9OGl371DfdA*<|jq zOgIPO$)sEw>y>)*C}*g_!NJp|nyn76+o#(@8)rlD1T*{pu4;Y>g5m4mzkdVJAPht- z8|@ws<8kxHu2%*`P}{?Y^U=yPTfJbIR0rp${v)o;>lOlcSCK0csDJ=&Qk!|;kUHw2 zX;|rSKVJm``r(0r4&Z1HLnW@hix!qnXmQvwXtvb`&}46S_wQuZslu{OgGKZoGn34% z)~-?lwG=8`h%seuYT}x^D0bxLZNoDN5Qt(pVz(cfdyGi(R1nC83Sx!8qhn)hUB3Lf zgc2kq!opwxsUmS0tryA{emm{OIo&~EC>XkFeUamh&^pDl#5&SDz+p2gX!Yqk(x`_4 z9}7wbR=CcGAbke#1u8ZyyjElak}R?0=)KBB;J0RN%+j4&<;!C1Bnx@{#sm1S; zvLX4jAI_fxO1X8vv;h;3&e(6XnVXxlD)6~XZBoDIIC{J#BrMR$@KjeZXh=&1r-t_o zK%*fLb@i|qIVs`5nY#nOLe9i@5E39mV3$^1{@y-RP{8ylKdtw|2SvBRa1I~O6u`ah zl1jFFTz=}l<&Z6U&J9Am;jI&)8W@i=5i4-Q(Y=2q;UWXND5zZiMvQD`D~A09sUaQ2oi<>#s3>!h(y?W=B! zeY~Sf5JkhDNUy+dXPu42A4BLyewu$EBRzenb*FN+#ArJi zx8#Agnb=4}=sjn{T$hP;We8n=;LzD>b+H^G=@VI+CW^Yt~lb?myCIE(22&@0>5y_i-qQTn6}qwU#jJv&&l`0R7eWUYXv&B zf*o=UPHqfv1G6 zrgH)0?BDa!Ib3xSxpg_J+W!OjV~?eGh*j_4cSID0?w%!tfqpxsVw4TJscf&l$L5Xy z#=;V{$c;7_8@~DAJ?IVI=5JpJ62IF?ut3h;B&Xdf7B7)lSG2H;T^(KT-?}{X%(~B! zu>^JsjaU;>aboJ=_<#|#4lrgT*lz41ze_M?dApspxasWtB7#Kc;tZV(4)HB5E^HU);(O&P{_I=}qvtsP8tMnEycDzR*Cx$E=wcKU6j>@Qb=M78V9q(d`~-G;LV~ zQzxBeP~aC?ICHk6`Lb6@&`w&-AcfxwoKkMN{Tp*(LFVKK@u9V7n%q1T59REC z*<6&KpN!1zRT;;X5R@s^z;WKeAs%EoAGDbA%flc-ajuxM zs*4UkIGCPvm$P)R)j5K44d&xhCM|sP#Ve=;8wA=GW$=$KaFm7z`BUP`5%@UrOt}*r zoPa>C7N1QyVLypvm$<>i=fo07HE`5Nbv=XTN)5f`2!X(Fxi7{V{X5ElEuL3zmrI-fu8NpguufIzuy)pEEzJb2JFFYT z4L^1@6vLC&tv7A_UQ>)$XOdLGzr3|(0Xwt`gAp~)=2~x!n7$%6LMFNro^Wu=#OH|- zYFi_A>Gn2=RqSf{Mn@$wGO-*;l2a43m&`cA5c(MKjM0JB$NSq(Z^79?93*jfLAelu z(-l|{vX5#sv~?qS#9wxQ2>~$mhImVm zrmO&*u-$Z#br{4wCmLtmZaWzcf@2F{5ERrW`HF;8?SEjI?FCDOJo{|sD9R1m-pG!~ zJ*vi|8$7%d6Oirwz5W?bx^M@%Om}v>?OT5+N>EmQw_%I(;UY9ir2=C0!91zPKcB1p z&ZzH@yH)dLON6Lu^Il@N*yCEtHdB~`1vT0d&2<-6{ zqS=)r8m%_D20;rA*I!l+HvV=>JU|hZWR>2`%#6hM(%!RMxu*M_PvCLExWLk*9|Xr> zYoEd|8^kzKKQGs(ZZ!#~c)m-lm>yUB0&GI3?iqebb~ZMhChI}m#`e;c?&CmFeUAjt zg`#<*YEEAE@zj~(U=zA*zflj9~YG4(|l5C0;_U(fpK}`F2{;3VRa2X`QqB}sww}XNT)xndVoh{_J z{nb<8*1}zr4uWvLN`l!79Qn|@)m`dquU z=F6@ZrX2dK11mrzuozE;i2ZOHyZ>giG_~Cog7l6Isob{B%(RfUM_TFjo960obp&Fm zYlswuPNz3##%&@5F*2A135P*SMka7r_+6EFMB`0K!Qrs=CFTo5@)Z>H4|^@etv!tU zb;DX55s0gy>ImOb>}`O71@dB;snf@+J2SSGp=bh13^ATP-FCNbSnJl)p*-mF=LJ)S zu}?>CM#s|C$2+)IwYcpYZlq>r96Msw?Be&F2TSF1XR^dO_2$caH+b;6)wj zAqWvV9KJF;{gf%2vGMl%fIfXKPwCkYJ)CK8Ix-enKBm{TT1fNzcqs~c&1wpG;uE%~ z4!Qqm!T-o!feVsefQOa5fZoL^l;-&?nMJ|l&W)DC1nT+e!{73h_)@We(I3A#Qg9U$((WOM7TY zKT$R9A!2tLoG_qv%x1$9gp4~lnVRr>HQjUHVwYU<3cV4?PXj8%R2F}Wb4t~#<^aoC z`(+n_u%Cd>Q6JPWI0jb3X#TO8?P4{FTAOcaiA-UmfxPoK#{i@)?p8FG!%6$j^$*szZ&2p<)Zx^Rr$~ z=LP&aqgX=RkEV?Qa%W_-;dLhrj#WSa>~lDoMVB1G+V$dXi9& zTH=`BxAhJ`30!I9zLAH_e%i)3=X4)do7;s>HXpU*$v!6RvV=R zaIlg}f71zG9JH7}!v)iHYMiY9Arik*c7XA~oKFYdMSjqr)BEXQ*Kf~iIOfYvFKE2- z%Zf@mQ7luuB*c}xQTQw~D&Df+Z-eMTTi;!4^brFD$7hLyZSEK{Q+Xcz)I~C((-IRK z%C_6`ro|s5*hhM{qH455Lg34(`4=b%DPuJ^`J~V-9y&Dm?XLl#qymsX4a~K+F!n5t zs1ay|yq0Q*LOEI=q6hTYm_wI7XRM+773UKwPYfi;D5kz?quLF~{zzvu!2Dq3| z#cFa?v4cM-$YB2uWVJz>p9tq>cWMEg>aFk@ORB8RO|BbWw`&_%5I0w~5O^9I=K$S} zNJS={K=E_)o~%7y0=AhD1_Y0Armwa#01^RM?T%~+Mv?Do%#ySb`81<*1=dYE6Bg_Q zpI1OF)}PRgRg9|yKR#h3rRxn!)DMV7z~m~xqtgz@gOe?C@=wAw)DCqFH8fyBN_5F& zGyONeD5O=e#L=Kd&~QUnY&&+r#=JUkHz9FYT5dxfx8>ptJ)tdepX@GL^vi>w4-wD9 zZq8OweB_qg9KQp~;pppJb36XOMj2&_p3t0%g*>zB-M07tDKYNeQw19-Sx@ zjS3kJ2eaT2G4=PGdHyDJz+gI3Q{3MwrO8TOcmCsCHNV0j%2FL2Wt>-Gz$+sV_(O^+ z@sC-oAf9`BRxCQiUmDXq59RF;Mja29`K{Jw!y2t_PYLxqnb9pmP5^556S*y&l)&rt zZ%$)e4<6HX*++Y>=3}MXrB|L!15b0bbMG08U@~$SUv_>PPc$eJA-QQFr_s=nT1dRP z-)ih^YVUiat(Z*Zj{0=BZ;o{m&<*|&l1@-Z_J#y)<3~%BsX6Z-UpEeTCl}n_pWx1T z|8UUy!A$=YS!9U;jCg#lxS`&4Q^>c6DrA<0zw`-w^1{Td{bLf0 z>=KWH1>zpf-1@>Dv!P{>%xqP!>hM~e5vP9fG_xd|wa4{c5GpjzrgQGt=W1J|NO%?H zlJHPfE-;_QlPlZV_1cNNo>RB(Ct*vS&!$l4gojOc5H!1Am6l)m&B`?sB7?B`$-Sv` zkH)w6+h0{{v6NdmEb4p@e*yipw#givOmF4|%(R2~F|1lZ?ATyTO0)GwLpi4CHjVK_ z-8z4k0-(dQr2&HdifywN1Jma=_f(IVoA?5NMGsk{WljNsNI=qJB5Ej)Zp2kEYs|Vh z^_oF>AT7Vqc?a=h>`hilU=U;V^54KrYrpowgmlCumVz1VKwRrWnU)#gj@FJ7^(`iB z-fVr<=F89p>ZO0pgk%26MJ>y7)Trytz$yg#G4_Z+k4}1?E;0_mOD9kzmQ_|(=I8gB zv1v2l{LdyJPnD=qv0&X~(U6v>>zxwsvwsALAv?W=e2}1?nf7~a{!UFg0M*XA>un7b z2P4mR4m{}efGG!GbQ;sMJ*O$6B3C15ub%Jqn>AU68*N+vydA943Cr2l1tKkK`^51;=Z+p-3gMiv(cX!SY=Gy(;-1<#1cIZ2lHjBfH3Ctar~Vv0pJ4b zQa6*@y^ft*$1NHrEL3T*?03Bmi9?Mc1A3145slj%cfgPW%K|E%Rr9>&k-sd_HQOV- z!QDb7%l|>2>6%uqi?7>2s@sh07e6vl2J6psw#5{EgQ+s5AJ6IROYk6)zCluEPItY< z6=pS_TR9MCmaKTp_q8Va&@i&4N_>g#5^E%A93MzGMN z+th9c*wSf(o!=gJ#98cX$%gos-*)_tYt2^<{g2J{-?K!Gpxoo*eVi(Owf7}acL~@= zDPx%GjHL%7?I4l>wuy_S#`!`+dMw1cN8{i^HM*kMwkg+EJwWtyZp{=L7@HD9gXWg3 z(QEC){i%ZH{u#HWZhh$_m4I1`1^MMBEezcXj01Of4ADQzZc!ulnd_4>vu$*kz^g=Y zw8wWqe$y-Bs-G`T#YY8^pnSSzevl)$gdE{&x-35L^nF%*UaX&3H!B%(pzDTXzUHAK zRySM}#z)0e{ZxN8n0OI3;a4ZBFeLpVJ_k;K4RfF5J=E6_0rFfxU#}9dBbw9UE6D(h z-bxkY;Qe{0m-SWuvH7n5xrijLmELkHyT}kXTB71^Cq|nD?KgtVH@ak((=DeY@pH3sh>2O?`+;i7g)HmmyU^?w|yBirLkpi?k>R1FBUfSCl#bvxGo7)jY zeh^3#{@V~Iy#73XBDvojc8PqGZuu-&IY5VK-o;0~_R6lg;^Tyx4fnmr^ z@7h$SnA_?V_u}<8Y9cC)&PbX8gxsy#0WpR3N?%_~@v^kn7kA2Ye=7cvGrW8?y6@PD zrjQ)V&3|EodWD_U3T9X&c=o~BIz=kqqzjQ5Cb-^QM+dZ`0qYFxCtOet!@1^XP2p=S zzFYJcU(FrNpadef0e$lAIYP6ly9`%lkhTqznT)A%12qSlrO+HR99J*_14Ic3ajF9-bI+8Y!iy0h`>Go&p2z}Fb@7lGQf z1$2UgxQE?G6`osSg4z0#PRvl#Wx^{HF7qN`swl)%O-A3b0|f^0Af;(5P(3cARx!v771!|JsCLEANdq%yCY+3p!(s+K?+f| z=9Oa~1>_BpXKwMyq zH4aBDtp2OEMQ*#*q!;Kqt@SQD-6{0;4TUhhI*8%xs4ib>`P5v`M$(GX(rJR!h}K+m zvYEW+MU(Zk6g)lV6)OlroMQgpFjr}s$W#@G5lg=_y|?E@N+ ze+kWj`?`xG2OnKIYhenDt%ZG~{lW?MuOi7jBPQJ>2tgMCYl?ACm_{baaT-YLZak zKgt@sh@Or~e$CL35W~(>Gn=h8GKd1p)poj}HX;l-!rY!$rRe0#(9Mu4)HHC?_-N0K zrIaT8wAMk}g67VUYFb8S(J4CcDdZ7~zmROr1)(=g=W z1$c#EMf-((m|0=5pdbvXiF}kKhmMwOpNKn+W6JTQYq+u0Vh!{kZXF86;#!EGNeE4bMU8w^J zmLp*p>JA7Lk?&bvNGJ#FRwmm-Vgai-y&?5|d8U-Gu&`TZWN0MNZOo66B3WK?h(sZ8 zE|y&HPFnx`3)>a*5#3aLYMglq$nR4U@FBDA<>SBfCvgV`e&5^;gU48@KGT#8l2=PX z+

M@KQ4~OQw3JX!AJz>ptNLxzd^#s;K)C))I&cWH!4R(sQ%3xa5HPdhe~BGhJ^k zI~0Bzu<&e&?n8ynsNTJ%w=72+o?K=@jhMln>@lp~$%Lug0tsTtO-l*Svlb20LeCFo zhH*{fjj0&lY~S4nvm8_wi|LoKNEi9l@SfR1fwbNkoUvK66h-q`{tPo2tWOgldys5J z$Q13eC_I@Bfgd9sD+=umX0Io0OYVZ_Pi&TIT=beTj@HXCUpfDMbY8Spwv$>{AiU+< zEhm^sqyC+>;MdT(-VsM!sN>NQnb(*j2l$PAoe(9i`rUqTWV2~el+*XE(yO8`--I24 z*2!0=tWmb~f`-?cz6Y(hYT{c?W(FLX=;+{wy^Kt(4#dSNQT$fY@%Ph-F0@j$oa!lX@DL`9I)y;BJg(8 z#kLgYZpu_8d*z#cb$xz$eRuv9iNPvS(Kfmn>ItXdk?S4C!c#5pDt>3z1BYzN{G$9{ zbjq?#wP_fMNGu2eKb=4zZDWtWX@uO-zp@_U0+d1izyWnCMnZ-`AHC+~b#Nf(hL;PC z1I3hr^p_wZAT}g_?s&h}EkM#a=?8eOKoV6E*uzYE9Y=;SLqh|=fi83$PqPax+Ib)n1fLoi{G)gQrW^kUGE1}F06 z?)KPzI<#LkD7`i?`T!RCwz`@R_F6)Hz+K46>$N6D8B6OgW>9B;Pq)X0U%u0>ZqD(?h9}pc@ z76cc&PzNn|T)Bp>Yz;I-D#H)>HM{+Mr_d896oq9vZa%Xh6Y%M`UgIq zd#B?+hZRAaip862Q?DrJc)A^^td8g@d!wMJb$~5<5h6v;QlQQ$ zr{Iafgzmj3oUbwL2E4!k_jF4r;JPnW5Q@@i(25Zr6O+y1=d+o`FBwC`_}fFVWbVlu zrVjLC5!a?cD7&6ILus~!VnfLW$%3p}rY66;_v8NT&v|+c;-@dXkf<^gU<@rO(*OGF zl?v+*ux%KK1CTyXY2+RcA_W?Y|f{=0ttN>;|A zOqNlXDN-p@qrqx_I1~9b;$6~CMmnA|n$!K&XgfpXL}*NQ$5kG=KUCnQQZ#RRjs-VU zp+t=AXH--aaOPBkRpHY5FC^CiY5}s`f3{&ts6wM6`c>sA?yrJYj7fG~1+)kW6t{E& z12gmI$ia&d@{Eb0I^7nXD&W0L#Rj>om#@T2ORS=er#3s`K79!sZXf!|6^()v9*u$Y zD~D}jEv$B}LcLtGMDg%bSgBB@Uc+C$(Vw1xk0~h$YpNd1OZasNgEwn3B7!=QCR>ij z?B|~_aqbowl6WbL$;>~vvliA`J92(-USD93C2#BE6SrH)~^t#{b zN3H~1_WznFIt(58nNg*ufw2J(?_tisxQcPLFo-nuxNKbnmQgTPI+3au!sy4t`JSgN z=Z?FixMF3bw1&LPAfknWV@852BJ{sAf#Wpovz}s%`UxZp-sVA!<;5DM|(xX@ephwahyCWPg__FF=NC2!|Pn>N2-z=`jxfhEaj41z4skuGr;Gh0uwX*%VyExmY~ zi!YFLQ5HGH__+^kvRgvqF*y_ei+V70?2q_@9z_LZe6o0}>)pZHfsJ-B82yKz?}F3) zdMhw-{d?%nJ_nBSjP6_&e4D35V#P`8qZ1pQmWp@2_R3Dzn{O}iVK_{B@Ur=%cIVOw zt~`XuPcncq7Iw{r+;4=$qQ94f-Yst!{{y2@#`{rvD2~F5p1Z{^gUe@K2i&!5?<%j`-mpKUT{?GfZ+8hAG^ty$MW)rJpIwR6s`9Cp|dI$#fYGnSA3tK7W;P+V66H@;;Gx&*?qH-b^J&%k zx}o1&@)Y+DLdw|P?P}9VdOARy#FdGPL{RMnejuy#3j>6nUOU+Si!Ms)=uXNP{^d+& zL*F}fz!?`8=2?9Qm^AW~ruC4KkP7%$XEyM~$l||}^sF%Ldnl*J#j!YS3U~^<{QF+G ztHpb^(fvU*uk#r+U0uz>P7dGp`6c*Wo?=9cG0Wgm_1f5;P{^6$WuA6FF8~Uz>#7gQ z)?uGk(uoiN6fnnU?J1F%J{>CEX#ID@{|KxwWIV{&k1mf(^HN4>N=JI`2NpUEYS9>G zf^vkoZS#-aD*K4dX!MtoG0o~sGtys*zn$;s)`ThnJ(XUga@*5EeLZhnmQ?bMNfH8t z8_KBLTnQMVqnsl0x$HLe!Xw1?Q6mQvn#_@2u@IcVwXUVGE7*_3fNeH1XMqD*Jp8AA z_gm;Z$G$Aq3c&<&QEc5*a_zRXFfCiyMw*1_07NOQA{My-zUiCf7wyyD5 zU=rHgU%OvSf`7Wj84zgj=*<_Am4t(w(W$U^*+{8A8+UOLlG7SBs=^X{uT@5OUSF~b z5U4uUXjS!xsskk=*5YELGxgV`@WEBnaf&ixo-9`J+nuOo>lybLvG_dnqw)!oZ6Xd| z8~Qz&1C>n%%qkihLt(ha#>VUI_#Bde|J}N2)#Z!jUg=BR5}>j|Lk8$n33>ms0-S~D zZ{nwmS#b!HiN{BEreyInw5&5(L1T;Wq@pn%<4$NGnI7yCp@Ais=BN}Wq z94-mlL2u8Dyf_lV8~_a;gIzTAQ)PFcsz4hrM|J;^ed&H!e(k^{?9cmSF*+_-DhAtk zT6cwSbxg<1UCEG$%a+F>fc}AQK+8H)OUkI*K;$uPRz>y2(rmis%ctQqm&1SFzHiG~ z7bbO|!c319h3i(}0HYrC8h!k zuh5WB=RgojPfC4!O=Y!J#FhppZ25f%ZfxTXU+>?aXK;Ndiw?%3Fn zl^N=GKjt#Hx`DwqVW^Q7 zFY8eI@aq5+YFr>0lk~?-TwFZt6LIkYnFv}UwSt*!Bw!wW8;TyWRRn>1f)Ow^s&oc# z=TKmwW}Qa;Rm%2pZ@*Osq{Z=2pV9#h$! z+9%=veXo~LaB*R6uHfUFB}4Fa?A0M{hp4D%+zPRM?a8+hJ4}_%?QXl9jx);~-^I`B zvD?!-{Uh~|9G(|APeG6*?f$Z`#G|+JqMBMGsxU%mSRlvnhIYbrn&y)pEx)0L!^t}I zMnJJ!Yqq^RcR~#|X#Ci8~Ut?9l&?yOCmBwD$|O z?4;E2^;Gb$5`G9G!zaXk7M`dAIsp2IjQb7~3cA)RD2 z?o7iEkKeVX+Fnny2V*Mt_Bp3vz=_mCv~1dJ|RaqLnc0 zF)Nd-uyNyi+%F(9Oy)EjK^q#ziykr`OX+4Ym!U}dT%O43BDY>HSs?``I8LS(uvp(ZgXn9-yYMc>k8AwYmw!SpyL+*Gl; zh+U0Kq!T9jkZ`y*^4@Xx_%sYU(o)326NPu&&i`6B%| z&PsBY-8%tGW*WZ-(_8v4RgH>dQXU@gSG3@zqRbew10||X$N4u4v$k*oV2^B%d6#cu ziK7tmINqHs08?%1LtOBu(e~-)GqqwUXC7galbJX5(|8hEVh|!=PmA1l1rg!uHF%u9 zcbG@U?R_luhv|?2a;R;$ZHVmR3nC$u;U}eAfZxbf>?kx(y4r<;0~v|Qf{zKxB6v7= z^JcaGh(bN}Y|rXSM`IDU*JUbuUCtKCX7Rh5byVn8=(qXs&T627QUSjfV3A%2&w6Z? z{LO+ExvI-br1+DE>*$n}Pm?k>s4C&C8FB^fJPYVBGpBbo9XE)k>t<|>x?Qg!e-aC_ zks~{xy^2ZO&^XcJ;pn35{(`Hq{jjJ zw$a+}+UU>Y6J){qCk=GFbO_Z6+ZQqxg7`lLid*%MBUW2+varFZK$WFe;`93i`mqf?fFmoa8=_u12Yn=xBPN|n}* zHfwoh2cf&fgYCZW!o8Rv_71%W1n4+=&_wMUU(S`B>ejvS|J=iwLAfkcUz7c$699X< z)A2Q&xVS9%xhyaw7by79Yp_6JuYn(i_z?()Apk?zBD8%#)e6(T#4|IhE!~^g@i6Zv zV9b?~Qlsbf3LZdsRy1Q@zd)&I@kT}=4QRUl+x9Qw-mOCLbFQT+!Yf0v(DO#ML3^{= zu?kn9`{kw}Jv~x!ithY%tlZ%rW&4#gZr+H!%9&CF=F^`*Vea?2;@&-`l+z`^nqj|n z;oKUxGR3*5T&BH17Zd@brEj?Jdq6TELSJeN{nq}45A5SPvD#$oo(j~!UM|-`9X~p4 z8NL%9eCI#x%1wDlq>%m`vy17#jD_f>lWWC0>OKMJdb$k1fC`DeFoi53eLX$GfbyfR zhfvOzb-WU)U5-HO^LuTp(gc{%zl9fSzvEtrz`fFe{5sTxYU&yq&E{*(bEP;)9667*i2Xi1RNARF^Lp_PWQ;10VHXsT#>pl-iN;}vwZBu2Q*{q^)dTvvFSB9tmlsa z^N)Y*=EPJtP+VeoD=bNz@jwA7N7=i8A@_7-m<+8MUW*1$T05j7M-(aHq9?O4O zz)@nF{8yl6pQPbt2qxPiD)|Kol5>}t1h>C-1wr%Ce{WQ#;{V>LO2u#9$Zq%QMoUst`9JvIUtsns)p*OD~N zBcD4u`OqN%cf4oUUIj$u38v#L^M5+uml}? z$Cb}_b@kR5MqHVYN@ejk_0*J7nHmryTXA@!DAO`CA3nv=Vj(6_$WviHa5gkFV}hk+wy9`i>oZd|;Qy#%r6_{p6UGASPSe!0DQjpYzsgjxqG z(fn7)1c)47&x#Tq1W>Ls66qMP!hwn;wB!aWn45Q8in3jrSD%Xn`tuVL6M@?A71)J; zOWi!#4&8%91+)|_IdZ}R0hND2AeQBkvNgK<%~JP3YmW5FN(OEba6rpBQfJcx=Uyf% zJx}#I>!Or*>KKPKogZMC_brgPeCdL3qos=2d)dd_lV*6V-@ zQJ?N5Olf6U0(E=Rv5CS(Q5-z|!wddNEWT^I;nA^#a@LH~!zDE|3Qe@QR-8?oua_}H4D3ii59xK2!>oii2;^-Ml zvnN`MAzR4z`Lw2+DQNWT|Eb`-(_xt^NJzrjL`d2+H7J1t+v)nYj zl5Oi?LIMWS3^51(@|+qOPxYyb z|E6T-OK8-a1-pDR5_|x(nElV!a-0U%ph1p8I0J#%4AI)iQmF}p{loCrOb|htlJUJf zW~nZm`dV+7jc<&aQVWv~BBRr(b(#laW`Mt%5}{_3JMN}YTv$==O??Y|LWErpY0#t*tU%OE$KU?UzVk zWeE~5zJr@vq?57R7&ds46;1ApBpZ9vmV!^&hCX-UH+pX^99DuZW^cLwXnZJ*^UL=> zovJ9$8@|tZ3-&}4BYi#SV0qfSH%N)$3MVO{WUyiqRR;jS+n?^Qrsu{Ebi<4!IV5sy z-)ugxVf^!e@zEYy^PVP)g(wuxbhYq6-r6B|T82v$k@s20A2b??x5H5#w6U4q-?qr>9ln4XfidaU^xDzL+D!~F2c3UPB29Fb8IHh z=PpYo0)BR)##$BdL>eD^`5fqARU5^B#ARB8(6XLM)=#inX;R|QSP6572wF9|AfkTz zRgrJi@me)4H!qCv*G?zzF98p|_G=^Ng;s^i8>JefpO$MMsb)BQ3t0-80A!P^#pi3#3tX|X-YcC96(Px;MfCQ!Ab(u%@eTT%wt#TxHEF8|Q$7Zj`|P^*Otq<5OXO;Q6GjN_6&?$hTR zqUKX0rPRqe<9_rtvAQtlX6+5zH6j=(%Rv`|kk}N&FD^dR7GC9_BjQ7FTTDY{YV?Sb zp=8#EB6k+_p8o*q$@)me-(Al)V0I<~g70db(n>L0R&=;M#s&A&FmFD7sCiY;g@`w` zi1_(ZT?;U;fz4-Hmx-RvQsZXW22Z_j9{=NH{ITlI0jHT96{3dg_ewU2x=ptxa;kRC zLl$g@FVa|9f?Dj%{Ic-zmLA$wTjc|&iD(N)?#K!OMF_4m@bP)J9RRd!ZuYc#-tiUXhszG{pfj8SxP1RUGQJgY7H0~p+j2`$Y zlMByJ^!I>%p9*^E2cn{)+xZyH%#SXkVx`jt*KO@QH@BMi0Z6^P8=a0f#wJ`2_*~W4 z9HGre;0le#ORT$IW6$+jW7W9Eo6%07kepRUIwE&-5o45h+|1d@Hr6Ly|VhVWM z%(qH10E-yAS@JVEfR$Q+^q7%<9(t}I?X{%w*>y@z=%edb-l!{TluxDMhwb|SGY0;75%u2{7RcnlbwqXbuzGA1Rc;g__)P7smXM}R7~5S8 zcJ}5jy*DQ<*AcWbOcPz8mh`pE!K`xDC7A^*1xVX~*LI)Cw>ce;*J{x)@iT5e)g`3k z(p(kOfQLCGE>Ha+3vS{qQDW{Dzs}m?wAE3&Z_&cPi%uPT29hHRM^b@5D1nRDWs$(n zOW?UaE7X8nEWiY~o+WDii?z8EN6M$Y%IoVt)yoS-&uz8s^EIZviqf|rwmTsJj0Qj| zLRPBVeMOqJmL&rOW8I-G# z4?GUHSUa&n9oaqW-pKRx=nE}nI8%kqwrP4`(%#d;#Du*HS!qgGqu-vLzyE2@BcDH- zouVQ&pfvIcNBlgEdBHji5J0$Q7Nzmp_-}T1tAKurtyo{f`_S?HiUxhAF{b>)sXk_Z zH^mCJ@5GUrd8^B;@8osUo<)l{&lrT$=BJAWaO{y)3I7k+UCsVLY9*k%hq9Ar_u17L z*?Y_j!(SwKuIS&g>5;vGk#?*byFt438sj(zT8X?oc23TDu~N-;mc)BsLC!@;U&ea+ zG*Vd6#XQYrca3)~E2a76WY<@J_3eDziOkl;`DP-nHS5gVi8rX?ncAo{^s!lksQNs` zVRnWz=B>f*6BU*JrrTP;D+o{^hdtIwL6sc<;eT}n!#`)az$b)l%YA;6L>I3dIvwXH z-aE4@&;jv2CtbNc7MEpIoud9PQ9+VRX5*T72knK2Ip7U0q!B*e!rc?C)V z$w0GczT-==Q0O%&)e~}vz^O{4nEJ^?25AlK#Nw}hsi5MEIa0)I-^=nN=#_Ne;}$)W zG@DsNV2tGCMAwUxqUQ>tIST7dT5CO<&S$PJrA)bEcvz_;A@iyuq~4A01n?&{U`@^ScTBqu=5Ct~o;7 zce_QRR5((R7v^(QJaP-X{pc~n_(2BAO)tmbLf}iX5liH1^4*!!QoQ&y_+0H831#>k zIJ*BQ=>(w+0+Mps)dyWa>m|Toogx~%bR#wy_sQ5^A$E+@WkNqBx<|Tr<&jFSIW&S? z1wyrDcj>`=Da*4oLBH8>MqdW$Q!+x0Z9GJzbIDHL<+MuGalGC%+oTUp>k4p#u%G3< zr{Rd-d@{x#bj^NZo6zfN5CpGB;z1wz2g=B(TkZ#oowK}^hbjY3-zvOgQ;g(!@^(gH zfShtF;r11WHlC~}OB%g4Y-kafIvVN+8FHYycq=ufQYcLnQIP>ErEz2PO^Ry9T(i33-lx-I_xz4*IY{6At(bZDZZHz(Vi>P*}Kqj+(O z?xA3cm;yE%X2D$=sKLKXBbr2g)1Kvj^R!ufO5Dz%LnNoKYk{6b z!WxFN`j$W(R6y~hD2U6$lEMetGOMCdLJNaDXgaWs_V7F3+Ij z{N)+*vVBySc*MN4>c4CemiRm61c1#8rw^@$z3pd_u+JM>)l_!LJ@CH(%sbvuvUWQN z{c{`0>e;omNaKS3o&-21Gt-z@oI(Q<5!m!IOBc{tA#-2iIbO3kpl}u~|3v$iojkhW zX#(5Dgj>hG8FMMwX2bqm^{6PkgnT*%8S34ZNW&%}gFcbOc!nDCC#3XlW< zSnLZp4{xvxWh=D!56ZP-nf&0$&D{QjWsMP7n+{uC+Ia4FWevdnVw3I@%@LKDvAQTyzc1Tsap}tKTAxllYXb5(Gn5g)8xytQafMz~nl{ZH z#oQ*Ly?uKK*i%5X&i)!+;HKQ&5DE#^vB7MS8$s)cflB4RYME4mCT - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/branding/static/img/custom/logo-squared.svg b/branding/static/img/custom/logo-squared.svg index 15f420c..5b2914d 100644 --- a/branding/static/img/custom/logo-squared.svg +++ b/branding/static/img/custom/logo-squared.svg @@ -1,82 +1,61 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docker-compose.yml b/docker-compose.yml index c524a5e..4a622a5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: webapp: - image: ghcr.io/ocelot-social-community/stage.ocelot.social/webapp:ocelot-${OCELOT_VERSION:-master}--branded-${BRANDED_VERSION:-master} + image: ghcr.io/it4change/reformer.network/webapp:ocelot-${OCELOT_VERSION:-master}--branded-${BRANDED_VERSION:-master} build: context: . dockerfile: ./docker/backend.Dockerfile @@ -15,7 +15,7 @@ services: - backend backend: - image: ghcr.io/ocelot-social-community/stage.ocelot.social/backend:ocelot-${OCELOT_VERSION:-master}--branded-${BRANDED_VERSION:-master} + image: ghcr.io/it4change/reformer.network/backend:ocelot-${OCELOT_VERSION:-master}--branded-${BRANDED_VERSION:-master} build: context: . dockerfile: ./docker/webapp.Dockerfile @@ -32,7 +32,7 @@ services: - neo4j maintenance: - image: ghcr.io/ocelot-social-community/stage.ocelot.social/maintenance:ocelot-${OCELOT_VERSION:-master}--branded-${BRANDED_VERSION:-master} + image: ghcr.io/it4change/reformer.network/maintenance:ocelot-${OCELOT_VERSION:-master}--branded-${BRANDED_VERSION:-master} build: context: . dockerfile: ./docker/maintenance.Dockerfile diff --git a/helmfile/environments/default.yaml.gotmpl b/helmfile/environments/default.yaml.gotmpl index 35beae5..6b6b385 100644 --- a/helmfile/environments/default.yaml.gotmpl +++ b/helmfile/environments/default.yaml.gotmpl @@ -1,6 +1,6 @@ {{ $branded_image_tag:= env "BRANDED_IMAGE_TAG" | default (exec "../scripts/image_tag.sh" (list) | trim) }} {{ $ocelot_image_tag := env "OCELOT_IMAGE_TAG" | default "master" }} -domain: staging.ocelot-social.roschaefer.de -namespace: ocelot-staging +domain: staging.reformer-network.roschaefer.de +namespace: reformer-network-staging image_tag: {{ env "IMAGE_TAG" | default (printf "ocelot-%s--branded-%s" $ocelot_image_tag $branded_image_tag) }} diff --git a/helmfile/environments/production.yaml.gotmpl b/helmfile/environments/production.yaml.gotmpl new file mode 100644 index 0000000..d831d3c --- /dev/null +++ b/helmfile/environments/production.yaml.gotmpl @@ -0,0 +1,3 @@ +domain: reformer-network.roschaefer.de +namespace: reformer-network-production +image_tag: {{ requiredEnv "IMAGE_TAG" }} diff --git a/helmfile/helmfile.yaml.gotmpl b/helmfile/helmfile.yaml.gotmpl index 72fef8c..05aabee 100644 --- a/helmfile/helmfile.yaml.gotmpl +++ b/helmfile/helmfile.yaml.gotmpl @@ -3,13 +3,16 @@ environments: default: values: - ./environments/default.yaml.gotmpl + production: + values: + - ./environments/production.yaml.gotmpl --- repositories: - name: ocelot-social url: git+https://github.com/Ocelot-Social-Community/Ocelot-Social@deployment/helm/chart?ref=hetzner releases: - - name: ocelot-social + - name: reformer-ocelot namespace: {{ .StateValues.namespace }} chart: ocelot-social/ocelot-social values: diff --git a/helmfile/secrets/ocelot.yaml b/helmfile/secrets/ocelot.yaml index c95d91d..d4d7923 100644 --- a/helmfile/secrets/ocelot.yaml +++ b/helmfile/secrets/ocelot.yaml @@ -10,10 +10,10 @@ secrets: MAPBOX_TOKEN: ENC[AES256_GCM,data:qK6iTYKiWfkvXBodm8zVmfr5ACTTz1+7Pt7Q/hwgv3SYERyo5NyqfsvbVKuDAD90kTCNODpSwUApJE6do/Umedg4s8mrnHXCckIDbX5BztoeHJBehsUC54ELcrQ=,iv:b65yqfdoOX366UXt7HS6nhL8hlZn4l5hQfrhI6NXc+I=,tag:vF48V+TRS5g9ezXhzAJnPw==,type:str] PRIVATE_KEY_PASSPHRASE: ENC[AES256_GCM,data:05WXBFKIk0BtfUYmkWSwAP+/Y7v18LUow4X/,iv:y7VyymcoRLr2CK96BiErXvKP2Gn/QhECBZyeP+wo8LA=,tag:Hg/fIGyIDMY8P3mWfVupCw==,type:str] #ENC[AES256_GCM,data:llx+JN8fRqwrLd2ahkmPrhPwcGIkn695l3Ox8VEs9YAR+1wpz3yujA==,iv:4Ctez8zMeqo3cpCCUVy6ZP4T1Z/myPw/FTq+++YAYbc=,tag:al/J8DLqNz6CoLl+TgUdOw==,type:comment] - EMAIL_DEFAULT_SENDER: ENC[AES256_GCM,data:z1EyEokf/TNkFLhRzsCbHew/6T8=,iv:Satr1c8aZQE73ZolC6n+PO74r+Gj3un5Mj0DIYb3n14=,tag:iK6l0GXuhLauBtFXTmLyKQ==,type:str] - SMTP_HOST: ENC[AES256_GCM,data:r0qbaUBB3CSUHR76,iv:TJIx71HW1aBB0sCEd1TB/tTgPBxLR1sdGAEf0t7Qilg=,tag:arXYtwVbIXVaUJpyommokQ==,type:str] - SMTP_USERNAME: ENC[AES256_GCM,data:lZ05DvSu,iv:Tyu7poao1shqKGd/sjTCgGNHU1xgRpjwjMRd+ArGf6o=,tag:dKms4G683JvFzja7YOwYKg==,type:str] - SMTP_PASSWORD: ENC[AES256_GCM,data:c9rnPIaKHIh2LNIJON3ib1IsA09OWGchDxRPRpvrtJw=,iv:08Acxl74lJbYtEEU6crVIYRXwkER8t1XPrhBA2PwEio=,tag:F0xrrt2PkBUMEyp7a81ssw==,type:str] + EMAIL_DEFAULT_SENDER: ENC[AES256_GCM,data:WM4DfPl0GW+AkHUqMYFdjO1emSUaTw==,iv:YmrQO7jW3u2Vcz5aUmXNIMmaWmBMPyDX8bsLptdNAGc=,tag:h9hUl63DzvPWrwzQ0UKPxg==,type:str] + SMTP_HOST: ENC[AES256_GCM,data:yhzE6T4v6qcKJBa0og==,iv:ATPM06CE+kHTgKJdoHkrlJ41KFVuKM7+3zed8hiEfAQ=,tag:5Tq2WUMg54JfoyJK7WFjsw==,type:str] + SMTP_USERNAME: ENC[AES256_GCM,data:JpCSPL6biYWL7BVHS4CV1GzOB2eueg==,iv:Ubbsl2HnY6DaJz7fNmV+gT0OZ/SfVGJ4aRAaNHCl42U=,tag:hBq0k9/c2Z66UhRUOvX9/w==,type:str] + SMTP_PASSWORD: ENC[AES256_GCM,data:rp4R7xbVT1OfAJUQbyRHNcke6g==,iv:HOq2qK7D4wE31PgeLYMNGnOfGzG5E8yMZAu2yALhmPM=,tag:3ObZhZZMnHBjEFQXmu34ww==,type:str] SMTP_PORT: ENC[AES256_GCM,data:MGmv,iv:IFg6oEncN0ICEmw96XL4EuPKqEZ6KLwU5FJYkveMSpY=,tag:kIVXlt0o5TfhOtRVqU/c4w==,type:str] SMTP_IGNORE_TLS: ENC[AES256_GCM,data:ORAIWtg=,iv:6X4V3RDeYHrFdBTjsb3Ji0KWsZ2meL8ilqHNGQbcV/M=,tag:R87FgoQwqpes+0ejcOlrPg==,type:str] #ENC[AES256_GCM,data:wEE3/SPsZqy9LATseOZG7LsCbjG5gY4VUT/TzxhHLJqcYP5I,iv:gcOA0XiUGWq15G4zTRPZ0qZ/XYMTjr+9krbOx0dwpeY=,tag:jd8LTiVT7UQShqMR9zZUZA==,type:comment] @@ -88,8 +88,8 @@ sops: Tkx0VFJpN1pZam4yeTNYU1Jnb1JyR1EKJSQYyAi9ZZr+njaXV/62nshPVLtWIcLY pwP8ikur4tKrbyg7H+/f3+9jPsr2Jw3xxgkeS4GL+DsTwrGDEwoaiw== -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-10-09T15:57:09Z" - mac: ENC[AES256_GCM,data:VL7iP5uJIiwtFaVuZM88Hc9E5bkyO1kN88tAYd5HfGrTlNAKtINJZRL/ZeG+fNEFNyrtkxs5nfXeCSb0yNop66nWOLpupRBxHVt763Akp/YS/l3qH9UYaDUUkgtPg313pG1vNMiBxss0oE0CDEn+xBxuQFrWUPowG71JuBvHs/Q=,iv:8BE0rDKRBCB7CSVNZNE1wKmhYxiJhbCgI8hh5PACjQ0=,tag:4FUes7xDpSp/KF4AIJiM/A==,type:str] + lastmodified: "2024-10-26T18:24:06Z" + mac: ENC[AES256_GCM,data:plyDU/49y+NQbHbvhRcZzLH7z+XPHzgRc3yyFPLFJBkP5DCenZkKmRxvHx9RZDqEFeaUybZedD+k3eL8xGMATEiMMip8Kb1fsczkEOnkbarKp03x+fdB8SOQi7qOUQGlamSK3wEgmBOEodV09e5zyDY54dOibRepb2+yMuB73WI=,iv:6DGvJlMk4BQPjBEtf6wrkHvc/VP+g3PpkwSQ6dIo8lQ=,tag:G9Fpp0ZmANU7C+HDRSmHpw==,type:str] pgp: [] unencrypted_suffix: _unencrypted - version: 3.9.0 + version: 3.9.1 diff --git a/helmfile/values/ocelot.yaml.gotmpl b/helmfile/values/ocelot.yaml.gotmpl index 3d4e796..438e96f 100644 --- a/helmfile/values/ocelot.yaml.gotmpl +++ b/helmfile/values/ocelot.yaml.gotmpl @@ -14,7 +14,7 @@ global: backend: image: - repository: ghcr.io/ocelot-social-community/stage.ocelot.social/backend + repository: ghcr.io/it4change/reformer.network/backend tag: {{ .StateValues.image_tag }} storage: "10Gi" env: @@ -25,12 +25,12 @@ backend: webapp: image: - repository: ghcr.io/ocelot-social-community/stage.ocelot.social/webapp + repository: ghcr.io/it4change/reformer.network/webapp tag: {{ .StateValues.image_tag }} maintenance: image: - repository: ghcr.io/ocelot-social-community/stage.ocelot.social/maintenance + repository: ghcr.io/it4change/reformer.network/maintenance tag: {{ .StateValues.image_tag }} neo4j: