From 9e7dc4554ef71fca398f699d72a6a9da9ec15c99 Mon Sep 17 00:00:00 2001 From: Dm1tr1y147 Date: Sun, 13 Sep 2020 23:06:06 +0500 Subject: [PATCH] initial commit + added Navbar component --- .prettierrc | 20 +++++ package.json | 65 +++++++-------- src/App.css | 42 +--------- src/App.js | 26 ------ src/App.jsx | 13 +++ src/App.test.js | 9 -- src/Navbar/filter.svg | 44 ++++++++++ src/Navbar/index.jsx | 169 ++++++++++++++++++++++++++++++++++++++ src/Navbar/logo.png | Bin 0 -> 49377 bytes src/{ => Navbar}/logo.svg | 0 src/Navbar/main.css | 101 +++++++++++++++++++++++ src/Navbar/search.svg | 43 ++++++++++ src/index.js | 17 ---- src/index.jsx | 11 +++ src/serviceWorker.js | 141 ------------------------------- src/setupTests.js | 5 -- yarn.lock | 75 +++++++++++++++++ 17 files changed, 513 insertions(+), 268 deletions(-) create mode 100644 .prettierrc delete mode 100644 src/App.js create mode 100644 src/App.jsx delete mode 100644 src/App.test.js create mode 100644 src/Navbar/filter.svg create mode 100644 src/Navbar/index.jsx create mode 100644 src/Navbar/logo.png rename src/{ => Navbar}/logo.svg (100%) create mode 100644 src/Navbar/main.css create mode 100644 src/Navbar/search.svg delete mode 100644 src/index.js create mode 100644 src/index.jsx delete mode 100644 src/serviceWorker.js delete mode 100644 src/setupTests.js diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..e009d3b --- /dev/null +++ b/.prettierrc @@ -0,0 +1,20 @@ +{ + "arrowParens": "always", + "bracketSpacing": true, + "endOfLine": "lf", + "htmlWhitespaceSensitivity": "css", + "insertPragma": false, + "jsxBracketSameLine": false, + "jsxSingleQuote": false, + "printWidth": 80, + "proseWrap": "preserve", + "quoteProps": "as-needed", + "requirePragma": false, + "semi": true, + "singleQuote": false, + "tabWidth": 4, + "trailingComma": "es5", + "useTabs": false, + "vueIndentScriptAndStyle": false, + "parser": "babel" +} \ No newline at end of file diff --git a/package.json b/package.json index d0fe510..320ecca 100644 --- a/package.json +++ b/package.json @@ -1,34 +1,35 @@ { - "name": "school_documents_front", - "version": "0.1.0", - "private": true, - "dependencies": { - "@testing-library/jest-dom": "^4.2.4", - "@testing-library/react": "^9.3.2", - "@testing-library/user-event": "^7.1.2", - "react": "^16.13.1", - "react-dom": "^16.13.1", - "react-scripts": "3.4.3" - }, - "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test", - "eject": "react-scripts eject" - }, - "eslintConfig": { - "extends": "react-app" - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - } + "name": "school_documents_front", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^4.2.4", + "@testing-library/react": "^9.3.2", + "@testing-library/user-event": "^7.1.2", + "framer-motion": "2.3.0", + "react": "^16.13.1", + "react-dom": "^16.13.1", + "react-scripts": "3.4.3" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": "react-app" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } } diff --git a/src/App.css b/src/App.css index 74b5e05..fd36153 100644 --- a/src/App.css +++ b/src/App.css @@ -1,38 +1,4 @@ -.App { - text-align: center; -} - -.App-logo { - height: 40vmin; - pointer-events: none; -} - -@media (prefers-reduced-motion: no-preference) { - .App-logo { - animation: App-logo-spin infinite 20s linear; - } -} - -.App-header { - background-color: #282c34; - min-height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); - color: white; -} - -.App-link { - color: #61dafb; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} +body { + min-height: 100vh; + box-sizing: border-box; +} \ No newline at end of file diff --git a/src/App.js b/src/App.js deleted file mode 100644 index ce9cbd2..0000000 --- a/src/App.js +++ /dev/null @@ -1,26 +0,0 @@ -import React from 'react'; -import logo from './logo.svg'; -import './App.css'; - -function App() { - return ( -
-
- logo -

- Edit src/App.js and save to reload. -

- - Learn React - -
-
- ); -} - -export default App; diff --git a/src/App.jsx b/src/App.jsx new file mode 100644 index 0000000..aa6d39f --- /dev/null +++ b/src/App.jsx @@ -0,0 +1,13 @@ +import React from "react"; +import "./App.css"; +import Navbar from "./Navbar"; + +function App() { + return ( +
+ +
+ ); +} + +export default App; diff --git a/src/App.test.js b/src/App.test.js deleted file mode 100644 index 4db7ebc..0000000 --- a/src/App.test.js +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -import { render } from '@testing-library/react'; -import App from './App'; - -test('renders learn react link', () => { - const { getByText } = render(); - const linkElement = getByText(/learn react/i); - expect(linkElement).toBeInTheDocument(); -}); diff --git a/src/Navbar/filter.svg b/src/Navbar/filter.svg new file mode 100644 index 0000000..844908c --- /dev/null +++ b/src/Navbar/filter.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Navbar/index.jsx b/src/Navbar/index.jsx new file mode 100644 index 0000000..b74d739 --- /dev/null +++ b/src/Navbar/index.jsx @@ -0,0 +1,169 @@ +import React, { useState } from "react"; + +import { motion } from "framer-motion"; + +import "./main.css"; + +import LogoImage from "./logo.png"; +import FilterIcon from "./filter.svg"; +import SearchIcon from "./search.svg"; + +const Navbar = (props) => { + const [searchCollapsed, setSearchCollapsed] = useState(true); + const [filtersCollapsed, setFiltersCollapsed] = useState(true); + + const searchVariants = { + open: { + width: "calc(100vw - 5vh)", + display: "block", + }, + closed: { + width: "7vh", + transitionEnd: { + display: "none", + }, + }, + }; + + const navVariants = { + open: { + height: "100vh", + borderTopLeftRadius: 0, + borderTopRightRadius: 0, + }, + closed: { + height: "12vh", + borderTopLeftRadius: "20px", + borderTopRightRadius: "20px", + }, + }; + + const filtersVariants = { + open: { + height: "100vh", + padding: "2.5vh", + }, + closed: { + height: 0, + padding: 0, + }, + }; + + const transition = { + ease: "easeIn", + duration: 0.5, + }; + + return ( + + + + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ ); +}; + +export default Navbar; diff --git a/src/Navbar/logo.png b/src/Navbar/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..08ef74d3ebf2ff0199250d6d6fb0865ea15fb07a GIT binary patch literal 49377 zcmX_HQ$S_!*RGRo+qNgWCf7{1n{4A`bFw+vwl&$VlbdYU*YAJvUF@5EvG&5Vo`v__ z5z30vNbvaZU|?WKvN95?U|`_-Uyn8{^w%5pb}mFPu-;Nx3DF-OYiHTsE;vJ2BLw~8 z=mv)Q0al`z04PYSI^|-fr2%o&Wa+@<0!_%ifH>73MO6+yWRhr#U<~vC;}C63#=PGt z>P(TEp3n^8A`$AI;gFF6i6@&L{;NiQ9IqL#L1!$FanrK({I}VwV`rPI9USi6WWk1M znltUL6~B7jb|9}3Zrvray?POMnDcPr5f)G(T}{(SH4#{&!+_RE(Exq$VYK6WuwaSY z@NYytQPG*@r$_}Mr!G=f;i@C%rbwta&n*5IL{6t~fRtU^?lcTwZ_ ziPBvoz^r)fM{sMwDdCc~*h_*r#gSV*T<^j&*!L$SO)Gk1>QjGsS&rN318OZK)&a8U(9mv6S`o{SSYlkt2y*QeM_Ps3c zzPjMESb9yXSCORah*Rnj4cSB4dffv2S5wq36+_0H9rb9Z&7pumL=F&?RWfT3xd?jKgbqdSeHT-i) zY%jj{cKo?!7-A?PKC30@zR&D3-7m~sL)kkS?Xb=)DT(6&KM*ZTXT8P>Vm~W!xjIJJ z(V3A#wjgci#0vRW#q5XyNO0z3cYJZ&Beuv3x zBR$5LDC_%ASnJxETvh=W>-Fq+kSi%iFKnIWH*TfEB#eB&B(_UI=+s^z1-?|x<}rsD zb0vhX?8qg*ymqA=0(2qUT$fdm{KkDx?iqR1J0$9+|Ez;feT2VzS7dD^BEBE>$0*U- zG3l&E(W=4kJ$gzg1CmV+WH=p`^uEur7pSYnEZu_N=3udI@?kYl=t2mDN%tlbdN=rz9!nEtfq`M}-6`g=BO`(o#xSuUALDHLX!E!0K zluM$JtCzypn>5KVSaH|QNHwep48wj0x{DE{+S@bD%^1oH**Lpzkoxpe-Ol>^EmM5y z)Sj5+M5>Vw_y{ zkq{|^vA0jYWmTPKsnh5ls1DA95J!$voWggo%zcH{I`nfV=2+9Joi4~ zmc|_c8D#6AKls^JXzMQRQWZ5fC9@D|RL|x1DEZsc+PjdG`NvK|VOmq(M|g z@8O`o1BBJK!OT<+){D4^V zfK2&M_l%#wVmO|dk#*7ayf1a{Rn;h>ZAAF9n}M}b_p6JeAC{xqZ!b9W@!V;Y=K=~2YmXA3) z6Y9}J2UVG0?Z)bH#3bAGoRID9klKaK3@*@bs1{U($vfZl+pOqvcT2CW^#>&)^XVje!{~D|J z`%aArLeQ}84pW>*e<4NV{W^ZOUtr1S24$Sv^$J$T%>`^3|M>GZtr0`m^~K-+kP3&4 zzmy%3Kt3}}ah}}kFJCB6%CPgJ&ad~o=U6$}Ij(^4wEbVgkc802ssOIgIDMAAz?dj1 zcPWlM@Q)mzGq8exSp>~>VlRVwNBqdv=5jCe+ca$HBhvsxxsa${cJqn~+nQ^f`{HjN za*35m9C;K$MthI)9*!SeU#LUX$?m8*l><5hpm7b%Tgl8lo?=*F%<(rMq>-Nef{)z2 zhTUYUm88XYZrDvBVjI07?jc2WO3*upp?gt)1V9*8*vY^EPigBlAGz>65j^4}gd)CP zJesZ;%2Yne9iJ2O=@z6%GF9D=C6Sq7M1n0fz=eJX0sqxn5n5Ky^`=oP-I|qDI?3yX z42;VGKZWH9we_w_Zo4YpNB{@o$7v@ot~PxZOlla(o7MJPb;r)HBm05Rqn?O^_3<`q zPBY{iIu@myD0`?awrDqJ2gOIs$jt&g?#@4mW?0MjDneek`oP?|5YHcdoi%{xUOeIh z!mDhEf5Vu(fHyhRMx}27D5KrIoP-CdbcMr@z%a*Ry=Ll9{^On+5Qdsb(#y`E)4PdS zYhPH2%n3HY7D?yG9UIbipcW)}AaeAcLzs$PO3d5yX&gE*j=rUP;DhF1q5N6ESzknE|m5j_#E-^_zDE%T1#QJ0gi)Az+%f0QpfP6p-2kha=|B3)XE zuJSr26)!1IB0Z$NB!3fQO|5aji45Tlq2)>DfGhtN+W~VNTJv_94_c?rwnx@QGUXS3 z-}vF+Q(I!-l0;nj_?_W31KwHR) zd6|*8)L!f2hgOoXLov!^H-lDG z;{v62^^91-6hrTaq<&8LKx<=qnyKHSx(?(H-&V1@$#|0(jWmB#gX(i-OD4#o>4e5bbI5H~jkeR6Y#c&6m?HWL z$L|2Y*8ZYRoA+Da@{^rq&4t2<0@n)CR-uv`H8f4yXODbyn!O95+uFaJeZf;0koTOy z0+Xna+9!ccB0oW=0gHCwJ*dwmR$o0=p822`r>Z{EG#2FY$RG~Y@tjv)nbONah7g|$ z>VhPO;04@UZA;oKJ;4@j_A#I=Nf9=ornv9%A;8}6lVv3dvagBl8v3O#YK7zwLW`^$ ztrfu$Ht!jaOT!uu)DqY_X+-f(0=_iuTZL8qCo(xO707zV+p#^1l+PiSG4Gj9+R9Ab zMHlzJ^C2XHQx&@lej&jOk>WK`&8yzs8n%-$2W|~?8Nge8Im7pc9F5M)yhLNFlnXfM zPbvyvcn;jrPQQaTcy8H23}p)~9&cd!TdD&ZakV(#sG_q-CT%To>C-07b`U!OS>Di3 zwh>?;V8goI{-hfSpySJ^SrG*G$aMf*a3Gh*i-d7`yGYS|wng|63WZc}_ENweK~BeH z3%ASjNMAaDJ=VPtxyADU85J@NK+i{vf3*%VSXy8q>}!S;&Fsij?Ev zfsq~M`q1orc3gjEXYdbRDX(6z%>V@bOzmZP*bJRTzLcEwUD{2@;n~nQNF1bF>^|QJ zG0m)BwBPfzQYr6#t4K6?il3 z#syu%h$l*Rg;9h;S0m-MOI|j=Gq)78Fn(XCGdchh9rT@!Cb{KVmB0RFf6O9QcuepL%$pow~lZiIaK&2K|%6pDS!sSZgHac^v1*0ASIicf@mXE-=4Kwi<=tQaU_ zu0p-nrkhj4;1X)9AB|z1fmuD+0u~-srxD4jX3Q8&nF1Gv(Iu%7eN9QqHFjHL#NQ^hatbBgWy7n1%;zA)kPKc(NGabsuLO{4H7- zo+`O+)N|B)#fWhN821zxq?-mcMp8l@yoI zEA$L>0_%bQ{By8Yl+OI|Hz|a;WU5oalh_X1rYV!GuRBmUvDeQkgCv9>&$~%JZMp%S zIPeJxZZMkX0L*W2Pw{U}QycT`c>N+bmt3ZVX38oe^nmU_+O>t(L3+w@|NKm+F7<@k z%6AsywRn*U4^`wHX%7>9us|yK zsh;U!t`LZq1>sCV1~a2(8+_bsF!;ptQq$@);{?pjNx#@)qA4$|Nr&B^`y&{$*eJKL zDQku6ivIfmbR|r^BYsAE7Lnr&xjvi#-0kzLa8j?3rS{B@eNXmD!IAY-s0c&;o(Q(O zIQs-^^z+AW$OkI*FO%Sq{rpK`3`7u8-uVxpb{uFjV14G)}$k^;=}BR zT>aa;#C(L|a#Cu8FOT;(z<%FJ10k_>D5taq93o><)9m=6ued27e9JjuMS)dsZG)S< z_nGEp6e&0K^5I%h$?%~HeN+gKf$K z-+-{q$Knjt$^S-~&}$8a$Ft-EL!W%@S;gm>7@|QscIe529||!oDu=#;!a@ggMPSz} z&6?OlV#D<`T_QTf&L}L@JN>u)MF4od_y!KwKutG*trx3yygv|pl{pGfJ-^3Zj8Vs8SgXF+!Nx0G39-OJJUgRTNZddKi;wHK1W@F2d8i^WI{W3TJRH~fDcATjPmreF z1Q0QgK&1?(G_XloyDb{v{3~2sb}U~-;1juf{2kSf251`zbpTcu4Dl++`xmaUWMEH~ z@%z|yrwH*ME>M~HZKZInN9nB&9X-}H!4|fDcCzyF)wNt%|W7Luxij)lD5wk9x6!fe-yX%Sc{Af*Ntl=W_uS?eOl}k&& zjUNz;Kv^SEhvtU_EX@dWwyu|)JC_2~RpCxukI0hdKpueU_XF`qV9p@a9Gx1>lvj73 zLj)8KGSP+u4l{QJr2*?TW1#DGD+d))6{_-}8DUtSJ%`vX#KC%5(vrzP2Ox)4W#vE2 zaDych3Y{BnzAzK}H8nxkBHUZS_$9c7&+dAKxB=S(aoPWqB!XTBJv{&g9Q>hw25!J& zcEq;b1L(6v54Um*dMBz75CvS*sbJWrO``TwIE+z0V~Yu@)gc8Aq3Iv#!#bYc(^J-- zXM7_b5TuU}AFnuYpn>be(cj7MP8L|Wa{iKHiQ$4gIt+&HksYkii44=+rZ>jx9LG_u z>yKRi?d@n2AygF6SqIb0dUf<1~mCKB=)_s6Wk)v%s#V{ zXctiTpkzCpz14m>J`sWIl}mvzh-_$-o8@`g9WE|=QZhuuWB7)=XVQce%CIo(Y`e~e zE{7hg;`Lb%{d;u#KD!G3i_FHamI zTcrFQfBL9QxcaHEPHUe-6yipCpGzO2rWz)ywa$aT!n^RupBzf7DA{@|{ z;Deg$r5ck}pS~S4q0Enxk55y!bUmjKqPhu36|bm1%-it7fw5Qo$6)7qSf6h&4m>#H zZFs-L*ne|tn z^<=CNQdR#YCjWkUDX$nlWcqV`drNCF<&(jB%ay^&m8w5ARgx9KqGC7fp`9WW+8l$Y z`0W4BjY~_1(z}Od-^wrNddKN-UO2$!jYvRmOmTk*_tm8$7)_1R~RzQ$DiE+=#=Def$!8@cimCfWK(1u=SOVy2rUVbg#_5iogrg zbxQMw6(&e=4{pWkpVY4-gsUP*Vsz8yFW~QLExvp7My#SwA!O~Ne`IzpxxW6ioK1qT z)b_&f;`O#0lt`~LCOWY7&uu>A7g-l#F36UYKJF6FRqp#BA7|N+wsyPBFXnfj4GhfY zv{nOG*sM*bu342i`Maz&Eaz`>zBt%HGR&lB`|{pYaX6+{GFPcWVY%9S(U^bhOE$n7 zVt}22DKc^KCMRZhjQoe3azmGRTz7iAg&es2Ai0Z#f^em18?##{&6}_KdpNO|TbpuA z_rJtJfV0UZc?;{f1*_Q|pZ?fm(GeQSWXY_T%{nXb;8~@#Hi@KzUcZa&BlW6*CYa~P zMb&hP*kY2vB5g;_3q(~Qg5yFhc-)exnagxXK8jo&o9J@BBusvvx_u*VYCFo|&$yjR z|9r+#9F3Fh4jenjcwJkZhy3nCve_*PIs|s13Yejr*Jz%oo6^ji&dk(seM2N9_lq5y zk`y%}i>`|A@&4F_A{O!reto=keBAQgX!FKtx!mZR)M;_tJ7m)B@PmMfGl$#dXh`_& ziwKv_7q0ME6Cq#EHexWc&7%{B|_am|xp21+^f)!F$7DG|9W zn{8n@s)k%fU0(0srVKj6)hwod^_OK~V46-sCZr_?bxF5I9>Ql7y!B{ITJw(L_&1=2e&gA5a}Lj`YB5US-ZLGV=EDd3$z z!W?aamspB6S7z;=3&yzebyDmzeHgn9s1U6~!)|mu%^Z1Fvj|p3%4vc1^L;6h+H5b? zufQ%}u4XD#=|KLqR1?=8gI}OuI9#e+2M{WIgUjHwjx;ymE_yb#>z@F#hGM!DJniIZ)_kqFailNq#n$lf_#^h;(PJz7j< zbNI&XFZ`HD1d*n@*SVIKg$I0CKlL)cFymoSnrAjoQs3t6k!dM|P;^halp^qmMpVcx1DJDJOkn@q@ZQj<39EJp4Wgv}MpX)xt zO$2Y0{LK4BkIj!f8J4M-Cw98dIVu}u&%6rE*)auIPzW~(9W!b?&OQ+>ZiT2v3;h?; z{)v1c4MHoJU9@liJ{mJwPf#11Ig=~9BsjaoJSeL(Nwe)&Q<|YKwF1-2`yG*YE&T(j zvFiK~8#D0U`aEpOR+}O$?lt|-H2Kk+qrwD2sAkgd&r$n7$(A0S-l%~Z) zm`}N#F`K8-!uLFUbR@-*GG2$HUfrJ#@%ohby?e>X%1L_|)0@u{n0OsiSKSF&fv1z-zMP-HK;Br#W^MAQf7$MVzKn!0kPV=%4`tO7~nymsWtzr~7t``KBQ(jR372iJ7c za}qtw?9R8fU!>}(Gf?L=#|!UJxcdOrE%^ZlU(IHpAnRyIsuDt68`s|MTh^z{y7g%g z+`<7K5g7Qv82p&`pLz>1Z~BpTKX1hPD7iv9?x6mfuVIQ?b!>XDf}e~yhpa$CLq*8C z^U~qTkw0p6R~wyjKQ)>&O@=Mk#e2!|4k;5@oBE*hfK8saH<(WbY9YWr^{IM@i-{dW zKPKv9yC1VT>a+Cs*LV!Y>aDPL`a4PwQ~eH&t4Vp=Km~N>ye$~zk|a13c9fTo4}M`Z zOkQ8bhFQ(Ygef~9rG`!!YmUotgn0-2wN&~IZGoG~ zE|4R|e0}#%7bLvW^6|Fo?uIFnn5$PqeYn47x#H`CMT zdH!y#*@-`nAk+YjFn^wVX|`ITsSgu#o)^l7#g@LTTBJ4dZPbOoeE;$NTcEhQW~8N` zpHQXt>%+Oc!7ZO4;l!FR{1td8Z^x7tanFUK{BQ;x1{X^BE~E{irjj*=c|-P5-1iq!c$X3 z(_xAGrR6yzHBbjA>xS?Ieq5*Lw+x%$Va~$7_ngM@hMwSmayvcK*R7p@bE-7Cb`c}( zLP6-b52e^$7>% z>xH^y@?U*bU5&m{bvcb+hNm`BVGcQe|7L~PZsQFoa`<_Q9!=qb_sS*(Uk$fMXL^7q zfJR)0FsutZ+2J-qvsm6QY}4_jG`z-zJ^5nVw2`k*UEtJ6I`vwnLe zly10XOGD%O;arw#@pm&dwyRs~Vkn>R4YbELW51U>yl8;m?myScog}dBc~>DT5@BHN zfn21?EmH?)efqWT0(H;T?voWHF|We#Xm@Tr_R9`8>#;hnd!6v>Du<%!tZINR7ILnbNmh*X<_= zL)900Sf4%-@qP$Tpr{H4+F1<98@T5bOrlyOEF8g6TwSp4n0TI%RYveL3XtfI5N-94 zbiBAJ+j?mtK`k3Ol3|n!Q?P>Qw8Vem>(57Zk|&QBTs4!jg5b1v@&bxU#wd;US@H}k zxkDbazDQ)RCeP4k2-tXf;V$rOx>VcBtdP*=%+QZa?S)x#HHg`zpt>%@QK`RK2RrasjT4VGV;)QRx9lrUH*0~S3nWW+wo#VHudFBtId8J zo;>{^Hk)18vC~k#X>XmcE(->DYW>GQ2(-8cj=gZVTtJM6rYeSR;;+MBzOk_k(sr!I zVim`^>BT05T&hm6=n+?9ZgeJZU!>2NL+YS(P=aK|7@sbme~)<~>Ui@z%r|Z{83_YS zod=@Oi^7r9PwFk_+k8r#)an?x7cWb;gzG4FKf`x%6lCH2~e zmmzcFM`~!A#`v+{A6O#9T&VlKHNGMQT45^Y-I0KEW^BLH9$je{tvsgvZfD!}l59k& z5f}=|0X-d@T&h|aiVX=`!tVIBExLS|V3N?(U*m3o_~94Ws)9T802boUbY2Rb@9Ld2 zGc^E3eLTCyn<2X~nflch7%x}D@>)%_QgiQ4Ib%%Y-k11J?#++*eS(xpJMoe7cGiBt zP4B@2h1X*N-W5UNTuhE!^Xv(ZYEFq8iU#X)C z24$j#L?eUo$Eb(RM}9JV?Vg&`?NU^(4+I@o%Q8O6!4$nzhufakes0TMOQrHk_-Ij? zk3AX8!+~qGR4DC!O^&qcf(}baz zrqp{Ye#~0qqJ5qf_fQM}KfKip`wA0LPJ|ybFWX63hpjBOSlzMQTB!_6vlEOH>HIjp zul`{o?ZXO56)py#f10PMW4?+eDwb&nSu<}wQ4I&WtVcpSfTNL3znR2dM6L6^k(&_pdAWr`!N?JP{X3}-Y>xJeW5#l+G82xV~B1r7DD>>t)(B2eLFe+Ook`yK#J7PkdEK2QIz8SVOU=8#~oK zb+4B?#*VxMA;y%Pul(@na5)W4v|Gig39r9L@JtdQ7bLECv$YVBhd8q~AgP-(n~{6@ zLPG_7&Uz0yjVo5z=Y*Jp#WCcv%r-iXzAZ*{BZaW5vpg>N^K9sBJH;5)%q$%I@V}s| z?mu7b*9w5zQv;_Fvj-Tgd?;ARCy=$C7G*mZWZ?I)RaYY2KgMNwAu-L!o6jl}&UhhdHiUOAllG;RSJ?aY0& zYpj{5oYIwmb-!Dp&}jS^GV!n-1ogk?Tpp!QT@np(->~WUgWC-5ow&S3*0Q(Zt0(Nt z2_8;8vY4rFrLcWziRsFu2bZrA!SGtVAckw!-yWp;Y-|X$gpOAZDm=zS5DYR8iO>iL zqDo6?&$cFg`aqz-@Nn33i+Y0TTwxrp-3Rld$j1_;W{>hQ#BE0PPRH!bCu6s(u)tFd zu7&iR{fLEZrW@~-A`Mvtd*ZhJkgi9v=j@oh&xioVkU+;5+Rh%;FEnL+HAsDJSAKg@ zkNr8-2G|pt9il9_k_2oUA{etKm0)CkTLdj6_Zi%-j56QVyL8zU&8`OOv%PCM*|A{` zLa}EDmt%I?arBt}ovn5G1P}k=C9aX0nX+7dHcgl+yf~i~SYB7-Xe`Ji$4KAA#>0zH z$n3w`>4V_3oCz>HzC=h+`2HPJY~oUKUnjp>sXHv(%{l$|+;SD_vV`uk`I?5khse0@ z%x`%VJUPQ8h$8+rsj0-=-{Ds`F+z*Q7H`Qhd#@+sjGq(c|3>JQ9aMcWxBP#6nMD{D zc+H2onVa-?>*Yks)#e8(ZoRhfa|qH*vYi9+fREWvSTbTY^(yH}sTiWDgz}%4i13TM zt^{cq?o{YWYL3Bh{q8iBCQGq0xsn>&jill6@7J*-m7BffbOC$!ry}Wu*>AkqpX9t4eW>9=`nRj z^h?V1csbT1Ez-kCDQm5oiCv!Ak(^-xl{hPe&atuYTq9i=t-=W zPq1&JkppnDbof4vO1;n-#MrloeWZx%1=cneb{qALRJRp6QZ<@Uhnrq`s>$?gglJ7m zUXLdbpT!KFFB5&Q$P}pu{}7ne`#e289h#W+zKL@uID~O+MHf^Qmt!8C->o`(Oh5{) ztH%CfaIU*i$T_%-s(M6w#=_M7t6vliiO1mYm+PYti{_CRe@1aWI?eb}Beg~623ov1 zON7Ceb>NP_u|r(_11p0-%Ud=C1$E>8U#Cv-Rjt3eB<40L!?4y^Bm}xnO+u)ouT}7K>tn6@U$^A|_ zae5*1!tfx?;N(vEJ0p=UK;u3pEZ!GJhuqk1`JYu1w79ttAR=QOmy>TrzDRHxMtp5} z=aiBP5|t;LLlP>o@R2%>hV^*1%Q@s#egiR{1Y2GVGGa(20l)^FJg=&?C$}e=K_UUl zAq{dq8Rx;+_psW;xD~A<=3c$RBj5?V7Dk0LkG)BTq~>+}v)ty?pRxIp*Rx2TxWl~P z^G9j4M_kbgmlRn^NrkrMT9MUt?L#F+oaeG(R#ZwmGqpln@Rw>gLYTVq@Z)`_p0a^s zmw7wBKN0M?feOq?U^l>vdvQ1!z%v}C59y+1asbv>?S#oU^bv}@$W6-JDsr39VvXU0 zD%jk|=RNpdyIaLN({$#2^*LR;>$V2JP&e~En8lG%km)YdVi%gM=g+gKf9Dmx(a^*#fz z5rSk~5UNW~yGCDdyLu^(1V=)~!Awccj zs(47RO_%AQ$Og58@a8d9JrpQ9@5)f|e0Gvy?+B%H7vqFXo9mjZf7U568iiZCEIFPD z=Y$O=b%JN{#bL0oMZ$s~YKCm8x5rwQ(JH*o`NRoVE9d0kPNH_Ybzy2xo6dDQ0r~82 z@tpqti0S`pWFl6sX+_NE4PJwELZGDI0i=Vz&aL%Bp#M>B`OUr2%TcG(SbMQ=)SDR}FO({Ca0qE9sc4I48p$Z+P4a~JV zUFD}7TDsZ?neX{=OasZ!Y0OTi+FW*ictffcHlhvEOvgvx50r!@d4%vP*Zo(hLU)}h zvjj{ueY=P6Ur{XmyXo!3GOeIB37vae%V;G17~Wp)#ADW6XWEqv6vBrzheIm|a6e`3 z?G*VbSS?N!9evic9uJe75Jkq~>8R8W6>imijzs(J&j;pTFxZ=llI;2Lo_Ob0ckPo$ zeVj6T5wOMj!c^g)Zk+#H>nMKZGfMyZ7y-t>!RYx+hKdISEQx27?kKXXzor%cy$s1G zT>-Rqkh-5x#6@qqvvPU}iB7W(-QZHPfqL%FYk#qvN4|GfiS5ry#AmOBeid`6hOJ{` zxV###JM?Aq=SZw8q99RZ!pPL!e?(uaN6AP@>>|vMx)-SgPQ9|Zt;t^mg%aWQTaW|n zVvHXG!tO%@m+R*>RXh7;u6nTa>?KKkQ(nfKb58*FQ{yw5s+mFH(GKPGKAwuz; zk&^JjeyB5cG=)y;_+$1f)4D+Oh+YdNE`QP94zaO}1b1VA05r)mwwuN-2tH~_dpsR~ zUCHIyq8Yp#RgmgOITghj|A_>3Sp^SoO7x#U)c@xX@3dZIEsl|a#R~zSN*tJkUn+BLl<1N(0w@FIiW~;XAld0|WUnej2gD*cf-CbU4SgJFFgCPa-3qSGHcU>bc zCf8dgH%s>|B0v;w)h-N$3|VK}3PT98+3l{iPK)$(rQJz631vT#&3&7^cSHNKV8up} zb9tExW*-PA>o^G@k8?T0AG|IzHaI)HNjm218z+^rkIgZkPuM#$AN?i=4+eY%xbW(- z@o|3Hg_~6gWu`2IZjc%&&*WBbPs7Pfs$%F51bm2KCrLxv(I!hf@bs@Mf005R8vO84 z@$pAriC)W;V zL%ocaN9qu16Z(abkr6q}AkX$41G;WxjZfp_3hk8p7NqBXcB8!hmen!r{Ar`}k>Uy( zF-S8&&-8#0<6z?!Pmt%x!wk=iug&Hm%Yby~Ii z&mq*#F9wZj%;m9U1`SrDen^#MGCDq})EeEUo|mND(?CWr&&Z#iO(R#hb~Cnz7Mf@{ zEN3GMYwj*ONXC#PBPM&hga|dWLOxl2#2Phv(jNoTnz&dN=~Ak8n33969hT6olY3pZ zn6_1K@jii$r0wm9_AhTkj%veR6x}4^eN7jVih5?xK(o-HF-TMCbaZ`jm5ETwKulB_ z{bY49LIlwJ_x~b>{$Iopw1j{(ij0{^z8yoVd+h!q3BrsTt?gsf97$v2z2-@EpA&oq zbM~7onWyCtI)%v!m;74>ydMM#(36?|5wS%4;pJ^AvuwNVaES21EHQp%l7Q>zW(^bT zjn)Kd46ViTpHCm6yqLMinl6(v-xUU$Tg73`?IN_=liSR7x}?;gG|nVdf-nU^Cl2X7 zE#9|Ad>&>6a^XIJL?uZYr+T#c;xfIY0b|9 z5()n02NYC&%-0UXgby=%8Ub{E!lztd1nMI;038&D&9or+P@)(%L8<4vDmWOSa4wN0 zebjxfE8=q+v|21$JrrBaCO2MeXfYhq_G{e72uC4!&n6D-zE90zmH(_r>EFLv8)4L2 zw%=NKL63WRd5GsB>`t}C=lT`CXuZUXt*vw>m=$jN!ICp(7+P^hfz2a<*SY($4LNIK zg3J-o7Cz07WP(w^&?QW+`ZfOOk~>RDd^%F@wWHc69(BS%E&Dk3e%|`W*NjmU3=s&? z&i7ZmDqp5haRgy*#s1eIN&dH_3FcX>iU9tEYOK+CJP)lq;9&Om7K_}F75*sN z;di0kobcSX14oT@QRN-g*d!z zCuXYssDfjv!y2_>@@brmA$(Nxvy$Iad17W8KZzX}Yjb22_#?kgYF#%L#*;r5CSq)~ z|JuR%`WsmH5%GM;xVWOZr@D-EjM0b+@6}asw+h--G`@Dg2b-U5(^PX1^y?UV$`_S! zM0QHkC)khSJ0)VG^O6=x1Zyx4=)^x1!IVjl|L~~H%sL*C1agO5N3}w`egvT7yj>+_(YF~@2a7-GOUr2Q(gS)9F!PLsBf%5{Ak|CH8nHCL&_po4*xxVWBSGspRqs z_jdye2C2E8*6%U+CH}8|3b+)X)Olt#Lb$wU-`-Q_2Pa8Y4$WiJ*{7<<^2srEU%5H0 z!NBQA9Y)3L<0gK;>oKZ>lBol&_OXCKHB%W`>CnT_%fEhb|ZX4QI1ltE5{BsU9)+wB2_qWNL4yifKmoB;Wr$6o&K3 z3ouPOD8hM;eMBz% znjWfpwc5{su3uIrWHDTz0kRn=L50?49>fp)rk}5L<0zvx)+daYqATDDyrp zP!;MmVlnuOb(YtOJgaTgO3mRD^r&v2>9n20p(vc%bxkYLaJ#wa;T4X2A?T)Rb;<%P zp%2t+HG=QJ`-yV0P?uQjMjPqAZ{ z7puR&kaMP^IU4W9Cb)Laa`)8^_05oUIE^Ukqb%04{bDgT?Jrn~H*-_(q*BM1tH=>I zR2!)Fq@N;v&5{u5W@ZKejT|(cHgvtNR@YniWUoGXV&g)R zBf^>`1fz-uy$c_j@StXDVIVO7huX~g>mv4RE zw@#PetAoSVbnY4QmrmCeDlQFLrUj4uKUx4l!XgpV7+hKSoLnSOHo|D+dfO@`5;hB? za;|pa9tCZb>E6mPCsSrcz7P4I(qNPJ(dk75VdRBGkL9RG6br7jnAL{1aYPs$ozYWN zVC7Z@P0RbsKei@6z~|-6Q?YAa z;?X(^ko5Pl`_7JD*qOR#X>G;*1O3t|h`bQ-W%Ybd@A9`+gB3Sq1_u$U*XTLn<5Fml zmZWMew2kEox(KuYScQnrm3?BNu?36s5&)7t8KLIz_=1A1XlIC?g*1NP3q)uGGJUrV zWSuROCLQ;+>oLW`1p76=nDoC->DAJ-Bc!U4x^dsvjmA3~R{V_d+3gncrf@x7N@iX8 zg%&sc+vlT=KMBaNP&tfa;3G=(t?_7po8M%+0rreSY8n;Qe||Jg?U|=Q(eh8szN| zN7Hw@$lAg5rXm@b#X+b5!dL{!p1|_wmya{cnU69z3ed7k$xw(#Erheid~tJ%5eM10 z@g1$5w{cL~pY0TgbzxjAZ>R5_8om+uI_w(0h5-H_r@fYl*;7`RnS~=qmVL%x&^pQ@_B05pheTsBnau zXwH~MiLJzUKceJSFz)aY^D+oPx;uzcZn26%)1z5RSp0CVMRnT_w}Cd=19(3Fc#9U+ zKmdV3uV;qGn!2E|@soDY4RRkUpA=tkvQE_kU&kEYy`$@`-S5um==;MZ_YdV8PWDv9 zpTnfxzu3B2AQk8r|>z0KmYqlEw6{+wZcw9=TML}`)c8RtU_UuorS!KxiQOA zru*(>P5lw8hNN4z_9~2X54(e*0e~{=hf(v=xcy4{`+1c9qfS*MgyQ9vv$JkivGsuj zrU49Efu3JtwpNpL0d5VNK`r{Vq9XfIe={Er%fjdq-m3~!p`CZguNCr}mFa5A(6JdP z{|yPg3ndT3b0U|t_7SH!kxA=G{d;uhYF6dNXmDl5NbDxOcYG3_zKq zh8_GN3J_U#je0Q9==faLf4&q=J$u+=R`j}5G$}sU`WZm1ErqO8e25~T2~qW3dU`J) z@Z;uqbx+syguh5wT0Cs&4$0L&)uH}-@jR;qt_bY+)KrLgv5#TMUxqH?v?>YYgzGts z&d!J1NP7s!ztGt5t@o-k#llYqBU?4<;P_AD1J9F^Ytd<)qkn0rop0 zgRSjr0a^+V=VUqUI#QFT?#C!5w2t-#wz^C`C5sd7*J68-{KEtd)4FbD zWWP?I%y*DGj;&4>JYs&>8U1G1;u7TU$sG|+ie`FN{8za5Q;7`+;`%ykoi=?LOw#G> zaYQbqRB3_Ab+l$8ne;bKk!T}Gn;GsY2NLz4zonZRB*EBBvwP!A>33)M=;>1IJeTLI zrkNeGua95f_c9yL>U1*xKz3{9&;+*H2l7Obr)} ziOfuP8OIhbGt}3FrXRd6v_ZOh=t7@0oCi_Z8stoEb?UHiZPfAi9ZOpq2tmdM4wc8P z+OYQ;w36~1{R=S{^vFLL6LF8=Rhy$9ON-2i)LJL0Ym#^Lmkk-rIRfB0(v`z&vR9~3)-C+?9{@5XW;#XV8Wf>?dt6| z)l`??L9;v>$lS3JE_f&~t!eNF#tu(BMfGAxY4-<#r; znsVx(lp^^bl)5SR+l~aX0ti3CcU=>;6UK4o?srndj{f~MhP`35{f2ZQ<@FNy8!m`v zb7UC%ca8TxIk#$f3VwM;_DkC-0dN3l}IWE7)qrJrt^0#6=Re zZ;k&xaTO!A^%fgq@+g!^C>DOi;)n8pIKlISJ}%^k?U9sz$%b(KNR>Y99AQ3|QJjD| znigk&;8ax8xgc7{H~tC+MEfQ30z38~E_SE7$53;arFDB3l5ymYu!~o9zA0Ci&$rL? zHAw_dvZH8`+iw54^^d1l)l}#->AOynC)qK|{*XQ&c~P9H>!O4M(Juu&v1`48eHQ4z z@5S549LFlYSfcozu^|32_ipcTN{0219QS@grP7$yf9eYtAI=IrPsG6`|>~qu+)We&tt+@cdhH z`}X6d$*l5=dOhSr)-^|mJ*9$!Q401Ej-bpiZ7;;tbi6Nsq)eMvG}ZnOUD}`7J+(<9 z57x->KT}Qtt`T0XFY%ept!^qJ{MVu6^F=<&tQu_oTuzGmVn{3i#LGt-5DF8&*C}Tq z71LcpDk09uH5;M?v-|sgoSQa7h)k8)gE^UD-aP3_vv5f zphZ0&WDpmgk^00jK0o3gYrkghMNit|i2^$M35XJveN>u9R9nO{h1_bBQy_;0Q)MzC z#$H9I%CPwEP8+nYl`vbP>K^4x&-5K*&ESE%yAfjv6Lzk^1MXVUR@P@o_VOg=0ZC&a zLu}ForA!;QeIABrMc5*4?`LrKjpe#yGY0Nnjg<6pV271B0Bby(qmI`yU7jy?Dj^rb zjm7?fM!G51f2B1b*Lh0VCDOAgw&4R!JOkpUs`aT5w4#{{`f&x_5M2q%qss)06i%)hT@LwAz6wW`8)6ZltO3 zEf#65QNP`?m*x3MXm!U={ehA~tVQeWEbA!Zi^e*z zu;0&RnR8@HivL6t=F(&<8kw|k+f1R`a6fLvNA8KFeCzE=OLi6wQ)n6&7q0XK*%g@z zzdHBC@4t`(IOKfSFmUct?)3Qg(TM^>@(2=@PZNV*rSzasci(c)t%kqXh!jwV|H}G~ z5P%w=>*&0^??|Tb>DuFpSUT(b>W~zPsd$fwlT%cHAQ5;9?e_ACL*54eI>uNbC?+Q6 zx1ig%0kN_rZZ8EwqPB-%v_k(c`z$muR3%B3Bsinec$i0;GSUVFj>?Wo=Z<)#I_*R( zRRZ#ZG$C3cz5Lv?4Knm1Vj)05y!Gq8KBfkSp%}knarl-9OtSv-4c28hN_2>puerAs z*~0e|=`->o^ym=2q`wzS1!3B~?I{EmHs4!j&BYN)QD3O<$iMfJ|2}(Sruc{Y)T1aE zXPbyH9~8qN)3=jMaiRvi{4a9FN1dyGqMWHm^pYbFM@}V2knz&3_&gO^1QC*uJIAQB z{1m_aZqTgEii)c*7P*0TF!YnB+zvV~ROHreyQ-EIN(_(2-1}SB!Gq2J?qdxtb&*Fb zR#D}<06EG`KEO|DFV6(i>fqKqRSxp=kA1$hnLW-5-JvStS5YXUcc=!o&<1o^vCO>1dr$jsZC?=z1 zQa4_T*jzVRXAKzdPI&i|(`__qW_V;Ie{N2*kd1`mvLgY->;5)eNYW`N;CKQ<}3o_O~b}EkO zzbPepITP(ySE&X+*LtLcN1kY&?Q_bqZ5;LW&M!zI7M*^NH}r(?2?MO& z+XHa8voT~g6t+f8mTkOMgMS_9Q~ZdPH2cpj@?DG5{;o&v!1sOq?$Wf;q_EuVyr)7P zf`qy4G_n7Z--Wc1@$k{K8|J5oJCWl`mPPf`-EzA1YHVvWWw>37*+HF^cJFcyL4}>@ zM|Kn; z!;Vx?fv0Nf9IkUh-c*ZV-emzHCRO^g!47A@i?5TR9nZJxLwRXw+2I4RcZ!9G=03M= z4FM=adY8V{x+x9}_7EY(hpJS=Ig%REK`2^-tuk^CiD z*T_BW&-rb&8}sZ&$M-`XJVCMrLa#moSS!)hV1T2L|5Jv!1^K1Q+?N&5feLqwdzSHh ztNZ)Hfgl%&7Rn^aeHxqsJICZsqI^`%rgJkRNMM;C#&J=T_R{+Lv@R2E@F1lwRElmTRE5%cP6yzoq?HwFz)w7`5lf~7> zU(_=uD2L&}0S__s3JwH8JdrH>gX0W@f?LYB5xPeBs6TySDt7r1e16U4Nqflv%ICPO z`dl)JO@mZJ$fRVnF4RP9)#ujkJh>HI* zh)7dcg_dw2rX!AI^R+DIcL!VguVY(X5R?FZc9Tw}`+Gq~_=D(K7o1PXlV8w@ShgYk zQ5q#YqFCH}0-my44KhXFS(Ul3o$jcfLJ2DDGxho46JayOWFht`kIza^PiO$j>?{;# zWih;=ZZ#a#U}+^wE+B&3bT$EqWCv5~0`#9RDBsu2Ndez~!U5OHoUg75>(Bl%dK6;y zoQ%E!AIvlC9e*Dy(5$8PA}(D9Ar5$)$!E*NTfeR*afmFSJA3$2?3_t=I%(e^b-vEA z3QGNO$=RzVF2sjTC#oKkvCjZ5)Avm!#Um(6ba{0|+K{1rrb8Isg(W4HTQ8R%(DQp~ z6%vhRuGp2fmZIdfls){(UNE*R{1@&6q$f}0mm^^vcbWcIkt#B^r1E26{JD!!pSYPl zL8=te!g`t<#H{84p||?AgI&1z`q<(9E7rO2BNZ`my4uF6ux4oWDVG_BqG&|yFU87D z(9Q)DY4uFR`u8CE;Fw5XPGZIRlBwX_J7!QoiI0S*z@vp5T}tR}H1ts581|X5D zpohrE|K?cu2mzlgPU{0<(VG@qANmb9YUcA)te#IOHc@`}xSA}>h#@n~?Pa^n*1)hC zpYwJ;9R9H3^TD?ZUhC^yvPH?Yahh=EbqVOSmVa>?btbeT+QXzpJo-moz#H^63n}2r zy=o^A;kz#IIjfW!Kpjbo$UfK(L+d^JR{j9gu)~rjmhl$Sq^j&%evU_B-X{7E$s{*9 z>30%vB3~%vL$_~kh??`1qvbhR2_q*rk0^g!bc*-y91-yTN~Prn>c+7jbj+w`_K;Wk zRc`XF`JKb+ryPrp7YvH=A0k5&B9_G6Rj=Ro*H>U(KHdkLhsO2H>7n`2cGx01(ImFCoH&?Mg$1+9P!Ma_1d|bIN1K(3l5)j zrN|$?(x&)=n~F@0mZw{k|ES!WP>x^2GQuK!6F6yYB1**6P7WsCG=fb69YJXmQtu;K zBJ2oO=xtRJ=62X@iL0$^uryX{vj5JhCuz1!&-KwImKK;0JEu9+r%J0zJ#16Zt2kqj z^P70u-ewrR=W3Q}Rs(H{B_sWxg=D?eBbQ;olSadft6y0dmqR@#C&ld!*p+4d;*#{wVb?3? zKE;V2GSz2h7zUww$L3Mu*0%9J*#xQmpv#)Z<&M)F9_AT(3)vrGWXbY9Z8y6U%shvb zm8O&Nf!+Egy^ro3h(dKWk;f8f#*tpAQWyD9S0+QLCXMosK1E)yq-%3_Zy)mc)AGk1 zeOo3~gwyoKmuOLB)|#BUsz+HVW@B|5{K`kt`O3S4%KOAlxM~S4ukmj9LAv;kqA& z6HJ$vb}3dPy!l16M!1zk@2g^00}1YWq}K6Y%vc zx^htQIEyE9m^3CW1NBT@y{5|1k~?u7_6`}*{RIuD<>bY9Ams_B0g1U=f&;!NC_%0# z22vFym)1srQkiqphirg)rY0J8dmCsuk9o%I>ssBNbB^*#u7~Mg5*Mf26zRR}NPY~E$|Ke-`hn=m4=-qq;>H@??bO68 z)v2XP$h)N{tULOQcozVS)9K@ktL~v_%E?8S5nZSy`a7_Mg@?I4d4}&R2?1a5EH(&_ z8AXbJrPr279=(JxcCLwK>wU{<@1YHdbp(S*SBHA9y#NbyO2B8w)k0zgUYQ77tboup z&QGKB&w~1_sCNEL~-Fw1CZR!EmK&Y4pqKWEkX?qzp7 zxZ&pJW$~-CVceykALU)Po$!;8knde&MFb?A==^o%CN9n##3u*!Y1+hB;zTh$Tgi_Y z3^>QYx?4(=o!d94@6GN4omoSht8;soF%!pE^tgF~E{}cRJ5IVAa=-$TLl|3(;T5Fy z^$cT(SU_^`W~s+rpB9c^fK>XQ5!al*?lQz*GgOaW7}mSJ;#Pemk5FI=Kvwcnk|vhf zibp3#*#Af&Z)9HPDvr>GUcV8KBJT2&1gouOitNKSp!9p9o|>LLq4Tf}yd~tJn4N0I)EcYe5EcrG8jr7M->lC4 zFh@U1j`}4c$xVm68FK;_A(%q-rV~Ej7n+-zzO`YW-L6OgeeRh+_^=~NMs0AI?{8;& z`eaMV)Vs=%w09&qoH68bofUoC6EdapH_TYtdT=IcMWXp~$k`j*)7k2ktsc$Z@q^2s zpN4;xAJaf^I@X^kUDmh=je!jOM24tru<_Lfhy^e2kF}ZAE6WJ))>&|*#OY{2EZtxh z+IF+%C1{6b*-^ExidfJB3|nYEd32c>eYAjCuk$Oy93vI08t~XBYIKmwlQBTA?jV8P~Dh7 zC@O*BtgF=%Fzj|&pEiS5!6-NorDe=Y^b;+GJGOd;KXbFX`pa^rzt*~!Tmo&rnXoN-S-Z$ogmVv3 zEU$QL1Z)FH4tTp`xcu;aL>q9x2%=$Lq5$DmN^{|O%SSA#&9Jo^dHiaL$O2S@UP0{z zGdQC#N}fT2)((d>FseX@GJe~i6_5mwzyF`07N4qky^>dGw*ZkYxBkNShgQ;5rlD}{ zU0yM_!CpEbKY%WePjinJqakJQLkr6mC9_v|U^>E3<`7B0>jq-1C=!Z0Kq@GN+tPZj zsUl5LR(iF?)na4~cFX;x!{2qU>ix~*I_}vQ;W(9RtA37|jb-e-ZtI(s*0Z|RMyIGO-GFRpK$K4e;H|)~AZff$=*z(E(Np5yeAuA zHPp65KhkpNGuV8LG)HPZpf9PV%(k=wQT4i79#`;u-qXGsj$OxzMBnMT>+60Uw8)&C zWvn1W({@Vk+S(`_$^jWa>*ju!etx*Msn5PgCwAdhKK!_%1`3%s}`|h3>LQ6@_4qfR$J(S?i`1WF_CP^(JHfK z^GD_UOA%8}7$+&?j66d(y>2gb?zR$ALh;ws8HsNFOr?u&Sf8_pvtI^ z6c5LrVmpkK1n%!IaEDJ)NROaV>&{d%eavskh?}gnn92E?bVJ3Ma*a}OmsHT1O~>0}L=IeVnB{TKHhc7td z|F+PkAkj%@J}&nBy%mM{j(+0Oy{Pcqml26`yexy$0!e^Wr@CGiKAq5hJ~=2zt97jY z1;%NvbY=znbnXYW(q*f#mPA&P^tPOOO{Zhz9)g%@UI;D555fRkbKe_Hy7td zG!zpwYyJwnvK-IY^}lrUSOh;KM}{?f*o)xQ6M%~+Y)v2F3Uh0vEgSV&7*j>O;(sK4 zDhUny7+IWgll?K**ub>8{5!tSAMhWV;e?s&`Guf(BJFdnW4P>?^5*&D{n_1gZ_lrC zR#?c9t^5|^ukK&FYaWI8R|0ROY5DlGwD+;DJ%7oZ2T{94V|E1B*VR!_Iz)$jB+{9Y z56z4nwYc0>o~yUPzCk9^!#O@mS}o5O{B<061swvub5u5)K8iCw)Hw+O!tQ@&h4tWlZcp|Qm)ktZ|9KYmw?ih)Hh3(p z{AsKT@Q(L?&lYD#nvoyiMs?2Kc`pXVEhW%y1HRk{H>(c78Xm+rQ}ET#i9LL`FynE3 zuR+^+*9S8dhV~$eb$lOa)L{K;OFVh*NHL_Z~C!@5*`M+*0U#Mi!m>`YDu!dpQY7Wsdr(?;Yq>!Oxt6v!7%c+3ABVn;TjpKg46rOR2DVzed)(M-At~ z?xJ0S9M^xuB(I7M3A!|I>2<}kmRe;Z94>HW{F^K9eO{_T-$fHt`JJM))YsRyh&nma z!tg}4^4H$n<%?-wI3^~mU{cfIfwjIN5El$z9&yWu2lgm3_3KikP+i|@dd4;-yAv%k z?W{why^ng+_)1hWyP;u_`D;nwD}3U3>JGE;;9jfk-wBb5$n#B~DiUsDa4`-zEL@Zs zx61s-BNnv%(td7y9EijI#Jxmm(Co%N=Ej6Sk51v4mey_uJW*I>Qrd_`xjS?dIpudH z*{u%IXHlAH{xvxL$83Vp-7>;fQS7i8AM=TXPFlS*+-za{G8 zgh)|q8qkJ6${97xh?0KeWcDF+n_lB`(`9hHJFLb61#k1=pW#DX&kvhb* zO#mM@2qqpTbR zLj6{lVZ;$ezM|s?x|$uer!J^`y}s9nJVu0qd9n$)iOsHiSbX&?3wKqW_@Vo7X5W<6 zGk-qab>7`NQQ@98g;?Tdk83$KaeY{fD6qj_bNfEzRW@MubaL3^#{>)dXR@!1Ca#*Yfk251WkY=4q{#gM-H&t)T#$~+q#w$fuvXwTxxAc zK(-|e8$6+J8;|IGT=5h7*EU;ad{@es^6R(p<*L^q<)1#x5OI1kjhi|T_htrMu&`!u z&By_#lK-R{rKdS%cP!@ByM>+Z@c(|kf5EWQ%aU@+j23_pvmJZAbl%#lSNwk{fF-7++AWA1nGeWM4gFx#)d-Q>}Ha=?|^cy*ixzAzyVAa)HFX&RWG5DofgGY2pnH`L;z{aiquP?Dd05O zU`WE&CF56s5ZHt5WXit{{8JI_3~|{-fkeo=w!Kp3giLd1(L+fNMyKP1oSZ&$)%Lp! z6>mY0&2uE6%!EDqXaC?dbmmZg;Ew%p622mu`)F&*f9be+#MbLp#e1=0_vP`hV!MLmc)!Zy=qFv#K=-VpI0s^G_`xU2U6eUA>2GU)7~{HIETqU7 zaP$U?boz;^H%e`k|INciuO58(EKeh7VW1RIRBbvY>zp7dj-(zPjmey!xB+1M7dgSA z%*4nDX@HXunysCV&WqLY>dLTk_a)lt((NvLXD#J|lJCm;%JOh70yu=gTj#D1aBPuc z*$?j{CB@eh_n&8*!$;{cmxM1J80Mp$#cSBu-7J3o*4zGr&T!3G>NXwk>ty7Twctxk zC?!df6dqRm8xq$yBvz7#KTw_R$a^1Up9dQMQdKX{(KFvIE_@Cp_QxD$N%P4;o%!e- zV|ZBipbE~N#r7LOvFC^fCY@tZM0*_zFNko_8>6%1h1J4y$Zu~lyN~-tz61#xBHYuC}N;-0}A5j8;HN415wylyQ1glwxK472Gw}LF=KRz+}!9*5&j*Ef!&6=!=vbt}ylY zN_hhAdlzeZdU_(wXzG67ys`yU(ZjK4@WEe`UHp7-!DWF2!bf@2s8`5+J#;lyjJn%WjqHhP@zAG;M8z^CG-S&ekj$2jkWZ+`O-DN= z1yo$}u9OfK4zJ7K2P)9!pvCn$Cd^nC$FuVcYyU1UWHS?cvKg1(7V$s|+w%w##Sjp() z<&lHVFY!vTNxURZB3Au_SqeSjYa%O)5pxju!lC#w{(QNaUviO7 zgqO>Qne&2#bBV#q^YgzT(Jsx)b?F;f)Vq`)iBA049;3OT|e8Sn2UZ%VeuthZqU620N3PVemXwc{`%G>{y@~kgP z%gWjsX@m@-qc)!YuRA5E9c?yUr}}(z52}Uv{jlpTsJUog9J4ylo}^PTZs+mAuF#}% zQ=n1Vtp#yU83Ms#!K)8*DspOsW{CM*heM}ah8R@K;F{po`4MOxK>6uCQ*ymM=X^LL zY;33!%*puFZL?B9lV&Cm-<6V^Y4z~?i<$;$k%4^ZQ13cN$d^d?YQv!dbimVR(DU8Z z_qJQ=He0{i2yRL>j#>}$=G*h=MGkIydc<8`H(_rbY_zT8;KmSv&>*;Qv9G9Uxx!}Y zCmejvf6M4c$W9l(Wq-o;^^NF%ZyUpK_lh5VW6KADwev945K&rvUc526OVz$w;29y6 zfm$=7mjdw=29KkmLeshj;b*iXlSo}nA5IN=q6Af`0v>q$5=pAAL@{_e+93*iga;Sg zwMYO~4KhU+7?>3iwz~iF<=%`M&+hrN30XMa1g`wZT?{3iUQq=O5Z|kWWShAAE(oFRd>fzG@T*^-*}qMtDemu@7Z~10!Du zk_rYAUsY|DgDO7j>dL{w9*@gF)uf!@JXDO+_i7`TV0`#(d%wp{wj?o_9D1~jrNBso zN&wH5_p8U<1dcjz;V-!gJRGM8DDWSEI~MtcV%VYvSefVA zyvGCcYj&Khw5C|bLuKHlYn3{EWR-Ep;o{7=V_iMzcYFJ9`(*jI0MvzMWs57vK#Z0$ zlnZ#Zc?SdY+c92VV08aRUiMa+`jFD!KINeJU?(Ho_DFZlMKV zvFfeV{S35Zn*&z=+ITr1kCr`c(Q?;g} z=6VjSIVWRe8QB-!e=2?W=)ueSrECoppEgfmJPXGb12XC?ejZE!my@6d3ZGnsvFyf! zFejp*_`(|V;e$s42?{7dH8Sfh4DjZ#zz{mnfem!Lx#m9u#Z{X#fVyg#KuZM>Hqw2c0T(1q&{Ee*!HshVYd4gIw4=4NYZL%~cj(195WpOY^`HgeDE`YrVf zZ1H^ThWaE9@ZMMZpa1B~$1BNi5Q$&9s5sbv&Xm^4qmpmwlve76pM@cHp>7FvsL=}S ze!o5?)9XW;C{d&_#yyQe@I{|g75-Hc4@*KGK8fNm8PGtBya_)+wBT>20W5)2Uq=cm z7d>9bom2Xi5`w!`$2qNvO_&l znoRr|f<^?s52OMVEObFZ#~$UunpIpYU?Dzvm4|t{?bX3X&dEngl3nIL7yr!;nl z?_@pSOZ6_TKf0`oP5O1RGo|0glp=3s8xgHLNug|YW zrv)zH23J+Q{bJ|4Uyg34;osBKhfaFg4O_Yo6k&Hp)xM-3QlzjZ0`&iNe$fq_ZBNh` zT>nwtEE-Sa^+k8-{3RQQauo$Uxb}{v8;O^y3w>Oja#^%33@RS~YSvq$_?-_BTiPh) z2t~!P)$uuP2WPZr$dd!l{gv^m9Gw}_EsG>^ZNIpZUyIi=JRU(Agb9pbkIyGcUQ{J` zM{$gOq;Em604xl64e{{0^Lh#Y%wgr}SUL)d0QjV=^*3LAj}JGF#>fwAkVg8j8H>@$ ze?uv1B~8%!3!AE%WIxM|rH=Np>8x1o>hkbUCAr_;BV4RgO8-0#=oF{Ft+7nKuLjW1 zv9r5dW@+BedCeTvT>t#87e}{Yw(-aIi<5HilL3|koPi7jeViI`&0^E%>vl0B*z|*c zq&0rqjupoBgR5Kdv!k(tZ5~I%wx;}-x*+4jP9KmTUCEID4h&S^k ziE+oV9(rtEK*zG`y*^6T6}~~K*Ba>je1dR1drX`ye&=mJU$sT@kR$9fY?~$GN4C@N zE^h-lDU|sI)bGjV_lUOWUxF@zKFm2;{cSlwzq*gNw-*zLFxcwcOzOD`Cr6VKwqW3{ zfC^{d@1N|F_=GCumi87>S;~wSmdTe;25sVd7S-EMXGM}bt;=7}63@sz59D`nV`)Om zqMEBDFQKUQs_N@uQcTJh_a`)9wcqMp)c*Y3;SEFtt|94tfDOmR>YBXwllaYsMp9sk zPkOZ1QvJ|&NE>##(HGHnV4x7i=8jr#;ycm2(&jh2%gWMret!NHvM%n$OkI=v+I)Y1 zpY@~0>&*D@Un9CvtDAI}>E`8BIqhJhxP0HGP^EP5U@UlHru2GtgLb!apbyKUrt2NrH8{rNkmG|a*|GYk5FQl*l*=D1Z6XJHZJ^1 zK2I!`I8z_a6e5%9_*;%f;`WVrCH@C7zB#^RJc)WXqqF_%A$0vp}vSh6)2AEX$ z@uGj9&T_%pg2fj24uEYLVr9xpf*l_0pErAXx&)J?Jn~x3)PM_7Ojdf? zKZ(op;RzH-&@9g6XIr!Q=xE_iTn{xm9PD z|JP`597CM=BX7|E{yoUUL(s2VU_7On*&?qi$EItIIk@Y?EXQ}2WIDrTqG)=Q(B#k) z)R*0kO0+X!h%i6Qe4w2v%03FMIH~FuA1XV<8;-Vh<&C(ry?+`j-TP-0(JP3XDEH#8 z!c-_N=t++DP64=7m_HU6biB;LVaDi}l{nmWOO7{n8^vh!0TkTn1X8GU?C>|SMc=Yd z502EQ=bP1Hg4w@{iRSh0_=iI-!)NMEKY(b8f+oD#Gu@>1TmSC|5zoZCoYeuLjfkl# zmnW^Ou`so|y|7rMugvG{&3w3#RQ5J9iix#l@ zRo8*S3O>nj=gq}*@W2AL08ldpnzOSQtpNHg3$bLyzj_lMS(|_e_q){z&4HsHEQ9F= zHOg#3uYzbo=EPOk>%;W9`M-ngp7F(uVK^s;&>0%aB&_QX%ai?L^$N8qNVnbwov!$m zC)_FbBpVb20lP4QJYb?K6k~T%NHN(uqPMLF0{Gl- z{r@KD7$`WzRC5-7meti|HFl^KZ1Xx(QA8d-10Th$qTr^o-%^>6UMwTFT6FdOTUtIP zxpK|S|DDDR<01KBW`WUMZUU@uOD)XM4sV7;B&qr9H(W*2&W1B3*Pw=S26QZoSA4HH z({{eBxyBP(d{~%**ADgKy$hr}J|04n;u?DU$SQ`kPv!uS4s;OKx#u;L-r;z$NVmgw z5ICYPhDIvt)N^C>bbD7Zkpp&6^g6xP`r1lCLd;=eDwk~2cfr1qZ*Sq!o>Odg(V1qj zgJWJh@g;p|ya8`CcnAH=di%bq?!c7j6w5C*R{eGN<`h~_FC_OmJ3r5DbR^DxzG&Mz z#-*M)LC29Y)Z%V_!nug)BU_SQ~CWdyx5IHdZV+lD43U} z)5dgi9IfN2pw+-MeCy(l@XN>u**iLph^&V*{bX zMmgk&E(-}OG3D^vBz{Ztx(Y2RrCmbam=O3DZHb{N(ppJMiJny*8}&P!4ev`UJF$c* z63ft|cqVJmM;=Ab_$?fL-8puG`);1!W||0G*iQA3unmt!hnbZWcAxbW#Xq69qQrBZ zd*-p3i)Yflkrxs7Plzikc=W>*VEyrDgVeD7rA8wjk`0{p{&eDr~QI5&dr;x$w= zuet5f<{$`lrB*;)_Rk5u#b^=3YuaH4BtIJBg=%k?_cxCSGd?KeeltK(qZ$C~UP}+4dZyjP59i~$^)8ehc1fJHMBFuX2A4a=C z1x7)Gf#K&IVPZG-I!6Y^&yWQNhuf+3fZX4ZO~fZkCFBIyARYN$&u3Vvi^R8Edqv6j z2owa#q1o#thmp$z;+F;9mD8|c6nT-76>M=HD;0Z*{+SWl6-Z&V7BFmgPtS^{!pZth zoqinrPbmYOmx;h$X6LMWpgZ9@gJeBEERIz;H~F`fq>#!jB;-S?=TKs+V1JPl&)xH> zLRDcLd|zuh`#l$xx#uU!&e4Ajov7qZGZ>5hlVhuj@~sWnCNsG%K!HNOO2l^u8L16*A< zePR{LwauU2-w>9b47)8^ zhXo`Bvu57W<#tHdd?WbRLCqv&L05F_7Cz)+gRWWVed)Kp4SfF&T5sDl>WL4VBi{Ab zOexc0!>o;&b|fODGQ`@nb6@U|V66Kl@P%3{iE;u^O4VheIavGS(-XCBBDn=oY>vxQ zJtY-2C1oX$O_w^x^GARn)6-^I6m{P%RS?K|IvKTcv$lmdsE-nxpgvpk$?swtm8DoE z9}~w)XbnR}Lqm2j(f`!_TCeeI0Hz`0_Pc~0Tn_3h?WP`yK~CVzjxCPurgz8Mv#d_y(efwIw2 z4t6@x1o4PviDj?}#-ym9(1X2tD3sq8j?})Xw-io^p8=ayGi2 z<1{MqAwXA1LZ4h8!4-o9Ntnu}{^+Mn247NJ(=U&04fqX5RlF)p^nY5oLaC-vc}=eZ zh$z0cvcQrc!F9rr$5%A{z=L&K0CkHD9#)2Epj?jo8Hw@I`|5M*ycxxbQ04QA?!zE}p4>uAaA3&ms@JpNtf&?Ud!UDk= z&!ISf1PI65RJ)=xG(X_7_l602o)6RQZa3W;5&< zR6Ht#HPjVrUR{OuzKWn6_?T!%>XbzEX6BKng8UNjUr z????Ueo1QsDF?c;{=qMVJlda@Tw4L+P;eWAwA6cM-o$Vv^;l$E0kc z)cPH1+R9onyfQPQqHAj9)_%?xBC!SoX)|H#ou^pRFRkB|Awncpa#H0g?=i_Nw5`s- z9ZYT-Qy;0ij?brQ*pd>w7+CnK30HRzYqBhM*K}nnMvMJ5Y*NZ!hX__{@i8fX4$sG@ zFen!owR>sg<0-U7M)N?IjFhWu)YGZm4=yi!6Ep1VU2Y;W%bLjRBT9A=UM}SshCx8< zb`JAhgBBY&s3^`0Vp=zE{Jd$7V3*ceGLU`-@p&})kR3yN2a3EnBS&wN56+b(8BkZe z&0Fm)&o>#PKJH$kdPG(@wbnEi4g1NY<+)_)m&gbc2pCM-;Mo)ZSgM7cAm%XL=|lME z7tTUzX49{sWY~PoMs-r4sAfc%IUo!%U7Ao&n&`R5F}QVz?BQ4IR-4dRMf{yJdH^kHtBhcqLzC_;UWLSV#)^zK}-pB z_@YwliBiYs4;1z?@m%aTm4nC%pWH%{DtiRRlvmH_=>q$hJRm)I@mEW~6w?!9d#rk* z@8dlklr!y!tRv}B7wRYa0|^5OT%S8eECQ-+S6H%L?91>sPB4bybh>@l;i~l(oisRp zLbVpuOPt^MLp;P^gHGIVg8xZ;=UL|cMZOifM?LxUpH*L1<%4u0JkkN-**1o_Vkf@` zb)^y#GErB&##jFMPngODM8YCPSRtDuyQZ^FDA5*X7c#-j8Bg0&N?uq)RuFL%tl=U6r3wRo8irK4jbLy7ucWIEXsi3#xVyW%4R?2U zcX!vK!`}zKs@kaLG@aIhI7)2UAkjQkMZ5ksIBsc%H#ePpI*9xtcVf0AKalY&Zm*mMVk5 zU1D=gihWNiU?b!bh-?zZWYCBPG%NZ=oaXwUiV!i-@igE@_!4x$NzagiF|ggtPV}V{ zm*kge4N%>7m5xC)7*+=bDg2aosWQ=}RN@x#4XE-0FEFa!Y2%bkxkXCMYaV?(!PH)) zfVqOO6T=LfS!F$QH-rCkMyAW{Ui^wGabUx#)Av_Po3H!N7np15ak+;k!-G$x)_qzW z!vWD4Azt(ZcOW@X56`Xb*@J!SU3Sg-WR!zfgztbwp(~peFzU6%r0-l|?%3rz>N9tRb!^yRId>{@em~y&0m8As!SFgDnG)OJm!`?V3y=ik2(5 zToPUTBn+5?q2$gpW>iPG8~EZ!XwEiST*ZtFr!+C5o%r);szXpi{g@_>#VOmmO;RGb zOshcyGR%f-a|PD`Ni#d1pXK&ptA~vUEB_$e`d%+r?;U!5Beih+cnGj~ z+hO`7Qiu&^cVRoj#0U~@P`5%fXCuSOH{)~p^Pedl%^v#Pbyt7_ICqj>yA)T^O~sGF z;(kdw=#(O@iM(0g#vEy)JS?WZi;C(Its7Q^ueNjoiaiFT?1aV(KOG6+CA+E&hCdXc zVt*(6b9i?{r6GI?G_kd~uJk|!q5LROUcu)32@iP7{ID$dMLf@{Cc#}BX{0Q+cQVv@ zWcAdMZJTf4gJYN>^HJ;Kdi#khm=iFVXI%lNHH-{<^x;rOIQo>gY1~7Cj#~4@-Vbk50a@%9}Pum*Ci{ zFx>9kyfNZIUUDxAC|Bk#5XJ`aFc4nB@qFp2HAFQAtzTV+u{LC={p9^Sg)y4d7 zM=jimf{+@*xAq|chBOlH?H6vuL1XT+i%f-cBq9fF(F^NhWNSPkDFr!m!&^N5iGTSf zf@128C;HaPtpo!T^;ds8SAi#~X=-X>;o^|oZN#BunI?}(&HAef+POjG9!0 zAGN_a>Tab*Dp4r=^0{3fa(Bo%*2<^k{qirv73btfmj^MNLcE2P24n1s$zvFZh*Bap&cp9T zi-lLqezy_YlwR7%px+6fKIq~1OF3$>psk8!A7%I;wVe5!-^H$8q!ZpV@y+k^pq^Dx zqOOBJW?Dj>7mHk8;}o-27#u@swtAHzqu$i3_)BT?-34Hv=xS1|`=4}=t}#WCQmy1f z3{_*7lgytjhEPY?ELjh^)ZEA8kAh2@=}gAUHG@9+h*St)oYwVKx!XX1cVueIpsD+p`pp&xODKU3p7M3-@#CJ*iY6Y(E2UaVPV`{=t~F(8SLb>0pCoD=m7 z->GTg?TYdv3y$d6(Uk>1em2aQZV!_#gJEj>Jr76kQ*Yr{HPew|QZc0oilyjDH6CLw zqMBYRT^*8q>tUKdp3e5i9~Y&~5i%wpX3oa^%8bBq@M`S&!xw!u`GCB5VKsU2YJ*J; z0mWVwYc4ne*~vPBe9(g(+Z&FQ=RgScO}giXsVu@3kL(Gm22L{*UjeV{R(K|eGWBZ~ zMN2>-1$d$4KrWE-=pVH)2G@iD>eAA1RJWDFZSDIHN0LKQVCb|?n(b=R=U4J?s<#M@ zfr)aRkr~y<{;T(=i_~|#RjNhtkG!6GM?xzZdpyIl9U#mO&$z8}3=6>YowsP5%r7iC ztnh{1>O?!C?%2!nMOr%-3Te=D-?OCm3M&zvzG-b8yN?A#}rpLY)`D^dEP=U%fsN#wrH4lT6Rii+ zcN|=$T*N#gw@-3EJ1AV8fTP=tVsFkoYfc0DpVsLL^hK3+s&xnqHKC4LwW9uLE`EDZYIVDbAo;H=)S@OzBhmoh#GU%OcxJz3#ofZliw{gKcG@zcuO{NT~)l#IU|aKH}<;+bv%U@ zZm@K`I!<`dNi$<4Cu7E5wE~Qtcwxh>3Y9 zlv))I#v~pTm6J3q;>>*b%?FyWH@+tWah`JL;sWPDVibN9h97F5FSaJUJ5t`G9kiXb z`gthC)OugaF*(2Dnb)z_-wWkUL(gntR;svN4bG_|REqI{#iPBXKPC1?zuQ>Cpz)2n zoKvi{wx4gDwid+kG?;&*Ae9Pyzs$nBC$VIZ${vp$?Z`%dx={#irGOiI(OAsvs6-7k zoNbn=p@F6N;6B_>wB-T(SrFZwM{8F(S+>HA>z)YwcfWrdSA_}~iHzVt|l zevTVH2yj>SQ~d_!XSgv$QRE8^XhQoBMvOX)e%?r&;vH6cHP#XmH|0Xf=HS1c9AoRaP9y_Xt*$}03SB+Kk|?QT zddxjQ;^HMWwiyVFJ=DsI)*!zd>rsl)T>Pijj%8Su_}enpv<#A;0&O=)wj43!jae`5 z0h^)g5Stu7lC~!L_?csuC}&=IdiR2~A$(PpIp1i!vFu;~q%SdT`rMgSyyuReJW9(8urty@g!W`Ra0D2)kJI`6K z@TK^^m}v_8`(qZ>^jsM0d)=eomP>uGeePk`UVTKZ-`y@ZipKZ<-4sbW?T?>{L08{p z_EV2EDQXdF6G=wpFDUnuR#L@mWdat&z%V^#u8%d6?hLUdKp2xL2iR=&1dHRo7fwaH@@8-Hb z7+Ywu0vUW#h5esRlt4)aXAtT)dw0pmt1iJwbPIl#^+(~ z{)ywERLpbBY5yG)pENM=33i=(%7&XHcQ-GZW)jZ|018GuUrv0^e@O;GBTSr2r3 zdM3Z;*V1wDGxl>JqsCUh7{uOV{0)dHFF{p@xubC(3}<-xn} zUPcd*thFnDPU>=Z*s;gpvN?h$K1im1w+LawaPVflTH0Ki3zRG;Cmx+wc9@8%*E4x7|LhBO~-(YWMq|K4j-Ji>jw~wv=Ppyux7` z+^{$AIQdbj6wHN16j7m`$=#3}spp90p)!0+kC!mJpn+wfY$PhTJFqnz zbE<@jodUlHXE|hK^qMP-eSg!`v+`eV8`#a{Nx|Dr0+<;3oAVr6aNUdlen~w0V`t#a zTm|ouTh7JKv=W*Ez4UYD@|eCD9qjCbh))PO5P7l`0G z!L47#nBw-2h+!h%A04C4iZGi>HoG<2BKiGIS7|*m=t>ahDJmId*ln@j?VIE*OT=^;Ho7~+|XLKc-9 z)yFp+`Z+DUl%vs3NkyZ53-9KPLSy%I(5#a^x^Ys7AHZ!sbQjm0z{4Tijz^nM^xhB* z`3Oa0BRAVZ^mmAVNQ{^H`LP}S{V7&sa}9fg&1P<-O}G-p6Fvib%)94=P8 z`de#|w*n&~xJ2JZOPC7jH^gqHJF`h9PQ+u8$8AjWe-gWaeTgL(;!Mg#!nLpXRcKgp zi&5EMt%mf6hC3l+0mi+!$&-g%Ehk4k~_!wABHl{y(@wTy}9gwk>ooe%OCY}Ca> zge#IW2qCJUXtB6PTbB)|cTw(dNkm*HGQe?IWX`zlsAUb$DcgI$z9QDA% z1yvrjAaPUNtN=O^{oFiCd9p-3MtN%8HZj(TM{d}OFa=v`fV7pWPNC{47S39e#Yf2K zM~;|ZVljEz@LH?_QRuVk67+mj;Jz0IqHWk3MBYAW6O3?GG7mn+=?2Yk-D9el?coRQ ztW9Sf(zX6SAVtAIBJngnL6(j)5H6^^ASkrQpi}hysP$OvyUjX9o13ge8~VUm94Z;! zY_CFdG15RlILA?~$f>t9Gwbr(z{8xBPE?|-M_Nb&vnZ>GVdu-%=w*XXhV@BKyJ-U~UQXwDk>magaPusXVQ zjz2gcm=Omot7T|Dx?~lXqNE~{g;U+Yb|I2EFoAq39V_*_+}yo3{~@gaMmkpo>OKP| zfr41QVn4Enh840b#=cf4IK2h)emTLlUCSG6a)N?7(owLMa*nCjg7oi}&V)k(HG>Jz+98sc5qn5d^xoFw8c_eU8l9tN3Z!W;^uJE=vUgkO@*&RGm; zeK;@e2L2`pndL2E`d0AA^{KHoXIv^1+D-hULD$=Frr@aTlyggAzlZiU|AFhKs@8zj zb7e5* za0wO!6dAZK#^z;}d0Cm+3!br8v^w4zG()(K`k6J}hB0K$!LtZVU;aKP*Vp%?-nw?K z9G9&WYUe5P**xuV0lzU0^$Lg)Q0>GYj9?VtInRpniwgzZL(FCheT_jOT`jLrO55|w??f~#m<{gsf^Fxr>r z3()KJc{$Q_Xq)5jio31iw5d$2fjv- zVOdGrSNP_*&(akxVve4mU(YOsP$xb@8{i`0sNfqu4hNjsAL%Ern?1I1GW1FO>@9B~U9;~-C^kHTGl@mvS}?e;Wn8_RLxcjFUO z9e0=^CC0#)X%4^i(B_|ez0fuyjeD7;XfZh~i#~dX?z+G~{yq7c#p*$}`pfv&_8iE? z9RpugqiCc^phxezU;1w&@)w|VoyU5I3&=QRhc)&J`bG|`OLn&OQGvP%^=)wUas*7l zMf98&hr$LGGOG#j$#^FP5Up@8k)0~+ynn!SocoTOg_>my0=E&aiT-U*2=E!w$lN0c ze;d*|J039t^FC>G$Vm8CiNKMvNW6l4=u`NUrz7UpQFuhTzvnCmE*?5syU9!T>Niwe zWykX>&Y2P}gw&{^`jZ$$TW*N|l(;$%O_t_M_JHGwq$A%33skcfvIc;Xe;ey*aod=! zYO``1pi6A-#fd|HBuw}j4%Zc!3*E3h8`A?}dvIE% z_9-c#ftyf7P;?Nn6E7znSh^R+`46%$#H|0d~lQB%@u)P2L_ zm)8EA5?Oju5=!UDGqX$BhS{SGb6T$KSN6yVONAoyIQ$k!iXrd%o8>$O4%eAypMF*s zz?1Qgn+v}S0}~xaqwYEmZucW)!olYNLtD-VhIY%m%o+MO;^ehVtw9c)&6AOrIeJ#M zp1NUS;&mvdNgAw&W)m(D?&JCWO*zmiMFzpz@oANP8nJS-+xcnoyA=b@qTX5=pE2{6 z*QzEO2YJRq7x_(WL%l`YE>ZVtZ&CA0!ILTd#M;O_nfhgVp09K#WMujv&ly~>(PLof z_6-#QY`>lR=jy)K4c`qhI+<83x@gmp zI{0uJmW={uo$e=I)qmJ+D5+dZ5HxLVe`q3Z?%axD8lva%-YXXFvo9r1#}B_WSTbaA zL-(wQm0KNlbNtV{-GaB9S*Q%Q6Gw6NXy8jo6!sD$Vz`&Z_h8D!bR10a2_VI(8GeH= zH>ZMVW|9O->&z~QPS8C`cyfm3U zp+;4I)BpC^>-}kns#E#Y#N5*vrWaU9xIVQD^)v*fZo33?g53lu+<-`22n|D*2iSHN zXEMq+2K?GQc^W$Gp{FOpIbE7HzV&OG+h3SP4?-CRM-;f>UNvw;iKPpBc|l?+gbn?n z&PfqAP$GXOiQNOE(Y+v1V2L3*nIL=e%kjJvBa=gJlz!o_hDFDO_X#E@yxr*8mai6! zXqp~dwtsS4p#%%z$LMxDl>e_}Qoa+tm^S3n4gXgKW}uJ1Q4K*ciQPiSMD%IM#d(W) zdlGt>w#mbWvip4H=di>Aq%fSQdQ@*z!Ni-`4J<_#;j9GUE0QP_Z7D868JD2n1hP5K zbAK-d*oc>-Zpg5}{IyizXwnaraDu6hGKr)=xGj9o-7iMELq-{nu$71MzWU&6$LyB;{iXks+NVx4GrhWF~YM&jj3i> zLLMO`u_K;+xUhDP4H?R?H^SILo*3lebV8NYk-=Qaf;Xi2hj@@sX5neGbajv!2GEnx z@e*rQj-KB!cdfv|B2sO$P`*4s0Ejlp8C(INJn>B_zZD5*jY9ObT*D(LllNedQoY2I zx5MAUCy$Dl6wi$uj%#`hTcPb1Q`u^ZSf#Xk$UE>1K+7_gv3JWTe9LS>?s(TXY}qFz zS*}Zwde;9vA{BwDm%aD!XG2UReKRI%p-=?=rFqSHQ<8qE=hlfvyw%?ANH!zf+d#)w z-<4gJPkdi1b>YVypgXqwR_q433A?T3j$ro`3n`2R2MlNUKRDqM7*T>4n;5>kn^URC zU#VaY)vMP|?RX{?PCr{c?S3!fUnL?uQ2R%`>~%8lRlC`uQ^&wvN&1bx4fLvKJ!Uzv zc{&lG3fkmkE42OAc2eY3o!XJf=}y6Fnj)g_?X-h5! zYi3T_gr(B=DgC28V6WXr`=LNOZh)-(@%nxdpYJ{zJ%a5e<>IVMZBPg=yIbtPs_0`xqISy_H-z?K6g_cf>`?{)$N2e_X zI6QqTHk-acMe3sSWhEx-y?NUN`J3SSm3~9N_Dn&!tcb6VJ^dj4SDEE8D_@@v7udfJ zHNN?AB}xhrhIAwEg}Y0S3gZX){CyC+!=%;86ha!SoiY{oUu72gpXQ}RXC(Ogr6?KM z3+_H&i?wd%)=Vlc?Z6Y;&(ZL=ZADK;34Ip@13s{F81zmLew1s9uPzc#w=%R*Kg6rXB@L;{D1PT`!tGJTP z`gV`jLsdZ7<(pEKHgELWOy@ z$3FE<%&{rw1w%al6dga5mE*W7gc~%J-C%{a8Q{ymI=Wiw;NG@&%}d`GWERbdtDFKV zJQX6zhb%i%sLAlI>i-HWro(9Q4*HeQORU|@gZ#Wle~qL-V)_{xLG2>qm#Mr2AOIJG zZJoEquAFwL-ZoS@zcSe&Gk{Pq5}@J;Hbn#^&pyX3*S=kAal0M~E_;=PnuKV3)2ng_ zWf58lwKbF6o|W=`Wb#;W<5qd6;TXYB%kTenL}U16N1>E)955z>z;ju!|7!sr<3{l) z`c@TWJ)t?$YMNd69L!@tBz3w(Vwik=dnciGMcSz8$!@tU0l+??{X_1&hf3 z)lSQ!O;}QAolMEADCPM)wHvv{WP&|_NidX)S+&$kuKh)u2k+CAK~D85P5yQHHR!>X z{wBa-9es4(AfM<|9*%-N7iQdv2^5S2M7xtW7sgM)Y~)zZv(f^b|0`DRr4R0Hu9%m> zhNHvau~x)!-JSgf`P7{<4Wn&hh=aza+uCbpR@wM*8I8JlojC$PmRoKRbX$k_1#?GE zd>GRq$>32)O5YtERv3jNXOA?t%PwL!ax4@A5b8;Yreb`xG@5x4uB=HnJImT2zqfh4 zsSC1tx!X#oeF-MucG@|QB6O@>58Mx=VK>b{XdGAbBSK6(LVCzd*QRntxK;t@I0t$( zH-5bEP5V@X&|zav1R?x+o9&?eKQ`Jv?a}|$kE&6lG(k6;j|PfhwI-Up+I!B~F3+sD zC3)VXFWe4GGO-BG8rL5II1{MQcDCDp_}vOUk>>m1-b+volgghm zMeq4Ov#r0C=9;{QXpBx7)I!+3C5DP57vi*fKKWYVl7HCazv zb9UCq5c4>qSu+;Lvdt2Npa&l?>AJ5BUr!+zFhe>*xi>zHMVma6hnNZ+u{xc6C3WVJdN6D>qJYU}sH?0ZrE_Os$N(GOM+6y0d}e7frAXA-|AjzzGR zwFCLgftdK9_63OK7$K-h=%@ksWCG`6Z?P~RoJtsEYWujgnk8-9a?+4hSqu+?SXpKL7V z1pK4@rtO^m;2wJH><#9T8h17S$$c5HIO-s6b6Y|%LueSD9;^#lcU^r{3Kd5sK>Cn| zI{Ztt1ub9x*g+1SeMWMEzpo{}uX1C8JRJBhf4O;)<1!14;#V-2D2Ru|FM|>IdM9t# z8A4hg6?5T*!BH9A?0zQG^yWxP8ZA%FG9=0CbYjXz(lm0h^U5Q%3gzmj4LFOx1H5(V z>l--K7jQG=(jxW{ui3uDUlId zbnpU&unpp2Ww+I`2!von7sw1(-{&zBuJ ztt~HI__W!p@Y>XyO5N)<*y0_2%FW|=!4`!))!O}B`j)xUC!}LGFqCr5vfee~hIBks zApf2xS!-CVAj9a}z?t+4M%j>vfN_ z`myHL3fK&r2ra!E+ES0b|^6;y;xcx(rBGlI{K1h}o*M00T8MhPhxm!0{G)18k<%)Izfz0+#_A~Tp zT}gyi%Bgi)uaSxR>S=!ORK0-gsQ(}iCgCN>d>3NR?k?R!?Q&g0hrtBM0LKfMdwAd8 zr=@XRB>~tAX-7$|*g9smuuqyWCrPLuNBj#AqA-^V<}+1;j}Tb)L0^y+Y=NJ4*Sisw zH4PAGIn((J2gGrU7<=gq2hcopvK5(lxIE^(mbf$wrEr=|jvazw@u?_Ly)}%Cy zb{t9xCHF%nOzj{VQH&tUT%qyNj8_#3@TXRoSJ-mW51&kzJxJCvD*`(wnS z9HW(10DeKehQW4rp7@lYPD{Sz8!aOC^%`!vb1u3x2w;Ose{%)Upd@UIJg%L=T4+pB zSD}^$JzW7_n~ewsDi$3L{hJtoeo7u_rBTp&@I$>>*}mMtx1Ugm1O@E3zUuNV7Q5I{ zR#`GpRWZ30sW`wtFDTG5peGZ?W&1mYAJQs>b=oDZ$LD_7Q5FIa)-8&{L|oIJPjNsT&>0@xQlR`9Z9s=K!FbL;gg$nT^mBOGBamqGA@}NVc0INz zz3pQdb=5FbNyb9>*KZPWV)*(PpA=sjN5vr4vlJVS;B>TFbJ>yNe~VRD?w)uTirpu2 zr7cfndbE1rt??Wj|LQ+5acm1WzSrb3Ob}78d#=^qv#1^673#Pj`q1&`Ps1pJ_xS2F z9NMrr5He2ljEUbX#ZMl$kP>NvUXB0u)x1v<>o(mX(vhBEBIaC83hLNmBCCr?X7$RvcyrVVZNb1k8Yk~-&UXQ1Gd>{ePron1^{L9hC01}aUU|41tD5( z>BJ!txL=rZmG!3_hZ4?s(e$WOu+KUIquK4lyEN#%FI$SrJ_fm2m$DlG!V_;N?(8Z# zl%k}ayHB}ojr8!FxW{lF);^dNhQ)Y zqmM7%)b?DeY7s;P{u<^$DIx~Yu)bKy^aY6r+Fewak>(pPu$(6$E2k$b=jOrA5}IbT z`djf)?uHt%N+Mf%6S`p`bR{NyH*^n(`y$JIYx#zD6o4iaJKQCF0s};a1KC8uWYL>h z!f6_PPw+Z5W|4i3+#-$Dqrh}UEoe02w`;};7t~mXSDAxc8r`PLMMVTaubH1?ZI$5M zdOtXLV?=QT2+DJcu)`ZLiB`Dq$XcLl@K^oPWZ1E1jSt{=FKOSl8S;~&5>5$*M*nFi z!7hvQC{f@Q+O`kzNm3$i$s&1@8@E<6=Del<=2XwFtEN`Q1@)&{f-=o!jG3RW9(^{P zcTKZtMUUV_I0zE)mh#WcxvbPesfKL_7?DZ|k8!D>rC|IL!{s?N1n0f!zX>F5P+AL# zF9z4H`Fb>Er0$4#)ouOt4BYuZa{9R8TSqW6)%y4XlGQr|`RHswlP>Uz4(YHF?gYYN z5b}eWW>nj|r78=B9r3S$)0XI}$WAHj>Z4C?Bf59U2C*SK>;Fio`r}`b~((*%c7Y^~(pXlV(zdmAg9rG20P#C-H!5e+R zlsICoJZNv6OnI81<<8Pm&gCgWJg)sN*e|W*JJglyV1b&oyUBF~&1>tBHvnFHb{~>a ze*SWvg@{xP;u~rWf|!$bTHCT=tz(i+$^)LgaC0=rk&{h)mAd`+SKFh0S5s`aB%f&u z-+enFD@dAAL6V|<5!G>fmQf~P#8*qazqUtp$tQ8I0&AFG#Mw(no!0hM&Z$ljYLNAmEVZ5tUo^erY}t2?Bo-D^po0G`;O5U z%K8Ey@55vu<;BzbW$iD?Q=kWvg#buKJn3LAiPF_cD~aqw^Eumd6`UxKY6h&?gWE>bcuV^S3CDQ-F6d zDkL`&Q_$<4lSm}L>OTx?lji@NbB3`K4VzQCEgf!`=_cie9uq2Q;d+fCLd z0?@S%FkI;6^TSW35C5_?-lOl0^&Bi%AHNN@X=Pz``EL`A%jeFq4tcuXUhlXy^HUN^ zbSNzh?MpbK&8n$>xQL9!-qN^$_^xzYw&(`OF=H5D057UJpcqdyLu_mdV_FT%`KvU* zYRXb_cP+n@Ssw?xS_~#(Q3L0ZH3{s$RVLqe=y5F3kVnB$)9OLk9>)PekRwlz; zKA2qLc$PxKI1JXf+adJU6FeG1f1>h%%MKSOtS$g@$iD3~5a?M{iEiEvkg75FfyjMe@ zduaiyO)Gz zshNjt^ss2ai@Aw`sPTc%4#&J9BJcOyAJYTs`kgOiF2l&taPpC|8vJkuU`11&)s^*i*xy=brp#g+Zf9A0?U+fQEt+=DDJU{IE-7Ol0l}d$E#Ke9Rl7 ziL}MnKIem{&skPl`NLUdf~T~m7^|!~Of>GCV77TL@8AQUPjz%oL|5zp+V754K4a!0 zai)aWPh=O=NUs+*^VviQxA`94%ilcn0{S3%Ko$dTa&h= zR!AZmQyR2jJ{;VTc`PR-(m}39w89#@=Ax~%Y-taaWSpeK1zz3YkZ_S;JuTSd2-Kr|GBH%;3p9~zY-G{05p4q zp^E*WcOlljM18``!dF%~!f{C|<-NJ9R&+@veK3vwLt) zeIDwNVNqEHs+%L-L=Yd$t2??Z2nj`s)X=Qb=u5Jqi74F{{VxK=o~T};=!=fRD7 zaq;i9LMlQ97h3W!DUuAX(bH(^8mT};^-slAA@O$hIy%-cYxR^bN5Cuj`B-;8MD;H^ zWHV5_JnOEgRS(I5eNR7xTDX*;?bBIDJupN#M+qvo%p67v68wivBIsf#FlR=-3pDyb zb;yZ&z|wr(sqdIwpp*2wg}lE_E7-zvapwhn@WbnvAN43Ba_KUWVtPl)WS&_0}kL3$u8M0K;Q85-=^#aQ~A+t|au0HXe4#>RV?(PmWg zN%hsERD>7~rM<#75G%>Obu09FtL=Bf`D*@aO_F$f??yHLYh{)w0#pKK$Ui2RGXY44 z?gJ;+2^9Kqtyq@z5&Vu?*@w#W+q;N_e>jB?S|6;xxy~|Iq{7%n|RTjFwum2QODhzn35~@qs7A4qcK7@$`L3`YrV# zj=zd}cSKDKt?L8#fFQF)xTuNz06=qOq|b%6k5@zrHeS#zWiX~Ci)=4S1O;ms#n}19 z07ddHZKe<9sOE`)D@un%q6vUtO~=!$#J{zRh>xCx595H~MBvc?m``11p^+T*0n6G& zGZui6;GPfDmGXU( zo(V6)`Ln;B+1osq}_T z-jPlrTZ%TDitxqe$BAz21m%jOnCsS0uvyxod#@abVU$+-_v*>c&d+ExxMEB+TEU@? zHOoP5mmH40eLahREVjYqt3E}tA9V#HcmxT`5H>{bI|yH(#P%h|twVVHH~V6{oH*eP zS=Esv6gu@TbDfySuRq02nM|DHk0v`eR%NuacjzONA=G-SimTY$Eg4aR19ai9GnxC2>#WRd@>hf_TsFnU>jBdF9)XKD^xRLpVkj_mShcqhF7Lh4$@1imX=Z7 zIBJk>e+&PW>Z$E>hfvJc?PBJdX;Km4tAigX0?{L|tQw|EOp$oEc4d=7)|xtrm17km zcA{553Xy*;BP1XLrba6**Cc4{)_J(_7#VBHyHU~qvY()^Df9PU`KsGs6hWgw)L5oa zsNl!$bz|!cE5{sX?BSPntlOz=oMv-Hd_?t<@;H6QD^@k~U~E&hTUkyesLbin0d%ZG z2}E~NT-_^(KhIn{ShI8ehL?&2+fK2$rrv44%=}Ta%SAZ_D8xshf%jX7G?AFV{$vLV*gK}Tq%@k7dA9K#6A=DS{pkYcS&qZysKXvIb1ClxC? zl5V}Zf~XGO#AM$}eH1-*e7abVCw!ygXzhm`6WKZ|vmC+lGojtD_^cQf{@u(xnSH#_ z_J}`u7L2tjg{hIkY)6xpAi1aRA>941Z~*3jAn%~(i#ea5esF*5jo>JNn9Eyb`z{^) z8+iSpokj^YZRTuqNea6)QT)CYUzMlsEn>g*FIA;=D_yTrahlE=^mytKop{cvY-Ywm;9)q~cld83lXTBOI8>?6^`Mp3&{*#FWWb zSfz)<#Wq3EmL5LYsrqkE0Ju`ieHpF6^X)m07J7d zP~`bP{a?3J9d>KqexsE#6>LnM7}X42QzlQ)4*E=mZJbGfw?d)_Kcy}EU2^PDx2*Gs zrLy=JM0HsmGH?vYN`eE)@gv>lQb9Ioq5Y`OGe)+|_S=RZ!gLmAg{!E5VaQ-o>xQnG zlB4#38#m|pfNXXir9gBqDz7Nso9{6XcA`R#KJ$H6BsR_JgcL;2xDjd-zY#&i=&h+S z6Pi!PaXXhy1z+@0&Z`Cy8Ph@@;HGV8?p#%f#I|?Itx2hG-Z1@wGwc){7F3q_+Li&~ zq4NL^D2zv!`TWE=7A#ek=`gYNQ)X8XiaJ7EHqL_CR@lCB&LbaU#*~l^)&GBi>t6en zUOv&*m>&EVlhnV@auKb}ANVGYoUoHra6k_X4sfVK87t`|e?qUnvFB|p literal 0 HcmV?d00001 diff --git a/src/logo.svg b/src/Navbar/logo.svg similarity index 100% rename from src/logo.svg rename to src/Navbar/logo.svg diff --git a/src/Navbar/main.css b/src/Navbar/main.css new file mode 100644 index 0000000..5298622 --- /dev/null +++ b/src/Navbar/main.css @@ -0,0 +1,101 @@ +#navbar { + position: fixed; + bottom: 0; + height: 12vh; + background-color: rgb(54, 54, 69); + width: 100%; + border-radius: 20px 20px 0 0; + padding: 2.5vh; + box-sizing: border-box; + color: #ffffff; +} + +#navbar nav { + background-color: rgb(54, 54, 69); + display: flex; + gap: 1.5vh; + height: 7vh; + position: relative; + z-index: 1000; +} + +#logo { + height: 7vh; + width: 7vh; + background-color: white; + border-radius: 100%; + padding: 1vh; + box-sizing: border-box; +} + +#spacing { + flex-grow: 1; +} + +.navButton { + background-color: rgb(255, 109, 109); + height: 7vh; + width: 7vh; + padding: 1.5vh; + border-radius: 100%; + border: none; + cursor: pointer; +} + +#search { + z-index: 1000; +} + +.navButton img { + height: 4vh; + width: 4vh; +} + +#searchInput { + position: fixed; + width: 7vh; + bottom: 2.5vh; + right: 2.5vh; + height: 7vh; + border: none; + border-radius: 100vh; + box-sizing: border-box; + z-index: 500; +} + +#filters { + position: fixed; + bottom: 0; + height: 0; + left: 0; + width: 100vw; + box-sizing: border-box; + padding: 2.5vh; + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + gap: 5vh; + padding-top: -12vh; + overflow: hidden; + z-index: 1; +} + +#filters label h2 { + margin: 1.5vh 0; + text-align: center; +} + +#filters select { + background-color: rgb(255, 109, 109); + border: none; + appearance: none; + padding: 1.5vh; + height: 7vh; + border-radius: 100vh; + width: 75vw; +} + +body { + padding-bottom: 12vh; +} \ No newline at end of file diff --git a/src/Navbar/search.svg b/src/Navbar/search.svg new file mode 100644 index 0000000..0e64311 --- /dev/null +++ b/src/Navbar/search.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/index.js b/src/index.js deleted file mode 100644 index f5185c1..0000000 --- a/src/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import './index.css'; -import App from './App'; -import * as serviceWorker from './serviceWorker'; - -ReactDOM.render( - - - , - document.getElementById('root') -); - -// If you want your app to work offline and load faster, you can change -// unregister() to register() below. Note this comes with some pitfalls. -// Learn more about service workers: https://bit.ly/CRA-PWA -serviceWorker.unregister(); diff --git a/src/index.jsx b/src/index.jsx new file mode 100644 index 0000000..4a1582e --- /dev/null +++ b/src/index.jsx @@ -0,0 +1,11 @@ +import React from "react"; +import ReactDOM from "react-dom"; +import "./index.css"; +import App from "./App"; + +ReactDOM.render( + + + , + document.getElementById("root") +); diff --git a/src/serviceWorker.js b/src/serviceWorker.js deleted file mode 100644 index b04b771..0000000 --- a/src/serviceWorker.js +++ /dev/null @@ -1,141 +0,0 @@ -// This optional code is used to register a service worker. -// register() is not called by default. - -// This lets the app load faster on subsequent visits in production, and gives -// it offline capabilities. However, it also means that developers (and users) -// will only see deployed updates on subsequent visits to a page, after all the -// existing tabs open on the page have been closed, since previously cached -// resources are updated in the background. - -// To learn more about the benefits of this model and instructions on how to -// opt-in, read https://bit.ly/CRA-PWA - -const isLocalhost = Boolean( - window.location.hostname === 'localhost' || - // [::1] is the IPv6 localhost address. - window.location.hostname === '[::1]' || - // 127.0.0.0/8 are considered localhost for IPv4. - window.location.hostname.match( - /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ - ) -); - -export function register(config) { - if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { - // The URL constructor is available in all browsers that support SW. - const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href); - if (publicUrl.origin !== window.location.origin) { - // Our service worker won't work if PUBLIC_URL is on a different origin - // from what our page is served on. This might happen if a CDN is used to - // serve assets; see https://github.com/facebook/create-react-app/issues/2374 - return; - } - - window.addEventListener('load', () => { - const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; - - if (isLocalhost) { - // This is running on localhost. Let's check if a service worker still exists or not. - checkValidServiceWorker(swUrl, config); - - // Add some additional logging to localhost, pointing developers to the - // service worker/PWA documentation. - navigator.serviceWorker.ready.then(() => { - console.log( - 'This web app is being served cache-first by a service ' + - 'worker. To learn more, visit https://bit.ly/CRA-PWA' - ); - }); - } else { - // Is not localhost. Just register service worker - registerValidSW(swUrl, config); - } - }); - } -} - -function registerValidSW(swUrl, config) { - navigator.serviceWorker - .register(swUrl) - .then(registration => { - registration.onupdatefound = () => { - const installingWorker = registration.installing; - if (installingWorker == null) { - return; - } - installingWorker.onstatechange = () => { - if (installingWorker.state === 'installed') { - if (navigator.serviceWorker.controller) { - // At this point, the updated precached content has been fetched, - // but the previous service worker will still serve the older - // content until all client tabs are closed. - console.log( - 'New content is available and will be used when all ' + - 'tabs for this page are closed. See https://bit.ly/CRA-PWA.' - ); - - // Execute callback - if (config && config.onUpdate) { - config.onUpdate(registration); - } - } else { - // At this point, everything has been precached. - // It's the perfect time to display a - // "Content is cached for offline use." message. - console.log('Content is cached for offline use.'); - - // Execute callback - if (config && config.onSuccess) { - config.onSuccess(registration); - } - } - } - }; - }; - }) - .catch(error => { - console.error('Error during service worker registration:', error); - }); -} - -function checkValidServiceWorker(swUrl, config) { - // Check if the service worker can be found. If it can't reload the page. - fetch(swUrl, { - headers: { 'Service-Worker': 'script' }, - }) - .then(response => { - // Ensure service worker exists, and that we really are getting a JS file. - const contentType = response.headers.get('content-type'); - if ( - response.status === 404 || - (contentType != null && contentType.indexOf('javascript') === -1) - ) { - // No service worker found. Probably a different app. Reload the page. - navigator.serviceWorker.ready.then(registration => { - registration.unregister().then(() => { - window.location.reload(); - }); - }); - } else { - // Service worker found. Proceed as normal. - registerValidSW(swUrl, config); - } - }) - .catch(() => { - console.log( - 'No internet connection found. App is running in offline mode.' - ); - }); -} - -export function unregister() { - if ('serviceWorker' in navigator) { - navigator.serviceWorker.ready - .then(registration => { - registration.unregister(); - }) - .catch(error => { - console.error(error.message); - }); - } -} diff --git a/src/setupTests.js b/src/setupTests.js deleted file mode 100644 index 74b1a27..0000000 --- a/src/setupTests.js +++ /dev/null @@ -1,5 +0,0 @@ -// jest-dom adds custom jest matchers for asserting on DOM nodes. -// allows you to do things like: -// expect(element).toHaveTextContent(/react/i) -// learn more: https://github.com/testing-library/jest-dom -import '@testing-library/jest-dom/extend-expect'; diff --git a/yarn.lock b/yarn.lock index feea970..8e8eaf0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1095,6 +1095,18 @@ resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18" integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg== +"@emotion/is-prop-valid@^0.8.2": + version "0.8.8" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" + integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== + dependencies: + "@emotion/memoize" "0.7.4" + +"@emotion/memoize@0.7.4": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" + integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== + "@hapi/address@2.x.x": version "2.1.4" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" @@ -1309,6 +1321,22 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== +"@popmotion/easing@^1.0.1", "@popmotion/easing@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@popmotion/easing/-/easing-1.0.2.tgz#17d925c45b4bf44189e5a38038d149df42d8c0b4" + integrity sha512-IkdW0TNmRnWTeWI7aGQIVDbKXPWHVEYdGgd5ZR4SH/Ty/61p63jCjrPxX1XrR7IGkl08bjhJROStD7j+RKgoIw== + +"@popmotion/popcorn@^0.4.2": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@popmotion/popcorn/-/popcorn-0.4.4.tgz#a5f906fccdff84526e3fcb892712d7d8a98d6adc" + integrity sha512-jYO/8319fKoNLMlY4ZJPiPu8Ea8occYwRZhxpaNn/kZsK4QG2E7XFlXZMJBsTWDw7I1i0uaqyC4zn1nwEezLzg== + dependencies: + "@popmotion/easing" "^1.0.1" + framesync "^4.0.1" + hey-listen "^1.0.8" + style-value-types "^3.1.7" + tslib "^1.10.0" + "@sheerun/mutationobserver-shim@^0.3.2": version "0.3.3" resolved "https://registry.yarnpkg.com/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz#5405ee8e444ed212db44e79351f0c70a582aae25" @@ -4685,6 +4713,28 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" +framer-motion@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-2.3.0.tgz#700c3d6a554c86bfa6a2d96e25f25829667cd0b4" + integrity sha512-zX6V5vz3joMzacqV7UpiHKUtqLMmU/YsVM6KpeRCi65KjUiymUX5O2jkpR3cCdlr1DkJ1yWUjBWY7xyiO834VA== + dependencies: + "@popmotion/easing" "^1.0.2" + "@popmotion/popcorn" "^0.4.2" + framesync "^4.0.4" + hey-listen "^1.0.8" + popmotion "9.0.0-beta-8" + style-value-types "^3.1.9" + tslib "^1.10.0" + optionalDependencies: + "@emotion/is-prop-valid" "^0.8.2" + +framesync@^4.0.1, framesync@^4.0.4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/framesync/-/framesync-4.1.0.tgz#69a8db3ca432dc70d6a76ba882684a1497ef068a" + integrity sha512-MmgZ4wCoeVxNbx2xp5hN/zPDCbLSKiDt4BbbslK7j/pM2lg5S0vhTNv1v8BCVb99JPIo6hXBFdwzU7Q4qcAaoQ== + dependencies: + hey-listen "^1.0.5" + fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -5015,6 +5065,11 @@ hex-color-regex@^1.1.0: resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== +hey-listen@^1.0.5, hey-listen@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" + integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== + hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -7624,6 +7679,18 @@ pnp-webpack-plugin@1.6.4: dependencies: ts-pnp "^1.1.6" +popmotion@9.0.0-beta-8: + version "9.0.0-beta-8" + resolved "https://registry.yarnpkg.com/popmotion/-/popmotion-9.0.0-beta-8.tgz#f5a709f11737734e84f2a6b73f9bcf25ee30c388" + integrity sha512-6eQzqursPvnP7ePvdfPeY4wFHmS3OLzNP8rJRvmfFfEIfpFqrQgLsM50Gd9AOvGKJtYJOFknNG+dsnzCpgIdAA== + dependencies: + "@popmotion/easing" "^1.0.1" + "@popmotion/popcorn" "^0.4.2" + framesync "^4.0.4" + hey-listen "^1.0.8" + style-value-types "^3.1.6" + tslib "^1.10.0" + portfinder@^1.0.26: version "1.0.28" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" @@ -9812,6 +9879,14 @@ style-loader@0.23.1: loader-utils "^1.1.0" schema-utils "^1.0.0" +style-value-types@^3.1.6, style-value-types@^3.1.7, style-value-types@^3.1.9: + version "3.1.9" + resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-3.1.9.tgz#faf7da660d3f284ed695cff61ea197d85b9122cc" + integrity sha512-050uqgB7WdvtgacoQKm+4EgKzJExVq0sieKBQQtJiU3Muh6MYcCp4T3M8+dfl6VOF2LR0NNwXBP1QYEed8DfIw== + dependencies: + hey-listen "^1.0.8" + tslib "^1.10.0" + stylehacks@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"