From a6430462ad70c28da1a0154c68aa761730720fc0 Mon Sep 17 00:00:00 2001 From: kmietotwy Date: Fri, 1 Feb 2019 20:53:40 -1000 Subject: [PATCH 01/15] started for loop --- css/style.css | 19 +++++++++++++++++++ index.html | 40 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 56 insertions(+), 3 deletions(-) diff --git a/css/style.css b/css/style.css index e69de29b..e6980a4c 100644 --- a/css/style.css +++ b/css/style.css @@ -0,0 +1,19 @@ +body{ + margin: 0px; +} + + + +#header{ + background-color: rosybrown; + width: 100vw; + height: 80px; +} + +#main{ + margin: 50px; +} + +.messages{ + border: 1px solid grey; +} \ No newline at end of file diff --git a/index.html b/index.html index a8a1aad9..4b4a058e 100644 --- a/index.html +++ b/index.html @@ -2,17 +2,51 @@ + Gee-mail! + +
- Build Me! +
\ No newline at end of file From 535c2607bc4890cf115a6a9c178cc74337fe01c2 Mon Sep 17 00:00:00 2001 From: kmietotwy Date: Sat, 2 Feb 2019 13:46:39 -1000 Subject: [PATCH 02/15] added comments --- css/style.css | 26 +++++++++-- index.html | 117 +++++++++++++++++++++++++++++++++++--------------- 2 files changed, 106 insertions(+), 37 deletions(-) diff --git a/css/style.css b/css/style.css index e6980a4c..110aa6c3 100644 --- a/css/style.css +++ b/css/style.css @@ -1,19 +1,39 @@ body{ margin: 0px; + font-family: 'Quicksand', sans-serif; } #header{ - background-color: rosybrown; + background-color: #2994b2; + font-family: 'Fahkwang', sans-serif; width: 100vw; height: 80px; + } #main{ margin: 50px; } +.fromDate{ + background-color: #444f5a; + color: whitesmoke; + display: flex; + justify-content: space-between; +} + +.mailBody{ + font-weight: normal; + display: none; +} + .messages{ - border: 1px solid grey; -} \ No newline at end of file + border: 1px dotted lightslategray; + padding: 0px 0px 10px 0px; +} + +.subject{ + font-weight: bolder; +} diff --git a/index.html b/index.html index 4b4a058e..668ac974 100644 --- a/index.html +++ b/index.html @@ -1,52 +1,101 @@ - - - - Gee-mail! - + + Gee-mail! + + - - - -
-
- + } + + //Adds event listener to the subject line that will show the message content upon clicking. + + // var subjectArray = document.getElementsByClassName('subject'); + + // for (var i = 0; i < subjectArray.length; i++) { + // subjectArray[i].addEventListener('click', showMessage); + // } + + // function showMessage(){ + + // } + + + + + + + console.log(window.geemails); + + + + + + + + + }; + + + + + + +
+ +
+ + \ No newline at end of file From 5150b7ff6b5e06aeb9bc150b70f32fcb6e12aab6 Mon Sep 17 00:00:00 2001 From: kmietotwy Date: Sat, 2 Feb 2019 15:01:16 -1000 Subject: [PATCH 03/15] empty left container --- css/style.css | 47 ++++++++++++++++++++++++++++++++++++----------- index.html | 42 ++++++++++++++++++++++++++++-------------- 2 files changed, 64 insertions(+), 25 deletions(-) diff --git a/css/style.css b/css/style.css index 110aa6c3..b1ccd11a 100644 --- a/css/style.css +++ b/css/style.css @@ -6,20 +6,46 @@ body{ #header{ - background-color: #2994b2; + background-color: #dbe2ef; font-family: 'Fahkwang', sans-serif; width: 100vw; height: 80px; - + text-align: center; + display: flex; + justify-content: center; + flex-direction: column; +} + +#maincontainer{ + display: flex; + justify-content: space-evenly; + } #main{ - margin: 50px; + margin: 50px 10px 50px 0px; + width:78vw; +} + +#sidecount{ + margin-top: 50px; + margin-left: 10px; + width: 15vw; + +} + + +.messages{ + margin: 0px 0px 10px 0px; + border: 1px solid lightslategray; + font-weight: 900; } .fromDate{ - background-color: #444f5a; - color: whitesmoke; + font-family: 'Quicksand', sans-serif; + background-color: #dbe2ef; + color: #112d4e; + padding: 5px 5px; display: flex; justify-content: space-between; } @@ -27,13 +53,12 @@ body{ .mailBody{ font-weight: normal; display: none; -} - -.messages{ - border: 1px dotted lightslategray; - padding: 0px 0px 10px 0px; + padding: 10px 10px; } .subject{ - font-weight: bolder; + padding: 5 5 5 5; + display: flex; + justify-content: center; + flex-direction: column; } diff --git a/index.html b/index.html index 668ac974..a8a6fd97 100644 --- a/index.html +++ b/index.html @@ -10,7 +10,13 @@ // ALL OF YOUR JAVASCRIPT CODE SHOULD GO HERE. // We have to use window.onload so your JavaScript doesn't execute until the page has loaded and all HTML has been downloaded to your browser - //Declare variable + //Header content + + geeMail.innerHTML = 'Gee-Mail'; + + + + //Declare variable for mails var mailArray = window.geemails @@ -58,23 +64,27 @@ } - //Adds event listener to the subject line that will show the message content upon clicking. - - // var subjectArray = document.getElementsByClassName('subject'); - - // for (var i = 0; i < subjectArray.length; i++) { - // subjectArray[i].addEventListener('click', showMessage); - // } + //Adds event listener to the messages box that will show the message content upon clicking. - // function showMessage(){ + var subjectArray = document.getElementsByClassName('messages'); - // } + for (var i = 0; i < subjectArray.length; i++) { + subjectArray[i].addEventListener('click', showMessage); + } + function showMessage() { + var showMess = this.querySelectorAll('.mailBody')[0]; + if (showMess.style.display === 'none') { + showMess.style.display = 'block'; + this.style.fontWeight = 'normal'; + } else { + showMess.style.display = 'none'; + } + } - console.log(window.geemails); @@ -90,12 +100,16 @@ -
+
-
+
+ +
+ +
\ No newline at end of file From b3d9cc3e14260614d84a2937075735b444076070 Mon Sep 17 00:00:00 2001 From: kmietotwy Date: Sat, 2 Feb 2019 15:44:50 -1000 Subject: [PATCH 04/15] added counter stuff --- css/style.css | 6 ++++++ index.html | 42 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/css/style.css b/css/style.css index b1ccd11a..b8eae21c 100644 --- a/css/style.css +++ b/css/style.css @@ -31,6 +31,7 @@ body{ margin-top: 50px; margin-left: 10px; width: 15vw; + padding-top: 50px; } @@ -56,6 +57,11 @@ body{ padding: 10px 10px; } +.statbox{ + display: flex; + justify-content: space-between; +} + .subject{ padding: 5 5 5 5; display: flex; diff --git a/index.html b/index.html index a8a6fd97..93d61c5c 100644 --- a/index.html +++ b/index.html @@ -13,7 +13,13 @@ //Header content geeMail.innerHTML = 'Gee-Mail'; - + + + //Set interval for mail to add + + // idk what i'm doing + + //Declare variable for mails @@ -30,6 +36,11 @@ //For loop to consume data and such + var totalMessages = 0; + totalMessages = mailArray.length; + console.log(totalMessages); + + for (var i = 0; i < mailArray.length; i++) { var messageBox = document.createElement('div'); @@ -61,7 +72,6 @@ mailSubject.appendChild(mailBody); - } //Adds event listener to the messages box that will show the message content upon clicking. @@ -84,6 +94,11 @@ } + //Content for sidecount container + + ttlmess.innerHTML = totalMessages + + console.log(window.geemails); @@ -105,10 +120,29 @@

-
+
+

INBOX

+ +
+

Total Messages

+

+
+ +
+

Unread

+

+
+ +
+

Read

+

+
+ + +
- +
From e9fd90157ba5768e2ef9b000dc915896c6f8de4f Mon Sep 17 00:00:00 2001 From: kmietotwy Date: Sat, 2 Feb 2019 18:54:51 -1000 Subject: [PATCH 05/15] setInterval? --- index.html | 81 ++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 58 insertions(+), 23 deletions(-) diff --git a/index.html b/index.html index 93d61c5c..dc594f45 100644 --- a/index.html +++ b/index.html @@ -10,35 +10,75 @@ // ALL OF YOUR JAVASCRIPT CODE SHOULD GO HERE. // We have to use window.onload so your JavaScript doesn't execute until the page has loaded and all HTML has been downloaded to your browser - //Header content + //Declare variable for mails + + var mailArray = window.geemails - geeMail.innerHTML = 'Gee-Mail'; + var totalMessages = 0; + totalMessages = mailArray.length; + ttlmess.innerHTML = totalMessages //Set interval for mail to add - // idk what i'm doing + setInterval(addMessage, 5000); + function addMessage() { + var newMessage = getNewMessage(); + mailArray.push(newMessage); + var messageBox = document.createElement('div'); + messageBox.className = 'messages'; + main.prepend(messageBox); + + var fromDate = document.createElement('div'); + fromDate.className = 'fromDate'; + messageBox.appendChild(fromDate); + + var mailFrom = document.createElement('div'); + mailFrom.className = 'sender'; + mailFrom.innerHTML = 'From: ' + mailArray[i].sender; + fromDate.appendChild(mailFrom); + + var mailDate = document.createElement('div'); + mailDate.className = 'date'; + mailDate.innerHTML = mailArray[i].date; + fromDate.appendChild(mailDate); + + var mailSubject = document.createElement('div'); + mailSubject.className = 'subject'; + mailSubject.innerHTML = 'Subject: ' + mailArray[i].subject; + messageBox.appendChild(mailSubject); + + var mailBody = document.createElement('div'); + mailBody.className = 'mailBody'; + mailBody.innerHTML = mailArray[i].body; + mailSubject.appendChild(mailBody); + + + + //Content for sidecount container + totalMessages = mailArray.length; + ttlmess.innerHTML = totalMessages + + console.log(totalMessages); + + + } - //Declare variable for mails - var mailArray = window.geemails //Sort the contents in the mail array by date from newest to oldest because why not cuz mailArray.sort(function (a, b) { - var dateA = new Date(a.date), - dateB = new Date(b.date); + var dateA = (a.date), + dateB = (b.date); return dateA - dateB; }); //For loop to consume data and such - var totalMessages = 0; - totalMessages = mailArray.length; - console.log(totalMessages); for (var i = 0; i < mailArray.length; i++) { @@ -94,11 +134,6 @@ } - //Content for sidecount container - - ttlmess.innerHTML = totalMessages - - console.log(window.geemails); @@ -115,7 +150,7 @@
@@ -124,18 +159,18 @@

INBOX

-

Total Messages

-

+

Total Messages

+

-

Unread

-

+

Unread

+

-

Read

-

+

Read

+

@@ -143,7 +178,7 @@

INBOX

-
+ \ No newline at end of file From b491eab9d8ea6210f15518fa83633a59086c70df Mon Sep 17 00:00:00 2001 From: kmietotwy Date: Sun, 3 Feb 2019 11:22:05 -1000 Subject: [PATCH 06/15] added favicon --- assets/favicon.ico | Bin 0 -> 1406 bytes css/style.css | 4 +++ index.html | 76 ++++++++++++++++++++++++--------------------- 3 files changed, 44 insertions(+), 36 deletions(-) create mode 100644 assets/favicon.ico diff --git a/assets/favicon.ico b/assets/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..e9e78a5d7a41d6fbf85576aac05f985b73471ab8 GIT binary patch literal 1406 zcmeH`*-sNu6vjVP6kKt`U2#Xn4M7VoASj3+o3gK^(3TcN0fn*%6@(&`Vku<{i)oos zYB6H1rn1VK7!qwz6!;$?ypmEc6cfXv&zze(=lgw=duHa`JAfG(R#qTa3$V=rYXG)n z5(_qDF8GUKW=hMoyXPakmMf8#$wLmW8Z>8T#3yp_dvX$a&x_C`lY^6ziZ|`;;J+w> zSW<6r_d%ojv_15|qG^ z<^v{&3xOmb_U<02ZD*y$&&zcO94@ z`Yp+Yf|umGB*-riAdbmG0*?V*cMn*}N#yxTI667wlTHU=MHRX}^g`F!g#=DA8bp1N zN>orZb)j6?h}qd$=*PyuU~{3-YEdFA2P>fvMxzl0f-<-Ux}bk}1Q}Ubn3<$r-N3GTi0fbH%ZE$lN)%-&-e=4*a> z1M}Dt$I&7m?Y+*qd1LF6vCj2DW}3r6Ge;BKt+{sKs^2p!Ry5sY?2I^+K-8`sXG|QM gwaFydc8mFN_7bw6E{d4HckPz%Gx@##I~Lad0o*Mr0{{R3 literal 0 HcmV?d00001 diff --git a/css/style.css b/css/style.css index b8eae21c..a76efcdd 100644 --- a/css/style.css +++ b/css/style.css @@ -68,3 +68,7 @@ body{ justify-content: center; flex-direction: column; } + +.countstat{ + display: none; +} diff --git a/index.html b/index.html index dc594f45..6db9878e 100644 --- a/index.html +++ b/index.html @@ -3,6 +3,7 @@ + Gee-mail! @@ -163,14 +167,14 @@

INBOX

-
+

Unread

-
+

Read

-

+

From 4471cae1850ac5aa01a304d5adb6dbc1acc78ab7 Mon Sep 17 00:00:00 2001 From: kmietotwy Date: Sun, 3 Feb 2019 11:36:01 -1000 Subject: [PATCH 07/15] changed cursor --- assets/carcurse.png | Bin 0 -> 32112 bytes css/style.css | 3 +++ 2 files changed, 3 insertions(+) create mode 100644 assets/carcurse.png diff --git a/assets/carcurse.png b/assets/carcurse.png new file mode 100644 index 0000000000000000000000000000000000000000..8cb209fea72c5f40fcaf1af6c651b5eabd8f0e2a GIT binary patch literal 32112 zcmW(+1yq~O77Xrgp-|l2U5l4OaW7ijU4pw)+@-j?6Wpb^Ybg>OiWYzQ-^ocf`A#-x zzunorb7yX%RFvf~P(Ppo000aHd1*BO00#ON27rtRZ46w>Euam&rKFN10ML+t_F{qn z{Y+sducib5_|O6Xfgu3E<2$rH1_0bS0Du!?06-`M03dQqG8&eJeiy|_Ue^@>K*Rg* z2?NN=0YWb#xhW{gAnhWMz$4HA6~ZW?mk>=A<)i`c|2+!2%aQ>AUn2!+Ne!>{vu^L^ zZ;zTgk88ao$os!0-iSU&qjX{pM)ld_O--bM|)=mjb1iecD#Vs)0dAhS#gBAX%wbc zCz7NiNaX-7FeNs6JG?srF0TXud-$w*y8u=7%Huq}*vRz9=henjY=_^REn+7u-gaZQ zyjk3q$l1v`KD#_2!@7nyagKj7A(l=J!%U%M_%M4{$Sig+ycFzPlc<9k{l=MC{#Ou& z=(E!|W3j92XKNn%NWRPO&+(%0GWqCZ*sz*I$lGXM^@urt%ZbntHDTsTy@9&Ct>{`|nZhLc#^flOdsWSZ_2z-|Q zr}dkJ(oc8TlIQxOpLM)6|8Wn2jplaX^GF~7=(620y5qbxP&Jjm z;5t3u!Hj<9xKiodq`J~meblykv#VNq*<;=C02hrlaROq^Sx!ezwf!}W5qIC!thQop z@n!ml_80ljg`9rFy%q+*@&;g3P?(|vpeXp@^9TuWO*bZ!JxC9V%JxyhF;M+M2Pb_7 zgY(z|@ciWJ*EIqBZv-t({{krjMtyF64CJ<*$%4tS%X*QnxL((1CPFuTW!0a=uTDnBQqkIcA}__F|{}Rf89HiD9~Y?_=Gx7$F}nATj)ISWg0HF z2kP#N5d#~l8)HaS+tEp6jkI?r&52ck zD*MNE^l;CpkZ2-Je@;Xk$z19g*J!FT22`+X`N`3WcL9JHHi#2mQocK+y zzL0PS7{ZL2#6vm5mE)R9kdEUdkAO?`{9YL?B$ov#hUG&+4*tOqk5WZCqzDU3Ae6f{ z^6_Ekv47)2>^^!k0s=P5zUbiu_-;l2i8E)a=h47nxw_++DskJ0gIIOXy$n++)R9?| zgjCL7x+^5ZLpG7I_w|^ZnO)!-2Tsby16h->VxoyWx{_Oq(`~VXd>O57DN`2)hs2JzcqEpzuIhpmUXVFidN3m_60{W z5>Ney%Qu<%V(TR(vTmz7aH1)4W{6NtSt~y$p^x3f`V=X!#xs}gK1oVQGvvTQdKhQ6 zX3n-2-;lamm46&MK=IgNq95hT%cZUo|FfRtUGWjNYOXDl!N6`Id;=2ZCX@9pBP0pVmDiT&$Df{{b7IGeM8MHR-#80s^FTyf(>1|8P}{D zLR0i7+)uDUy$MGV2(L#zH?Sjs`b0pVpf3ZHW<;R*Rz7aieR|67Rc$(|hTW_ZRMR%-w8WIq$PgV_xrUq~4 z^ApXPXmcdMkLpDR$2-n&I8{sYY0Dv#xje;46D1himQ^9?#g*VDfy!CNdZ}twokn7@mL%?*YACN{b;=o9vLb6|b{vsyQ|`2MfdRLNM%kLVK_0bvJik`ldL zzMUH+zLU!zg~^z%P4}mb>~qqQ|Dobb!(WQlSlnbbFFbCri##ui`~D^|yqU4EuzXLe zxfs_`RNZ$=Ps_0Snwl5rx$-zNaf&$d0w>OU_l}!|*QiVy#7W>anE55)fzyy0j05H* zd0bI-oZ6_X75$uONp#c{iM@K%&~NOtGO*bZ5lrEWLMDG~Qf#fvir%@P{)?R5*LgAH zx1x!LRLc~9dtt$X?x&?x_`=f>dl_j{Yo%9>IlJFByauF3cPp!Kz)5rE>OwY&WTDn= zDSj&;MW9r#luTX5KXN@QPn?fBOZgg*?O0E=DsQQ6Q1k#!`0k3&R@ifL|8L7Shn?5j zLWb@Hs+nUpPb(#5)7Xv+Ckce$i{BBQc)K(18#VORH*GJXv7&((#Qe-Xkxqd`y_5lh ze<_|?Pf?7)o{QOdJVjTal7I{JajF)*FCZINh2w7}@Y$Sc-)AjN-ZsA?n*0kXsvk^C zjWo3EFeRLf1B=+;zFDzQa%#Wx-UCKl!thS!L_WDlelfftTlL~Pi1j;YX+H`sK)sWV zfqWHtbjx}Ef!k>by(eke_%9^FfLFyXj0w#++OJwf_eY%`5_ghBpV`gS1 zH__1L>onK1W7kKsK}{q8g2)RY(@w-u9f~=D$?U0V%}>G==M`rq)!`VsWq~J$xL*N7 zr_k`@LY-GUTISxIRw&DFz$-B;ye}hk^&Q@$BCb)6q;Sn#Jf& zB#d}?{B1?`-iK41nthbTtKk(AUh0)6OWQ? ztQ4IBe4csw&^=Z0@^u6VcD)6O>Yd-;iNn=7B8o;j{TE|9`V9g@s>3@O7wt&_eQ1lh zv}_YQM#rbbl#1Lo&bjI{x&IE->GOp2V@|bSz^(|+_%3I)pa#j<(Jc;XN$X0a4DYz6L&Z?KK!^A@HlY8-c!Pi$|4uP6Bjk*j^`n9HL{0m4mzjs zhlm|QSe?k+VzUrPF#V^(#*w61qv^k@7aj?L-fDur>`cse81+5tx7vM22au4!VmkxJ z6AxhxU&70gBNd!B{=|O{%N7(iA+OlM@(4M^7|OwcKsBkT;+Wdsc^-K`sHWz0c31tYG}}A5gY)fH>^+q2)yju!uQ=0x6{f^)<`n-n!LMP4)pgEats zByYffD0gI+n^yHlEpK4exTcB{{xZr-UfY~TVz@pa{M(BN0Sq&YYm8qkf<7MVx41G^ za^4K@I)`;ZIWM?sG57nPW`=F%|EMnz-XZ!XL3=o+NJ}4QxbAbI>N5qo+@s=l*Xj0( zTEQY1{5HFYznlU>>u~@SkoJ}rad-4v>cmSLhlnA-qbBbaw=-I9;`(Y0y_C3Q{~#BA zwoRbfH)OZa8=3;~0RiQSif`3S44vbq0l+i%I3+-)Ai~rBG*$S>0kmFqXwV=fDoL2 z-*WuT48QBxHb@34y7JktyT64qbWhlzknUkn1Ul@n zHGTXhKFt8UDXACaRVl}U`Q7P;9D)&pgsLR|eR-Ct78PJ8C>qc)G?opX?B$HLZKkJF zSP1p^Bo1V#rVQFV@V(!e`~6z@q>cY%Ci5|*@5J9sM&oLG_r|Un{r1q{%b|uB?w#ij z@^d2%&6;rbyupHHGZWx9w<`_>>Zhj>2F&*N7Drg)!$pOsZZ@gV(m0 zr_s2UI=DQvfh!pWd>K{jP!od9W1Y593Mav^P!@VjlKPrqz3TmInYYM?H-|eil;G1+ z6SV6I16LD_hlma7V4)6sL~1 z#tWks>H7Q6xA0Eb$)fXzC|=4!+p(gf@I#us!=`Sr|SU;G*+b%N8Qhg~>D3v-nsNv)o6sTLb z|7#Pf4VN9rUihNCG}7uXX?(%cM(!tif>02XB=PgDbRn8OX#wztNdKxwBF(0B zdCbb1&o^R63TPh?DDu&$qFh2u+O^j37oWw;FKLQXs@AF#2a8Rz3kr*c-=&iSaUsMD9iUw;vvSC<&7*P=ieR5 zfBOFX4p|ERhhrq=7l>Bm2`fMH|eyA)JZb%}$z{R|O` zLE{&R_}K*>`ni!nzS@0BK{5f?9@?&Qp*sn7B}$bFrJ6wr4%|Y*ycrm`JYr#Oe3(^L z7QLYfF-+j7{h8GrF>u6z89=^&Cv=jWHeaLP zl+oGzVxr}1l+pSAC#1mb;U>ib6kQ|ifwOe7NP3rNo-^J zK7Yug(|D0g!HPMN#J;AIimeB|Q__`|GG52l2zxepZ+IA}#*R20>_w zT{YzgKfLXbzySuT+ox2Mh@KSk!yaAjwpy}Tlniv+BK1JvtT9@MYp# zU<$!7yQHpBPXHt$o{grk{G1qQFTIgtaYOC905CnhrK6 zW^0~Oi{;E5d#VM*_Sp_U0JmMUQn;T^e-TJr9o(V7>(RbD94rtbB(U|QWFL8?3Ao+< zTNVXj)r^bo@KF8eyFrD9C&py%5d)}ln@e4}l##PNHB|wzZlPamb{FQJ5szu<=a?2g zvi}>(AWl2c3wHSWm3SGK_}U|^u{Z-07jzr{yltlRZ%g-J8e;vqd&v|!&cNSbv-h9W zJbHNA@I0L1B8rMnO|z=sE;0LJ#D{o@e_%qV4jJDhI(knl-JpA+sc;VC9n4JXT+~pu zEc2^w z$iy#QU3)%#A=Ibp*S3`0)d^0}Yec+S9lzpa00QU856macYjwgEcTAO%#`_hIbnE%v zF={U;HeVj~QQ-@Nn-G|yk80}LBRh#XT?Qw`WZ)q$e2_*Z5<~!7x*LuT-|}=>$lHaX zWt41_CNIJ_1V9dTv>9|GWaN4W9S+ezZ-d+QMDUEZtrAJa-^Z;b5v|LVsw&UZUK2kS z0aoL+m+)V6Uve0VQP{$Ubjqig#0?`yrTT{}9Po{f?V9HivZ?_+C{g!$Sr74*Y}~kS zG3}S-2RuA4$Z}XudI^(U?+WdVORRz8kguxMtku<1TTkvDdl#=@@chC3ekl-Fc14QN z{ICQ>*{PYL)HjX+1E{%eOb~N5%~QVahmJe*Bk0~}L;E353zQVr;fn7KMcwegnQo5j z%9jL|36N2OP-6& z->2f8UJI=>*LXbx`gjtW5HXV)+3qz{ZAi0?n~xLxPKU?rH^bu3G&imgEm7+VWzJ=6Wx4XGhH+fA zVv4qZg6YB-M99H;+H^+2L~|;fHPCbH%|!_+fO<~@DU}chGyV;)=~e=5QEYjAx?PO) zHDdm*%o_i!1e!r@5##|Y8Bz|Bdd`;i>4F_v#bh)IiS9w*WUU`k)SgiH1s7D_Eajc+ zu~1|j`9aUPRU!k$22=>RdFih6!nn|i0B|j8D<+oS`s8wPc1;jO^C%wO8cNuY?V61W z`d$IQioU`d{X3)A6##j-@-5F5@m7WIN*G)+?#_YRpzkPw}A z^BDvLcDP&|#75H2a2qTE-FN{UBPr2U=9(1oW{bk}-<{$vdet0xP;6V6M+!%PSv4M+ zN0ak7$WYVbw)MQZlrQoAIaD?7ezEklF=a%@=hYlKViO=I@HYPgy2E)fH#MTBQB6@g z+BFP6`%D4L^bDTB?rg)}S=XMxjL1FE=xvHVL)`PeQ$?|Rl!y!^%!-T3Dml8vlSj43MDj>*i^{VpbvM5CiuH`W@ffP z8Mm}Ug=8^RjZ5N#Ay(d(kw4L-kZIlW&+Em#gzJNu zm*W`NpvqAqOwRE2?-(1+84@b&v=j#LFO@y;aH;y=P&BlP66MweDEl-KUH(<_0yWsZ z*egF5trhQ_U!Sdz(NC&%PAa;k6DlmgYZ_@`XlS?Juv>VG$fV)&>w9%yg8`SKBYHN@ zA(C|=I#99Q(mJt%bpv?-n;Vw7+X4u$lapUGhGx@{qoLEOSvISum{wXGBDq%TTZODZ zRqm5^Xvw+kagoS#(uAH}1;t054$$wtJY7+3oR0*aSLWCLl zAk89)?Ib#*CJjV?qWFZr(lAm`nSO`72(oehl2>Nl8;l|U^vyz9Z1R2!G#P>hw5_XX zHiw%mSTTP)LpQ+>y8c~b1z#DS$N_Xab{Cdb4UOClCUR1AD)1$WxoHX=ar$>JyypHJ zduy8O^?>%IMr-YvvflE+zfd#+$F`5Tr@hBsSW4aOs%?O{o~)v70EEtm4lt+%*P$*q zDgg(sy$|a6v)qIyeV@$ULoVj2YNGBdNvBQXp>k%DB_kg)${;pLXu22NV5mv=T45Vl zhs_=RQyQVg_96K>dyh+T=|rMp1%-=_c|SedV>Z_LQ#P{@fD9Q)BIXLyHorNV z9du9C#+>4n%=4)a@@LOaztYNLrKlw!m8r z+fmAkN2imL9v{}zEGW-l-h?JIfspBM+pS^kcn@*Zb2W@h%5x}rqu1AT=E=rzmQ?YaddaJ z{q2uh4Cj9)#l*d3XatRp;sHPM#QXrMLa(B6(PWB{uC@e6jtGq=oaRARsxvr%@tx0$ zz=ij_PIQYsP8Qd{5vC!)TsTaiz&!KMRnZd`Xe=*euu^V@<~K;-Ypx{I4=TZ!N zpcV$$^}F>ajjosPWOrmF@Xd7VP}SZE0ZL^piJ{%*$Zg@ zKxf?$NwS0Tr&iq~Vpr5wvrUVNc^oq>> z&0F)=2u$GFfLeO_pSUO_$s00~&|9I&9N#Bf(%$#f|JbqD3$qc80}rQWtiQTZB&XM< z?3aPbZ;nUAKoXTIFC>|~WIDg#`s$;pJi%XQnG0vV=fKg+0EC)*I>hejabD2r}n zC+UWr1#6C@Stt*)j?P8$cScF<+5^KVcXldTO;PN~gTwh0jL*@cX_em;r2 zC^8ck`fPf&nuL~X?TyQk?cch7Z34GTV9SP@w9`>%hhLPqA}o)jE7NrX++O892RLZZ z=@pV;LL?K~wapQ7XhJP&z1MXxZUF@bHhgG@L&f)*JEjly*mOKUTpQ2eFr%{vR7|=tU$_1wL%f<$U@tTX?4vUS9p^l zX;9L|wVGgO$97*wa2a_(p8MZo?jf4cR;YEG@G)1am= z>DGbFAK4I&YE5&lj~IU!iQs}L3OMIV+rW`pl%If0P;_6r*d3=;@x@|jb)%Qn?su#I zJy!&f=)a#5rkfckvmu0)R#_C=thUt=(p1TNLW4EXQ*!8h$zPq9-1A$vr+OUisb|+J z1tmJQ9d^o@R0DNPrFH=h2!cEqDd51Nql$>n2*Dhi#VuF1oV;nkNzydg(M)45Z*w$` z9Mxf)Mh?<28&d44pNp>a4;fuTi_91-^c`i&{Rf*G2A#cE7GSQrEd}Z=>q_CvNQTLd z$cgB5M|O{iek>!gzKo<=3TwkiO4I};P=_Q3f^!tcowvkn!dm-8aLYvsl9?l6y-NdBT{REx!4RV-SjcpqIaI14awIl<1!ox;k9V`nFXS|@TNuQg z!b|FSBYeubWhBZsKfAzMd)4r5&(F^N<4w2p>O)h#L9PrJGJ>YW<2Gn+!BY(jy%NHLv zdj3hiD;Mzc?QCc5Q($r6qEsGZo&WjiQ4A->? zJ-Spd1&ifdLMg1#PtGxKp}Qle^-8nNyOnHBc-5~>+LEWm0AC>`_Vxni8Jd!88I7rA1e9NYW`Kw!#i6<0_nm1Mgq=?>Gs=sK;rxDWUq7{ zWXU%$-Qqm1VJa_MlHi_PXlU{Q42v%`sW|m3Z*QEQ46=*VJGKoMA>ef66m@SM-GRw` z1}n8W<6!I7L?X|EF`7YQ0B<<59AK{kNRrHl25s&mR@Xn{^iJu=F1)xdxBn*pav6`d zc8h1+OYqT?1~(~;m* zL`0DLru-1Z$b42(1m3AFqw@@sA*;qS+tNAV`V z6$d{1JPRAH;)TC%U801CmXCv2Z)}%uSiMtF8M@=)psrxfE)f%PrFyEcK-S@*|BkUv zW3O7H*uYrht}aeAuqDyIZ8C`3(`jQj1pK`7YMax`gJrA~rwu+~=V;;ow|&qt?0MJu zQL70usH@nWo)?L<294t*eQ8LVoBFSsqGq(nu%&HwyJwk1^2wpxqH=m(om-eqt~bpa zc+K?m&S6zT=jfiB&h$oa1CTmv{y;;E(T|nV&Qo{^q7%8ETZ8N`o8n~zDbaTobt3(B ze*cQV=h^SDzqDeM7WBPV-XGi6dd&FWk1pTfjh@cR1pO~3t-dOEADJe{uuQ;U+^w$& z6U!h`%1Tztjl$>i5}C1%7ku5$?Jbn6J2`fP7}h|h>LAwBmHfUaKnPjtCw@$T*Ixig z=60Is7ty|8m&fJaqh;RV<{J0eYD;$JFk47}pmLd1(YEnr&ug)DaOCWz`_0Vpga!S!>#2pW*Ouh(3;}ziZ~TbeWa`QG@jLEB=l3+wJAk_Fu|V(SWOdqrcczQp zO4E=)ifGvwd9+JT&CT~AYOKG%F8_I8o^31Z9YvN33-?MG)VUspEuh=JSZ8qw3J!0- zBEhVJ%{N+R?u~TSZe5OsVG5!je?3|X-ak6B0;KtVYdZRpcy#uciT!&%+rAdM-(D#l zOH$fCCWq#0Z5pRLjOgzhf-YykCd-+> z={=_b{T~$T7KTAzNmtgo0=Rqcws&@;|HT; z_D}mL?AdtM=ZW-%X9k43tk+n%sok^ag6GuMHFcX-^F_&#Zl=lBFNpa|`$bn4UqUPK zgup_tgGcNQlyoCXEU0q$;IoIfMIA9VY{>o@`C)DNPXnC{z%Wk6~r2F|^rEbOhvhJPmegCpM zhDE7jSbI7)tH4F9vNSI#Rafu5-&jHwpXJv~VzHB{MNpksK$>Nmi`^!L65^r_r>aI3 zZYpJN39Yi&4SGa8X^pJDQ9?8(2>wNxQ_wV8(VtRK|iyT zZ}1rk_@TCZj3*PG_G9nLheN_jgb<&IZnQcc!d*VwA08gIKffW>I&Dqr-zI4ah|pN@ zi-C{0qkV?;;8O5Hp@*nn^n-EDs4~mDqLm+(Q1g?yfPi3k=HWiRZc@F|{S<+ZRP9aH zvacO$@7@V^kexqrM$h(0df`~6)z?2uH%oP5{X}99x?ootg%0;tQNdx`?JK3`vI%rw z|4cuRN^JQ1Po4EPyfB}g!iogvEFPc|`u&*pKkfHh^1n^Jx8$pB?*NF!biMtvhyU5- z3(c~g&lX$P{n^1W{nsnu%V(u~XpGbi9-VOLPa=2fS?4e%OiPY>u(0Nvlt!}7tQQ|(A1TRUyA^{&dXMr z)h^q2Q@^P}1Q07eg^{#9Y2U-qVx4vTOaF6s3n4RNNzPa@&A5CA8|aZa#k3eUQ?{r- z_hD=1(0=2wN&HbD;0CET{qmhee4=5`lbdsmE*f11GsHii-S3SX4B2`o=CIpt4C7In zsRPy_zNY7f5Z6x_?{A9yE%-m#|&l zc#vsXZnItr)r=2`__g7o;@C3QWVeW~Rr{msZ+eAn-;Fq(W!g>4OHUOXfJs;z&RMRg zGpDG%l$@b=e(LBYqe!20okFxc0b6DL76dZ6f6A<2Y;Ya+8^|5fxj*==z&@URP z_g3Z$cD?;5W+Mv;ZCE(%2uEeAF#P1&`}Yb;rKcj>)CC`wNaNTwf~RWh6vJIq8awPz z)zmRk+qcdyu!RCB+tpOPlqYRZ0|`lfC#lEw!jah}*HW1h7k57GRD&76OAMb~O;qc5 z0TRYHHPL3jcyT#%T+tEzVtGl0{rSD~{=VGI{0AUOmAT}-_UZjn>)4i}nm#EuN&L~p zLa)US)q3%8Sc8#NGtRY4Xqp8y<|w8EnNQ8G-gP@x*yXdg4x5`z7u7xJNUY}syXiR% zJ8aD8(Vhp}14{aBb9QZVXi5_;&hZ!XuvPUqvlSEMCm)g}v?|c$_q2wrMlz~&-sh^i zImZ8pD5zd=W~?_yRVZb*3wT#-t7?%bR*?^L24S$TaSO1BulK2G49bN2!sGO>Q)Ha8 z?z9QG9`3iMccUYYGvEU!YaZ?*YL;bhG10`sxC1mx>@YuAnO44IsUnf z)!>*oc!aYkRi00>qlA+EHOuu7Wq~ z;8pe~aQ%uD-^;)xZXDZl|0n9lHVEtrJtUQ~+th3qC%1lR=0`WA4X?REQ-64NXY9ym z%G>f}Lp)lVArCCV3${Gh;mz*c6Ot$d}5> zKGg)~Na&u%Sk_h}$I8DSsrJSiV}c1}+5Cc@ag(<)gd@ILdt+yK6=XP4wvf}utd58p zmX~HDWDj5UnSGL7x4yPA)TD#w=95jGMv0JX6hS-TQF4rIXjBFP;LrFCIyLU^*Vk#+ z-i69ZBXqa$rUDo19LJEr<$e5` zdm2?%wv~w*`Kd4yc~9%ak`CS2ma0!kgiD4Fg9+bpYXs$M)z|~4H@}cm$Yfl{=Q@u~ z3+!t;4-qBB?o6hZi8jYMW%H7vphr~K&!G0M-GSSZ>&Fczn!0Xtk1=LkXHVKm%&uw~ zun5g#z5La#KJ&760E$i-S;IgQ7yXz7ZR^$$bKPAYC*@Ftf{=N%xN~;4J0I_hu3(z& zE_7O?UmR*c&agDvF{gs_lQH_5l`wrt6#Wt| zimwJ%KYhJ_$gQQNel92?qD&99X#CR#$+l_L86>~Oy$}=~BzZW8G4t-|n>0J}rp1qp zRdJZ)FfQocq&89=AkiE7K3iw{f^9xLWYn?v#gMr(UHED0F;dDsg^1xHe4<5cG^PZj zSv4M`H=@#1M#td9q?$4owi;!kIHhGN)J(WC-oVQ~poQJ}RdQ>%n5FN7Q7%k~7PhHY ztCf@tabgTxNfnvOgp47c74f{c(V_Lg4_VeyEk~8Al?KU3!{UE~mR2D@F0OHJAk(pc zfEH8B7~ely7;{D+nVc-hoD-)*l#7hNsPOG+lqB9r@gGoC=`&iS*5Bl4FDBXM7NM%* z<1A&rBo7OUIX~UJto|+f(yC{bG*4Q)Q@J!jFK~1dL^OSEc;7oa%cP^8vZ4GVorvbgVa>Dc(ZgjcbJZ83o z-zg3~Cf5G(2ajt@tuIT$3tu;x#EvQffiW-I_^-tjm*s6)izKYU^}g+VI?nPkOfn*M z98$(AcV3q&5a;dPXfE!2Iygee%>1q3-{td{0qyClH}MzbfU8#ihLW{D2*QZo+pAQ< z-zfF6`WlqH-0hJ?>0}DUsEuU1jh1wZXtsj=v~e-lw?2(8?BD)^E`13|I#pf9I!y7| zeIU#pzh&NHPr|lL_*ef3!~gUtQtqA`K-{(BSsM;?uX)Dgue6fECkft~uoU$fbMYUm z;v~d_hhM6Vpg>0nw!w*QVenD#4Ty3HrJNQdoX-8(1`fqId*p8NX$*z9b|%6E%0rYW z$u;RO<&%p)lzMN!5}0wCPFzRfaL_J!j%D&wMe;_bFo?p(Qy@FBArYX~h009pUxH(H z-WC#W}}@vZo_CMv{2%yXS3<7y99YsAFO>)YmmEKTt9gPf!Rf;3fqM?mRGOAm_DLV zBV;`3`_OqiioycB&(BFTW)jQe*fM%q7@nm0;#YzB6?+&NYBvi& z{{aQo+dG#{lUYhg3y#J08c8D@1jb^>vOPFu&v6V%mXD<8KG-y)+J8BCJo>EY&dOH( z&`eim)k-%Jrw|ZN6kM+T<-3*R`WI|?d>OIIS%akSOQ{N5jp_S(+~7gd&uMf}x9He2 zP1OybuDaDLG^>4PaY%E4oZkjnB3v%7VZssEva?6*QueXvkXV0YQxd2}C`M6F$ycrA ztm#}sth?8!;dy_n0IgmMRfR|P&Z;-t@F2TnZ)yh*H6y=!Tf}?qz)%IT{F2?3RmI1b zQ3knWDQ&dkg=zvR3Z~WZiM`X3Eg8M@lFEp6vwlE`YsZ|!ipJ(AI&%`b>|0P)SCejx z_Sd|boCw}6t%GkaVB`B{2fgMX$D(%@F(W#Ua?zP3jL?zwmUAcXI2cpeKrj(%LM+4rkP1uTZ#t5o=tjXn&uL^9Ok$!HeRBFi{z;%SJ)&la}3EF`Jldh6!HT~7RL)13OVQK>P<8kNjjqtbd!FVqd;HiUTyd# zWV6sGiq%x;gd-F_0rYD`PCbPVxYX`aTjnP~?N3fPm!c-X`5Y^4!SKJ$flz8=J@JW4 z3b<50>|WTe)yT_?)qsAQf;Q2azK=X%!dW7B!q}L@a{PnNFR8yE3&qMYYpM6Q@K5wb z{|-oqemD%YBv2S@M{|z&CL-o>O?*<*$gHY3`ypOZe3%F!jQJ{T&^y9YhWD|Jp`u+T z2uO)c4NVnQSxdLGjGr(3SlHQ|?iXE)_LcGBLt7#frg9{MKo94ASWm@7&FE;lS&fX9 z4Uk#YMM1=Fw%lo|*8_7x$aLJlXA>Y!=&se0C)A}-mB(MQYF%$$SJy18Dd$5lFAfQH zn`MrO)W9sqfNi8P@isAWvqF09FMno7ADmQAXLorgsX?i35YUe0eW&_b0RIqcCnzao zv7d;r)H7}}-%&074d_y#6}4H23fGh)@>MRXuSM-ewFLReemsw>&52>E5+H$%SdQF) zk=)_^ZV#0~{ORiZaV`~4`KO*HqtkSahAkw4xGRdVvPDa!b6Mr<_F*iFx>@;V&Tj^~ z15sugsU01zIf8d0icJSQ;(Mqb=UZR9=b*)K1~La!#yUz>ASUC0WQ(H30njHLK`=<6=vDj^?M~_Za;J0k`FjJbQUv#6v)Ypn zDB1#)qy?(XxugFMl;own;oh`Gg{2#{bWG3asHTY?t4BbCjdG` z@VMNVNjn#gJjF0jRRR1F?Vje^IvD0c!jV}dQTl*quZO4pMcJ_*B{O`qC1kAu_^6ZsDv$Rp5R|M_-9k_sTCv#EJ(v!hAmDV2S}PO07x!q#fHq3miJJhsRX4GW1*I!G;Jna0q`$)=6{ z^v4GQ@to1)Y%Ad*PqIzQ(mBY%GKxis$-I|`@_THFlVJA&v^wD}(jdj0IKzQdq4Cmd9E2!;ls8F`mZJ+jWFZ&eFJpk zG(O*`eD%Kkl(HoL*nbYpvHWk^9^Kkf! zgnXu?(!oMHM*so}*y(!nKXImM5&Cd*lcB#FF}PwF5pwatO_-G>Up&I03gwg~C4Qn3 zA^o7xJfko${!=ov@UEl`dvor`j69p5jx_w@Ny{3=?>xQvwPWTCWI(;`gC{2nM_av0 z4Ca*hj>TG=UUmQ-d$cfHj_B4=Yc|96?`7^VpZ9gdm}no{_aL}ei}+b(?30ro(wkpR zb_9P$or9^hjY0;sjo^|YK{MSv>xE-DW!Cak822UIQdn+C7F(E|=XBFz-nh;=X_OPN zm_~lA)eT22`c`dev!`yx*QDKs^k0A@oYL@H4xSRKK>5kG>8IV!)CX>V73vStosH)v?PS(Pt?GUyGsSemm35F&wqC;aJru_yrr&fa$NmJw1y4Qz&QJx*ls z66q<%-pi*(+&DkAs;Hy)e#%B8NMtSdNjq_;{qAnQkLrZ|6o|2mg8kar&f!uq9ze__ zG+q6M|Kl?AKE1LMOJ9k_8O$~4baBh*rZ)*dZh0b2Y7Q4Ur9Aae!IueG|H2rjSA*#u zl@V~D_pwj_v!OSi_?=9DMOLN|aHcbFY4ajgb!emmQ|*)FX@qF$k4|fQVSb+NEdSz- zjoIUAeZl-Me_(?n>(Oh>;7JbM$+Q-bnY7c80?Z@(oj?`)1R+Yt(OfS&f z!o9?#5-o#}l;Nj^S2xq(q$Qno(u+!kqP6A%;@~5w%9ltEHV3Ou9qU-Bg1!8gujl85 z;dxT62Pe@10CUkC;|QUc;eRB1g7yh_GXH;pMuvl!9844}8(r zXCD2KVyZp5^U9q6)%BH8QGM_CcZM2zC}|jm7LYCh89D_-q*IU(DFGz}W&mLrkw!uq zvFPrQ?hrq8hagC&#LRELul}$8Yu&Z(tFzX<_dNHU^E`V$d#gBlK5)Xi474jXmPmWs z<{TfJh2n7D|5*p+E~01;{Xlsey^aul-Mp_LyU9F(UX%f&f#k62vEFx!7EPztDqXuX zml1Wdz^IEK8dD@JU;E{YCuf7H)3&^2x(`MznH;Y?L;T4kCD(Y~{``J0_n4XEMb9?L zV(6CQZ^jEQgP$3@?a^i$D(wwk%NP4rUzc4&?FbJuR%4Sk+rQ zE>j)5pT!cF9pK1^v!R+cDDEGQo}r-kjg1+*$|2M|#A{#JOY_f_Zd zP>!7MK7aXFHbA^fA>P+8Cp?+S#{luc3;Lb_cEgOet-YrL=V&!xwS5!z(tUjV8d+hB zbz!*hmVQ6;C5aZr7+%nE{1{|~dC%cowyj+-MwD zZ1Sn>qk3_O0R-QaWS6?0QIm*)(4XwxpE4xbcxMIyA}5zOH)fglBU&y3$b=c80 zCIfM$ibkCaYY#r1X}Z=8oFrvEzW4mb zi6v#dhLNn?Kb{p~@yPY7H6&9&5GrtqLAeqNg0=sNs=8hfAeaiDDf(Rb$eFvwdB?x2iMzOh*w#r*o*usze%&pPbkaFQ+_9g znMhmj946DTR7?8oK!u7h&HMQ9>b+kA#oTpXrLWEwgTS(^Os`70r~9?Mx9Q!YJdLaM zRn+cN@F0Q*IbQ8h-_B@%48Xz#9*!%rq80J0huz`NU3|O9NYuV>22?+VxG2AGJS`I( zlID?|UXD9__Wq_jGvjDwzY!oT$~Q$m_6TpI>R8!I;h_Wa=(#bp>I^>GY|-B%E~=fD z`-wRztSiY{LU?s{HG3btukes8j~L{D7MZkjy-0n~J>yXDMl0)kQ=H#xh1RYZ03l`6 zH|;~YSH0zP>`u*X3|u?NKDd1^Q2R~F+1_Us7NbVMfO=1>P@{sbc*OSKO4oQ%(=r4n0{WbebHdz ztJx&kyp*Qz^ZSdbTeBg_^c=Hy0J)3H*;G+lx0+E~WHfAQK!AFehERNXS8HA_4IAvv zhI6=;fJ#0;BTkZfD_!R`zDiH_#?M5YIpV5tP_m12DIuM?$yn~`+@W8)b-5k#LH5iF z)1_Q-Wd)k#!Fi)g2=?*Cl3B6z;BuSWYoH?|`HR^i6T92CCZ&Pq&!#%UH(&`K;6>kn z$%75DJ+nYMf@7;EAHwRQWN$FT$fmTY&Glh5IqkEj^=wLfNaL!B7oXj*ulJZi&)d#VxZ|-cb9r{-1B28DeCJKmm%%( zS2K=0O-pW0$s0#_z?SEpb~zU!`V}3(6ZCZRooM>QwJ5S@*MFN*|E8BX?M3t=MSA2( z)5ZVV$ny&_aL{?!$6KhJAL}-|lZk zlT-h=Q_1!RN1pMxmD00*lOoc)$c@NT+pew;*=twX`!PGGvrerl6pT93-YtFqN@(?? zw$p1+2e+YZ`mZx5+nb1CKPT=BpPoz9f70uR2ZV@k0@`63GX3uuh`O);OZr(|>rq*W zIn5Er4wBm!^$rq232nc*s~^?zrt*V<)~7ESKc#cRlD0~k#Gldi7kTQq{v};R4wJcA zYJGCt2qboY7>0DMtLtOZ_Q~aS6BX%sUSeEP#jzK1RycJ1JFnhN!ds$dW$`w-k)<4I zdHv|q-r<2e!k*rwq-v-{3LiqpiV*|VsTY~09^TPsEae_v!lo2eg$Lqa7=FHb{iy!_ z%o81ir?BDnO9%`HRV=?hZKfI8Cm*BQ{wi}SKSgzF*R#>xz3yJ%BtZtoIC%6@h&jNN z!bOXM0R2N|xm>@^zn_E*mS~hi0b~kRYw!t6bDcZ z6-MFRT0PJ>GeqBU?<_P{Y)tH_G=lK6z|*aTI?$GS4($L>m@8?=zr zCCy$zQ_E@Q%O7bHPPbU179G2-V`lCbF_+YBVIOuA%;35kb(-Rr`mTyQ{Z0l`4s^dP z^Sqb}j+Qf6$%+s>_SkD(qB~b^CgP=IAW+k7rJ>P()Dc{hYEZZF$1{v7?~bA0iTMw+ z(tf2HvM0CddWG2{YnqmOt37uhq60Nu;@Vl7R!so_aX?4n&G-+u?qDzhd z6%*jI7Ot)!v{e1y2Zws&L>DBZcH~8E28GA^UM2;BoFexgRSD!&H@Qe>ghg<4@C^s3N5Y3zTB412zzU&^2bwlOW$5v1 z!wI!dUpXn>>LL>U8DAycC#d$9XF@?r#L=%2XXjNU+Rk#030oGk(W+sBkuut^I00{| z)S$75U8WF?m6nLlu1|G-es6T0qL)(=?O=+Ki@W$`Z)B8jOGjGLh)3p9V?2n^!Mg@o zZgj`MXL!)jZ0!hC9a(*c*6`9GCPj(3TAC7C!RIZ$EimUhiAqzvO$CFfwad>QpqI~i zPSpW>6~psXaZ*3yBH{LMYxqQk+LtBY!L`uTQVGh=ea z$-E-?jlS_5ynVF#zK!F;5U1FHwbfq=JvKCTp?u8@7)|9|zO8(Hc$k|g7cyaa&>^pY z@8#|E9xoxX|A^?AtIFl3`eL_izJXCk`d?!p7E=)c)TT6S^U6MhAp}bYwt#)+8`^~Q zNA%}jRzF18mFND#0!fnTcOKlLWW@HUH=j zc!)v(fm$|eXz(L4j66EL>=Ce3imWglHbwLYD-mWYL_zm?$Co>=7Ab+}x*0Yg4w2)( zLOz)f9=cI}YXRWq?$Cdq%6}`=>FtD%UdPheZy|xT)!1mEFfDZz$%Mvo_J&JE{RoW@N~I5!+mjxP><*1us6T4i(Tx9H z@b=Yzv#agvMiqB&D1AAF>_P@{$tPK`0*>5P#^k67lrvqvDW4t8Kk_eMQ4@u(P@QO4eKB ziT;6(aT6!!za7m`=v89`EyWZcttbf$QnZPn*)P?|aVc(#b_|p}8kMavBm^?`^d^0a zTH5p0FGB!ZHw@dOtkWlE>V&=Yo9IJV*1PNBKnl6c``!6j(-UIq1Y6X zzJ+JT!I}Ep3F4Ej`A}Em_AeQBTUi?Q^FJ1DI>}VNUI<_)&aM_Td_i0%oHc;+7aRu| z?7o^EF~xEpqe`$%--^Npr){>Y9CWB*>$uaXZI0Cen1<9DIYYk-;c;5YuZv9!;!^Hk zJ7=N%8Ir`eJgda-b^deiuU;xSa-jyJ(2+6f2l<7r&xJK27HCa^{zc?=eR>ckAH(x2KJ z^089b8$7G1V0%(@WGd%^_?YcJ=5wbZj5SPb<@Rk$;JMDxeigG)E_zeu(@Y(?bHAaL zq3E;UQMJU`ugHDL$!|YH4}_bt@2v5N=tXd7B-%~z<8&WH5Tjk6h3Mb6D&9{MAwyrF zlbs4~2#XsKdSittxeCdD6@E3ZDIzUj)NTDxS&1~U+_&27*HgtW(c&lh`og*b=3d8JHs!wLR|Kyv%nmK%@+s+Wc@* zL`fIqsXN&IAX*xRq%i}AQS^SzHu^r$13Q8rE-HSM;)Ro*5$MEEe=y?KsGWdsVHJZDLI@CV;o$W{SlxbEN7vLsV%%Zk&rz*FhcwC-D8lu>Eye zWIDI3xZ$UklA9YeYH-p@w=Qb1zqR9CG$VZQKD3TQ`jP~=GLz-uGVm%47H{(iU*xub0q1}pi^E%pJ3b1W+7v8WYdVI4 zbS#A$u^Sli&@DF0kxf{fL{#VvtTGDSK~JQgbKy%=j6$H&uZXoi2Aa52vKa?)7%OpW z>ooH%rS(!mRGa_8+&Csy{soGAO}@om32V3P%BflwbKiCA>kIjy zZ?9&qVl>~@>vW6wRq+kAWa0du4kk&O^<^nitzt=131>kc$%^zTe=|y@>{oPfs@h&_ zxz@grCBpR1NWvwionAsPT^Hr>b&n1PKIZT(AW-RtVYj7~s00C$bTb`Dv;%)7UztWj z>|wjFR%2Bx%kjy$2}h^r-M3Fn<^q?jY>ekVk1ajC_y*R6@7Kq~|FJ_rk9l=6<7}B> z$PA;9mJ1FaHtsk&VcCze*1?OYG|u+lhq)KWPl*9K4Nzw}!As3ZY|VYR1yjmUKL3l7Qn^(1GdfL&E3e9{V_?xatfMD|iNV+s%wQ4MbW#U)sq z(g}nEnW7K&X7`@oT$rtw@ZW})Rc$|IP;~#Q(F@$rTM)JIvHi#bJ(ruwhfd;TTYF0z zDj_BW#gZ~pdtQPgn7W5G~1M}J5tV|ju6~NFZ;g0)m5!@Ff3nivSt`|oP02J@}few!nxIl7;p>`Jj#8UU`2ETLhOH*h%4hTc(fsK zTr#Frp1MO#^Q6{?4@|7E?d?YDaKOIC)3f%3WWr4vf7RcqPJ3xNIyZZHjFzW6P?{UL zbLS58UCfo#OUJkNy{C;N(Jt8qSpQRM{w*j!>G_{x@AK1S+}1jO+xdfozoT=5sSTh` z#XH$t2RZpn?a%T;~7_2*`-&7ZEI@ZMwk6&|9a!+*&4K~i@e=4-@pH(~$O z%0p&Frr82rJpWPvpOYD&0xMxYdGX;JIHC@BL-Woc1{P+*x1iq^MO~-n(0Y^G`>)UL z7t#CCM;oaL{(6pA_eulH{*pud4sqqm&c-^1BkwAq0I<8^M&b#`x#kVv+hfuKr#3|) z3LlXqZS=_-EHxSx|JX~AL$_7cBbcX!T6%=Akuq2%RlmL->%bk^q7q^vM@oH%1iZW# zzYd1yp&6o(5HJ-gt;L^Wk`)V^4xii{ENmWNy=FMYoT;9%Dx}^(~9f3no2F zC6G_x47Pa%U;P%Ju@&P%>ZFhVrOA^)JK!^;#MM9$m;UjZnNH1Lg+F z>xo~*5?c9xcUiob&Qz;exB!c&dLk47yI0R0e8dnu@|#tr;R8mV~*`+5RB+ zm+h$9ID;xmEWjAT!&kt>A^vvj-lj(-IQ>{m3|t9W*C0mjU6+NcsuB=ItU!zfek+bO z{n~wnLt88=1-Sj9uKarAbvMI@qy|T?R=E>FI7rp$meP}Aj87Kv3*8C%yL^79;Vgs$ zMG|exy;r6GRTsC!y+6-*dbP!KV**@^sUp8!gEnD0Y_}71{O#D;w{x8&?!LZe@yT3N zzUOS28qax!Bp!z)XaZu7baW-Aj>udVe|y&SYmvE!{%a~Ec`&zsXJqsxxrUOa6RLmK z!%Zstqg6+r@=d5;W+`snD)+X9`gPMD!$nx~!LPAaiW`BV>*3a><4pCsl$v>Z!eh2l zXZ&N5cQC;a>Io9`==Fg9ke5e+O2u$Qw@&kOQ z*{`)#_AfF_=|g01{zL;pU%p(RD!)y;72@OMKWokMNvhk+O?N(KI3cvZb3>qa_thtf z@|6;+i#IaY`c0R!r%4OX%&#R0kb++JfXMO99?TS_nKgE+ia^f;)2Tk z%Q_*r0!w6IjCA59sUV1H_x$ocqR*?dQsF?oZ$nulT(YpOFK>qb5%kTTf3vG>+Jxsl z?y(@K_T>p)X!wb~akid`+vO3MQ8=u@{ekFKKy(vNVh@ z=jcL%iYu%G$s>(|4{9u3MMMgx_dC*Py_54^Ki1_M3UZ9-z;veI)gq31s0!us=X~kD zI~=-vAV@zxh6O;gpoEtk8aHlH?Y^<=V&n1RUdV;@S~^yDnKz{uzw3>rVtXu@lDp(t zTjKW=uxfu7tTcBhzuwnEht-dtg^`Z?)>CM!^HzYCEKZw<1IwU2q)AfQ5K`?!La>&L zV`y90L3DdJOx#Q4q7foP;!gx`7L;>p{To+Oe_QfjFh1cDl>gO_s3d~epm3qwH_X5v zb65qc`5v6R(f3J`;IFvAvx8QgpU>(-Gl^Rfr$uxH zG{~$QJNq~KeA}JIe`wHbz&jWKOwAaL%zV-_GD?h~g@xKUrU4Z) z?X!&(RU_Y3f~f#iYYxl6U6Z_giSAM2UWf79A#FRMaAg+hxIM{^!NG%K{c`~afaXWa z8bgF9zAxwa>h*8;>8A+~`EHb=F2NnAvhe}&0^fhAQ*a7G%dz?zFUza;FWx!tM&B?| z8l|;NKNGfbQc71;Gm&xfAcE9^!Ju^Z*jDW)h`TEk+?_Ql0;{doeV^*GJ4_EmCK=_p z8mue4aN_hjl#Cdr(Qn4}lwt)-1^w+Q+M)I{ltzKT>S`(91mwF$VIb{j6gF%}HW7mU z9EtkogSV(ZB{+sr~(x^O%vmydUpSltXIJ&zJKfe;5s%SmW-DrK~ zvKKSI+|gSg7XX}nC7$`?Bc-VmyXosP5p=WhyRvpFp0geM8P|XJ-=-VT@fl%Mb;ajK zX{iNh5`gc~MIiIU+r?hW*~k95z@mVKl0br|^ZmXQz4NC}+hkT>>-^ z1rt54um}t(7!3%~?8muw?|U!?V^R0LItT;=>xxI*_C9CaJPb+E{n@0PZ1j?xUM$Rh z04X!+;6&0ukt3Cr7c0*%^jbrGJG&XVdtvw99XpW!?!%@@8MgTBpF8wu@=I>AH7LAf zS}k!4olNg$8G$KC3Jj2gLHok2w%e!r?_ogyS!qbXZdpcZ}L>?}=y)bTJs zhTcJ&qtC|G)i}FVfp=lekXwelc9(Q$UM8dY?qED2Fzg-JrrSF6F4`H}v4$nEgFdJU zbb-G#n(Qa!#PLD!BAV@1JRXw{xbFrlHnkmboc?a z$2Vj3SLt-EJ9N;*adGV~e+uJGqLdK>cXld7^dknAggq3N4?Xy>i{b4KgG|T`t zip(NO3Fl>uRMV#rB{O9j^-BNL9^h<7&vq!;wA#iWC+$?|^N{8cfm5a_HIDF~in0h* z+VHqT>Nicm$}2?S+4Q^L%CqST61AF8%uB-&x+Z0yh~@d|^islPPJZKlZ^&39oeT!0 zS8M1_nd;(oTNkYSZ}pRat^L_~wsZtyeD@Wek%mXYdl#(3+MY5&1@N26Cg1NnccMPR zh1FEtDb{{eu0A1MJ=1xz#Wu*2znlsjrp$XSqquDWc9dU>s>(w`R5USy?=4CB<1`jt zHzqgi&*aicFU8hhZ$eroh|3m2OUj5#;x@IsiLUqBg-BFr`@R@tTVdb%>h0yrctVue z)?7PT{4Bc|?vQW>(cd#QN=vu97&e*$#bMvMoQ1RNTvJ67?@d*SRPDdJu<<{9MREgI zXGvrEO-i6HZ#krwZe>oPbejgWJx3P{U_zhZTl7k7WbZ6_MN@Ivu_7vkKr2zK@dw@O zl#?NA;$KxCe?C&xZ|V8(D{nu?&P`h1nDym!<<#{wKk&_vbwsxmVhu|vERj}A^Z)+n z@zw&eNtnw4x20P({JZNdtu0~VQyyI|I-+<|zf{_l7>5s;4eOQsc`-iU?kmT1&~XR!8qo18h84&c}q!4T@6jGH|K*w_@sUBT?~7_|cDmLAf^wqnb*4%j zq41JHr|2@XJR69vUBpAUGuQpCx%CsM5a&@|yqsga&A)RWt=LqUPIb;j~_ z8231J)jmh}&aeTnp$@Dha|S7wZKV1)Z^bR2r!2P~P0feFcVAr*E67c;FnNa85-ql_ zjtyWu2S1$J!NJCnZ%@A~$GxFY{_LWynlMx7n7Qq*pcXOl{rwnOqeucPNzXt)a0=iM zL=YJG&p@%=w)A|!@ryy&&S$##f@F194mosW;N~a(@Ym;rFAkQ!eL8=<_QxOkPluL` zop5ZB4qr$}w_B+97xYOKJNv`-v&QGX4r{vea`!I)Xe|Xj1xSd z&?S(YKv^{hD~XJV$UzE{oi^Fv_1*gKyw%F`bsZL6Ni2U5@Ow4vhV1#-kKL=YMG&wY zICfz>0T>y$EB)H@!=-1~+T_2MuEQjq6&({|gu8Kys#af0tGfSdJ3E#+SYSS2?~gx_ z4L<0d|3u&WvD$#-^EB!yaowPU;ps=%oD6Wd#I5t(WlidqTU4mBVd}n7xW|gc*-!&G z;Jm#Q9Y(FHOuh1j_(E-I7ar%hUDa-{NP<|&CV_)#48*U+)k@fjkp`8zOYQj|&?S+<|eF8hytC@M^6z-u+!-}|l21yqOo z-qHKQLFs#G^&c-3gkDY+W^3RaHe95-lWf_F>TAdLf8@Yjb?sq(Fatr^GM<5R^((!s zWq)2rdJ-ae-C79Nzo-Pzv0-Tw6p9l>#)8Iu$*sTwH1VFz?{~c#_a^3ZLN8{(dUY*X|$NVFk>*xVKkZsdg=j&|Yy%-Jv(aI49GVx77n?B9aC7z4Enyl9%C z1osV8h+v@&kF(Mr`AK|rqB>I7(Af|{-gL?Y;y#2NeH`2}B3MLQlI3lmK3j-d0H`|$ z9>-jY6l{dSo$&-S-&ev3WeD{a>Z0Dx2UGVxymq0jSU)GLOz7xpf1eTd`8$Ayq)dJN zPB4{egyT$_LB%9k5s0?w^W1GHxs_@DRriq+`(l+)b73azXyb{+oNyIKm11<6Y+eg8 zJ36LN#Fq-wKM&hy{EYj=6!_(AxxD$RKL)=Q`J{dv9qzB@u-r1_wo#O$zYHb=S0#RH z9pob-%?Mi^x(ZGDTo~-euqz4S`8o0-=jMLPa`q%r$GC6F;@GTFT=}s-Ht--nh1e&Z zs6xZGX}Bv5S5jLn6GgPNMwq;LnPx;~La0706o}e^@?@`VL!32?^*8O-D*}{m?-UA?DPGowYbkYpt5PSQVk>kw<7gw7+J>iQ4)-70^1LlqE z$=6Jc@0Yn54w#mC>2n$k|FRVq)M=F~B589kHI`UrZz`u?uInB4&3*O$mtxFmauFH=W|*B8PirmAN{bKqErf&k5x|kz)6!u zzNvhV1RX04oKzFtkW4uP6i5TA8wgD8_oE zy0H-CIfXXKS4K4^?3HYVZ5klfc}9wY;3Of_4+qYFgj0`Ix4exO*L~V?YQG*N=6S$H ztH=ST)VU*izC!@)=sS)FJn`jxMtV3yDXZkYvMoJ73Q-gXwzETC95973O$EA^`S_9` z)P&eMvb3QXrVmw=;vSC435lb>g)Sucb;^Mn;1cx+;Nl_Wm za&pbch*fcWZ}XAhYZ?zGc>VMOX6j-3W;A%&$TCf7jkvBqI&K}!EHifXS9wh@F-D@? ze)hpw=bNO@VoHu0Vqc`;MfQDvS6|wWYr{V!Mz#0%K7*geYM7b}^p=Nj9MUUR<%xd1 z+@hIu!Enuv69R$pMCPugz)z@`Db~CCfKY{R=OY?;Y zo#5x@+|HNoe5R_dKP_7lR+Q&YZ|VH*>2{nv4NAIBRDiYt7<7O^=zrB8r7#sp5v>v^ zpQE@dY%7#?y#u)3R<>=ZABCioj%K!xN#d%1u`fYS z6xB+nknU^<&tWvMy^rQ*zXWNz5|z=m<8kTIl~&wO<*WeV`ETzPX@Cli%4q-z{ObHo zt~s|`rILf_R_n{B;`h+PCz|of$ek_#Z(6P-ztCpjsBTB}ocSC3W)4+(7t>E5c9YTX* ztJa^s!z_VQYEyf$GQw(vR+unv`G?LVUpr7$?qfsMsa;!qg4MhLtq9$$SL&e-v<_x| z;LyWOi#kSL&<2YhIDd9`J=Ub=)AT4ia^Rc{Yx!rj-+AN}I%mXd&Zqii^2ZuV?Jy=h z0z8rM8G-aW2~Ofc8Q+Bl#r>~}kou!MPxHj0A$xud&j~ouDxZ@CR_F^S_7|UcJ@dv~ zcPAGz;l3YpN?KQT5>+@aO8l9$^K~UTr$YdDzrc&w*q!0t-_XPAMv)gtp9`s+2xGF* zIdbaIf8^yNZ$RulAHN@$wB5#dPuQ3iSMse-rQ$w~k+)Ao1>Z%TgUsiebfTi!e;9hu+v%1A zJYm~h<>?=e$RUR}x&4!Nf>RZvRM}xZqia)NLdiV?dta}0HcIBz5TiO$H?k~GK40|7 z#|MdoYFO%V%fh!$Epmk}>;U6Sg%^Q!I}!kLw@j&l|3xmIN@mFMpw_Qmt{qM;^YriY zV&TIMqyFAciRs*42QdB%kN-Zj0FQ=mr?75J$}nx{ZGL!At-iY%T?hQ2M&vf^-8-M@ zMNy6`|FT1SBDUZiF7x)-s}{1Kiv@|_A#Ng?<=z5SOHnp~@Nj{+(DCadG|hW)=#hh; zV(b$|rY6)Yc|g%Gh&lKf%|;N7{GcOKSo@8Oe%NJSn#l?)IF4?^?dDW?;^OE|i76Uk z>)q`XvKKj!dlOE0#3_FHM52dXBrgp1!7OI-(3T7HT&-tmNp8D)wL`=g{TrfTiY$Qf zblE!MZWK%0*1PfgF^fkZ9b^PN=r$B|Hs<@daL}X8;4+gS?Tx~jRq@P$VQ~5jLndXl z1U03hMB@0$0im}{Te>Vh(5%-X5(y7ucQpm+JRG-N5!&W?t{Pg;)`pJeEw-^5gQf;<2_wq&^z&*Dm9Sw9Ljv%f5t~(P=4dD?#4;Owa@cjvxxo(pxjp0 zpxHD1L|`^T_n#bb&ez0SmdUvL038^qqzdTWNj1$gMM_rN?Isb9qR6&G2Va;Qa^cDVG%kYx~s9m+gn*og%Bd*vv0Jq|2BQCQ`8%_ z-%BqvCeH&Xi$0Hz$LW9&4rMn62pWX=j?PA|_^4W8)xR%4vD}3BknfI21h$O2C(i7G zb{_9&u=)ST6kEwxx*AuW+fhkJU6?)9+i+;ivM?Lby(6uEx|nk+2?(F-sC~}x<Fu{JbH7P?X-v7u zgeRuvQpMr{AFQLoEFkp=NH;7GxTaQPTT&j8Z^ZQa6i!Q_pmh4C9l^6w*b7}1`F8I< z#`c#+NG&&takz$DKk=gY0AGo5y8CNvNb7&s7Oed9nA7{1#M+PT*ha(9zgzFcpM5io zx?IXvJK9da%2tZ#{XiVhZwx>V+n|DEp7;|YY1}Wa(kq!p2%yGXb zeaq73g;ITY7h!TzfYp@8z2Nnj zI0OD_Jym!J9NshBw+m#+rdb{T&usl| z`5WGri|yL^E+47!LAh#16y(lhbuUwW$Dz#V&*e$HO;2rTk#JVxTcwDkwI?YXI6t8(C&w+T znXr!Fe;l-}O1<%71s|ta@X{|z=U1=3T-(%%y%sdK8uZi~pl$vB5`mOHk7&?$mBKS7 zzHK!Bx>3q1?h*u_1le3l$Da_>vZWK=$wY)_iimi{ z2Af9Qle%2=Bl_0=ELQbcH6)tYNu}uN1!EuO+KD-}ITk*AsNP@2QBtX$I}VGy;IL>``s6|cWrAI~z^?Qj(^ok05j=l(GKQIER0Q*#E%ml> z|E@a3@e=_#zsd-K1cco168Yf27f{ziy2(kKbx*=(XS|1){U=HUx;Lg!i7m4CyYwQ& z-m~;bVQbvlHay_RO()od{=GWdCuZI+m$4;}evR2pkbO09`Sun)foQIcOy7!bYbA7b z{wJ*>9nS?b4cXa0YSVN5C(|>yk&8yAiz&BXJ}NC_=K``>fWO!qTh~#Z7({19Xh?Cq zGcMf60Jnl=Ec(sSW%(Er9p^pRAF!bWn(3W$jV9^Jx4*gLGL}W^bH2*Wo$O%!G=wa2 zOVz%waUtyZCJk05QZQ>xEWmOl9s`AMhNTZI?(j0XvGI$2MwCx$lrEXOe3h~vXAIu& z$((DCgVP62+|EQVT|Y>6F$!Xu3|^-I>cr1Xu!Nogf-xe4%FP@J3VrgVs?-4qb6^^b zqSYoPMPt=bJHz{T?8R|guZk&MJj6mv3Cb6p_OF&BHUbG}eCA%1xBhWn2%Mgra1-JB zSx7(&65VADOX}E==fKWI$h|o=H`?0^Gek|H?zRXV>qU|7KF5Kf19p-diVl_$KP7>g zmzGfA=^j9O<52`!AV}cY+PiYfwd_)O2N%^$Lp~LbclYI>{p8%c<5%m-B_`tAHs6w2hPuTl}JN$A34Zrog@17!ddBz>}#mr7Tyojlw(H>{TofH>!x_Kk~ZO1@4aR7 zx*XidV}K92&NO8lGncrmI?CHt z)0}|{M+D3|wRs;lUfef`rS3+pDPiEO(VBCDb#~0V3ec|j9AygD*&(mMqxMIe0KNNZ z71gn#8k=bBXtdcq&V)a$CEK}lz5M)`0;boYld{|gem~X~eo=zZ7F@gj-oFQu<@`37 zcFu_PXG6Z$Xnr{J#%&SEpB!0vMqIEOdcRx|RL?n^O6-BGvJ=Z$0S#HkzwvXrfb=9h zEGIoZ=%t+fE|-w;XhXiFay=!TBVwFs&OP5z=l!C$YP%rI@n&wK}VQqu={;;Y3j_?m=Q?|1Y&3Ie@&snoC z;@Z4H&}+z@&B%^hw;|_q&;5AZC@spHNB3N)x@_^Ft4&y>Br(NRvWwDz#w`bi8L&3+ zX*Y3WZnQ#(@~`l!HUuvidoak(qc{!=n5r!>8zFJsanUN^r_`G!3FjO~weSE^@%F`F z+}Ka4o*!z_6V{#u|Gjt`>OeDGcnb6IUI=21Q$F$Z`;dlsXEoEQPt_PC+j1k2Mx5>6TuiZWpZqbskuFL;@@=({IUg0ha>joN|C8MLL7I zcvdZ*5;+t0AINWB#N1sEWk?N=niHSY6HVAmbUb3S|*m4w{7@B z4jHz_x|Gi4zRoVpu?AAd{Ng_Uei?Yy*n{)i-j{8aMAWxa-#{@O-*k`&3Sl3W`>SRBgr z9Z5W-gYf8>$n@rC%>;twPs7AlJ3IQ{e8)qww3F{i;@Fyh$cNn?zxAC~I+`hrE^l28 zc)0tn7)-ZK1IE6l{>K{3{CW`2NPb$c=NrQ_#-`{{OnPriX-&>HZRM%y;ZkA0B##?= z72icA-u;bB;l&;X(!bJ12cf4?lq3wWj=2$mc)d+}9mDwg-zjDf^@J8F=dJ?RNcv>= zZgOtA|F?Dlq}Gq4uHWZs!?Am%=jx`j(ze+jNqGI%jS4|Q1AfE@XJiUUKpU9Qy%%2H z!Vm%ZHh;ik$dF=cLX|I*nyupXM)!`nBV!?(m(#h>8JVqGul@~CtqosFK zK|1cO^t2gL-OV;j?r@-^N+`FMv6C6(30AG2dRy(1fL9RPS;_bBg!*Ky+{{kO`CifI zT%EeSkR#Gk7YpPFz|};_xfD$YQ4z*}=%eT+hx74Ns#co;`iHu!Rr)kzQ^b!V^fj!X znGqmd7?Z+-z_jnKpGLR@fzz4vw#K+i|C{RBO-(sjUk;$xNrIP7Pk|zh2{zk8sT;zA zv()2*$eFf&SO*aSSI5Sy{TUWhFZOJK3WGgeJp2)=92M4z=iBD2cK)kw_gQa3)&rM?&JMzpnRJjt4g5b z=!qrJ4`_#oDa*#o#ra?tX0dp6(UB?qLA$eAI+USX=gMk1;Br-TgWh>`$ z4zCwyklo$6hDH2|toqg$EVV;flR0E=+lDNee|zy@13c)atjYwb?9IAa`=X5Pno1X= z;Zq65mx|n@e%Ixe&dx~#6(7y$`{aVJHu$ruai`n0X44OSZe^v@KIBp*?PgzSt^P?z z+ZpMOaW?N?HA))h{2U=?ERfSdBg0dUVRwN)s`kkmw5AWUOx?UKPLyjXZIan zKEvMt2{Cb55iw~I30V^{nfqeW_r;}z#3b&Ei7kx1`JaLL{~O@p<>clZ`2QbJn$-OX PKLF6tFi Date: Sun, 3 Feb 2019 16:05:24 -1000 Subject: [PATCH 08/15] fixed dupl code --- index.html | 120 ++++++++++++++++++++++------------------------------- 1 file changed, 49 insertions(+), 71 deletions(-) diff --git a/index.html b/index.html index 6db9878e..145b26d8 100644 --- a/index.html +++ b/index.html @@ -24,13 +24,9 @@ // read.innerHTML = 0; // unread.innerHTML = totalMessages - read.innerHTML; + //function to add messages - //Set interval for mail to add - setInterval(addMessage, 5000); - - function addMessage() { - var newMessage = getNewMessage(); - newMailArray.push(newMessage); + function createMessageBox(messageObject) { var messageBox = document.createElement('div'); messageBox.className = 'messages'; @@ -42,28 +38,49 @@ var mailFrom = document.createElement('div'); mailFrom.className = 'sender'; - mailFrom.innerHTML = 'From: ' + newMessage.sender; + mailFrom.innerHTML = 'From: ' + messageObject.sender; fromDate.appendChild(mailFrom); var mailDate = document.createElement('div'); mailDate.className = 'date'; - mailDate.innerHTML = newMessage.date; + mailDate.innerHTML = messageObject.date; fromDate.appendChild(mailDate); var mailSubject = document.createElement('div'); mailSubject.className = 'subject'; - mailSubject.innerHTML = 'Subject: ' + newMessage.subject; + mailSubject.innerHTML = 'Subject: ' + messageObject.subject; messageBox.appendChild(mailSubject); var mailBody = document.createElement('div'); mailBody.className = 'mailBody'; - mailBody.innerHTML = newMessage.body; + mailBody.innerHTML = messageObject.body; mailSubject.appendChild(mailBody); + } + - var messageArray = document.getElementsByClassName('messages'); + //Sort the contents in the mail array by date from newest to oldest + + newMailArray.sort(function (a, b) { + return a.date - b.date; + }); + + newMailArray.reverse() + + //For loop to consume data and such + for (var i = 0; i < newMailArray.length; i++) { + + createMessageBox(newMailArray[i]); + + } - for (var i = 0; i < messageArray.length; i++) { - messageArray[i].addEventListener('click', showMessage); + //Adds event listener to the messages box that will show the message content upon clicking. + + var subjectArray = document.getElementsByClassName('messages'); + + function clickMessage(anArray) { + + for (var i = 0; i < anArray.length; i++) { + anArray[i].addEventListener('click', showMessage); } function showMessage() { @@ -77,74 +94,35 @@ } } - - - - //Content for sidecount container - totalMessages = newMailArray.length; - ttlmess.innerHTML = totalMessages; - // unread.innerHTML = totalMessages - read.innerHTML; - } - //Sort the contents in the mail array by date from newest to oldest because why not cuz - newMailArray.sort(function (a, b) { - var dateA = (a.date), - dateB = (b.date); - return dateA - dateB; - }); - - //For loop to consume data and such - for (var i = 0; i < newMailArray.length; i++) { + clickMessage(subjectArray); - var messageBox = document.createElement('div'); - messageBox.className = 'messages'; - main.appendChild(messageBox); - - var fromDate = document.createElement('div'); - fromDate.className = 'fromDate'; - messageBox.appendChild(fromDate); - - var mailFrom = document.createElement('div'); - mailFrom.className = 'sender'; - mailFrom.innerHTML = 'From: ' + newMailArray[i].sender; - fromDate.appendChild(mailFrom); - - var mailDate = document.createElement('div'); - mailDate.className = 'date'; - mailDate.innerHTML = newMailArray[i].date; - fromDate.appendChild(mailDate); + //Set interval for mail to add more messages + setInterval(addMessage, 5000); - var mailSubject = document.createElement('div'); - mailSubject.className = 'subject'; - mailSubject.innerHTML = 'Subject: ' + newMailArray[i].subject; - messageBox.appendChild(mailSubject); + function addMessage() { + + var newMessageArr = []; + var newMessage = getNewMessage(); + newMessageArr.push(newMessage); + newMailArray.push(newMessage); - var mailBody = document.createElement('div'); - mailBody.className = 'mailBody'; - mailBody.innerHTML = newMailArray[i].body; - mailSubject.appendChild(mailBody); + for (var i = 0; i Date: Sun, 3 Feb 2019 16:58:14 -1000 Subject: [PATCH 09/15] added color --- css/style.css | 26 +++++++++++++++++++++----- index.html | 48 +++++++++++++++++++++++++++--------------------- 2 files changed, 48 insertions(+), 26 deletions(-) diff --git a/css/style.css b/css/style.css index f9d4c640..0e263c62 100644 --- a/css/style.css +++ b/css/style.css @@ -3,13 +3,14 @@ body{ margin: 0px; font-family: 'Quicksand', sans-serif; - cursor: nw-resize; + cursor: crosshair; + background-color: #fcf5ee; } -#header{ - background-color: #dbe2ef; +header{ + background-color: #65c6c4; font-family: 'Fahkwang', sans-serif; width: 100vw; height: 80px; @@ -19,6 +20,12 @@ body{ flex-direction: column; } +header:hover{ + font-size: 50px; + color: white; + +} + #maincontainer{ display: flex; justify-content: space-evenly; @@ -47,7 +54,7 @@ body{ .fromDate{ font-family: 'Quicksand', sans-serif; - background-color: #dbe2ef; + background-color: #65c6c4; color: #112d4e; padding: 5px 5px; display: flex; @@ -60,6 +67,10 @@ body{ padding: 10px 10px; } +.mailBody:hover{ + background-color: aquamarine; +} + .statbox{ display: flex; justify-content: space-between; @@ -72,6 +83,11 @@ body{ flex-direction: column; } +.subject:hover{ + background-color: lightpink; +} + .countstat{ - display: none; + display: flex; + justify-content: space-between; } diff --git a/index.html b/index.html index 145b26d8..2a886bbe 100644 --- a/index.html +++ b/index.html @@ -17,10 +17,15 @@ var newMailArray = mailArray; //content for sidecounter - var totalMessages = 0; - totalMessages = newMailArray.length; - ttlmess.innerHTML = totalMessages + function counterUpdate(ummArray){ + var totalMessages = 0; + totalMessages = ummArray.length; + ttlmess.innerHTML = totalMessages + } + + counterUpdate(newMailArray); + // read.innerHTML = 0; // unread.innerHTML = totalMessages - read.innerHTML; @@ -99,31 +104,32 @@ clickMessage(subjectArray); //Set interval for mail to add more messages - setInterval(addMessage, 5000); + setInterval(addMessage, 10000); function addMessage() { - - var newMessageArr = []; + var newMessage = getNewMessage(); - newMessageArr.push(newMessage); + + //push to check messages appearing correctly newMailArray.push(newMessage); - for (var i = 0; i
@@ -142,17 +148,17 @@

INBOX

Total Messages

-

+

0

Unread

-

+

0

Read

-

+

0

From 85f3d3092d69441156c4b250776ae137bd595415 Mon Sep 17 00:00:00 2001 From: kmietotwy Date: Sun, 3 Feb 2019 18:42:33 -1000 Subject: [PATCH 10/15] moved functions around --- css/style.css | 15 +++--- index.html | 125 ++++++++++++++++++++++++++------------------------ 2 files changed, 72 insertions(+), 68 deletions(-) diff --git a/css/style.css b/css/style.css index 0e263c62..b2096a44 100644 --- a/css/style.css +++ b/css/style.css @@ -5,6 +5,7 @@ body{ font-family: 'Quicksand', sans-serif; cursor: crosshair; background-color: #fcf5ee; + } @@ -16,25 +17,22 @@ header{ height: 80px; text-align: center; display: flex; - justify-content: center; + justify-content: space-evenly; flex-direction: column; } header:hover{ font-size: 50px; color: white; - -} - -#maincontainer{ - display: flex; - justify-content: space-evenly; } + #main{ margin: 50px 10px 50px 0px; width:78vw; + position: absolute; + right: 10px; } #sidecount{ @@ -42,11 +40,12 @@ header:hover{ margin-left: 10px; width: 15vw; padding-top: 50px; + position: fixed; } -.messages{ +.message{ margin: 0px 0px 10px 0px; border: 1px solid lightslategray; font-weight: 900; diff --git a/index.html b/index.html index 2a886bbe..7da7d93f 100644 --- a/index.html +++ b/index.html @@ -16,25 +16,43 @@ var mailArray = window.geemails var newMailArray = mailArray; + var unreadCount = 0; + var totalMessages = 0; + //content for sidecounter - function counterUpdate(ummArray){ - var totalMessages = 0; - totalMessages = ummArray.length; - ttlmess.innerHTML = totalMessages + function initializeCounter(messageCount){ + totalMessages = messageCount + ttlmess.innerHTML = totalMessages; + + unreadCount = messageCount; + unread.innerHTML = unreadCount; + } + + function messageReceived() { + totalMessages++; + ttlmess.innerHTML = totalMessages; + + unreadCount++; + unread.innerHTML = unreadCount; + } + + function messageRead() { + unreadCount--; + unread.innerHTML = unreadCount; } - counterUpdate(newMailArray); - - // read.innerHTML = 0; - // unread.innerHTML = totalMessages - read.innerHTML; + function totalMessagesUpdate(messageCount) { + totalMessages = messageCount; + ttlmess.innerHTML = totalMessages + } //function to add messages function createMessageBox(messageObject) { var messageBox = document.createElement('div'); - messageBox.className = 'messages'; + messageBox.className = 'message'; main.prepend(messageBox); var fromDate = document.createElement('div'); @@ -60,48 +78,39 @@ mailBody.className = 'mailBody'; mailBody.innerHTML = messageObject.body; mailSubject.appendChild(mailBody); + + setClickListener(messageBox); } + function setClickListener(message) { + message.addEventListener('click', showMessage); + } - //Sort the contents in the mail array by date from newest to oldest + function showMessage() { + + var showMess = this.querySelectorAll('.mailBody')[0]; + if (showMess.style.display === 'none') { + showMess.style.display = 'block'; + this.style.fontWeight = 'normal'; + } else { + showMess.style.display = 'none'; + } + + } + + //Sort the contents in the mail array by date from newest to oldest newMailArray.sort(function (a, b) { return a.date - b.date; }); - newMailArray.reverse() - //For loop to consume data and such for (var i = 0; i < newMailArray.length; i++) { - createMessageBox(newMailArray[i]); - } - //Adds event listener to the messages box that will show the message content upon clicking. - - var subjectArray = document.getElementsByClassName('messages'); - - function clickMessage(anArray) { - - for (var i = 0; i < anArray.length; i++) { - anArray[i].addEventListener('click', showMessage); - } - - function showMessage() { - - var showMess = this.querySelectorAll('.mailBody')[0]; - if (showMess.style.display === 'none') { - showMess.style.display = 'block'; - this.style.fontWeight = 'normal'; - } else { - showMess.style.display = 'none'; - } - - } - } + initializeCounter(newMailArray.length); - clickMessage(subjectArray); //Set interval for mail to add more messages setInterval(addMessage, 10000); @@ -116,13 +125,8 @@ //create new message box createMessageBox(newMessage); - //Update event listener - subArray = document.getElementsByClassName('messages'); - clickMessage(subArray); - //Update sidecount container - counterUpdate(newMailArray); - + messageReceived(); } @@ -141,32 +145,33 @@

Gee-mail!!!

-
-
-

INBOX

-
-

Total Messages

-

0

-
+
+ +

INBOX

-
-

Unread

-

0

-
- -
-

Read

-

0

-
+
+

Total Messages

+

0

+
+
+

Unread

+

0

+
+
+

Read

+

0

-
+ +
+ + \ No newline at end of file From 8c41165f069662b976559c22209330d83fc0869f Mon Sep 17 00:00:00 2001 From: kmietotwy Date: Sun, 3 Feb 2019 21:40:26 -1000 Subject: [PATCH 11/15] stlying --- css/style.css | 22 ++++++++++++++++++---- index.html | 20 +++++++++++--------- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/css/style.css b/css/style.css index b2096a44..a5b500a4 100644 --- a/css/style.css +++ b/css/style.css @@ -16,6 +16,8 @@ header{ width: 100vw; height: 80px; text-align: center; + position: fixed; + overflow: hidden; display: flex; justify-content: space-evenly; flex-direction: column; @@ -29,14 +31,19 @@ header:hover{ #main{ - margin: 50px 10px 50px 0px; - width:78vw; + top: 120px; + margin-left: 200px; + margin-top: 0px; + margin: 10px 10px 50px 0px; + width: 78vw; + height: 550px; position: absolute; + overflow-y: scroll; right: 10px; } #sidecount{ - margin-top: 50px; + margin-top: 100px; margin-left: 10px; width: 15vw; padding-top: 50px; @@ -44,11 +51,14 @@ header:hover{ } - .message{ margin: 0px 0px 10px 0px; + border-radius: 5px 0px 25px 0px; + overflow: hidden; + z-index: 1; border: 1px solid lightslategray; font-weight: 900; + } .fromDate{ @@ -70,6 +80,10 @@ header:hover{ background-color: aquamarine; } +.readStatus{ + display: none; +} + .statbox{ display: flex; justify-content: space-between; diff --git a/index.html b/index.html index 7da7d93f..70cb874f 100644 --- a/index.html +++ b/index.html @@ -79,10 +79,17 @@ mailBody.innerHTML = messageObject.body; mailSubject.appendChild(mailBody); + var readDiv = document.createElement('div'); + readDiv.className = 'readStatus'; + readDiv.innerHTML = messageObject.read; + mailSubject.appendChild(readDiv); + + setClickListener(messageBox); } function setClickListener(message) { + message.addEventListener('click', showMessage); } @@ -95,6 +102,7 @@ } else { showMess.style.display = 'none'; } + } @@ -104,8 +112,9 @@ return a.date - b.date; }); - //For loop to consume data and such + //For loop to consume data and such... initialize counter (orignal number) for (var i = 0; i < newMailArray.length; i++) { + newMailArray[i].read = false; createMessageBox(newMailArray[i]); } @@ -129,10 +138,6 @@ messageReceived(); } - - - - //Console log mail array to check messages are correct console.log(newMailArray); @@ -146,9 +151,8 @@

Gee-mail!!!

-
- +

INBOX

@@ -165,8 +169,6 @@

INBOX

Read

0

- -
From fca369902262764867b8c16cc497ae5294a6db44 Mon Sep 17 00:00:00 2001 From: kmietotwy Date: Mon, 4 Feb 2019 20:25:04 -1000 Subject: [PATCH 12/15] fixed counters with checkboxes --- css/style.css | 24 +++++++++++------- index.html | 67 ++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 70 insertions(+), 21 deletions(-) diff --git a/css/style.css b/css/style.css index a5b500a4..5e111ea1 100644 --- a/css/style.css +++ b/css/style.css @@ -5,11 +5,8 @@ body{ font-family: 'Quicksand', sans-serif; cursor: crosshair; background-color: #fcf5ee; - } - - header{ background-color: #65c6c4; font-family: 'Fahkwang', sans-serif; @@ -29,7 +26,6 @@ header:hover{ } - #main{ top: 120px; margin-left: 200px; @@ -48,7 +44,6 @@ header:hover{ width: 15vw; padding-top: 50px; position: fixed; - } .message{ @@ -58,7 +53,6 @@ header:hover{ z-index: 1; border: 1px solid lightslategray; font-weight: 900; - } .fromDate{ @@ -80,6 +74,12 @@ header:hover{ background-color: aquamarine; } +.markReadDiv{ + display: inline; + padding-top: 5px; + padding-right: 20px; +} + .readStatus{ display: none; } @@ -89,6 +89,15 @@ header:hover{ justify-content: space-between; } +.subjectBodyBox{ + display: flex; + justify-content: space-between; +} + +.subjectBodyBox:hover{ + background-color: lavender; +} + .subject{ padding: 5 5 5 5; display: flex; @@ -96,9 +105,6 @@ header:hover{ flex-direction: column; } -.subject:hover{ - background-color: lightpink; -} .countstat{ display: flex; diff --git a/index.html b/index.html index 70cb874f..6492fc3c 100644 --- a/index.html +++ b/index.html @@ -18,10 +18,11 @@ var unreadCount = 0; var totalMessages = 0; + var readCount = 0; //content for sidecounter - function initializeCounter(messageCount){ + function initializeCounter(messageCount) { totalMessages = messageCount ttlmess.innerHTML = totalMessages; @@ -40,6 +41,17 @@ function messageRead() { unreadCount--; unread.innerHTML = unreadCount; + + readCount++; + read.innerHTML = readCount; + } + + function messageUnread() { + unreadCount++; + unread.innerHTML = unreadCount; + + readCount--; + read.innerHTML = readCount; } function totalMessagesUpdate(messageCount) { @@ -47,6 +59,10 @@ ttlmess.innerHTML = totalMessages } + + + + //function to add messages function createMessageBox(messageObject) { @@ -69,27 +85,42 @@ mailDate.innerHTML = messageObject.date; fromDate.appendChild(mailDate); + var subBody = document.createElement('div'); + subBody.className = 'subjectBodyBox'; + messageBox.appendChild(subBody); + var mailSubject = document.createElement('div'); mailSubject.className = 'subject'; mailSubject.innerHTML = 'Subject: ' + messageObject.subject; - messageBox.appendChild(mailSubject); + subBody.appendChild(mailSubject); + + var markAsRead = document.createElement('div'); + markAsRead.className = 'markReadDiv'; + subBody.appendChild(markAsRead); + + var readCheckbox = document.createElement('input'); + readCheckbox.className = 'readBox'; + readCheckbox.type = 'checkbox'; + markAsRead.appendChild(readCheckbox); + + var markRead = document.createElement('span'); + markRead.className = 'markReadText'; + markRead.innerHTML = 'Mark as read'; + markAsRead.appendChild(markRead); var mailBody = document.createElement('div'); mailBody.className = 'mailBody'; mailBody.innerHTML = messageObject.body; - mailSubject.appendChild(mailBody); + messageBox.appendChild(mailBody); - var readDiv = document.createElement('div'); - readDiv.className = 'readStatus'; - readDiv.innerHTML = messageObject.read; - mailSubject.appendChild(readDiv); + setClickListener(messageBox); - setClickListener(messageBox); + setCheckboxListener(readCheckbox); } function setClickListener(message) { - + message.addEventListener('click', showMessage); } @@ -102,10 +133,23 @@ } else { showMess.style.display = 'none'; } - + + } + + function setCheckboxListener(checkbox) { + checkbox.addEventListener('change', readStatUpdate); } + function readStatUpdate() { + if (this.checked) { + messageRead(); + } else { + messageUnread(); + } + } + + //Sort the contents in the mail array by date from newest to oldest newMailArray.sort(function (a, b) { @@ -114,7 +158,6 @@ //For loop to consume data and such... initialize counter (orignal number) for (var i = 0; i < newMailArray.length; i++) { - newMailArray[i].read = false; createMessageBox(newMailArray[i]); } @@ -167,7 +210,7 @@

INBOX

Read

-

0

+

0

From 6762241d0145cbce4f765de792cb8cd80947b5ec Mon Sep 17 00:00:00 2001 From: kmietotwy Date: Mon, 4 Feb 2019 20:27:24 -1000 Subject: [PATCH 13/15] changed subject hover color --- css/style.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/css/style.css b/css/style.css index 5e111ea1..d13525ff 100644 --- a/css/style.css +++ b/css/style.css @@ -32,7 +32,7 @@ header:hover{ margin-top: 0px; margin: 10px 10px 50px 0px; width: 78vw; - height: 550px; + height: 525px; position: absolute; overflow-y: scroll; right: 10px; @@ -95,7 +95,7 @@ header:hover{ } .subjectBodyBox:hover{ - background-color: lavender; + background-color: hotpink; } .subject{ From f81de82edb4b142c2ce9b86d99d2d9bca6628c99 Mon Sep 17 00:00:00 2001 From: kmietotwy Date: Thu, 7 Feb 2019 19:10:45 -1000 Subject: [PATCH 14/15] added comments --- index.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index 6492fc3c..09b87950 100644 --- a/index.html +++ b/index.html @@ -59,10 +59,6 @@ ttlmess.innerHTML = totalMessages } - - - - //function to add messages function createMessageBox(messageObject) { @@ -119,6 +115,8 @@ setCheckboxListener(readCheckbox); } + //function to set click listener to show message upon clicking messageBox + function setClickListener(message) { message.addEventListener('click', showMessage); @@ -137,6 +135,8 @@ } + //function to set click listener on check box to update read count + function setCheckboxListener(checkbox) { checkbox.addEventListener('change', readStatUpdate); } From 86f4166e7723982c00b67e127905a949c6335ee7 Mon Sep 17 00:00:00 2001 From: kmietotwy Date: Thu, 7 Feb 2019 20:19:44 -1000 Subject: [PATCH 15/15] added note to show message --- css/style.css | 6 +++++- index.html | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/css/style.css b/css/style.css index d13525ff..576adbe0 100644 --- a/css/style.css +++ b/css/style.css @@ -26,6 +26,10 @@ header:hover{ } +p{ + font-size: 12px; +} + #main{ top: 120px; margin-left: 200px; @@ -39,7 +43,7 @@ header:hover{ } #sidecount{ - margin-top: 100px; + margin-top: 70px; margin-left: 10px; width: 15vw; padding-top: 50px; diff --git a/index.html b/index.html index 09b87950..5b19a5f7 100644 --- a/index.html +++ b/index.html @@ -197,6 +197,7 @@

Gee-mail!!!

INBOX

+

Note: Click on From/Subject to Show Message

Total Messages