From 04484f634fd462919e93d648a2b2fc19ed60d06f Mon Sep 17 00:00:00 2001 From: wukko Date: Sat, 9 Sep 2023 03:10:43 +0600 Subject: [PATCH 1/3] prepare for domain change, add settings migration --- package.json | 2 +- src/front/cobalt.css | 21 +- src/front/cobalt.js | 84 ++++-- src/front/emoji/3d/cat_grin.svg | 345 +++++++++++++++++++++++++ src/front/emoji/cat_grin.svg | 13 + src/front/updateBanners/newdomain.webp | Bin 0 -> 58956 bytes src/localization/languages/en.json | 7 +- src/localization/languages/ru.json | 7 +- src/modules/changelog/changelog.json | 14 +- src/modules/emoji.js | 3 +- src/modules/pageRender/elements.js | 7 + src/modules/pageRender/page.js | 61 +++-- 12 files changed, 497 insertions(+), 67 deletions(-) create mode 100644 src/front/emoji/3d/cat_grin.svg create mode 100644 src/front/emoji/cat_grin.svg create mode 100644 src/front/updateBanners/newdomain.webp diff --git a/package.json b/package.json index 2bd5d679..304fa9eb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "cobalt", "description": "save what you love", - "version": "7.3.1", + "version": "7.4", "author": "wukko", "exports": "./src/cobalt.js", "type": "module", diff --git a/src/front/cobalt.css b/src/front/cobalt.css index e66cabc4..3c838ef2 100644 --- a/src/front/cobalt.css +++ b/src/front/cobalt.css @@ -503,7 +503,7 @@ button:active, padding-bottom: var(--padding-1); } #popup-desc, -#desc-error, +.desc-error, #popup-info-desc { width: 100%; text-align: left; @@ -512,7 +512,7 @@ button:active, user-select: text; -webkit-user-select: text; } -#desc-error { +.desc-error { padding-bottom: 1.5rem; } #popup-title { @@ -837,23 +837,6 @@ button:active, .no-animation #popup-backdrop { transition: none; } -#floating-notification-area { - visibility: visible; - z-index: 999999; - position: absolute; - display: flex; - justify-content: center; - width: 100%; - padding-top: 2rem; -} -.floating-notification { - text-align: center; - padding: 0.6rem 1.2rem; - background: var(--accent-hover-elevated); - display: flex; - box-shadow: 0 0 20px 10px var(--accent-hover); - font-size: 0.85rem; -} .popup-from-bottom { position: fixed; width: 100%; diff --git a/src/front/cobalt.js b/src/front/cobalt.js index c02ae3a4..dfa6ace3 100644 --- a/src/front/cobalt.js +++ b/src/front/cobalt.js @@ -1,3 +1,5 @@ +const version = 36; + const ua = navigator.userAgent.toLowerCase(); const isIOS = ua.match("iphone os"); const isMobile = ua.match("android") || ua.match("iphone os"); @@ -5,7 +7,6 @@ const isSafari = ua.match("safari/"); const isFirefox = ua.match("firefox/"); const isOldFirefox = ua.match("firefox/") && ua.split("firefox/")[1].split('.')[0] < 103; -const version = 35; const regex = new RegExp(/https:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*)/); const notification = `
`; @@ -19,18 +20,23 @@ const switchers = { "audioMode": ["false", "true"] }; const checkboxes = [ + "alwaysVisibleButton", + "disableChangelog", + "downloadPopup", "disableTikTokWatermark", "fullTikTokAudio", "muteAudio", "reduceTransparency", "disableAnimations", - "disableMetadata" + "disableMetadata", ]; const exceptions = { // used for mobile devices "vQuality": "720" }; const bottomPopups = ["error", "download"] +const pageQuery = new URLSearchParams(window.location.search); + let store = {}; function changeAPI(url) { @@ -207,8 +213,8 @@ function popup(type, action, text) { case "picker": switch (text.type) { case "images": - eid("picker-title").innerHTML = loc.pickerImages; - eid("picker-subtitle").innerHTML = loc.pickerImagesExpl; + eid("picker-title").innerHTML = loc.ImagePickerTitle; + eid("picker-subtitle").innerHTML = isMobile ? loc.ImagePickerExplanationPhone : loc.ImagePickerExplanationPC; eid("picker-holder").classList.remove("various"); @@ -225,8 +231,8 @@ function popup(type, action, text) { } break; default: - eid("picker-title").innerHTML = loc.pickerDefault; - eid("picker-subtitle").innerHTML = loc.pickerDefaultExpl; + eid("picker-title").innerHTML = loc.MediaPickerTitle; + eid("picker-subtitle").innerHTML = isMobile ? loc.MediaPickerExplanationPhone : loc.MediaPickerExplanationPC; eid("picker-holder").classList.add("various"); @@ -334,7 +340,7 @@ function internetError() { eid("url-input-area").disabled = false changeDownloadButton(2, '!!'); setTimeout(() => { changeButton(1); }, 2500); - popup("error", 1, loc.noInternet); + popup("error", 1, loc.ErrorNoInternet); } function resetSettings() { localStorage.clear(); @@ -348,13 +354,13 @@ async function pasteClipboard() { download(eid("url-input-area").value); } } catch (e) { - let errorMessage = loc.featureErrorGeneric; + let errorMessage = loc.FeatureErrorGeneric; let doError = true; let error = String(e).toLowerCase(); - if (error.includes("denied")) errorMessage = loc.clipboardErrorNoPermission; + if (error.includes("denied")) errorMessage = loc.ClipboardErrorNoPermission; if (error.includes("dismissed") || isIOS) doError = false; - if (error.includes("function") && isFirefox) errorMessage = loc.clipboardErrorFirefox; + if (error.includes("function") && isFirefox) errorMessage = loc.ClipboardErrorFirefox; if (doError) popup("error", 1, errorMessage); } @@ -401,7 +407,7 @@ async function download(url) { if (j.text && (!j.url || !j.picker)) { if (j.status === "success") { changeButton(2, j.text) - } else changeButton(0, loc.noURLReturned); + } else changeButton(0, loc.ErrorNoUrlReturned); } switch (j.status) { case "redirect": @@ -419,7 +425,7 @@ async function download(url) { popup('picker', 1, { arr: j.picker, type: j.pickerType }); setTimeout(() => { changeButton(1) }, 2500); } else { - changeButton(0, loc.noURLReturned); + changeButton(0, loc.ErrorNoUrlReturned); } break; case "stream": @@ -441,7 +447,7 @@ async function download(url) { changeButton(2, j.text); break; default: - changeButton(0, loc.unknownStatus); + changeButton(0, loc.ErrorUnknownStatus); break; } } else if (j && j.text) { @@ -476,7 +482,7 @@ async function loadOnDemand(elementId, blockId) { }).catch(() => { throw new Error() }); } if (j.text) { - eid(elementId).innerHTML = `${j.text}`; + eid(elementId).innerHTML = `${j.text}`; } else throw new Error() } catch (e) { eid(elementId).innerHTML = store.historyButton; @@ -486,26 +492,62 @@ async function loadOnDemand(elementId, blockId) { function restoreUpdateHistory() { eid("changelog-history").innerHTML = store.historyButton; } +function unpackSettings(b64) { + let changed = false; + try { + let settingsToImport = JSON.parse(atob(b64)); + let currentSettings = JSON.parse(JSON.stringify(localStorage)); + for (let s in settingsToImport) { + if (checkboxes.includes(s) && (settingsToImport[s] === "true" || settingsToImport[s] === "false") + && currentSettings[s] !== settingsToImport[s]) { + sSet(s, settingsToImport[s]); + changed = true + } + if (switchers[s] && switchers[s].includes(settingsToImport[s]) + && currentSettings[s] !== settingsToImport[s]) { + sSet(s, settingsToImport[s]); + changed = true + } + } + } catch (e) { + changed = false; + } + return changed +} window.onload = () => { + loadCelebrationsEmoji(); + loadSettings(); detectColorScheme(); + changeDownloadButton(0, '>>'); - notificationCheck(); - loadCelebrationsEmoji(); + eid("url-input-area").value = ""; + if (isIOS) { sSet("downloadPopup", "true"); eid("downloadPopup-chkbx").style.display = "none"; } - eid("url-input-area").value = ""; eid("home").style.visibility = 'visible'; eid("home").classList.toggle("visible"); - let urlQuery = new URLSearchParams(window.location.search).get("u"); - if (urlQuery !== null && regex.test(urlQuery)) { - eid("url-input-area").value = urlQuery; - button(); + if (pageQuery.has("u") && regex.test(pageQuery.get("u"))) { + eid("url-input-area").value = pageQuery.get("u"); + button() } + if (pageQuery.has("migration") && !sGet("migrated")) { + if (pageQuery.has("settingsData")) { + let setUn = unpackSettings(pageQuery.get("settingsData")); + eid("desc-migration").innerHTML += setUn ? `

${loc.DataTransferSuccess}` : `

${loc.DataTransferError}` + } + loadSettings(); + detectColorScheme(); + popup("migration", 1); + sSet("migrated", "true") + } + window.history.replaceState(null, '', window.location.pathname); + + notificationCheck(); } eid("url-input-area").addEventListener("keydown", (e) => { button(); diff --git a/src/front/emoji/3d/cat_grin.svg b/src/front/emoji/3d/cat_grin.svg new file mode 100644 index 00000000..be6e29d0 --- /dev/null +++ b/src/front/emoji/3d/cat_grin.svg @@ -0,0 +1,345 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/front/emoji/cat_grin.svg b/src/front/emoji/cat_grin.svg new file mode 100644 index 00000000..4b7cbb06 --- /dev/null +++ b/src/front/emoji/cat_grin.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/front/updateBanners/newdomain.webp b/src/front/updateBanners/newdomain.webp new file mode 100644 index 0000000000000000000000000000000000000000..256784a26df4ed43fb6efa1f2cf4062b3db92a48 GIT binary patch literal 58956 zcmW)nbyQSc7sjW6p$Cwzp`?aJKyqlLLAqlA5d@^0Ata{UXRmwLIs5lKTlblglEOLwV5lgkZJ;ftF8c48ue~c0@I%abMkz(}w^Yqx z!9!T;91Zie4De;OxGccOCEKp1RODg}WucjLCYGOB+73+PW~<2__R!PG#2GKl+y@-^ zgsS2uv2qYEg#Gvm#JrQ_N!8O&SwwK8e35&{`h_dz7^BiT3gPFBJuAT5%lkOnB-H-X z{=i$LnTw~U_AE>Wy(d{-`lB%z5dX5K>^%9b$Uk&AvF1G;ZanL=lvNVy3@yr#?&bh0 zW*ZR9o$Vz+fA8-E$Y!UA2k_gQIeb$Ob6zT2T&5e3)Nig6RS>DK80erxJtZ@xFT3WcSl8UC6pf1Z!U>N3*|RCtwgY&%ouG*dU1 zCOFY%>9odVa7lvng^@u3OqWbZ{x1aw)1RqYiGSaGy!lHa0L*cImBsqZC2vFDgV
  • Y|Ot+%0Y%9z3M**Eo4+m{eC-&=uys95!lAfWL)$7H@#>BCV^`817Rd-~si zgXVm1Jc9^0p^+xyb9xCg9IXoL@JR|mJ??+|FYPO*fLW2hb@c22-T2hEWsMgh_+^bN z-7i%Z&8%2(ts3Y^$nxU<)=j!EZw8-pmXzw%CVqUC&E=5wX?#ehVBfvYXeB|ZDt-J1 z6)p}g4esN-pLiI(|>odI5t6K$6e*LUjmRYIJ&zjmjRUfPef^)1Tlw2Bdh;j0GJ8(;l zv?$@kfNI;HX5)*;=F!om{g&O%^dw{*_%|VbE-PZWe8m>yUP(bDnwdZU8vJhg5L_4= znLA53rFRYy7M{*>c6@9|NYz3wFovpskyqK`*1!9#3wi#A3B&hj&{X7!+PVIx#YaI; zE1v7tH;i8_e|#tbIc|ynTV&<=gX`>I-Px5KX?!ny>go3!q1ycTneNdZk+Ty#Gf9Vu z>C=2sO8%9nt{td4^m)boIB5@aj22oZuAjzFK^;BkG&5iSY9B{$k_pqhm>4kll3v~k z&rnbq{eV8z=Db`(m3}afQAGKBh%R{$IFzO0Yc2BFX+gd>ix;p+b{QVt1-l!w*nsZI z@Cm05LRBtS7VeS|BP+OzH;kK?qYuF$*IiL(zJN=EshNju%j%_rhZDZ@Q<+;r7%nMO zd4gHapJ9VYEn<5;aN+%GNQmtn<6DCQD?3*|XI#>lj)z;8I!8dr&4}`G9WGPIU1do1 zMxP~SVBz6JtLyXxpDHQK&e}}PAyh#m@TpFM^WnzD#m0u~4X^YZt&HU*W$A7<;5W=G zzDn)AU+YzPG64H;VB4h!`()I^RLysLmL2 z+XaA@fpN<|r%=MV#OcL>t3nLj(!SxP-_kA56aVa z8fEj{-^%A8P4#TDFEfMV{--1U$%#)aIy_u$^4&Qu5kro&M;VN%Queea{^M_I6`=#_ z?hNn=&b7fVt{}x(G$|W_+kqi!HSsMT)ZZbE-gbLcA4{R3P_O53E5MW-)ViUQQ%`m%SPMBO^mH}2&X|wQ!$bb=!@tX?8UQ1 zP@i-_h!hR4#Ak&^V8Pr-#A3y1EJqZsJpuWAI}lNdl#>*mD8i&=V}gz zfQ!i$U0-p#76P!?zSCCdN=pyA=fatSUX0BO*EQH>W%fvY?P145Ztv7SVfW}_yK4w_ zHpf@8*VC49(n^CG#srF_d_E?wBEVqHqMSO@$Q=5N`9%E$)=!tjLnM@720yuwIsce`icw&h2}kd z6an2ZH1Oy6vs(v>g}r=bzA*ycojkS>NE|Yie!GU({Z||BsHHSl`T`sQg5JECn{ak1 z850W7-Xr3E=dWFm2>U5>7Lg8S0{EFDD{LL9;KM^ZcL3>t;KszrO?uHKJ2htDPvTLU zNSncTp>Pq_nZ~*bkG<{#dg9gwzt4F~8!v-G5$VR6?SU8i`;_N@jfG6>SP*)e1yDsq zANg(u&@$(RR60(C;Q0yfX5^T>$OcJGVXsw1R+r6}B_3Zq%U% z=FLM1kxhfO4DC%eO9?@B4&E2C_0CTAVs$D7!Ow$QMIgWm5|m*kGa5q59`xw;mG8sp zKr>Y|*V`4GBsB>rGrsM$ShdJIe$CZ*6(T}b`8xZ^SNl0T?`_Q&7GeO^dT{Ss4N)_< znzD$p`$R5|SP882POqE65^mFp4`Zr4!6cOn^<>Cu;X}8KtHlV?zYM%feHHE_!e}&P zS?~i6{Lc|!b+Pj$_i}RmbP|73jo;*v8)rPva;>j2g{Zl&7 zT2mizm`I@ zyp5?LI-kpRd8L|M>wEKr%XCiSN<{x-p{{L^9CPTY9Dw9Tdco#19F5l)_a;{>xqwAP zolUWc9w8kjS-+PAS$|?*baEvaKRVv6VN9d4>kq0H-@Tl34ZiKUSeWxn0#f^Zy1{|x zgtaCCKReCZZ#w)3;A0A4aN zmaL?LP;wUc6+Q`D}>IF9Q`uXWnRAT%6p5<+iYsh~I3woT1 zL!$p3w*xsuT9yaF*LRE-U!2}cRyV0Xgn_QdE(A~D1Lk~a(sm@!8 z)veVPS1rN^aq=eYJmd=y1Xod*2l#r9ZUoDz_*%LV&Z;`ENhV9#c_!;HsTBl2KtTC+N@>x(!zXud?wl&) z(}PShhR_X<-p64s_FmOo9f?+SJ*n|3mS3=3m(A{$ZG-dDUxierTab; zb~S%!Yjc0|GrHPKp!e_d-cNYNha|Il=eb3{jCC-=F0*X)tLX$7b*%-VN=-d-tUq!y zP3c)A@`_$nS6dh7N#M%pA8%mMQY&)+=+A+BpxCaK@$o0*cc)`KridZ}`{}hI@@^`a z>>5b6P7>G{hy1y3gbyhksdRoqo6#FjjR5!4A1sc6;8rkCoyRH8EBdmi2bmV(Sh46t z!e7?Um$s7631wWY1X`uTGl$*j3$UD8zhQ9DXdp9^m3Mikf#+SxFM^*Oo1x(_r&ho+ z(IX^fJ{R;bFcD3=IlOH8dW8XAQ&hlZMc7^Z2CZ(gYnKe%KX;qq0A9Tao$_zV>K0DU z?i$Qgw}(~fg}!{FsRsLdU@1Z_uvZVya2&kDHfHc?eQiuR-g$fY41Sv7lx@sRBbq+F zMuvny_#hociE@9xJGD(>E2cHFR#IP-7wRy_5xwM+kVIzWmjkN3` z)vT2#A@ZPbT>4^4NEGCx``x9xecoMsWQlP()AM`ZDeJY|Ky` zZCwc=?a!|XGwTpTIEKfjuWHT92jY~^JX{LHBJgP5KHTz6ixeJd=h$OGyN_?TBP%ri zTrv_bXo0Fqo9uSPC%ildgP*vX_t`B%Sd-#!71iyw4n_AE?mb=%@GuhG-d<3iYz@jW z?k6S7rYFm;CK^3O+{8IG;%YDG`G^whh2bq)-bMwjSBo=6^Z2y4<(CZ~`{Zl}GgpbQ z0>dYAy()Ho9x(X+j-MeRg8mt$y|e%NMCe{^$Z}uNyzuTs#=m;>UBSE*nt+}nEF>)6 zJT=of2!AZxxr75kcY9`eUl$L@6zyhOw%Ue&4^gkxyh!cQbFO9*ULT=a!P$+wdkpjN z(`T)kc;Yf>!&H96_>Fb^V&4Z@$lDhZOWBSw3VI3tUHitV+ z0HFW@?`}eB)nI7e7xoBEp7vm6pQpaYD@-;(l^_NJ7%9z(L!6hCnB&HB7VBgyDH^h? zl3S8`h8_O^Ffsaue{>_^-)DKUmVSE#4*!>+d2O@;;ZW#qu38Vw*YAGza4XX|V8?!d z4;y&tB-8deK*7)irz^PxfUwGC0kTd};S2PRTxN3D)w>3`UidK&Y-f9lE=Cwo3*5`k z9Cyj9Rdibdr}(@s;4Bw@QZ+x$cc&_b<7mmX2kEnTU@AQiw^|ptNj>h}g^cZ8E*;-@ zR-Tcn809<_0L!a*hg?(3cu4v05W+y0Z#BFl_JN*UW#F`%X9b92EV0{4{lxY#%e$q7 z`wc_nJVC6~rIkHKiIaS`|3}#Up3ICA|HMPQM#zznipb&{1`?udAR_0bD3E|jlyyK$ zX2l^c`%+26&ce0(R*Lq~uc_)=vIieA`sd6Is6y{2!6AmpG3{aGX=^=!x4#a~h7JDC z(HBhd)%#d7S|+Y+CX`7|{lfJGd~Nd7=#N6~degOFrR9`F)EY7NO^JpMuWGj6P|M^5 zHG^PDKG_YS0Mgk-%RweN^}BqT?B~qB<>q@`pVenVo|NZj8s*5f>#t7iP$!8lo##Z| zovd`tZB!=m^^J0Xyxj_c)wY0k9OV3I?}%bKIdK@`K#B6M>Nxlhq?50I=p4x4oYLqc zDQ?lbb-RA*)4O~Y$tYe#75~e24(Fh= z&TutJD{s%1xCB=m4HS@e&{?nfQL zuJF=h*1i!6BewwTB%dGU8`ck(ZWn7dfa6UMQ~tysywQrNxFTXdk*EkA>YRCvLm^-FTU?Dmzaq_EQW(;fxTlgv5?D5nU#PF^d4czMeW&0%($15 zLOK)K&Jd8gK?>ZzyQMw&C)dtG1ruuu5hDd!ds`M_bmQ0^nR!hS@DXP#fc<+^{!63X zyN=r479uy&=#g0_wNLOERV0(kLxW&eqLzfnqQiaML8Ek}%sj*8J#%HGermFg5=z0J zBJlPF`gjyQEUo#~wdOauz{3qEcXl+q+M45nl>b)^9ImtgiUe!be$?CUnsrSne**Ih zYWi?x=|*D(B+-7SQH_-+U~CNE5(p2nsG-gla2SRfrU2Tp+kYY5s144+VP zLQ4X4aANI503>qoeFG>gm$G~LjPOW(h5rDIdVz__ie0cYvcsk)7MC;d-n4emL2}JfMO&j zeH^ys2cqvJ&y*tJ5~e3m+z3a-XC1)qNFVKA;CC5V+c8qb=OjcdcC3ojp;{Kn=wB!r zQBaD21z{4~xGxP-mZSUbp?pMHU(|iHVb(n;Bt02RFq=1-BxY&U36u343iA`vLi@ue zAFou8-{PkAxHG%;=Nz8}w-bAR&77Kxr6|r8`D(SZ|GMjuP26`Y^yO*OQ$C{kz2jx7 zdGaJ2F>p@HC2RZ`#|B+9v|Ui zh9vKtr7=GC_KoCxA5Dm`-fAg8Y-VvmK&m!po^|#zd^<1u$0F~AZ}DG@zxOx(L0#K) zXEEs&SU+7a6+nxwqT)y;NoKgD6?@Hi`r z&zPIMm{{RU9L!UB>#nN$hL;I6*)M_*J8qZcI!^AOVD~8BX}X74QMnovav>1c4hl*N zlNL`xPsNFRa9h6HQ9MxztO^is8ucHl&N9UqH1c9CiCQtfF@nV;tGGRQ5^e|>)4|l_ zpFsKpqTu}ZUEv@X%c{DL(rJdIlwq&i@)e2sQUn18F(imVC2?m{lO$JL{_12Pz3Cm2 zB|$?kamCP%WQ)ozukC&eiUYqG`OO=_GM}jDR^|arya2q(rFi{2K&;y#Av%BST2UK} z6P$nY>Tb>l-O7+2hX4!q+c;AnzcIfmDZQ&EYxK|+iNar1g`@oC2p<27Yf>Do-jl3Au zQK*<%tWF37YgfQ$`svBE9VwhK=%Z0dU%cxJzK`PEH5h#k>7ULhk)oT1C)3)~qQIMu z*N3a_5Y!Va3M1t@9M&m8LKD*W_-8^PZ8r}-PkbnhJhr$;DUA9*pVofPhP!Inhjl1$ zzU8R6$?UlSF^~EZ6NCh%ca>fWeK2+sywc#2TfZ@);;qN%u(M-U_|D0pcR?vbI_l$N zbXZf*5WwpknT5OI@DuPWCvPb>T5FBp^t?KPPVRhut@Z_JexcFxuZD^b4Q(qK{yvW+{50G4uc@?SN~Z{1(; zJf}jzgc9STRRE23>m|TvMqFW3j}!uppN3p+E{c7PmN}g~_PSYNWO%7u*LdsJp4=E$ zi(Iratncg;I9GoY+Tw-V)l5_*(`Knzq+V2*lw56+O+wA)k<=oBUto<6V}|$~OR*nc zfua;~7IS;|iQ3a=_PlRQL>hf6L(Mt-Wn6GcQ6<$*g_@vF;ANQoA{tinI5eh}iGV59 zd5eS4_Xgd6+_FP~9$jc_NbL6)_gaiW5GLR{)+ z_LwR!k1-_l1Rdl9brLra1<=v`9zGF(DH4crI_Lq|5~s}4$+TdtuElY(IBDxEVP}%C z2&%4EJt222p@3HJxq8QyqEMcsW}zhuFC>FQgBao5ON{4LLyzBjs3(VvCDp#4>-LEwv z*P!_f<3*Vna3GNua&@8stTOkbcVfLg&=KK1SN(edUk(=LmO69d6LQ|wXL)z-(@uXf z#`ocP->~5}?LyQ1XV?AO($I!hp9`q3S_AO?tp@5vjwEAS;3m5q9L4-+`{)L%Li9(a zS$U!m&!SrOD8+Lo%o^{vCzD>2d~g+jpKp@jK{AQmuQ~yG}m1hzvucu0#cK{ z1^eEYjEiSPK3WVe;^5H z>AT>1O5gGaY5E5N_(AFXz5!k))aJ7<-g>#rI5#djGy+ydV!PlqXR`Cx(XO%`ZnYyD zltO#60af9b@Gt_aB)!`Hl79d1rVm;c1nFM5B*Np>7(516%2p?`gaZP$>-;D|y;iCJ z0^V)ajDw-LxN!KMt4oc2q2Vr&A}J_&BX}Pfy^8_HIgh{P$&P@j)x-lv6hRQs;WYr5 zlv{1&&Y(<_1Z-sUIZL~E=SlSIm1Y$H5|(c#i6zv2Gx$Cfo-g8t_z!$G8}bG1rE);m1{{5-V<3!7l`0R!_t;opw&Kiovgl0Igk{Wgi{6LJ!HSR8$G^L4wlw7rO7 ziVqwIWD@xdE|$iNK0AQVz`Qs*9g>)ZFzsMW@!x*Z9y=PpB86cHf2dTjK>WD7X;LW{ zhrz8u3%ZMOn*^@@);eSkGl8l>7nIb>wd&q}Am?eW5P#0&T5pL4#(ZCVy!o9F*01Vd zy7w3)tMw_V>emcO<8mBnPl4Kgt*8(VG!Ku$cwPM?A|2NB@&#nz$9R9u%Fz@UhLoGE zUNN00e{zBkAN$n)ckXjmdC#iG0u`4MNQty2R8wzHoucouW@z9CT$KT5s`_$?&1{be z2uVZem~HYL5O9WL!I`Ka#&m=@)z*iG9Nc3w+AC=&Q6Cx0@VD#|VwFA0zN1}3B!tS!F>KhCu(!XA&oQb%#trFaMs`{ z_)TMFR9mCXz=CdpyG-z3tr|u5113VIR~JN1DMu3PV7RcL6%ip?QCqvx_nq{;^ij5s zr|!qj>$v*o6+@qROa)(3Q!CUeC~yV=m;hnrX)j2~BNmey)UXxN+k^*cdql#YEEpTX$7fcgUk!+D zB34pTI<5OpsoA*gQGn-P0kCkoBc}Lms#jG}i}(4HHy%HRMYtcrGBgBNKsUNA4g=~E zwjGG$xa(~fO7c_Gs2iX=R*)R&{ib|w!F=Ep0I_V?9)*9JQ6suM@F zFa3Skkn-3z;f|_^if-)LotWh!AI~Q^!sKZ#ifPA_}q{BmDTNp_8UM`B0r9(R@2#?N&Rgt-g{L-5_zk z`pGM$qRB*&5A^WkcYV+G>uOdR&4u{@&gWr{Wq^aM}3%D@-h4OqgE1mD6j5= z{(VXS4Rs~**)&lwf7~xV-N=cXX3lxIak?GKdPLH#;wxM1nn`_&2=iRC+rXH0$vbwL z`)i+&Bg*#sBT5}+r2YNF*O(TcA7kY~A%U}>P1A$Cys=0KkQis{B!CV7;KJVI7OO=f zKWT$?#ui&^6a4G#@nGZ-1_AXLIUci4k4x#1ni!4UQ$@HM1H4;iL4p4iHueJ`wJJ6i~}FzMu?a|iz#Kl3~ciIg={y6Nx@*k`p36AlT| zo*Ac5QgH`IT!a#!1~`mcn1LKg46>BK3fr!#m1D;|u6{kCPYS|0_&)8l{09y~qe0ug zjNabn8_g8s>P)20w>rfpN%gj-K!)?|-c5;l^RRM4u!aT^$j|@3)jIJ%fzyNCMJIBc zIoIx$AW3|0=qsMX+X;}@!FPXK>DkI}}iRN(7QKM03vG?`;!TKwMr69;@9Xl3Yq zwQ~4Qh4o~F$o)6Y?0?v(9rSt&H0>Xr`Je>eRRf&jYroy6FeTPT>feQolrS?w;n{Wz zF5S%_-LsSAssYpV-gxETA@H1e)61=nfa6OQ%jdTZI@TSHDloAr(TIrY#+=m;bPJVx`ZTDf)m7d|A?0 z@?ySag@wmrUvDqqBzTXd-Y>q+ay%mor?M~m|G14vGkGIbsZUQ~AV)OIH@%p6^B;=N8zvrNF}s_uv5t6BwktUTgp zS{)E9x<;Y5O2J^!J#>Fg0#5?PG#5T-xpEeGt?jv|Ju-@W(UVZ zx4dnGp4ywZ`i)-_IMsGyTs9x##xK{SkxSm+!6ds&hDMYxm;^E9_sNE)! zoKfJtuvz#xPDkL?Qq+O8WKKZqO3<}Gn-xD*+|k}2N`W%^3%$R2&a|`(4-4p)%w2l< zIHt%B41%R@4mkvM67~`Pi_4t%ErSPJI1@)3PW*g$ZhuFXSNxp^8_!M*jRtLkUa|j{W#ECxsyK8z{nue^feFjxaZ52q z7rDF<${HV}SMm4$Kaa)+&aU)LcBhT3!eyD|TMyrM+$c16O9Ka99?xn_;EinA8pjS( z5Rr49db9vH+0UKtZ452Wu0AJUS4OQn>y~?>i{ajh74wn>T%lv7op-I6aNRFfUyXPl z?rwy7M|NlPt=pfSxV}TYYp&+s*W$|0A0}SNe78eObU1bPv#!Z3lbUNo7jeH_>&k!^ z*bz0U^I~GD(l7#99C7)iVLDGWfQcZ6zZbC&PpL++Gr z6g}265P$x}M^3xmgB&NFD>y@|`Sj*mI?C9uRT?SlDffH)sOB48B_)!LA`)4isH&#T zD*Wj3_L!oD_Z`bnneA;{b;VSUtQpC|V<6CUY9qfZ@~0{ZeAcvZnkMpgkoIGEai88hY2iB zvEDP-4WYkD2GPuah^64Bd=>tR=sz}m(!$ZE$XTp9)Q+)y%$(YzVFo#D=8l0<^+dlh zT0MAEcLGGJmmh}&*K!N3L==5=yErUx-4TUf8i0Fe^^Y$4qZVXZ&Hp)ER*!Jw5;A^Q z`=;7jzqrn*e;ShE(YYNiAR>}a1A(#7fUj7mw~HP?@3Wg#hk2%>iO(&37(`y$cqusQvIoq?4kSbO{PirwMud50be%xygPAz=9F zIvvm(<+=^nJm&d6FheAbtNYF`Q{i7Fs!Ut};`Uf;GQnpRD7GCQ`zJBYF-ekv3o7M= zFdM7qcgeo5g;XSD2#e6q2wnEV<*ZT?8$?H^t!au*OquP_0PC|0I#HU>Pk}4Re3+39rowyi98lHImLb_hu1YL3m3hAFE%c#cGGY94&*Kd^J}oRyshuLR%?qqe`gM;Al?_;Bx2=@8G9#Mc*0j%_yNTzfW5k|%!upQO%g=$T9)*VgF|uI1 z=&z%*AWG7Sn9`ZBub7p&tF!mwWlJnj-vuqYF;36?3sx-T&_~3HgfBWVatscjf5%7i zE?0aL)ef=@Ium>qr{0TyKC~~&nj>&C5m_TZ^C-*-)SMN?U4k|#xmXonxosNbfao1!7u&RQJuIh+7H>X%Z_f2hQEl0B(<&?lpT~+G7wO$Xe0)p z0MD9j$zD5>u!@nCW|B-*m+=4DkExtnDA3opHe6csUDk1824kE>`o#M-pV}+a=2=L1 zKM#BRMkBZ`96TBaUs0T_-7BkXD+A%Sjh#~eR4#S=Q$&G|1Ylu}%XNgo>exgToG-g_ zewx8ya7D?(KKT)H%+radO2i+=H9NH{gZQ298kFy)WsN%>xN@I#LGqQW+pXurgBEzc z_TZ;0CqSNo6VNZo{BrmiRi}Z8hH{Ph2h^j!GFY=vc*mq>@Y_Q?@CFF`>sQ-^{og2d z+TzIs{Vb>zK1`px*OC#ysR0OmTbgfs&Neyh?DEJ*%NdF-KPuW$TnY&I6zvtEeYT{_ z^!Y2^9I8v35P#IQyncP+vC5Z^*&Y?P2^8Mmt=?AYsarsWuGbTIGM_%KhXEcz#}b9e zBA-hLIbn_!V4UDysv6c)K!tLzLI*864T$Q*o9Qexro^pwSS)>MRPOrSce_uYR)Wk?$!s4J$GEBO8It5Ou5EQ8gPNro3>|>=%$lGFVI*EB3+w7M ziN}Rpc69R->o~r4%;TElpdH(e_gKpMSi-Et`r4{7qLbhIBd@KrfS*z=@L_;~lv7j1 z<`h;|)(%|)^Mwme1?}mlZRZO6yGn%n&jAAQ9Gvi<0h85@BS;^lSi%6~N#e}l2a~)u zo=PD`umW_WNi*|MSfZ39=?$?J%qZ1c zu#*L?D%w=M+6D+a<_dhlTi`5M+tQnE%VdJa;=GgdQ3+zlVwO@-ny=dU%tRjNk=PZK zP8bik3ZzG(?L)lrg}9v_PbS10?%C>-(%OG#d0|%HfN2x_`@Nzah##G2p^9c5I<27a zCd2Jsp~y?qb!}8o`qErC1JGh8NbQZu8Hl3&tdJh8Cyo0{R_m4wm@aQvmr1>wIYbKw ziH|>`wWl;@23`t}a7@}|&|q@u>CjYIHh4-TclE`QdR+k0ojZB_ z`~OV0EqyYH>ftL+l4E7WG{P_1JoS+Jr1Q)S>7{W9u6BTHasPsvI5M=ABnKJ8@v9=% z%c=de9h4N5oZl{8cYM6E}E3lKsNl{xY zQIQcN%n4^yXz62mtT31hT*$chYAP}mVDpj{W#6Ofl-9)TKG1lX0m#6Q#b&Obvq>5# zzrON$xVF3My3LYos z4z<$ZVScplLn98q^Gui`(H(j5g&5se+w2pbfo~b>s)0SxwH;kUSyk_S7>2YlnS*-Q zYbtl1HkJ|}QL#9mX{oe#SBoOQJ8;V?e6xX}`u<(~Y5u9U-w|0Q$algYfYs+q)|9;X zw~?;&9&rLVk-(Sgd4PBCux@vmzhuKG7}{>J(j|qs2gTM?lr0<`qyu|Fn(XK9FXysw ztq_{P&|msjE5nDAeMOUZN1mD1lmavn10U2w&iyu@h8IN}w6xAa4SUBl|);wt@ zD}LnEnw*@~C9u(CFCsKC)cZ%e7Ae;fByoaDK6$TZF*5brPl^Gc$)4nsoMyev3Z(;7 zo7l@A960ozO6Cw%W&k1v&~Rj@bJswflXI=4x+izB8I(bB(c-;B8iPO>J-f&_8 zmCrLvCE;$f=mazpXNg_FU!bMtyYL#2M{$p`$T#dhdn`$hzl2e{Qbc{4U_K zn<{W)V%`)vYKveqHX;Z1Jnyb8m$W>`8JhP`H1Fy-CsoN;JNol;F1n{lW21_{qu&z4 z07fL~s8J7zPYA4E0~&6~|7q_l-c8;(F(4Ix$#(vGtfVG&(rwwipHoJGJt}q8Jlc83 zJC9aIU}`}n*~OH+rX^!OQ#nV&o(lkD#^5*8KC-2*4u!`oPJ~GB$;O1*GdfG+jNILQ zQ`MHL1U z(=tFBG%@k~j1TWibYEnG;;MgoRRrYD-&$D~CEd5b$7{g*{K=|$gR(HK5D!`aYi4*< zndSGqhPwcmxcK*b`kfH$2gm+U@j&BI_DJ3MIEPiQD|T~mhIvdNHc*B@hoeo+ks()`+DXz`Two*(ovsYYpoT}a)k zT6t0$-))E@gQ=;ga#YUM(m8ma_(3GB+utD!n=Xc?k9lkT6hUF|no1ceOA!u?Q+XXp zadI6Flx)U3$m@I__OV)p5qKy8am?#^U;omR)Fi{9_8R2`IZRtuXqwMfQl3VXPT2_Z91V zyQW)qci|@vo7k5xuFi}`@{#N2f_o`Cs;d?;9A6Ckh~{xI9dJ!Foc^1MP!RJ@gwrW2hG*3i(Pdxw)qkkS}z77o{fV~uGQD_on{su*be2)3_ z6G#D@$X$3D4sp(;N$TnTDbU;W^9mS^gj!v7a(Ga_{%L@pB$sxXo}+|oZaW$r&YR2* zf|aTP7KKzy?^@1FM`*_l~Blwp6~l%3If)C=vg@7=z#%GqmPM^ zm9`qgMuWhFK=18WIVq0u2vL^8UK2k<)siS*Os0r%y+{*yd_Yw#wM4+HS<$ha2ne#E zHTe7NajNKecvG43IZu>3m7KJVfVu2D4RDfS7IYDN)C>U8*47I}zId3g4*m2>!(+;5 zLwq8KsWMre6J-&~5r(}4gGKk8X&O}os@43e;-44-{=p-dP_I$kuj)ATx7|z4eD=k{ zPrs@8b3`U_s%qi>CW6BvT?c(>B@ZB9D~uoB8p4LMAl4-}j3yE3%0@de<0h~*m_Tpj zK*BT$LKMkWQTF`ppfMl%#jUCq*sP+wX-zUSCiP-b=Z*^7e%&^&d3;#`_AC;*IWH_S z&dY($|9r0(;8ooXRVG^^@+*)t1fg81jH;S?Rrd#{AA zXgCK}IMOXsy`Z%tp{WH5&%$Mbeu|I)g@@)%G&B`XtP$jCR4H$ystXznWfKylPm@X` zZOUyKCS`$ga_TIX({^bUc#u80i}@U^{(d+crh{fJlLGac%(zAH(;E$5{AC`_!9;(~7X@Ayvlj|zDPdutiw@C*bN@_Rb;ql>byyTZcA+GG^s!6E zZLRd;wdtP%LTl=x&z9C54i?N)r^#o?L1I|jz2D1|9nF7184(^qb~AhLPX6g6(in~5 zD)83pVnV#<143+wh`aAEmWTi4mz zqxWrh=X-mByD7enk^|&!Ia7`4u|HomUTtu~0q=;noyj24Jng&9z?joX#?TT(<&fdl zH0fhjREb|4TqLgz$fZ1gU9*QH1W-F_}j0ozw)iE++Y9r#tjp> z8ZwUvAD2V=-Z_FA`wn|GMBWMZ^0UkkxRF~?Jq&dUa(MOCSGKo?+_+17>b%2s$>bYw zsl$0V=9?0-zmxqMvIhr3t3Ug!n362$BGHo7_UU_T9sCh3W5@hOO(^kJxjI4{FFCob z4PdfFxorP8EN*~YXXKC_>ETIdoHK2{r&xQ?)%pFNnmx+@apYsmlvd}bw;3VtCGT*u zN|AXDz(l?_l2Iz%xa}mKI>8ewJe3xOVGj+iY&PN!p2c!~`@Y>fsS}F3uLkwSMidhL z-l)+VpCPLxfHRBswxfg~i@RXQ$iUBY%lq%-Ayos4yS^>C*Ckx3fvG6^I zReC5)Wa+Z;eN*T~6mRq1SA%HI*>pbm!oPtWwJg>RX0MCP?MlX;ue-jwN^cM?(>#kO z_(5w725Jn~rY++18-xW)!OQ^Ibz#@mW?xW% zOwlCF=hXBc!3p2q2jtv!&A9Pm4VTBvsGYf>1t4-AE`3@e-B{Wr+8xu}75LB$RSJb< zj;6e&yA`25Y$(PgJrdEhV5uxhTR1n4clK6_gQsN+hF4MY@K??|PUr8E(CF&jZTUzt z&xmR|H~Yei_XfDp=9iw18|IvO4D{t01%iB#qHaJ~H)`&_h|lVSHd17q+OCAS;rv2D z2nZtQa!n&M0=$XUZfFn@|C?_cTMfwA@=(yoJN-D+fjv|6+@beLI2PBL1s9rB8~I0p z!IJj34;~!y0RjyH8~zwFVS38}D^vl?1WEp}2gn7aQP9drTe&d1SB_-}kMp455zLQx zD_+^O?jj66ep~fG>FDFCM&%qntqMy2XDCLk{F+}j021iP(lE;SXgoS;XE39nj~uRL_K;^PRG1NcB;{Mmu)YDS~XuC=7@Hbzm4ULw+IgyFf|8Ttw~t@d;K z<$4+&ZokN+agZ}7&+r#NAVl}RB9lw=ros*?7X3v>9IzB3x~T8?eV!o!rrP8LnSt%B z9^l+ElGo9MifHWyt5b%_dj^lu`DG^~wEE}I0)6F)%NONrXv%6Q7u4iDdLC3I0*F-j{Zc;0v4&0>6tA${)O*7&=1ISTWW5Hx82LBXsKjvi@g9l(k z^>LTfzr-}{e_q(&>eQz7kn66ZJo&IYgqp_&XeklZ|@CfNhi|(?` zbzUAb+0krZyLs{tnM%Jp1N)ha#Ab|w@F8(Bj!m96ua|GwZ!qG`6%ue#k1Qt&F3wIA zn%EGNBcD1Mjz3E2;Ht0Oc zKBc;D9=b=Q*gSst^7_J{gPAHV_1?n)XA6q@6;(uQC7{X5lAvlQu8nb40NA$vmj zI7d=1sYWgJ(O|gOekAv$DhpYR#Qy9cx#Ea2KZ=;PQqK_`oB18{^AzIYv zZFGX@oe&ZtI?>xGkx@d58Z}xXqW3zV-}l@|GoQ z9_5H8=!IkhZ8DB@?<=W7GsFZ{A5~dJhDy#69aU8~rxxCFfO)BMOBeE2z`H%-(By zXKzyE+v+=(_wbEwHN~X$X7(pX88_9dy#x8-a@wiM0=N~-n3?AVSfDdm32;loCq{*l zx5_JA{`pTJ7ZD?-l}%Gc3cC%Ua1Iz#W8XduSQMP&ktgwM1JEXDxdizazd233v|D?>>L_D{MY_#_I%%I3FK4KI*LJT#h3X~agsPMZFN~sz~P;P#} z_1`H~aT3>q^_(_`@H3y>m$zmfV3#TE#cyIzV(M^QU>?0 zn<)3qqA4I4>jD6)$Esc{-aFoZu>tVdNWC6%y~SN!tPK0?W22RFTCZV=rtKf;5a$B+ z9Ut4idOq?H@4ig-{T0Zo^Q&A&Z2->ZbIUK+1!}HpO4)mxzvE=15GAglni$a~o=F9t zk``$u?4wh@Y=LI*i|UB!rsrS7_rs2;)$70G@CG=bmue9l|I5k9i6&<=Y8^y^cV$!U z_)0%@dp0x}*6Tzo6+w0(W9S>9L{P2UI(3nqIeNkV+*B8Us`o1cJv6A)W47P|p?seL zKmr8}$S?qqk0;re^>6aI%42bhk%cbHY;QK;j12)EVG`O;W`A1w-WkVceh+j0x4kRC zKJnkyL940D=D}oi`hy@Ed*%V3IZz0|#;$*UdS;uU-^>m}DDWYHJ-+!`R)A?J!6)fg zfc3qWhxX1Qv2_hirz}gZy<1A*?}h6rB)y+ad3)~)Sf5;VF||-WHD$YEH=%Xu%}V3* zl;jK>_Ib`%am0RByIT|%#`9oX?s3t7ZCyLEYJeTq7Rzj^H`d7TiZ6P@4mmK6(@T1# z-un4h0d0i(=(=DwA6Z4yVP;yqh<(L}%F&BKlQ`z6T|0ZbH6vZv@+W-G4T?oFa6!#X zqg7Tm=bXLDJt-7bz0o9L+^3{pHuR|Bg+7Y(kFm!Abuz&n+`t=k0)O_8s z>@4Mf=j>StgpqknDLXq5>iq6Qj$_Ea3GD1o%rgo@Ra)26dmL7?yOJIZb)6Cq23`jp zu9rL;J1(Dq@&xfV$=U`(l`82^rK3&c^U-3x$t1VQ%MAv2QCywDY3r9Hx0`m{7p(s% z0rqBMWZw$mB!Vi$^qwKGYP!{HbRsx9$vt_`ztME3bAusl&v=7?6tOFOq+EHg!{b5s z{qOGCfVG<_lK;{^&mtf^^)*RC%Vb-8SwvrO@%6iH}GHRVD^hei-zuXtT4Z! zOXV{2+yGN`9)iHBD>~m>ZVKn2X2D(os7l%)Um&(U%#PrP4ys-G?by@2P`9G7TEvTbZV2z3I{w`UJF{9Xl*DgvKy=ysvX!Ii6v;(Se|_7!AWdB9;QmxUEp$q zkSJXRg=N)f`53O5SBd2kFm)YU6MkjO=ch-pW-7vRq1T58V+vPv(CmE<`TQ%J%;dFn z*0`ZtNNLUlsM&}9wK}H7`b@QuS2=SW&Jb>VHjEquN{Fht`*OI`Ak&Lnn18Hxh_&av zQix2BHXnPp|3qfw%>b0>2hG#2D7>Wnbu2R+K?6j0uiZ8BdhIg^!R53Zj4kczd@BHlksfpvyggsM!g77M1k^C=6ZYbmW`-5;CfJ~T! zUA^izd3;fZY?r zJEFzyA^)1A9vcPe{Iv0y7{E9r{z^)QjZ><~j;t1dWe$;+;!*{@e*=v#kiF{%S-+C4 zr0o@uVUjobAO*W9t(n~ zcwp#XAg|YLyqpL0|8c)e`V95x4gkw%tCpa62TIZ05@D^NFis)kY^Gu&?48+fx9qff zIj5eG0xNpN5HmBJaX|uc=)u8QebH4W~=ur%Ot*`e>L2D6t_lklak{ z0sSwE1052=;zg>4;+q~ZjYntfAJ=qbS+V#wX!_MeCK8MLroPKrDT?epTOeT?-+13p z+9-!-;|8NZ+;}#|a>=EDtgyd4B;H{Ry=xv-`duhI0~()JqjwF|7ktG9u-Z{s00a{jVh zMTHCA1BsY zJPEn~)-!|lAbq$nXXI>)9{91g@aki=?TaiqP0P3jN3Z5*gB_2vdm4mjjY_QhPg4$< z2GctIRpHndA&I@WVK8@&|I%yE?0MSYwzlBRM!trMMGylDQHw-YsAlvQ+e{2V#3zO@ z`1HxgUzFA1t@Xc>AChMG{t!H%a&KWF`T;T1uYsTu?-B2WwtGzyzw_lQd-*NPF4rB% z;T!t0S~*|S_VVYv_yt8HJ*Ed$0cl?{;2P*tkJCqa+I-(4ZXJ0|R@VL_^m<}He0)h5 z`B;kiJ}AH+l?#d_|K@Z@F(!wdZ1Y~2Az+?zS|3Gfj8AcWt(#K> zwey+`I>Qo9+?6#i*aW}2E8uJB{*i=a5+V}_$-SG1&5F!DO8_JJ6 zQQiFpX9{6>$-%1#fAmpwctR;CTGq5xpbDHg;rGIinEaPRVab8nG&gNz<^1p+2;t#` zNX}1)Me0vdBoj1PGgIRa8eUs;Mm$l)Xy0WvlG``4d)9O zFdNm2+l%^=X*>)s?4F6uU8CrS@7KSqw8H$J`D#$HO1x?BdkVYxFjZ)eGmv-`tW+jQg~qeHR>~N364fXuAyRD)KuWr4ybBe0(s4-+ScRx zr%r-Mx*GL9ov+-Iq(S#k8^r5v*yw9eZEl^zA@-;94D-{gHNGzmpk)gBd)2-uhKND#>lMt- z#Ff@7OG&Ndamtg)1>ei+CL$}ZC9-XfJbI#H-ytH3cH zQYS!DU1D7@{SwR_MkkuF;OzGnlc?{j9>=;Ve+>7R&(s?HBud~t01j`}|`#9kap>%hJZW zjMaY@)Ac+KTre*he}NLkiCgNn-Zfrqij`!H8O9i)cE2-s$KQlFBWm@$xTZ3e?iZ(z z|2L>u%CcTnX3libB6noPQ6tCuH4fWSrw=uqdhDM{;I5%L?sPOFNSvaM&uedd?`?l3 zk2`eYsAQh6!l|itqRrVjfFz#_Fjcze4=lM{G5OSYNa%ih(Yr*sG&=PNd5#u>e zOHNUiRO2x>2G8e3G(KAJ#1}22-U+SSGq2>Gf;$iU-evJsHw#zZE9!Y~ruKy*?0e!- zCy9wG8Irm*jNbI=K$AP0SRO!XN=33iFI`VhOtg{CC#G*<%;nqV)*8Gec!dF3C`&KJ z#0HXT`x?Y}#v&z0ukj>NMV#{Yq&eDcXO^kxbZ^lDw>kfq|MpUxpLDbr2c*l}O7Vn5 z{QPp?o-QPaZqs-w>&?_wq^?^vk9+424SSKTInIrzJ8vJ5!gn8xDwlp{@jRhMiJaq< zGD%HLY~cew1)FfMwMTAX6I_<1!r^zNIVUv0{*keNi-av!^TODN4&_mi?GpCMM&_w1 zwss%OYQ#7if3h~D1$}=(2AWiKe`dF1TmM)8@K2y#F*2HC9@oH#?+q_t8-JVQY|^U{ zrEw1Nr>jTmj9FcZMJz6cTLy&GjKq=RyjEFs5Sfns_#EFmI4RssEF-mUA1h>QPg7ENK*SUwGI#b7yTrj3@WM zSNNre9B))*b#js>-FVC#Offw-V}>;n((UzX%}Cy+3jezIPxUh8N7Z5B!pz?nSd6U- zk!bc`f#s|$ED^5o@B|_*L!zL|eJy}tVfvMSHw%uRnTVNBSglL^vDyCB)#LZD@65Eo zHw*l$%Ll78UMqa!%FWk>6N=yMS7v@Qm$~+x|2W^EQI~6aPzK&G`gyTG{MLMtG{1;P$bJ+Gr6&`9Oo3i~=}e=mg$V~YS$1WvvCpmslyM{jo6deE{k_Q{ASG@v0cCRFFV5$JW5=0?RMQxp z6sYMUF;I1oxHS;!8jg3n;=Updw;s{#>IGkWuCe<9&^U%ZpU`^wC{r8dtvByT+#+#a*tIk>RRI5j`=a>4Ki*L^W3Qmv3hd?s!p$JOPgZ=5pEEYcb$=al8Kun|WxH*?+H;S{JH4OO&bMBm@TWk)J!O z55*8ksHWCq18MOg0lAKy*73+sZf*D(jes(tT_nEmcH)e=0GG`Gd#k_C zIWz-^`4P`$*sw$D@w7@n?H*iy10E$V2VlBi@ZCSBcEdD2jMRO5frenNc8l4%7EW#2 zPI%@EMtBL%U%)4Hci2GH>aFxd!7TQ7Cyz#=PUBjClcW@Qw>( z>#@j?hNEf*B>NUOn1%)bMi#N7e{vB$H(gSJ&!Ne8C?1O1g#iYk)VSfnh0pc?7M4qc zZsubS-1|H0_1B%V#la5%fl(U6!*+T#qEOTqEwr~|%Qw-S5v8Yh`B+WxK|$n7z58)f z5jgE-RUX1#iqrGfD9PTG*O2PouN}qnc-fQV^VG*Wdt9Zz^ zI;CnosQD3vwYw_2x=pi_^HR*F?_k#GohfC_d$w7xfJk5$DfmZWM-tB*E_`+Uef7_D zL2yKylYqIsLUgT84uduyCqN;e($S!iH6=#^80$y66H~=ts(#CAJDPnq5~;Nv1fAs2 zO6!+vn&((p;PgKi@c^G5xQL&x6ZAUox^gKFF7dqn>;*k4@y_Wg50g|y5d{AyA&^7AiIG{eSNg?KQG|!=Qg0=vRys9pdITcUcju4 z8l9BD{6o?JzB1l2H)V266S0&^D8?(2%=?JE-+QB?P{TEhl!3Uh1O6k^>1m7@>FNN5 zZ>ryr6$DxfgcY=?v-X=VaQnq;mC?Fyx?%HUz3N)<95tgidtM}LVn5JjnLzND2|jVA zN2d*WTUebyD~0x)m4>|M?`9g^o<1xuB+>RCGkHD)7=B67#9wf;KU!m}T&3wJCoXU(4<{q82c?-xHPaDS$Kn|_>{xZmD&z3ZR) zklcdDOF@B0lreP<8oS?$-hhEfOz19N|B(Ki@8uKTO|-inJ7u-Q91fdsRH`rq&HOn( z$L&|<>0j6;DIQPTCS8%j4g9Z~iGv$f!OK!)mothFDv8H`vZ`qAoie`g8A|`~y_N-> ziV{D!L%Op(~%`G}F=+g(?bq z-OtLp*S3D+Kc4(#iSa^PZj74(q}KH&Grd5D}k<)xsCuzLezbyEG6|uLb z3#7U%#PBPF-;4+U_CoPW#7$Alh163;T=8e#FhPPTC+)YxyU==>81fzjSjbar7I=GV zJ=-h4=d{xP`}*T!ZhFrE&DZ~gaW_>)ahF%;1pRxs-XlPlbRIn+^lcctmV;oX9( zo1N9W$)OW<@Z}e)V7s5`4Y4PiRgt-|SOXxPu)!3bV! zl2j6gu=Db#eTbPtuMuf7c=wq&syAbN>+Adfm<%dDWZ$0^w5gzd`3X_B${FdL7FIXN ziNrA)bPIVqr)8`~YaC~|HEO0{EVhY`sY@cqljrgc>u%S7ow3g;VPCsZ2}{wbAT`7} zP50H7V#93OEJ*u!z2EM>KXq+xJHRZ1Cf07k<`+8+M`9}~q^7i?L!|+d{C)~5_)Jz3 z5N{tpHIkYBjq%w;s#xjzS~|-rB%?yq*uIqg$%PIs17jrkIhW@=t_@5XVt~DrB2HQX zZ0HCWuwjYyS9Sd!H1Xf;%)-{)8{EtUa03{S-1m6xV>#0IaK!vQE~Dli4pP#%=kf0! zLJE}KBr}^ch}xR^eK(+<#_cQ_b1<2)-~sI=YQE|LJOjLbEdYV62EKsjC1C6 z4~BA+EqG@I6C{7Q_=x}rjRYM6zNz}*D#2Rjw_Rq|u6~wt>!2?SV7B%CgYhZ+t#l{( zIA8b=P|($xTbTZk5G`}jd5`!z&)XPP@0_iI&$ga%;c0!`_dQ-^LggfUbIsjSmV;j_ z-q68^vQJ)5SMybp6hK@)*vm?S>-CkZd65h*8)AbGzkhP}y8h>jN^@ZdObb|Zwapi& z4O*;=MmrVM(QU=B7ip^iz9lyU@c` z`bL-M`H1xAA}dwM7W`deLDTy@TI39Qgk5xVN5?3`Vv|8N%u@JNxe*|mWxoDysET)b zK#fxM^ZQ2GGkO?k;J#B=bHfj3Di`X%x2$;$fniQ*K>4P29W&9)*8ADvq)c~N46`1N z$G2h%+g*Q?Ox9o9UW!rZUX>JCuGWTRrjgP)f`QGx*VSFJ200(EWaKo)YgV zK;xX9^X2RZYe9;!I^@nhSJjn@(kRFp6GDiE$q-^9T;Xz6M}f8O#}qjCjCi*C+l=A& z9pe@~Uc)QkEKt;|=V2qq+Yn46@XmW-cU8e}qcOe~RM9NOo$(QZ-ju2lXS=s3HKmUy z{^4QSTr;;5C#Cx;YoOvy;P?S!W5+TdpOM=7N3aQFqX)z0npXMNKugm#v+sjLSP$3M z5_8!`WQ7off_fq{CsiqWYkufXIT{Cqc&l0HlYcS6^z3IMCEp7t&jRD~9<$#XCx1EC zkgp}Nd)M=K2skns;L#E(ImIJ=@0EB_W+xM(7-ceJ= z7jJH6aD@DkqV2T#u+Wwb9s-~n9A9Z?%*8{XvF_p@Kq-bp-h@ch@ND*eX() z^<*V)T(0|x+>)n(Bm#JNd4NA>Q}Qq z%sClPR-IwP)&qBEg7osIJt`gsE(cIrPA@nD`d{`52d6^7#p-lswH?pDw;lEkF?puE z*y$S!xBI2Ziz*$Qqp0NXd_q9~qnZ;QRxWkw<+aF+8kxRN9~I^DZuR!POouXl+3{SC zerCB>wSdWL7hz@nx2v41xBUhD?{}%l!FJKeu0jqcu#puf|($wZj|fFckjj{Gq1Fl&%M)(wbkvs?1CWJpLf z&}U#MB@u3v7JpAgH(S1;Tcr1R)F|snEk{kD*PcAjWsPm6w*KLopCbOs{G=-~-+1cj zP>R1wX=7!5zPTj>#O>cUz_b4bM7R>(@xT}RFWS(*{|kI>xMRxVVq4q8ATrVkQ0@Fw zjpo}i&eYd|5I87VSjyTGYHMo+7Fn}>bQ8W0eNmg15JGc;Uq1RTPc%B!ysm2aCu+hM zgumN0t{}HRnf1iTk)c8JSk&qdt=SzX=;hS!6I-lpyTayVD!pA1GZmeYbU-Kt1f~gT z>|>*1=1XqPasx&RE5IrJMB|y~mAsjfX)~i}m&D0GdfAMB7!#Uhg*UC?kN`@`|F=10 zCisI&3(6!?M0~e?*)OXM z^V*GK0p)MhUz@0+zkoEY>__$bPkLI~YioJax|*LFQ%RFg1p3tIkWVB2c3$9?f3_TA z)%rqPDHEWOpOWmV+z|WJ)y+YSewNzZ&;U;SF~#4^2bBM_l=gy-VLIHVJUML7<9mHR zsi{dn3Qha+#+t1+y8%0QsHwD~#H*c%wk2iwyH`7XMb)_}^kHLL8N3t`+%(=h3Kc_w zMSrI<=K8%1a1VyDA|8A&7EN)Sd{Ao}lt35)ukX$wmDOkY9KNQea6&-{DLTqHh*}$b zx_^dImXv@)awiC62`cNm$iS0lJ^WTKy8QxLlFm{C0w7S^gY^m073G{ZUn_{HyuXJj zHD?60u${>oJkVq}oAD~iG3fNbm2OO%^C4Anl`Z?{FcjaOx-YXEKGxMbSxHnZ9+0Sg zd-w%1h`)^EipzEaMvo(ipcryQWb3zQ8*6TXZ{Vl9ekL zJQs}?NRjRKnSMS;Kty8QeFZ*q(YiC2LiOX^#}R0e9B=DFIDad4?4KyOk{7Ry;IJ+G z$JwWL)&7jf_|GbcsUqBhck2@xso@m)@%;}3IPw$v>`x@?VERyTF|ViqIAF-}*3obCyP5iA8{84ZAuPA7H^%x^r4HScBg^)gA!i-I=NAw7T zqyIBG^ESw`Vp2Wx?hGM5v59}tRgonL??92~y_tq`PW*(Cy_KsD+8ZVF*9h>i|A`}H z`MW34e+rUw{8Qb&DPC6<=vh~L(OBc-czJyrS|s8-^S~n099{2>n;8%Xq#fAv>oRAB z2;P+OS7TecBs79H-i=vuZQAo0!8)%l0{bHvN55o^gxoqE|B*h7nw-5}q9HEP_@v!Q z3>fRWlHP0maTS?albmk7eY!2W*Gs8)M8^Td179f zE{$hvi}Kl_ikG3hw+v`A#nkWQ^@aB3_2St#n%L7rM=aL0(0p_j!M4Wndk{gM zN!ynsWTQLL7h+=gWBU&!KhYf6_kHjA-dtTR5;Ftz^P5Vqd>t5A5trvor*pEYP<6R0 z0VCIUZR+U!uYGvg^B~$D!^*#^PH0U=^HKbQsI(=7=29psb$JKDlyv>wR~IAl{{;I) ze}sPR?&R2eX3~ABMAK993|H2Z9$)-gZ<{|8_)6hE-f)~oew?)SF>+151A*cWcatm3p4ib!+o+dbrr>s#XttGAczZP z#$WFecp1h2)&R3AH^|R-itmKhYs_`O54vab>lj$Hm>o{JgPqpvB$>DR?|r}Fi+8do z5ebZBhqw~3Q1=E?YE~Csn|)(>k>`wnMEU?JO|q5vu1^hcBLzEj;_$E<8jhy}i@VEb@n@9U^WURnX*FTxrNU>FyhIj-!q6C+Px~lT>>3+g#slBY&@1Qh zcS>G;znzrFMH_BXRLjKIv$SAwWs8FOND@sPu-@;W=?{~*=53U?^t~D*%K;%u#A0VN z`FwM52c`Q(&|ulItwg93`=5n?@o{hdi)~@@%OHhNg;49r82o~Mcx@eBPrykJg^QtXECA? z$_Yxj!-jTDrs{Cm_aW!XO3l*r@>}4FnwqWdqrQ`Z`+IL##4)vwn>C@oUwT}AQM|m1 zUl!{=$#Ecdmd{)vIM!8BoPNB0#}BNtr!QgkGr8u zivhoBNG=%_{Sxp`6=MPIJI`L5brTth!^?#sB{n#(GQXpqMYXS??)bsQ8K!Z``jMrT zh^#t1vz+(u4fa*V)Bg|;t%7rmAKXIE#_F6GFaj7t&t8=&T@o&mYka6dtWO%UUouJz zC0$W7k1;F3|1$!k5C$?QkJKD3OWwq+~~K= zKqgowCG185v+t!ygwe-(&sSb1oePUIL?gGV=E*>C3$Y}|we45*tgf6_nzot9uf^+z zC;M)pUk-a`@{slqI7sgYGHYLwb)RLuIng8XjfKcS$N`I_UjZ1vsjbYX)+s?dYnQ12 zVr-b=wT}K(THc+{&VWFT@G>t#_c6Rjk(BWAH5ufJeYY3j=U>=Doe;)|rJ#%-E>ooV z2aGQzCFFOdyScWBGmg%=`blP21Ob4NCa^5pr1(V-4Ry*+o9F^r1u_I9#hMB6`IDi( zmnktRB_~8|mc1Q5{4+cIBblzWEDr7zjQD^iK0QjjUOY9iR(t|>p3)d{+FENLZ+Ex%8GjjiT*HuK6;il?45jTc{2;|rP`n%p*kyYiqQ2G(UV7ZKW<$U9ark!tuBYA( z2s!u-b7z_IyDwzO60UgxKa&=}pb@|1mKPsX1e#2fb&xxtkx&%I1}FwPM1TAa9eoZ? zt~ot{2HmZxV9I=?BB!uQQ@)oFEizmITov;AyeNb<^Sl0aphAEdX&0c#w$Gf*1Ph5d z3WPMd&a@*B(Q0z_SRgkL`aMAcZi{7(P+};>-x;!QWHh$L!jy|XI;6`&;rCy3Q@ovr zgkG_DsGZheu!3U@fc&3i?$w2<*2iRvbzKKvJ}1Ati|C4Tp?WD5?=jW-8jXQwrbz6v z;XZfk{Z1QW|4+2v4yz6t`3)ehLFX<=Wym5N0JQ)(R@@{rg|_Z4eD&k`nsHo2(_S}l z?t+;2MjT-^FGEHSDo?%GBb%W9rd$I_PBHlLndWN;sl}zn@A7ZM7OxYN00cUT zel@vRM8NqZA^IDYP_g8Dcw3Ut2+lHc+B>k(FmYBTl7SbYYM396;-I~)Wf}phF-2Po zLmiG46$6DrO8Zdg@{Ta8z6aVnOrq``0uFHcCiegs%yhae1`zGFr@dwMMV;==ZSj}Y zB%#;;F^@UCnUX4>llN?)L`Z?>f=;ar%BE@_ZO-jU1591f5YYlZCt3Q>zK^MdZO~k* zHsba7QB<1QX_}Gbh~&7=kXX)sIH9;nJ17Lod+ETT(B0=?rmtcL75!WS zVWi1pBmagDSpOUWnjJVj?EzqNGYMz*)`4m!N)XY432XLR5nbCMuTvPz8KDT>2sJ$e#VAs$7Py`>&9;>mW z;79&XK5`hnXg{~~43`&4WysC~6SK#UPz3|{r(S~sEDlNFs*e#iOh5+m)1HV1mj{%Y zSfqigkaMJ8oA!@2&lIVTKpQ6nh7?B2+R*JZY0fgQ&LVXWAnm=h^7MOsLaoK0FBKe* zc7A3&w>3e;EOC*joSa&xqI3$S>&UgS6uVb+cWf)ad`7_HV5aQAaJ2hlDvPI!b4|~u ze4fX=5%R@p3;NzM*Qy1C;qi;p7FOo$m0|PKNibQNnVwiI0Y6kOicgiuCV2_t&VS1a z2Y}1tlyz=uaP%bBKaJqLA}DXLQ>N1&%jV++wLlF%LG*U8ee`4Ddhz$9AO@iR6J7=t z=F$z+)6q0HG*`Gb7zC;uf#zHjLjg{s_5}@65^ag+cC}c4Tb0rm+ix5z$9Fv^T|(7= zH3~Z@8!mdxCT;b?Z1IV^uQ;j@veWHaWXh z%j(t&7T!DlBcQ4CDHAkBjWg)I?b-MkPLhm_O75m)-&+#0*6dF*<0|O*I@Cd>EoPSI$htTH?UP}uh^r7|` z=)Otz{Vou*1mspv%O^d&mT=*i_FcrI2qDq+-KyUA!{dSx9D~5ZKqqVTzeO%VBqh|T zRLLAyt{zU`a*_)&WqshrHksdWX5;arcq5VOp>Jr=t5Un(ybCdynF^t{3;1hXLK#BOy2=uTofrcdZ2;vMH%ZV&<(_`j_2h{_M#j^`_-B5L2^T7+yEBZw>0!m zDE&%K=>WiDOYlV?e(7`=mw@~Zp-h;rFD~YM4Dpw@q$644a_#mqS-FT>41Z*8vFn7cl_4Y}Uogjc+?)(oIf|A>fg=|uago`#D#*G#? z08QXulU;mMz*iFt(vhJri%!9nZFJ@PXo(m%cpUQ zCrM=L>X_uaDgL$vPB-~JE@k8SY@>1W^QlIW=nM&0_rFxMNBOJwLdt2hRyVa!;| zKSYOo)2}!FlwDzqWKc|;x_xPX@q`!}T#(IxldKFt-kXYT*9h_C$EmF}R7hfB6*7`$ zR%IU>z<=hwC2_2#2<0IZ-2LwwnP@bO737#x_k7dXJpr9e{&DK*O#+#1WK)GUcznB~ zK4>B5y_XgCpLAGHcw6HRC$b&(MfWK~{ZT{NNB$y35)Lpw!A%|Urr|;bzo>8${^3`k zxCRCTb#DwSyi$?JhxT{$G3)XKVrT?1o|SVw>k_&n*EO)&@?vI;50XGUk@1a6v9q?O z0$NYtLRL@j5I(x^tuUe9Acgt6>ebEsG|B@1xQ1&o;{g!<|Cnqo{r}i~_o20bMQYSj zB`f{h++J_n`Z-%cEj~_FL4}DOQAdE*CGqms@k2o1-T#W(k=Of|mT94XW0fp}m7loQ ziV~Q?wj=MJEZNTWAH2Klf&RH_C{pg%fxTN209Q=G5KDtrpwqGIb1xZ58eo(#nkw4v_|;)w5){?SS^!z!2{c`uDa^}_V`XeXxOl!xYp^bxndVf&ReL7 z_xv1@Zl)I}-qENyRcmSxC& z8CUrV1`G#8f1+J3FLB1dACh|?UW8BDAC$!Ziz7Rq{K-7wex&pvA!Whj?uvy{1VG!7 zUhe6`>q3$)1$igU$dJ6?N{X#GoGVBA08O{I^e88J>5Xl`*=SNmwiE->rlIm{$8j zo1Fo}g0{mq8d-4Ls2;K4kU@s>0=jw2W~oo(>`1jWeLXk z$LRGc8eJx6W?TXlPlANfz1fVoNpNLW0}7eiN3(z?!#|AJw1JkOv$L%zH3i$?gu3iG_H%G zEn(U}%O>*h^!VX|SL(%w@tHZ7hN0GYZLyf)`Hmr);{bm*V<|G^F_G`;x+wIFQVbpm zw9X*Mf3V@gT~;Vo<#f3s5d-(`FGzstH1|n}HKhD|ZOG;1s3*RPA%IF5r_0~hP)e8y z25ZfPC0JCFqSZUr+`38Kld0e?&}cM(#TMm_x|$-+<=uEiB{;QejE-e3$t8EsqiYCf z%^8XaR0x#c8AM^6%Z_WizfdC6(I#D_ZC-X) zgTB*xRTx+E0+k)Qj4(6g3JlQW6w&dPKJsQOXITL zD@%Dwgk-%}N$mr0KN7_6|A3(#aJ^iT<&81K;&d<;zgi;9{S#VpG=EcxdQsHqqs&x`p}PR7+|k9~etKDxBQ&TS&!Adr-VtdZ|J|0^(_U zqqC|*nSA!ETap)F?^KIJq$>FBK~VbAv=fgp)8CjG>#INvq5*Vj&I z`}g&;e*KY~kMKp2MLXVySZBg91d7idi)Ad0X@|< zmnYibBXO83Ee=rpn_$G8@q&4z^4#JuKgOBUhkNF9j5i?;tjiR+wRc z>gptQH)2I@t&Lh5+-%hYi1j>Cw zIyJ9#s924;TZXZ^VKsc1t&C-!f8mbJJa=j$f?rIpYT>P;yn_|cMndfZ(2*X>!$diFJ?Fzq^oe;`7{hxL79BvNzYVzeO(DfnLv=T zl1)f+rD@Ec&~>%iS}2NupmTi@IKL3kES2HwUvk4N{Ost2who%{%-<#d_iOa&t1Qh( z_cFmOs8*O~YY%evPWyiUUGRb4(>-O3m``-6l0gk+>X1wU@<(j>kH??{$polrvWvBZ z?OqZQ{o~iCM3PaGzebGIIw25Wl#kX2*98$61k1GcIRu*ELTY*oj=X7GOt1^@I9>hC zXzCp?_F^h-51!bR*B! zDd#^yJotyzQHfB_4?duJ$=P1=es&V#dT1^~$b78(fIga(gq3mcj*m?F+lN8!2H8Vr z&tp8fBJ3i1aCH)VsC(V+_61nqPUEVRwoR7J3_)Z!XD#9x<|Ac)46YH~Y+*jG-yFS! zmfEPsAO>n(V3F_ePj(+rjXm?~VrAfIs7$jngJ&hpmh)k&GN3=o`I?4fH0(p1fNA*u@DC7%B@Z7eS9i79=3moZw~(gYm2bBP zF|ZFJCFclp&$CFYdMA(zg1!gw)V=f0s0-7yP+nTYPwckJ+Iw|bMC+t-Gv9XH?i!=(XSj44LYIJX+JV8Z|#~`34gzpg7(_*1ge3QItmo{R$7~% zlDT*v;K;T_$I#d&Q>B*LE)KGYBiEAG0*CI9kJSKcFV^JhVi`vjhWmA{A z5d%*l<$I3ap<&8~>>c*1S1pmM(jTh5HHqmn1n|#I`p(sThP${YKd+_u>!-@imh_^2 zB=&81?Aio2)o6faB&g004r~P`KcE>%vX6r;NBu&Gmc)yjf2_WZfRV%EKETmh+}wH8 zQOygI;OiH!daSrcYDqT<*c^44zgWY&CYf*UP@>i@38jYHkY{s5rc2g`)m#X~ZRysg zTJc4X3tx{Y_!REK-(HN~u$X80mh$khbqIJ<+yUeCV%0_@MSP?_d2n#@VS;t=9MZmp%u zRr{frdAG=5`Zp>UUPE7=;6TdJmT{y(YoEL3v#DnZHwj}9m75tSQknlq*E;MIi#F3F zo%=HtOP;M)?}u^My=ZNUc_Yo{uRn+aw+~E=rtrKuPpLPiAf>qhS+=FOGSS{Br=gKQ^UQJxhKK*dV zrH%d%fl-swcs%G1qftE4_d)!Fs4P1KNLzw(eMiS+_jn!EMji&>uQo=9q}Z^jD^(%gDER*`U&?Vi^-|Ce(wIIXMH+s25C)TW5WYVEnqfKjHn*hR`7D}_eXpr zkGmTFOy6Uq!f7gJ=k8HjokiX4B2+;rS0!sLqvT%ui34gepG3S&MX~=r{ZpniVYB0{ z+g(sV?|gp;8x)jhmQNTav;)B)wM}Edff@HY(%jH4(tlqXXXJPnKF&$qlh+evzPzSW zz5dW)*g9EoQR3m1kg}(L?jNQTyEk;V54e>wvk-6NB6L^ziATa#OYs&Em}sP3 zrsI?T3cpSA>miz3$vRKrVL)uZ=fU87=X_^-3FMn#N$uMs5{qE5uQ}j&N>4RUCtE6X zhatxD;g_S;ILfXgv*F|!azcyy|B-av;cUK9J4*yX&=NaFiwa^^t;W_?mD;1kE=3i! zN7SwrwP&dswP(#%%*Jl(XYZo5SG890<@>(Bb6szq=egeZKIb{-zV9>TwOl;4TDBVw z{KV^_-k0(y?z;x*gjiT;zH^C`gCp`4DXY z8jj-2HVP9qTe5q0v2%Q!_;+#9Y;isYuij*B`C;&h6Q{{Vh{@M78_bcr0~{%11YAwe zAlpdf1?pUsFXmL^8^fpa8Em3-uZdbD4{a4&CF$tDv`LAKx5&G>pdqyO8vHa0aOe5E z{P5N@&yG&Vc82`Oda0j=Qdm(nA$ILH?fHkNxlNjxXRA-QW?mw8Hd(0bw39iwKa$Xb zKe#gRz^V!msX0Af}rUvoVIG2{uk;wBzAF^=uS^P2lTh=*;|aZe;n9^&$82t4^F6yYDfIqHY})o1HC7{3nApetv__IX7=39q@g z{AN;F;OEDX=1&(tg_Y-A0(QGjWO336Vo8jvQLDB$fz{93{8#%u>^tjQT`X?I85Y0K z*&YK_thiaT$0G;hTG#nzTtoMEMz#F{ZG&!qxZ!$ZVEN~t!6c8X-Iw(^bY1T&7D>cn zTbv=<5bI_xQ)(iEvvdpd^3DsPCPn<4*#dxSc=eiqN&mrKxC_2U#054!7|bKWCA6HO9_ombei7U)@`T#nt-K-++#beFwl)2ls4+A=ZzXd3v@aZZeW3 z&4!4jx5nFyH+%>Dbg}n6$g~Hr<~OO#v(_3Wzq6M7p3QTO=VUVqQC&>N6NS&+NbPzt zz6;w$PW(_!I@!i)Q3_j1d9AZN`+9Yq)s4*977)~-VZewdJ`^p6%Z-PxYO-oA4#v3A zm=hLs8cM8K!-O{w6}iVCXccET-0wKwwU+^tss4MS8SrB*e%S^D@lw_ZUwdUlt?w-4 zO`8$oJk#;_CBeQXPFtPE{bzVBZ@J1TtX7plg~1{j?(xh(eZ2LL2Z?s%&b7WSFYWr> z@C#z3`Hl9l8f)%Q7a_;$uE#u7>xl&Y0?|((q7ldgYNwMOhjkFe+trx$O#7cL#y{#a z_~KO}h$a6TZA=;Z0wO+pzrx@z@Uq_(3kZ95PJF8HR3aSyzRMZa5n=*9Tb$n&(^aBi z7EJ?J{>N@uuYK={Sg@R&Rv_4=+dVM8T42%p2YJMp zF>%m~P>q|f&f9u?{*rR}>Vh&97R5KaeO!aV7o@ldaIu?1tJzr!P~nQuM=FI@@nyaJ zvypQK(t_9Zu~KIhZu7PuGQZo10k>UjJG(jIek^>XsNR=s)lul*xDu*$U=H&;eQ4q? zrw^ce_JvR~lF3M0{!#5myRkc0E;{w_>W&F@BAx+{Byn>q6LxVSl^*|MgiIe*u_5F|29%*1oQy(_iGgv zwrK)_`|a$orSt@>+cWJ3^PGa8Hksl*2s`ZiAbhUt1HkMgK!XpX0E!0d^1vql((*Cy zB$l=nNOCSdAIt!)j(>flPq|d|a`bL?{fY7CX@H&bO_Aix26%>b1R(r_A(TZO z7NH17PB(moT7=1(PvcE3m~qZh4lMV?Ip~fOw#;5c=-BMK9oTgJ7pk8%(d50jD7>29 z|L$7>O1+*u7E$D(fHh25iH1gn$5=+J7YQm7QUpcMYKcy5fE55k%}9VK+yaDL`&tYm z*r}CMNW^h-BnlrX!5^SlEQQ`1<@f_?0}X$^9X5UEUq-@Fz;%#h%{hh{|Edhog{#5p zmE zAlW%aw7Fk7(k|_pa_cb)=(2|{d{zy~G@;G)w{*E5^7mCy@Wr##$8c5&08mhpIhuzS zN$4d=NHe=cK76glPK$J>eJSP|Q|x&T`?Gf+mP6;|b146wE;Cmu-Q~u1#Z6mrAF*FV z1Tw^3ZX3a7X&9S<4|jT0co4LA_L3)ZprCSyeDd4K0Df7%IODtiOrJ0DK`fjZd#(AsMg# zDq%sj`E$f|SJjiJtomEVSg2Zk6j*<}0TSxFGI~`xs^vHLALqox0#3%<0+l9=Kb+oO z`(5YmQ#@&9a;Q7GH$WK{0j%5wkeJ#&+q}9erip#I9XJ*Wex5y8=-<7x`4b~5(1X;9 zlSGLfj^AS&`u*m2p7S?ZfZc|s0t3>R54RwKi(obF;JNNCx+L;m3` z_C-b+YAfv_iwpaZ)k_<)Tg^3pF$t_VSnq_bR=K~lMU>Lz-Sy$pKK#bTvbQ|Z=COWv zzx|FEno=h>ZuP(I+RPl^<+KjJtVig)(bS1u8bdj zF3DT&)I7f19JIfGS?yJ7>w9|0R)k! zr%-I+ZIx}N^H1b{29q3`FHJ~pl1OnBJ6Eex!qFPud0}sY;{m7rygCp?D4F%W@5B+~ z`NbQBV`&ynSgyWJcD|Ezy&)GRugdm2+xIe5X~Qz{6Nfys)aM83)b>ksB3B^CbdMx= zUN5S9DC$gL^mVbiU+_9k=X4j`?oQ8ht&oosx0@ODGkSQg>` zfADSxUR#%X9!%I>FkhP6f`T8LGDA8Zd|0aH9q%ZpXGwR&zgm04X%)4-aIqa_Mc(=1 zzs(hTR)!}M$<(~fyWf3{%eX8PEF?i;rH^RzZ`*vEe$*!gf%#KB|^wGfm~pw!V?NsG&&=P4mcdq+aC{c znKSJ(PEL7x;uaR4W{aZ@eX6~cBGK-X>u?&WNq=mA4YGQh18gUICiz8+`<&}l^l^wR zWoS&mac(e@kS%!pU(A-;pI>Wq3rRj5&F9MkC8cr~O9#|l#Lk;jDAc76M2~hhv<$xF z>ls3CM+i;jik|8NRiGl%q6>T!uA%S%Pmsc0AZ&Xf0B>q<{T#A4l4q{W0fBVC3BCA0qOvU* zK;{eJdYN$y;utWTl;Wfak7DsJ*A^(bnx|Upbf?<9Wu3(}{O*Y-jdt+cvk%d!pMo;a zmXu5sM&1T*u@Jwu?L~L;Dk*O)oZl0E8#JAtA9Nf_!E!#|zXjY4TzX+9sCulOI8gVq zld;cdF}`MFR7`C>Z^fRuMiJnUtR}qxoV+Q3N_H%PgJ2({_{cPYNv0(j0*_cTq7HXY z4Z8<=rQ(eV&O|lD#R<{@{KCU#Yjsg7`>DF4N}$c_PaDu->K!DUd$5%M`z{fmkd%jp z&}hmRwT5^ZFp>%I*c#hj5!v|anzZp48%cYDST{!=>a&jEu|=#{zyYj4STvOuTJ~I> z`SWF-LQY98Kzh}h$~b~L)Ozi2z=%X~Tq&~gRXFs#qtrZEeAZq?`9NBqWhaO(Lx=rA*r-C^`N z6g4=e2~5)oS!{FbSUca{0e}9rW3K^UvfKJ`c6K@s!Aup5ov(La?J9$!vnRnd_3FP` z@&NkZ-W{zl1pEbGZ7oWk|JQr{h9D4f;!iMTF*V?mc+i)R{A9vfNKuQyAW-dZJSfoN z+SM7a4lmDon?5d_wNx$wr7c+N_m?hhp7p*t?`?S6UzzRfsPgfoKZ-HmjT>80-qhEcrflKe_=~cg@G0{(&96UBNFyA+#C>O zpMm*ln#tEL5Y31wF&O{lN_JA3nFgm4bY+rUGgtOsF6#{rV^~ib9k%@$g5kbktO1&0_9 zy^x)k1Idqk4$!>J`$(JMS{enkq(E1&_ogX;p+yyHXE_smP@;YgSb929s2>;m01q=}m}@f@cM=A_NIr|= zPSlLiXp#8G$#S_Dd@QhH5sqoEVK6;2&Nh)!l6a<1jqO67#D{=S1n8YT9y}3+fu8LT zptpx8scKvGo5g^AZ?RE{pR=(6^X`y@-#4|3V1N3~u>&d_*9KCkfj!@0 z91HZXICeU39J2P~hx)(0C~kcb6wRQe2Hf5m%URH4`QqafiDFs(16PQ<-co2RJ1A1j zhRKCu9EFaIFD?G~lU}b(QiY3lQm#x`&z2qsT?b>4k$3?}+k z7nmcbW+~mC^Ny8e;O)|ysR_4G^)=%+Y+Hn`wP1=2!v~{?pROt6zAH(v_c8a(0_6P3 z7}FaYz>0HZYGHJ;q!I5?5+|ROgkklyy2kf;5fpAid}iO!tBdES5SNg{MYtwFV(`hv zHz%Ts37nTH>0@-8zD6t!KmsJHL9>^n9>$EZ?GX+lu*&VR`sO`ezRQZrm=?|PSKHbH zy)GE`V(Yn8^WA(IzJ{+yxqfXEucDh=QCxl%W}BXD!H&lsjhv$6v6VM#?7xhjkY`Ux(`jO~k6V4AtPowguCEwvu(HF;&AXcR z*y!xW(#&wgS?|W>6!^8+4?3IJ=)dft^$>4wXMHNQ_U54r2Bldv z2AI!YWkgqyc%8YQX(ho!1&2;-{=CAzO>D)Y8Ip{x`dAP~Fz4tBH)4UYux^TLF+1Ys!#XZkzlj&Vv zL&O8@T0QfMr=4tae#5~X|K=iSRFUB>?zRe*d2TsYcggkdr()9KVZiYe59rV0&>z%T zz>6D$5EFjavaEqO%IS+dd^Pa0a#JuD2t#}t!z}37SWXGVj*WfMN4WqtE8Qm~Dk?$6 zr`d_qS=piJI||B1utCtXuP%)ZN1?=R@$BqCrO;X!BaM|L9w76Ml+V7D+xDbQt3VBAsviM*f!b z6F{d{KiktJryIcl!X8(M3${WL^0}^ybuhBga3(YHUSAqj-BIA(0q0QruNcn1|Em!D z`6`x+n~`rjn*HBdBA{!;Az#iA3zhX_htY$LT#sZT^@^<2FiTxwKNw8#dpnM;=g(H) z%Y13A@cmoF!gBP*gd(!T6Jw_gbaCUdVH3DcVgTQjrn-)M5a;kGZYO)rwZVkS3rT@J`9% z0kL1_oAAWbacm?6G__a~mrfamSe~aOn4YY3z`@7 zZ`lgaGmw7eb;wa@U0E%IkI63e{Ld?Ys3U4%7R|F|6CWxEq}ttS=>~; zJjZuD@BeUe?D=)s&&0fqviWjW>MQ`s8E$j?dXoiXf_s8sqs2Stk$3U-&J(=C))Bi# z9P}S?Q;l^dLc3_iKhXECCMPFY#2YBlko@KP$Pmmox%njD`>k+cpqatqs=K^d_x&2^ zF>|Z~DT?@O_7#y0bo*2^gL6ULOPBf9-?(kgBtyETMusoX7q86ezg`R_25qFRIp{&O zT_=W8z8{}|Pyc*W;W}H@_PN!y?W66OR*r=BRrVEe>g(#4+hxTy-Vt&u7l64|`maZ!cL#v}i>DXYTaD*rWMDC`!iIJ`7Kz6qAm)3qM`LY}<96KtUQ*KG zfqQ^|Gm80x+>LQQz)SW4VE~J$_5G3$&P0$!FKDor8fE-=_{lA!SL0Ll@fUICdtKPOf)PMDK32^tq_{`Es7b?w#cr z8I5dkWc(%V^x+v#_rN)FF_Mx;QFNhJN-DkQf5E>s0cm@E;g2GvJHLs4z1rce28T@o z>E(_GfSUlKRwCc!CW>;CfRaJ^Z`9GY zWo!{Q?q9J{^a7UD@u}`3>)O0azD1{gAQ#Uk#wePi7ML$RqY8|}2-oR{4_o#~Th}G< z5;w0M+PM}4cM1^!=-5MByW)tsx;(r*`vX>2o-pk{VdWmG=#V3yhK}Pc1uIE#u|!~q zU|Zg2v4~UI4KjOgx0OuiTsvj^Nqc;G9&&uu34m>R1tS@*-=4@NyxikfOuyBA0c#Iw z!tZe68q|LsfK6yqp^|L0v`x?Fla=%CQU)Ja{|h#po{k@)jdWsdxC#!lQvCj?r#_5= z_-1qnbTKOiHaX2?T^jEWqB*(e68Y9ee{|(XRDp+{!+!C`gZCwGA?4cqw4jt46kLUW z=mvU9D6Mqij_vFo6=;TRf8V@|#sQDs^*R~>gdZBL}6M!gWC!+9_@`qM9cgBody z!kLqKLB&}*7;S3(bn9mjxY*Gx7MU#BnIgY{DD?*$7~Dk0ONMBCcd%gF|hw&fV`MJ>>M6w%Nqg2P7W}wY0%STr~{n2T=hmnVe3|^Sf#t5jeh#}YcI)stXCC`M9`rE z<@%2Qb%-@0nil<8iqfKul>s61j?Ktl7#g-vh(#&7{7DtE5lDQ@qW##2MDKl-{GtkOgD^`$LW;?3S3dGPm4PM zZT9A&efLErP|e8a3sFPbfcn7$HAVp`SLdkeAMrWCvSM; zn{7{6#Nd1;*Fndfs{izenZr?U=kCfjD`JR-+AWQgzGwY3>CDp?4&DFI?*gr=C+Eip zJ>O^+EOH;6ha5&31pQqBOmZz;9duqKDz!>_P2S(*7{9(4jMA^2_j_NhsLN@C*x0<# zlE&(uT{nqnM^6AAv8k1RSck19*xJ2=AH`}4Wl4NWzSZ*c>cmdLAtvmc2Fvv;GbYUN z_nWMN1~T^1lfgdE`TfGjC&w+1p3m-XGV_i%KMa?p%y=DdF#N_t_8*JYMaLfP`Jp)| z(g}>iOp(@~_MgeYz!HI%m3Z~XkqxQqbIrCuQVRD{!36P}d=nT&zkbwl^+(=qyJ2e` z=&12|Ln-nh380x63di-=xZ7bftra_QvT+8+e1 z-6@C|#w-b4g-HP2mD-&*1*p1jfO|4fR|D1bp~>Gmq;HHA6VNoi$G``lj%Q(BD;(HT%I5H3 zBfz`+vzTH%1Il=ky!H9RLf3%nVbyLJ4RbF&EQ__h^>0t@?e79D>l7ZLRh53MB(mCf#k zY>}j(8Fx?X#x?oXB9t1m8`m&I&om1jWdP+8@0XWWca*2{k3q6Yh-k%F z5%fY3z@lyXah3#KA2Ey*TdV-_WkQ=sV;AJ2@niBIrV3K3zd#7daQ6UrD$;*@^YJel zC+Wr2m{Wi)gErGeDWA9f$&iUB1x|V!H%*f1^saqKOSc@g&2DSKsOmIp*%SbB;(Qs- zsTqYApEC;+Z)gn~dS@bzGLCL*D=D#-;Vc>YVeMX^$(9(?5plRz@Gp(p94*({iK?m+ z&rZ-Uwr0guwV6+|q*=AZ0q)oXB|ljzA<<~vTlM6DXutQsnjQZ=vKguhBF}s=Eh6IlXtO zPs}=VdwQ=1;rbu*WBfAE@C%OKTdZ*0?*8i*V@tOCY|C4I{dnqnP@UwcFpCHS?h!3aX*e``ti zd#P>K{}|ryJ@E~>dg=lg3kLS}(aP47S<=NeKU30f+pRL*dDCB5c=4(2>Ogkv%*zSk zr=q#-yYXTXX&0txDg>bxt;199fjHn!*K;S0ONbN7kecu3_{;w2SS3=Jc--HOxVswA znjaSdQ86CAevC;2-3ZS#A}q9JABLRyW-(F`oXE4Aw#sM84F8WZo;1VnqJfwf zoz{!TM{VD^y&)gIEM-fk_0_oc$wv$t7r143lbW8x!A>6}Kf4f|3@o*a^<;1@_rr=s zjZ<9hm{?JRctY*F_v#+5@tei7XjvHtpacnuMt^5U_RQRhr?IGi>+GaPRCZ|z30xQo z4_XtBI+9ROU~mt;o}9NPvA+u@CsBkCc^r!sFLpM02yWp(Az)Yu}K)Qsycv znx)r5l=vI<`PyxUo%K22rAl%x-XY|0q^;RJ164rT3SDEH3W3 zBO4F~WM>!0_GxD^WHB(|+Vx504~qLRG9Pewc=x`@J$91I%Ven{52pEI=bI1Br`5jn z+`uKJ2|ck=uWB&hL2{}BpxS5}j0ucr<7((O^zJ~&5nbmf%7+)Pw^)2pqyMAZmXHek zR;TR=EUZ*n?BEh2H%|n~CenMZ@xa6Ak=$p|{&(*{f9yzcy{+o&Bp9)x0oGX}a1+iu zB~rseB{_ojaslN$k->2BaBRsq!-u|1lh~f?W6flOdjXl_e)aFlnj21%0x6?#c3G3Z z7(+4aRB=?;9{k>Q8zl<(GrH3>odDiUxwY0+bvvvMzx{NBQSm+2)mzhQ8iuSncj_Z3 z(kNUibjxSrtj{yZ7SVvNJ{(Y%XTr!ni`mU@w;mDmN62o+BR)BRbCkF04FSZ(m6QsE z)$l!#dp=L5)_=`@s7bb*tl{~0`|eDk^a9uSlUW|#?inb}01|PXFV2DqJ3_8$JiN1( z10e1sZDBBE1CU6U*-#2Wmmmh{Rw z1I+gz5@AbbN6*O!$xDpgF;iztww=Ds*jXg}#~v4kbdP}~ZFVzl#Var2*;gxHP!NPX>F|Jt3$mWC z_&(BNG2ah>M4)_3GBl>~o$grzr(QA-g&bSgc*(0ai5IWPx+~0w!N8-IF>p9}-ui*~ zn>a+MR)iBjBUSaN3Pe>JDcQ8&tqO^*UZlpsAIeEe9QaNSWDS)XGm~v+dhzA&D9A)O zrz?Fi9=xD?ln9&SpX!_m&)TsN6_bpEd< zL?(VeE|!c$8repRLx?tdExn+MqF(!H?#N|ba$r3)#0+Wt;D;vABX}gZ5z*RV#B9&9 z$Q$UmMzUL^@=~(H_dq#`+%}PH61J+a?)8l(yI`5LI0|DUg8A(by=K>I;U|T8Bl%Ae zxfzd8F6I28ugr;`+NfG=$)M+Df>+3QZoog)v#vyHjor)BDHcjHkqSo|+rq@vX6%_$ zoYH`+(0US9sI4Gn-rDEH2!)J6Xw!Cet*C};VN6VsR4QHOKl!9y5n4!6+zDt!`4EQO zjkt!O%G8H;|B1qRwXB7{>Ue(aLJ6jIHe6AmM4*RX6yE|~Nj$TE;~iu3m?Yz_;GaV5 zKvJ>;u`()nS|c90HEI)18<~era+yCtO_P>SX)*J zCeDcILyZGKYFQ7AuyHiJz&l(q4}8y^KlR7k5hGL?0*4Fx;dbaO_+Y3JwdY3=#CjU< z)I<>swZ!f>f33#tbz-QIcsv%4eR}Jr#Jnqiy+Je~fiF5;>s~B2AWHOB4-BL}1aPKBkAYVnO&l|)yLeN?E1mG%L{)UT0f3j(Cj=+g0!9Fy}9&pD9 zz%Ox?rj@}a10OpG0-Ub5xSXs*x%QqghyLbUTKemJO_u+nNSTQg1iKp zkOXrb)a8HOHG=;YJ-2Hu6|HyA(mC{!Aj8V0#JE-*`M*CGsy|_l?o}Umu7Q|5F{D9_ z-b^g1@83Qei&5W7z9S(~hapLPjZ;H0-b`9;7k7Ei%m3*35dur!0@Ya@pSQhOx-JmpLl%CR0s9mfT3k@&V$G+Xb6+MIDr$d0)ITLrT#W6t%H$sT(ABk>RoCRHG% zDD_yN;c<6wOGp^95@N6r-uhqFAIMtZbPC``{or6pQ?7)XA_okyN9o=Ea- zCY<=rgBFdLFCHs{O{2no)*1RKWUopMCf~cfHc0Bi*N}%kv>U?!g|v1b36OC>w@bNG_NV9|WPaof9_IU^dJwv+`AXJ374e^Td0m`E#VU ze7x&Wod}$rPaS4&{yUSw=R%)CQO9#g3v0$M9;zfP>M%hD_;T{#Op}ih8_Xoy_;+If zsE+4A^7Qrr|0w=Cd*}@`4b20MVpAw${_Q9*^PPSI0}3_fdkOuZ8SS!3xn}y=)i-S= z*X8mnkV$-(L82%QQ21_4jN>&fY~Ro|P+sJyk4;1x6|-gz5VmF%q-IgyXU@F)g_Em? z+YE1=!$hJZR7DDITNIBWo~E&{(mnVuUU2yE&y{ddPO*@XwJG$Tu#G4y0;S3WCPiRi z)9=hL1Ia8;k^vuq?N@coi_VF?wann}(WfS7TtAF1{1Tp|E29^AuF-WGSAP>HpMu6S zdv@EEH5kqnOd~f7l1N$$#K=;#gL*U1Y} zkbijR?azBk6z}hl#bme+tcGxf)?-Z}ed?N;(gDt33C$`P-(VLO5*^RDyiJQNgJQ~g zS1w4NiXq*aGOGt+fofu@us);@4OyrNtebmJSE~w(2&+~qv^5#7tOj~`eiRYJ48C+Q zF%SDA&Sn)5Y6WjPJ0=o5wgH+^LWnEe-5_$%w+`Q>a!sBDvUIO!u4{_iSexnsd^ zr{(Qr`bVXX7}yOUBLV`ELWGU2Ddgxxb#ELUcLW!9U&9joEc~%3U4$}BypI(E>9?>v zZq%)`g7*Iy3w7$Ag7vU(N)EBZq0hBOZuq(Yo(VD7!!S=oL$0o_=mxr=nUNNh2W553B5m&w?^#TUb-TbJ5#-9lNAeU% z;xHdATfO+WF4jWkNC$Qk;Koxd;6wXcB?A(=v8=slP1-Lpt$d%?H(O z-@)RaJ!2ve%B^aTHgS|%O(Fyd=sYAPj0DH;%-zNl;1T6^Bkjd!JVn z!N?DQcA}_xP?0*}%{p(~@M_qK1lL`#;V-%)j@XUR!Gw~zNNuRy=nWKp>=UKW!x#fv z(8)wXy!U54X=fg+L&Bp^Lp{NT;%0ki=T<>2HM_TmoOK_4>yX(Ru)o0{yywHBmd1AW zJ^lM$)Ds~9&{nb!ri=nHI>n5Oq+lUh2p%;&fI|S$W8V{GtZhH@j2Z6ZoCxTw<3i}i ztXZ0xy;9#~8m3XaSDFckc=w9h|4q%Z3E*`qW^08!$b7j`{1?glpV%-Jc9&orMSCt? z&IJw;!2~zgh+jtn}h4c-H);RnhOB+h@h`wv2(Ti`;113 zK0CKfH2E$+OSq?c&vQ&v_$}@X9(3E^D5k#qyNEj~IAn_RtPULAgA(S0Q0d^2Nd!cG z3P{cDA>#)cQi6n>Ztv_5#FlDyyW8@C&V?Qd3u;&e%>71HVUB)L@Fp|I{-aiU3<2+3 z^Rv;R1oKJ0c`%Z6R0QvXQTo5;ZF*|ON%BTBLt(2m4&w}0>)GDhekj`iPfk#8T9Crx zNGcs0NGN|eLJK5>g(0w^SWqYtV)CO#=CAex=JGh7vUDmG57@?(s0da=OD)x+qnqYj ziuMg|KX`+;#_yE!z*-V8(YsnxPnq6QnC75=9Mm-Sc)MuYx!Y+JPi{?V@486{w^z2m z!w>aoNifFr+(9vhYGIIJ+BX=e@1Y1-t!PtqU0u5u?b{I*e_uSU&Xjk2xTuYKR2X>^Xk89uPAm+R}{JqHke*=}QDw z<5)XZ-7s~*Tl7XHJ}Adl^SNeAyOodEr%mwt1fV30S^FF0=W+ruV?1Vporh%p% zxI!7~cPNJ7(FS}5co;);(ztk^7XK>KYV@R1{`mduhQ(1b!tr zwT_h?CcI94#W6uSQ+$u)7FT&fhq8t&G4FmfyjXLW$)8RvtC8T7u(ds&TKIGOjh)ub zFPR)H^_zE)wg_J3SBP-kFub@C@7Fj01B&;W5Eicl;fMJ|>)XIlg>SyBQM(m-Ju8;L z(76=wi&L9anfZC&OK7_p%<`4SFa^bU(blLSqVs4J8NQU~MWeBmTn&}NhcmJLer9<6^+7V{qB`2Z@v$>bz5dU133zz zws|W^3ul@=a<;xDHejOhuja$6Etl?iAe{t9jwfH4Ry6mu~Kd}r&AVNt}67ggU zFdoJ`wTw*64Y4n*Y($x1ae~HUkKxZCCuMhnGCi4?#%SnW@gn{Pxygag6^KE07Y~_a ze_H?v$d$jXA~ThQmT->IJCol40gb9mH3Cn(WA61}OxbuyQW|M}*AMKi-$w<$f5G`e z~TkKS!l+kxyH~n9$Wk7UO57HJB{VAzZU>i57;mH}F4h-j) zsuKMn>pviO`vwYyHKN=NrTConw~%>1!m4h~;NcI2-oUtVDRWm?t&%wmm7741&+G<3 zu{LDqaeuru$uwr=+rP~Ctvjih@D_eTdZw|ahJy7EgZ?@vT?At3R;vZ(%1T^XR|c$17nI&N>G67GD-_^o1o8`N@-^vS_c zvxiAaOau&OJS{#9vZJ{!@JcvftZtxeHp}NBUFD1~H4tKk+URYxBH_a0(vEAymT$uE zWR_s?FDjFvAfC4s32}MF4Y25U?{>^ki<&aE{5(s2Zk4xooY~(6PB7xpci)SM@~Ie5 z?nQl_-EI9!etjhu)j<3z+pBb|nJhANH~1y*+8A+;v#_8%zw2uCfr&9&7A)OF4YlIi z;Ip;qrXez^Vw`zx%n(KwYr9K#4!&k4+y#C61PI4qhHkshJr$U@oPkHA2fF zQByB`)3C~3r=_krBN=OeS$wr>xv5$m^<{yq3u=NZ~&HvKF_s``A3^1PyyRwPMpDO84`w{kp?k29BFn)huDa&eW zA4mOle8v}m{^{CwZRLzZI&OP+<(uQG&Z(3%wQjqZWix%0@dOn1q`y-}EJ_9g1_wUt zGf(61f8-w+2&@~2EjiX%gR~y-Q^>{$v`+PUKWrvHVJzv_%_$arTdYboMeE|)J#H)n z0;(+pmfk9tORvebn?xnS0|hcNsaEAd-K&M4LV)aPfF|o(!m2jgW0F7P9f!N}ZhBbz zyiKUc;dHF*>!{s<4Y>1t>Xv+Y`(Aq} zmBurWgVyK52loyo`&Kq)|Ff+t%vs zh!~7wP3Grkzw+N7(RmW&g}fi1xW&O{zDRgTE04dh^x@;#yiA!tw_7WiRg`Tn|I{=fJIiJQwfx-Z zABm|}gddr6fxnhDSL#26qV$F{C;R0$-EUSMUv<2=ZV3>-m8RnJnw}%iD*6NEiAch8 zQS&|7DUoM4;*#qw)?|0Ne@xlV^yCePas5YQ(cR9oL64w7*Wb6y_4&`R$k z3BPpKzNufcU1XD3Dz;sL{PqQrex&rbviImVgwoq|Qvk(9M?9BX&q8H0lrWkp9~BKj1%}w_fqO z72Iv)pQLuo?cJyc(03_LY)-EhD@6C(cHGdKW{Vo0&iNXXShpyClj^ZLHs>`HFtGaG z(8@(dN1})D-l8AO{nM-V>m@OTObzOj{QRu@5UHY@r0d;?;Pu#kC(Q{u{!4-(9v;t=LN4X%P5jd$aGK zO$1D>{#nUu2A@>b048O~`3r>x$;1yhH3Wqe1jfiM1hdQ6O%A&~+L)OP#Wmj>k;x7_ zlXYXhMgd{COShHVGXRj9b2?qgrF8#Px16T>{?!dvjH~1%W?M27I{SL zJq5R@ic%Wo_sSgY{<1F57XjK_(>e7AtVecvN#Zv>jkV(HCSJYB-&hHN$~gL|ZVQWL zkCf>wrs?+*0*0tz1vDj9BJPZnp$vGh=b9h3-r@1c=yWl89AI#+GaxP~d)V~%q#U@D zB`%q?xg^01)nSemWN9pVv^kkGZFgS$yKJOtplQv(pkD-FSYxp=xBOI9InF~qpYLgh z$-Sp$VV_@aemutB>l&_l;Vtv4qNGKU(pG`x8myu`RYhP*LQk~ea=FT;@kdWyWnFoh zzxjw_4}HWbXEaS$V6GX1-Lg|>&%GtcLQc%66OY{Nj2WF>V9l<4LN;n~qvP zyZu%9jHd2zYVX=p0#<3)S0?K>)zfpYsEn;FrfAVsF5PIMmqHr+ZLL0gPX?2xr*fei(X+dRxFChxdGB9P=xq8^w*&z6g?j00itoj5wfRPe!XKukgZo)iLOL^1cDG`L6hp|9WSXPCA$|Pgr(h8hY(8cWcum8st4jvX^KDjd~jjw zS$}nKKiSl@!XTQVtS_UXmXgG=2=h!G zoOvqO%FJ_capNbGg#0is@;2k!v2~r z`e*myE(+NOeGD(L95}1@cs}>v3T>zC^GBJV+87)UKO1+78&o9xQQ^>zkay1Wl*z(# z9xRWP*twj`@)t(wN8`=d`Eb>313lALy<@QYabRzA2D}S8fE#{>sEZUN_aTX%sfv9s8r& zJLYU{0SYWt)Sgi$L3ua}aNh+;mGMo3uzRkQOHX!PV{)`UBWOcU3VGYp_}g?!aeZYI zZNRyggJoKhwAOwXwAg5--&r+ZQOR9_s^I0e-*(1z-WOkpfR;nWrZHkd6*Z)WFH=K_ z0Rr3CSPbWO=D;pL#5sro?L*IrnkDu^N*^>Lf8c!i>7JOR3GsEMV9f&L@` zz?dQ76m$6wzI^HXXl76>Y(Oo47xIGjwra&F1`bJ!(0ec09kA}@Fk^{2>+l!mSKo@` z|DOOWB-Gmw8Vt@Y^!NmZfsTT!Zd5JoVi-&1iH%)D!X%%>&CQU6oGW5|j4=<=3NX4N zMh6h*N~({<0AyKMv@IYq9qFAic{+o+M^put1zdv7kd6Tep-q{)>{BmCqYV^-SZ^lg z)hY_4SRdz30~7Lb7Q@&`5L8Di+yLb136RMwNJg1PEU7+{vzFWvJ)P-{*(Y*3Gig{* z7-acc*vbHyT2|Gi-GErz=Xkt?266D&YSi%j20jCsTN^TgqFy_;h=(x^;HWT+0C_0D zse$t{GBT)QL}zo`{3K3ih%7Awh-<^j+aoC>RoT9SL&!WD416Z|DGVoY7OZ{GXjI(Q zCps3$O@b>xceijtObwb}bQQaL>$*6BlG7j#UR3TtE%jEbcd~8n_L~_na6X511spDg zjU28$05L6!G653en`SyP8y4udI2IGhJM3+M2?@rX`Q8G`%bkJ~S?g7?v`hhg1A^F0 zVKjn~(A@1;nmt@-@mko(Y?X9!m3t+~fG8gJX~OYb6B0lnzN}@hA;v53RrV9m8m=wG zi&bECMg*?8mi3YGw!7_Uk8$s8&M~9k#&EdMVsm37XF)*HMcR!qDv_u11<%8bq5_2P zt}HGt?g)CG{4JW7bsTU-28DkJ1Kb&Vu z3Ex`PMHe8?y{3T)k}N>L)in{<@?uPLh_wNot1d-eFKL51h0KTbb!LXsYt}t79hVdN z%2xid5RmQ?77tUICe0wAA|gQK@YBx6MPM`vBM_tREN1XpBN$oWwUgPRk;1wf(?Z z(M4VCa(4@X1;V$QHVh6%i!IwgrtxwT8=YVhl8+nitoBK|t2CG=Hc%i4f+)UiOalTG zu=M8v;2-2p-|-=;(OB&}+(1+k4g9nSbzT;r_(zj3UV*qEG43%l1DW@oxd6@Axz|(Y#cq(=@{RryBvW+^CX6C=R?f zz+)BH3bOA)1?ujm3Ngj5i;SMM=tV=UE}uNyRjG(KxVcN22El*;f!l4`AD`jti*4WW zsj4yLiflAMzH2absx#u1A$uN=Ad$FRhZcc)lc|IfLnASDw%ngQSIe?j9POe2PVPov zoa`>(3TdD}7JPu^ue847)0G&rBbx|_{d-9hA?i)k=mvEGW86EmNA)hVacpEBI|~2g z=^|iNS7i;Gax%ulhBAR_X172O&+^@kc1@U56K(T26CoPc5UxD8_I#rXINzJ;{Uq9K$ z^3^}?;*~5ErtaLKr^%%|fR>#W(E#RoPCc+jLK8q3n>iznqE_58)tVaEuplqWCkn_Y zZ%ZIQWv|yx1qfyT)j|F2JI0fg&;l>#!stYI` z0tl=X2$0V-7%bx`Laom>?P&3sU6sV8bbn|fQ^9SZZnK5hId-+v{HL78cL`)d%M_?4 zvwx08FJjBMl=nsbB?hMQjIfxB`1y=`6B7rhZ>SGpBocwRj5O910@x|{r9v8R-Ua|w zRKpg&vuyZNF6Ldk#!@&JPBv%t`K4PB+bRL^edneUNY-R3_;G**6Jzv+M>QBQ5*MJm z)kFX>?<#;wAZRw+0pyD0%};HMKjl!M^O1d%%)Q;HS@fYz+HZ81lb|RF=zBP=SQJJR zh@H(H_T;k0Bzc&~ya8EMc1`!?u0j=pOoyugnVQWe&UVl}q-qam)}wvL&n3tm$JMMp ztv^A!D}h@aL8wfVwj=7HsqEov$Hb`5aIXQp&uMJsc7bRkQAEA~qH>2VBpW6>hmP@b zK4M_(8c2BRu$tAU^k*Rb0*D6D5o>+nSL|pKzid(#3`0G4jivrUqYmx4PLNF%R07>= zC{_j{_cB19T-2;jV{KCEQk918Ajsn+2|&hxKx&ARX67xx7xXJSH6|vviA&rmBOL9D zM2E$F(yVDpi0>&Ns1Sl09A%+zudL}3kia) zHYke&jIr6k0BFsfU1?$x-`AuJio@$-8dG1B5c(w9-*8oCObyfmFmQJ1OP%}ODTzcr z%s7l$MZb`RZE>VVK`b{HNGom{LTgT}bl}ELvNC7+A&8MA=$*kVh+PErflaMF@Qfn88*TwAy zppg3G>3lvP`V<7%bz}uu0K>@Mu8S?)Gq3hW>q3YA$ATHF&J+dLZjhv zjD-*dgzOqPkAO6mP4yuRFfbFC`Vtn)o)))b0lPLn96+{P>jVhke&vZGK!T(>oAs!v z6EKeK?YhXi0pOmg^c;xyV|z&%5y7cppvfT3D*_?eSHMA<$F7}+xYIze7kJpdw*waD z505JA4Pv%@md9*%g#g2#IcM`Op}BHnZ`VW7;CKg61@gT$6()y)CZ%u8YoqFTX$QEA zPnEpIn;XLVe?H6R*ZX5r128j_eJ8UyYYBOxd}nXhL($-Pqtd!)&G8|DijfR7I@yIN zlrd=#FXvX-GSD5v-BO!rj z6he$C21$rKvb!Ip!E)jC0sfwhEIkln>SjU^K&%fDeFl(!-wtlKd|1rHm1lZtUbr>u zRifC|4eDX)ip#+2fadhTb&J&E!M(HQEc%#^*ihCw10u$t5rM)($`_iA$-WWGr9OZ^ z^62zThz8u%#~K9^Ht&25L0Rj>A@)p|eapa+)r!=4Rb)BZ#$eH*Q;i z@o>4)_C5}-BR=wWdz6!Ti;+B+VItzjmH;mo%Z=$VtPjd0*5ciir?OPXp_O{!vCUek z&*g-ch#;-G6gapYRDm@kYo>f6wIrh(1QP4xHU0Al3kS=TsQ5f+86o0^MB?HyZB1+~ z)k27OjXa)!Lq%AGHa_aG=4{X%_6d-zEkbq-jE4b|2nz^I{gbw1Ygr$!`o{;z4(4fJ zIu#F}galE{mVjkkEbjLfI2^bIXe70%kCKv?T+5*$`}wfL=A1PTKEkLq3Iezeix-QO zQ4vN!`D6>*#8@9Md%Ha%l9g24KY;-R;!e=Q4T$q%*9Ev>jMy?kA`qz{o~yhnfmDYD zEW2Lfu;!ezj{u~4O~xVCM}UvUK#oNq>`$g@#H&qX!+2f)JRr@wilX{e^8gbHs+$0o z`3h+j)jLggJu@#L#2DR4ULw$}KwjZ+Hs`EgETDj@p(g<-JBkPd(1Q>_Oyy4y&4$M= z4qo_#*xD!9?RJ-gm6jmt*BI46!ZzKEm*9&ESedQDjBfC@7xX;)z5oNf#(vD^oc%^8 zQvs@oq8rl#H;9N!c^ZpC<-)Hqf&hfL-#sTUz1+MbleHHQ-(hROLQnwJUR&#G-D>`Z z`ygaSVl0yJoPaOkph=4ovO)5|o^)7^W?e#FiI~RCFzCvG*i-hr(`ef<5X2Yv59gh% zzZ6j1U;04RZr$dU1bH#2g1p)|AT3M6EASm68)zVqTsOgHb5ze+%XltG6a<`rEEX@8 z3jtRHYGM0;VtKumeJ$q-o2x|hI{@v4T_|1-1oFg*8%g6R(jW}tZMA2TBriJ~%?Qvd z^^peD@`zIlHg3VSr(EU&a0ey(lbzaXfp%@RrO#+Yxf{>Jq z@_Gc^7GOvczQkd3j_hGFAg|3l$pw zBt`ROydFm3SpyJ@GgC^_69|X{h}S)lTH6|uOoW{KrB^&2E^B5_LkLB zY%b%V)gy{Gc)J}q*^kPhAX^H;)NWp;-nvZaOpqO&OB1;aSu3%P#;!@eRNZ!F=Gu)y z46(Mj42-4X)`!sT9inam?}#qL+s#HfAyx~7dTg_?<3?-^ zkaz*Rt2-|SdBx(UYvuwJt8Y0TQ%orckhczS0OGn674Pv&!>0FxG`n_OP)cN1j@|Ul z+mxri1~>o)k?yV`Y(efEo0qY@XI=|{yqK0ve}>pF0C9~qjFcXbVoEV332;Sj(^WhU zA|Mt3PuZs|UjcKldr!kKUM6i4WT~Kl&^K>0p2o`QFcH~gELPZny9Gi*rji?b#1-Sx zTCObgj>C>80mQprXt;wzWLY7m6#FQF=`nUDR(rKtKxi(1{rU5CTXgS(|H|fI|LSxe zhv75~!}&5z%T^i)NPctK){Wg-d>YuSi@Z%?7>3CUTd!W!%Gg?NwK>+8>-udmx8eax54!RM@A&f|FQurI*MRg=X{4)(nq`Z&*8Q zU;<46N)_WWD%uCWMxRzTVQV}!b~biDoqB<8GF&d#+kGs4#xokm>u}Dcv`FG$$7Ux2 z2k*-?7IQzTwmBPfo^pp40Zlf8t;S=cY767jcCwQj=HM5f4)*aVaEGZ&9&Xp`CB}$- z#eUUEAqmMVHMgb6cP$nN$W4b(gY9jl=4=+)EM=`1Ezt=3+BZOSs&;IPQo~s2*gx?a0k|_?li#JcMRM#Hy{*BZ(PSD=%0dY zV~uOZzHT-SU7W1fBM*v3<0F8PAR&1rF0q6Y0$PIX7wE)9hzk19wkTt8Raq||dO9OAEfPTRtDI_BT-?|TZOsI`X3@#db`Wffr&VVeGd3g@||@vRL0Cfg*~y_7{LRMDDa%u24>T!0ZuW1~}O4y7tncE(H-cD#@OB$^>ph8yo3Qs zQ1xB_@quzWQz`)^Jid#)&!M`wusrXPk`MFQbBfymar2C*wrK!*1jJ?4OO&)Rr|enW z-*c`_p!5peLP)|S2JeXO{czEm*x^#3g1Vj|G~X ziYVe9GMB~jTE8IzGY8%CQ4Rz53)RB33Hge>@vx!#L-|s#$c0592oy9k@33!P`)^53 z_T6VNuVq1et7Y(FU~r@<1;O-(%S;ET3`~zRN%*5JbASM z%AFbo$HdEpWZ~g_)81;_EBnLEpT(e?uP3pZI9y zG@LJ5NNB25A~nRKz` z@YQw=kk-F6e28trU(1p6J3ig>a5^0Jhr@6_Uu<#~T*zcCYXFparLijuB(BZQu$s>kBnYuL%Vt z7Ct(HxHUZyM5YoTG>f%1G)+j1A-{)JT`9Uh=MXUs0z~AxuCk>eV*)pmJEQ7si|yCf zPT%oQXSEZ=O3htVRf(@5f&dqsju9gJ8UZqfYK5`5#DOw#=3Y#T z#tYfhD_yZ&17cy<6W7&Q0k*`ycYX$+s97P94iSLJrVUFCnpCb=1V=KBh213xMB=vU z1yycV;Nf|)jEx(9k$J7IlQP+wcepDcGDatxhO=Vv8VEZ+NXF`{UNim{`x$)1sRg8~ z$Yy7&z<_Fl0DgiXBwIf8Vctz~<+%W{p|~YU-n0*!wk)!(po_{T|;Y&>qFMjk$T}J8GbYZGpTW z1w{Moy2hbGa?*s*9$Z$lI>$d)S3Ys+E6_H&gVcZ}Bt0^B7at0U%v<~p-ZzaMbz?L` zzOL+l!?#^yU%G*SU>G1IE3KN<-d}TN*FGkTt^vsCDnX(hK-EDs=0OKx7oe;vYX;N1W^?r^OQt^SzVBDB{x&c9I*hI5A zY;Rdr3Knan{#&vq1|a0e-Dvh~D)=3?j=}lm93X*^xoT@vv-+GQY%w-1LLgoja-h`! z*w|hppR6Wf6{L70{6OwOGIC2cNk9mJ5c2adJLQEC8@kIJobPtmXmTB{I;>gs0R`+9 z`wFqv*rriAB0$rnI4<18%or}37!xY?9v@7$O#l&U8!t*iARiq^HEhF~7d?xqv7=ti3>xa8tc06<2ge19{=N?|OBEUWd$a!L;ZW2Wy zF$&NFZVQA#0$C7(|)*r-gX}U#p%pw{Avr?ee93_Db*gz0p+46CH4T!I)h@Wt2l5w2cXW+1bl=W^R0=Nc9 z`sR`PoVj6ud9lNqRlnaxJ=igT5JV^;%xbfR5(Xpyf&9T=afoj#h~R#g2J)$918f+3 zMlcH(34Qa>ZdU+-kVCuHVKu8?%q?iROs)k=3<2Xc7znKq31V6P=&y|NwGTl200eSo zo7K?Xx0G#AHR~gNHBI7!3>)dx3jnw*5Uk5&PYZ?bC*dK}>~P6Iv3*KO4Rh zU(l>|si1dqg<%M}7hu}TP1w_oOsGQYi9je1Z}Adom;?yqi|t4I@6VGHg1C{76b2jH zObw=W$0hQGxqrTZ`11;itTzB5_o|_(^8~tR!Oo#vN<9F?gG2A|$mbYS0|SIO^rZj; zIt1iZ@+5)~I_77^RDf+TVpeU1C11x`{P8^?{@^0wf>A=wgYbqBaWQFL070HRxJ_*! zb}NL2?oh0B0k9R1&CI)PZVvbdOyiWuY700K9W`y&UDCLwF*ZF6liwgQACxnr-?>1wWsC&8jjK~~A0 z!f%w-F09ncUhOCeaT(Z?@eicHfe-9zDj5jKnhx6tClEzIk1pebBcd}Qkf~2Vf!t|V z$S|GA(fhPa+9sFhNp6)=6clH&+alnM^};&zDGE&ML4YpOz*r$MIRGA~b4(!7K`Nvog1tg}Hf^iuWnqtg~GosJ=?osoAXtI2H5d)G#$(NGH zqJ)>^NdR*n3W!FtnQ$fx4Nxv-(I}+;cuFw@F!f*Wp6DNgf3!t(a-0~Dg)*?g5EOIB zE8T~m`J7SQqT7p{H4HOfXhL5>UWzA~&bm;asAi8Xg#cg1rL|IsF~ty&>ruX&op}BO zHXg^sknuA4Mxzc+B!GadywO(c4?QVj6JI0`&ij72rC5q5!2qGBfb7^FQ^EcEh{U{5 z2q|?j1aJk;1+)*)A@Z=RT8k&Yd8UZjEFc?SEIcKBjSCam@aPod3$i|`a zh z4En%ib?oclflru&mvnp6)++|_bMpo;7`GrV(GJM229#Lqn;BZBfr)5FV3=eAcHi;b z_RAa_@2R!2bpi4GA6|9yNOPKK^NvMP@pA^lbS1V1%hCnB6;7fH-@zrR1c(};fZo!x z8Jxz`EG-atWMF5uHmgznGMxtRpVkDp(YEttW`N4P0j%(Axac9SFfZeP!ANYy8_$n> zQ6vHaao>wrDW!-es<5JD%z~B?2nosK6QJ2(7T7ORH{dWNZ5h#c1nY>$AqyfnDjco$W8rAR8ZSbCmKXmcJEBt?^ zs8Wj&!59!?Yyg&9TM1!QNs`=_6Cm6I5TqIu2sLRIFFO_iwkZ)v$aA)NXwBJ-ewR+u zj{S1mx=-!GD`#EsKA4wM@jk#9fk>pyuS z_G*VU=d6C6{pj~<2RFhhWM##RubfQ1Kju|Y0RyBWF@US3bM6v110p0S3}Y(OmYti; zYY2`7jsbjGE!qpQ`5R`n ze{L2JOC_HyfIql5!IAJD`Z>7aTvif!) zK=zJ<&@yj9j8zcOUCgPsudhEu)oV2$vgGmt#UHz0&zVi5JkfJ|NuAe7bdI1(T%?5+lKI*PiM%W50# zu!GzwAqb!lFbCikt0QD@4^x+U5KCMEWd|_Kz%XBAU|uYDfMINfBzczxk`NLCQC~)& zAfQ*~vA4rxsWUU?yyLivF2YI`d)$NEt^o^%03xvRbSJtB3EYa)umO;zjt;Y_I3+0RgQ5cGqrD^}GpSKxkLl7Yj-# zm~2~ldW;273j$*E%h65(vAA@sv%G#>2J9xg0?F&=#sCAKTt-a^2oPE%5Up{CF6cr) zC=i4|oRjAlZ9l+P0gQK*2U&bUK!}xHSIh%Y-Vfk#Gmqy^i&aUlkQpEZz8J3_0Sp5$ z^X2Z8Bz*P_17Rmbj1u%(>@4pZlikL1j9qta`<@AAYWA}^%F-HJ$(5_hYC%S~Vm$T8 zRjxQ!=&Xd9`7*brPaYgfAn(=?2p?IEl`)TqBZRs_a?C$Did2s`* zc$LfEgBWA)=`giBj%A%qc*T$o@yVQd!L=Jot~zBZ-A9Xe?moAkV>wm7IY|$oEd7 z$?l7E=gubZ0;h$)P}XW6^<5K#i^iS;ZYG{jEga_V&~`L8K&vdo>=7nFZltR;x9I=_ zfzc}5H8Aj7L1IDBMzN)IhKXRyT&C9pyGtoZ6SIfyI$9jO)qvQ4I!x>0W_+evMMvBj zKwi*iGv~D#@5qg$9S{Kl?vs4t48u$yuXe1MQrD%Fg0zGBE;ca0cOu{ia2nUm9X{Q% Nw01-S^J1K{1^_!S+OPls literal 0 HcmV?d00001 diff --git a/src/localization/languages/en.json b/src/localization/languages/en.json index 3be93dbc..7025f222 100644 --- a/src/localization/languages/en.json +++ b/src/localization/languages/en.json @@ -138,6 +138,11 @@ "FairUse": "cobalt is a tool for easing content downloads from internet and takes zero liability. you are responsible for what you download, how you use and distribute that content.\n\ncobalt does not log any info about you, it's impossible for me to snitch on you, but please be mindful when using content of others and always credit original creators!\n\nwhen used in education purposes (lecture, homework, etc) please attach the source link.\n\nfair use and credits benefit everyone.", "UrgentFeatureUpdate71": "more supported services!", "UrgentThanks": "thank you for support!", - "SettingsDisableMetadata": "don't add metadata" + "SettingsDisableMetadata": "don't add metadata", + "UrgentNewDomain": "new domain, same cobalt", + "NewDomainWelcomeTitle": "hey there!", + "NewDomainWelcome": "cobalt is moving! same features, same owner, simply a more rememberable domain. and still no ads.\n\ncobalt.tools is the new main domain, aka where you are now. make sure to update your bookmarks and reinstall the web app!", + "DataTransferSuccess": "btw, your settings have been transferred automatically :)", + "DataTransferError": "something went wrong when transferring your preferences. you'll have to open settings and configure cobalt by hand." } } diff --git a/src/localization/languages/ru.json b/src/localization/languages/ru.json index 333305c2..1bb67579 100644 --- a/src/localization/languages/ru.json +++ b/src/localization/languages/ru.json @@ -139,6 +139,11 @@ "FairUse": "кобальт - это инструмент для облегчения скачивания контента из интернета, и он не несёт никакой ответственности. ты несёшь ответственность за то, что скачиваешь, как используешь и распространяешь скачанный контент.\n\nкобальт не собирает никакой информации о тебе, и не может донести на тебя, но, пожалуйста, будь сознателен при использовании чужого контента и всегда указывай авторов!\n\nпри использовании в образовательных целях (лекции, домашние задания и т.д.), пожалуйста, прикладывай ссылку на источник.\n\nчестное использование и указание авторства выгодно всем.", "UrgentFeatureUpdate71": "расширение поддержки сервисов!", "UrgentThanks": "спасибо за поддержку!", - "SettingsDisableMetadata": "не добавлять метаданные" + "SettingsDisableMetadata": "не добавлять метаданные", + "UrgentNewDomain": "новый домен, тот же кобальт", + "NewDomainWelcomeTitle": "привет!", + "NewDomainWelcome": "кобальт переезжает! те же функции, тот же владелец, просто более запоминающийся домен. по-прежнему без рекламы.\n\ncobalt.tools - новый основной домен, т.е. где ты сейчас находишься. не забудь обновить закладки и переустановить веб-приложение!", + "DataTransferSuccess": "кстати, твои настройки были перенесены автоматически :)", + "DataTransferError": "при переносе настроек что-то пошло не так. придётся зайти в настройки и настроить кобальт вручную." } } diff --git a/src/modules/changelog/changelog.json b/src/modules/changelog/changelog.json index c452ab9d..1d60571e 100644 --- a/src/modules/changelog/changelog.json +++ b/src/modules/changelog/changelog.json @@ -1,5 +1,16 @@ { "current": { + "version": "7.4", + "date": "September 9, 2023", + "title": "new domain, what's coming in future, bug fixes, and more!", + "banner": { + "file": "newdomain.webp", + "width": 960, + "height": 540 + }, + "content": "cobalt is finally moving to its own domain, making it possible to host branches and various versions with ease and 0 confusion. bla bla bla. bla. bla bla." + }, + "history": [{ "version": "7.2 & 7.3", "date": "September 6, 2023", "title": "extended video length limit, metadata toggle, ui improvements, and more!", @@ -9,8 +20,7 @@ "height": 280 }, "content": "this update gives cobalt a sharp look in chromium browsers and makes it even more useful than before. check out the full changelog below!\n\nservice improvements:\n*; increased video length limit from 3 hours to 5 hours. feel free to download lectures you need :)\n*; you can now disable file metadata in settings.\n*; fixed a bug which previously caused some downloads to end up being 0 bytes.\n\nui improvements:\n*; fixed clickable area for urgent notice (text on top).\n*; fixed blurry header in chrome.\n*; fixed blurry tab bar in chrome.\n*; fixed blurry switches in chrome.\n*; fixed weirdly rounded corners in popups.\n*; fixed 1px gap on edges of various elements in popup in chrome.\n*; fixed overscrolling in other settings tab on ios.\n*; fixed unexpected button highlight effect on phones.\n*; removed outdated fixes for tiny screens.\n\nother improvements:\n*; cobalt web & api start faster than before, additional preparation functions aren't unexpectedly run anymore.\n*; cobalt is now available as a docker package. check it out on github.\n\nthank you for being here. i hope you have a great day :D" - }, - "history": [{ + }, { "version": "7.1", "date": "August 20, 2023", "title": "instagram, streamable, video metadata, and more!", diff --git a/src/modules/emoji.js b/src/modules/emoji.js index c019037a..068e6bdb 100644 --- a/src/modules/emoji.js +++ b/src/modules/emoji.js @@ -33,7 +33,8 @@ const names = { "🔗": "link", "⌨": "keyboard", "📑": "boring_document", - "🧮": "abacus" + "🧮": "abacus", + "😸": "cat_grin" } let sizing = { 18: 0.8, diff --git a/src/modules/pageRender/elements.js b/src/modules/pageRender/elements.js index a1940d5c..824814e6 100644 --- a/src/modules/pageRender/elements.js +++ b/src/modules/pageRender/elements.js @@ -238,3 +238,10 @@ export function keyboardShortcuts(arr) { return base; } +export function webLoc(t, arr) { + let base = ``; + for (let i = 0; i < arr.length; i++) { + base += `${arr[i]}:` + "`" + t(arr[i]) + "`" + `,` + } + return `{${base}};` +} diff --git a/src/modules/pageRender/page.js b/src/modules/pageRender/page.js index d73a8e08..006a8849 100644 --- a/src/modules/pageRender/page.js +++ b/src/modules/pageRender/page.js @@ -1,4 +1,4 @@ -import { checkbox, collapsibleList, explanation, footerButtons, multiPagePopup, popup, popupWithBottomButtons, sep, settingsCategory, switcher, socialLink, urgentNotice, keyboardShortcuts } from "./elements.js"; +import { checkbox, collapsibleList, explanation, footerButtons, multiPagePopup, popup, popupWithBottomButtons, sep, settingsCategory, switcher, socialLink, urgentNotice, keyboardShortcuts, webLoc } from "./elements.js"; import { services as s, authorInfo, version, repo, donations, supportedAudio } from "../config.js"; import { getCommitInfo } from "../sub/currentCommit.js"; import loc from "../../localization/manager.js"; @@ -75,7 +75,7 @@ export default function(obj) { - + ${multiPagePopup({ name: "about", @@ -452,7 +452,7 @@ export default function(obj) { padding: "no-margin" }]) }) - }], + }] })} ${popupWithBottomButtons({ name: "picker", @@ -492,21 +492,35 @@ export default function(obj) { buttonOnly: true, classes: ["small"], header: { - closeAria: t('AccessibilityGoBack'), title: t('TitlePopupError'), emoji: emoji("😿", 78, 1, 1), }, - body: `
    `, + body: `
    `, buttonText: t('ErrorPopupCloseButton') })} +