From 45981bdb3dd7071ed1d1bacb3ddd25e8aa64d153 Mon Sep 17 00:00:00 2001 From: lqdev Date: Fri, 8 Mar 2024 22:40:19 +0100 Subject: [PATCH] add favicon --- Cargo.lock | 137 +++++++++++++++++++++++++++ crates/treehouse/Cargo.toml | 1 + crates/treehouse/src/cli/generate.rs | 18 +++- crates/treehouse/src/fun.rs | 1 + crates/treehouse/src/fun/seasons.rs | 78 +++++++++++++++ crates/treehouse/src/main.rs | 1 + static/favicon/@16x.png | Bin 0 -> 3719 bytes static/favicon/@1x.png | Bin 0 -> 345 bytes static/favicon/@2x.png | Bin 0 -> 524 bytes static/favicon/@32x.png | Bin 0 -> 7739 bytes static/favicon/@4x.png | Bin 0 -> 948 bytes static/favicon/@8x.png | Bin 0 -> 1809 bytes static/favicon/autumn@16x.png | Bin 0 -> 4167 bytes static/favicon/autumn@1x.png | Bin 0 -> 409 bytes static/favicon/autumn@2x.png | Bin 0 -> 636 bytes static/favicon/autumn@32x.png | Bin 0 -> 8477 bytes static/favicon/autumn@4x.png | Bin 0 -> 1134 bytes static/favicon/autumn@8x.png | Bin 0 -> 2095 bytes static/favicon/spring@16x.png | Bin 0 -> 4065 bytes static/favicon/spring@1x.png | Bin 0 -> 404 bytes static/favicon/spring@2x.png | Bin 0 -> 633 bytes static/favicon/spring@32x.png | Bin 0 -> 8445 bytes static/favicon/spring@4x.png | Bin 0 -> 1130 bytes static/favicon/spring@8x.png | Bin 0 -> 2056 bytes static/favicon/summer@16x.png | Bin 0 -> 3996 bytes static/favicon/summer@1x.png | Bin 0 -> 429 bytes static/favicon/summer@2x.png | Bin 0 -> 634 bytes static/favicon/summer@32x.png | Bin 0 -> 8301 bytes static/favicon/summer@4x.png | Bin 0 -> 1083 bytes static/favicon/summer@8x.png | Bin 0 -> 1985 bytes static/favicon/winter@16x.png | Bin 0 -> 4046 bytes static/favicon/winter@1x.png | Bin 0 -> 414 bytes static/favicon/winter@2x.png | Bin 0 -> 649 bytes static/favicon/winter@32x.png | Bin 0 -> 8256 bytes static/favicon/winter@4x.png | Bin 0 -> 1115 bytes static/favicon/winter@8x.png | Bin 0 -> 2052 bytes template/components/_head.hbs | 13 +++ 37 files changed, 245 insertions(+), 4 deletions(-) create mode 100644 crates/treehouse/src/fun.rs create mode 100644 crates/treehouse/src/fun/seasons.rs create mode 100644 static/favicon/@16x.png create mode 100644 static/favicon/@1x.png create mode 100644 static/favicon/@2x.png create mode 100644 static/favicon/@32x.png create mode 100644 static/favicon/@4x.png create mode 100644 static/favicon/@8x.png create mode 100644 static/favicon/autumn@16x.png create mode 100644 static/favicon/autumn@1x.png create mode 100644 static/favicon/autumn@2x.png create mode 100644 static/favicon/autumn@32x.png create mode 100644 static/favicon/autumn@4x.png create mode 100644 static/favicon/autumn@8x.png create mode 100644 static/favicon/spring@16x.png create mode 100644 static/favicon/spring@1x.png create mode 100644 static/favicon/spring@2x.png create mode 100644 static/favicon/spring@32x.png create mode 100644 static/favicon/spring@4x.png create mode 100644 static/favicon/spring@8x.png create mode 100644 static/favicon/summer@16x.png create mode 100644 static/favicon/summer@1x.png create mode 100644 static/favicon/summer@2x.png create mode 100644 static/favicon/summer@32x.png create mode 100644 static/favicon/summer@4x.png create mode 100644 static/favicon/summer@8x.png create mode 100644 static/favicon/winter@16x.png create mode 100644 static/favicon/winter@1x.png create mode 100644 static/favicon/winter@2x.png create mode 100644 static/favicon/winter@32x.png create mode 100644 static/favicon/winter@4x.png create mode 100644 static/favicon/winter@8x.png diff --git a/Cargo.lock b/Cargo.lock index f5b18a3..734c92f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -26,6 +26,21 @@ dependencies = [ "memchr", ] +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "anstream" version = "0.3.2" @@ -201,6 +216,12 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bumpalo" +version = "3.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" + [[package]] name = "bytemuck" version = "1.14.3" @@ -234,6 +255,20 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "chrono" +version = "0.4.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "wasm-bindgen", + "windows-targets 0.52.3", +] + [[package]] name = "clap" version = "4.3.22" @@ -306,6 +341,12 @@ dependencies = [ "walkdir", ] +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + [[package]] name = "cpufeatures" version = "0.2.9" @@ -693,6 +734,29 @@ dependencies = [ "tokio", ] +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + [[package]] name = "idna" version = "0.5.0" @@ -757,6 +821,15 @@ dependencies = [ "rayon", ] +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +dependencies = [ + "wasm-bindgen", +] + [[package]] name = "lebe" version = "0.5.2" @@ -1496,6 +1569,7 @@ dependencies = [ "anyhow", "axum", "base64", + "chrono", "clap", "codespan-reporting", "copy_dir", @@ -1620,6 +1694,60 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + [[package]] name = "weezl" version = "0.1.8" @@ -1657,6 +1785,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.3", +] + [[package]] name = "windows-sys" version = "0.48.0" diff --git a/crates/treehouse/Cargo.toml b/crates/treehouse/Cargo.toml index 218c818..b2facbf 100644 --- a/crates/treehouse/Cargo.toml +++ b/crates/treehouse/Cargo.toml @@ -28,3 +28,4 @@ walkdir = "2.3.3" ulid = "1.0.0" url = "2.5.0" base64 = "0.21.7" +chrono = "0.4.35" diff --git a/crates/treehouse/src/cli/generate.rs b/crates/treehouse/src/cli/generate.rs index 583c9d1..7370c20 100644 --- a/crates/treehouse/src/cli/generate.rs +++ b/crates/treehouse/src/cli/generate.rs @@ -19,6 +19,7 @@ use walkdir::WalkDir; use crate::{ cli::parse::parse_tree_with_diagnostics, config::{Config, ConfigDerivedData}, + fun::seasons::Season, html::{ breadcrumbs::breadcrumbs_to_html, navmap::{build_navigation_map, NavigationMap}, @@ -68,13 +69,15 @@ pub struct Thumbnail { #[derive(Serialize)] struct StaticTemplateData<'a> { config: &'a Config, + season: Option, } #[derive(Serialize)] struct PageTemplateData<'a> { - pub config: &'a Config, - pub page: Page, - pub feeds: &'a HashMap, + config: &'a Config, + page: Page, + feeds: &'a HashMap, + season: Option, } impl Generator { @@ -231,7 +234,13 @@ impl Generator { for (name, &file_id) in &template_file_ids { let filename = name.rsplit_once('/').unwrap_or(("", name)).1; if !filename.starts_with('_') { - let templated_html = match handlebars.render(name, &StaticTemplateData { config }) { + let templated_html = match handlebars.render( + name, + &StaticTemplateData { + config, + season: Season::current(), + }, + ) { Ok(html) => html, Err(error) => { Self::wrangle_handlebars_error_into_diagnostic( @@ -307,6 +316,7 @@ impl Generator { tree, }, feeds: &feeds, + season: Season::current(), }; let template_name = roots .attributes diff --git a/crates/treehouse/src/fun.rs b/crates/treehouse/src/fun.rs new file mode 100644 index 0000000..70853bc --- /dev/null +++ b/crates/treehouse/src/fun.rs @@ -0,0 +1 @@ +pub mod seasons; diff --git a/crates/treehouse/src/fun/seasons.rs b/crates/treehouse/src/fun/seasons.rs new file mode 100644 index 0000000..269c2fc --- /dev/null +++ b/crates/treehouse/src/fun/seasons.rs @@ -0,0 +1,78 @@ +use chrono::{Datelike, Utc}; +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Deserialize, Serialize)] +#[serde(rename_all = "snake_case")] +pub enum Season { + Spring, + Summer, + Autumn, + Winter, +} + +impl Season { + pub fn on(month: u32, day: u32) -> Option { + let md = (month, day); + Some(match () { + _ if ((1, 1)..=(3, 20)).contains(&md) => Season::Winter, + _ if ((3, 21)..=(6, 21)).contains(&md) => Season::Spring, + _ if ((6, 22)..=(9, 22)).contains(&md) => Season::Summer, + _ if ((9, 23)..=(12, 21)).contains(&md) => Season::Autumn, + _ if ((12, 22)..=(12, 31)).contains(&md) => Season::Winter, + // Just in case something really darn weird happens to the calendar. + _ => return None, + }) + } + + pub fn current() -> Option { + let now = Utc::now(); + Self::on(now.month(), now.day()) + } +} + +#[cfg(test)] +mod tests { + use crate::fun::seasons::Season; + + #[test] + fn all_the_seasons() { + assert_eq!(Season::on(0, 0), None); + assert_eq!(Season::on(1, 1), Some(Season::Winter)); + assert_eq!(Season::on(1, 15), Some(Season::Winter)); + assert_eq!(Season::on(1, 31), Some(Season::Winter)); + assert_eq!(Season::on(2, 1), Some(Season::Winter)); + assert_eq!(Season::on(2, 28), Some(Season::Winter)); + assert_eq!(Season::on(2, 29), Some(Season::Winter)); + assert_eq!(Season::on(3, 1), Some(Season::Winter)); + assert_eq!(Season::on(3, 20), Some(Season::Winter)); + assert_eq!(Season::on(3, 21), Some(Season::Spring)); + assert_eq!(Season::on(3, 22), Some(Season::Spring)); + assert_eq!(Season::on(4, 1), Some(Season::Spring)); + assert_eq!(Season::on(4, 30), Some(Season::Spring)); + assert_eq!(Season::on(5, 1), Some(Season::Spring)); + assert_eq!(Season::on(5, 31), Some(Season::Spring)); + assert_eq!(Season::on(6, 1), Some(Season::Spring)); + assert_eq!(Season::on(6, 21), Some(Season::Spring)); + assert_eq!(Season::on(6, 22), Some(Season::Summer)); + assert_eq!(Season::on(6, 30), Some(Season::Summer)); + assert_eq!(Season::on(7, 1), Some(Season::Summer)); + assert_eq!(Season::on(7, 31), Some(Season::Summer)); + assert_eq!(Season::on(8, 1), Some(Season::Summer)); + assert_eq!(Season::on(8, 31), Some(Season::Summer)); + assert_eq!(Season::on(9, 1), Some(Season::Summer)); + assert_eq!(Season::on(9, 22), Some(Season::Summer)); + assert_eq!(Season::on(9, 23), Some(Season::Autumn)); + assert_eq!(Season::on(9, 30), Some(Season::Autumn)); + assert_eq!(Season::on(10, 1), Some(Season::Autumn)); + assert_eq!(Season::on(10, 31), Some(Season::Autumn)); + assert_eq!(Season::on(11, 1), Some(Season::Autumn)); + assert_eq!(Season::on(11, 30), Some(Season::Autumn)); + assert_eq!(Season::on(12, 1), Some(Season::Autumn)); + assert_eq!(Season::on(12, 21), Some(Season::Autumn)); + assert_eq!(Season::on(12, 22), Some(Season::Winter)); + assert_eq!(Season::on(12, 22), Some(Season::Winter)); + assert_eq!(Season::on(12, 31), Some(Season::Winter)); + assert_eq!(Season::on(12, 32), None); + assert_eq!(Season::on(21, 37), None); + } +} diff --git a/crates/treehouse/src/main.rs b/crates/treehouse/src/main.rs index 7d92ace..7cd81b8 100644 --- a/crates/treehouse/src/main.rs +++ b/crates/treehouse/src/main.rs @@ -11,6 +11,7 @@ use log::{error, info, warn}; mod cli; mod config; +mod fun; mod html; mod paths; mod state; diff --git a/static/favicon/@16x.png b/static/favicon/@16x.png new file mode 100644 index 0000000000000000000000000000000000000000..7e37b4ad4c92069357d9988b695a91f55a38769a GIT binary patch literal 3719 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 literal 0 HcmV?d00001 diff --git a/static/favicon/@1x.png b/static/favicon/@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..d5b390f6f42f3753d19af1bdd45783955b5074d3 GIT binary patch literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eB{yR?>$B+uf*2%nrhYWaHjn^?9VAMFkBvxR+ zIoW{y45JVm*9{RKksP6dfP1gECfnzJ+jly4`m)T~X){H$T?5%n-cIXdj5)|y@KILA zG05iN6@i?&x20?Meks%cJ+pqx%cM8kxHyViMJ}>z)~<2zO5YI4EE62Gt3iB6W28)f zxaZV8k2kq(2|88Jv*}p(VwDw3<;+diZdo@aq@uX4ed9HD50$p}c012ytx>IDy6j*$e~>oVyb1~_n!qOAKrLS#iHnBuKL|HCNX~N-ACt~|Kk!AHb3sakK>Jlx^gz^ n0+T&ee=xn`l~WMOSt+loaqso5;5+AmK4bP0l+XkK_iKLk literal 0 HcmV?d00001 diff --git a/static/favicon/@2x.png b/static/favicon/@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..05a394879f56f69c44f37fd0152db554208acc2a GIT binary patch literal 524 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 aRR{lOKe#aZ?`G6J!uB7WHs@{Rp7}3LCK0p% literal 0 HcmV?d00001 diff --git a/static/favicon/@4x.png b/static/favicon/@4x.png new file mode 100644 index 0000000000000000000000000000000000000000..e72b58c9d360c6e0ad538aee5cee5bbf4e38cc25 GIT binary patch literal 948 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 literal 0 HcmV?d00001 diff --git a/static/favicon/autumn@1x.png b/static/favicon/autumn@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c682ebad283b3790ee86c543cf313e9856de75e2 GIT binary patch literal 409 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 literal 0 HcmV?d00001 diff --git a/static/favicon/spring@1x.png b/static/favicon/spring@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..3caeb2e9e17e83c52f755d4acb153c2cf65d9cf4 GIT binary patch literal 404 zcmV;F0c-w=P)9)p!e5NYc-%YO(}sc7P8ABs5h3& z4C;PK&A(R?a5F0?Q$^j+`2=?GixBJ}nNNVaMv%aHlD3CafBual&g3^Apw4@6P9fmY z*kDJ*A7W!g0o_j=>!|W_5#+}4{hFnDL>IeqiqA7@+?LYQC(zv(%Crw`cJ+c~z!}l1 z8858BLpAGA9Oc{@n0MZ=5E=$+$J^5_)LI)-Ah!+soK#)~+7_ literal 0 HcmV?d00001 diff --git a/static/favicon/spring@2x.png b/static/favicon/spring@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..120c2e116bff11ee65c6bf04be5a3abad6aadf66 GIT binary patch literal 633 zcmV-<0*3vGP)Wb z!!Qs&Cn4euMM#KNhyg|zSz$!tA271Q2qPo>1x8j@7#U%Nm9b2yMFP^i03=swl8J6lougZbnegMC#fLC^Cj%96NIUCIF46r%n zt@H`FsQCJwNW@4L8}#w}iXbsdM0!pDmAjWE_;Z~gh|nd`F$TPnqoh1ag6C_X1EceX zWzdDLOlJ!`>YXN#kz*wt0kH|XAPscn5((&>q6IZ|*~BbhW9e&@SEvKWPguebb;8(~ z0&N0-1n^5?iD>4aG!xlj?Ju@1Rhzc=kg5(f~reyj)Gj!uHcLuFU5l9`{ao%l{Bvc=lq36lsESl z{0#A#^)BF4KtXx-Oo46%jO0_`$=V@lUK`Cy>suge!>~XWKwr2IU$H;>5d$*97%(?y z{HixVu$57N47y_X<`dkj0i~mWb(8}mYyaMc=GJt_OQV;-w#{h9UCi#*?tH4oQdc=P zu%XV@1+&5ulXN$D1;6X<7A#`{TOS8gSeQw70sDU$fhOd02NpaW2-wpFv9=k*Cs#}`UIqk$(!zoK1hsJbqo9eejWFm ToZLy600000NkvXXu0mjf#?B2~ literal 0 HcmV?d00001 diff --git a/static/favicon/spring@32x.png b/static/favicon/spring@32x.png new file mode 100644 index 0000000000000000000000000000000000000000..396952cdd077e9fe0a03145d3a2ec7b0ecb43bac GIT binary patch literal 8445 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 literal 0 HcmV?d00001 diff --git a/static/favicon/spring@8x.png b/static/favicon/spring@8x.png new file mode 100644 index 0000000000000000000000000000000000000000..4653b586d5e453f0559857eb6e8994c542c1ff46 GIT binary patch literal 2056 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 C1w>;2 literal 0 HcmV?d00001 diff --git a/static/favicon/summer@1x.png b/static/favicon/summer@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..8212f020ca0366f944dd6534af873072873ec733 GIT binary patch literal 429 zcmV;e0aE^nP)QS!_^ zIV^QhJ?aW?B*MhoGY=QX@dFjQ1}!o-odK2$>8JwQI4Qe*lU3gMb!5B{knEk0i>3an z)bGDhT5X9hd)S!@EBh|~!#tl6BX64nS0KsTsc4YMz{|=P27!iaV>cUhfgGh#y*c%` zL4MyvYW4JN3WZHewz{-%e&qvtDBX8H7tq=VL XmH3X?<&}TB00000NkvXXu0mjf84|ck literal 0 HcmV?d00001 diff --git a/static/favicon/summer@2x.png b/static/favicon/summer@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4d429a5c112c04b885ef375f8451ffd7504ed62d GIT binary patch literal 634 zcmV-=0)_pFP)oox$@0*azHlgy?CfB^H zHt??4U_Cko?gevev9Oc?1E;UPi3mM5wx@{@UV3H#gWq1%d)-C^BD^9D^HzCpGXE2SWjw?y7jmTsOGxHxy8KX#p>o0i#}F7Jx6I-OdZobA|%U!t<=|6wEj+V3u;J z1?6H3KEx(o6ulx8nbf`4&oM8s1Xl0cMNS(90UB3ddSh~;0tstNOHo5y9T6^!}kIT)?dm1f>{VfCSVlcv5h*SVt0rhI7}TZd4uBt zmZG^EQfn?3+wfZAKNYEQiN+HQ+sU@9-U}@MUq--*dhTgABUrll?k5@P#LYa@`?xdU z_9$zJdpw06<9$JPXXO^)@+b|f+-*`^eJ=Y${s+VCsm_X#fBK literal 0 HcmV?d00001 diff --git a/static/favicon/summer@32x.png b/static/favicon/summer@32x.png new file mode 100644 index 0000000000000000000000000000000000000000..d5ddf9f44a3784c115316624590b179112878f86 GIT binary patch literal 8301 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 CfQWJc literal 0 HcmV?d00001 diff --git a/static/favicon/summer@4x.png b/static/favicon/summer@4x.png new file mode 100644 index 0000000000000000000000000000000000000000..a944ee5ace8f586d44707cf3da16b41a161290a8 GIT binary patch literal 1083 zcmV-B1jPG^P)@~0drDELIAGL9O(c600d`2O+f$vv5yP%t;d? z-&g3P&GPNXf%Sa0J3+nYlGJxGMFT@=$`5r=SR^=t;Mc`H`ZT{s#kGG@ z@9#aEq{6jM8ob(J31bqi0>H|%6D7;?DnN*l(Jm?scakZz39z!bPj4qnRN4;y@2-z# zXyk4enLtYnz~W~n{*W%-&+J(DCPWB)!NKiyF5U(rEY0r{H-QCsGrmn+%uVh{2U1l6 z39vA`>!da==B9Rt6J-J5`bc-&Afu>e6&aKTz?b5-z70H$3uOTi`Ava1pd-Dyp)3G* za1z1dxjs)x08We4`%Dg$1TejL&d+Sm14se1vr$2*7s&RQ7XY22jhKFew$Dleh+oDO z5FPaZimwU*%HO3wpSBt&6)}|C;qg0Lp#;NvsI<`yNrnYOecWezsOdll*=W`1dkNTc zz11(~O5Y$rgxo;Nx-4Yyd{@x%R+zvG0tujVycGs^2Pq>$O$=CFJ{oVe>f&u=OXms! zY`2dBvIeXWV4)m9THW%E;s|gw;W5|ab0b@>J5gfk9sdN@B&Z5eHI{xKI@@q=m7*iS z#=2aNfAF%qZgjPS}^cBfuHM2NRlw6A!o)FAuQS z>m+E|_OVs!06*-pUQ&EQR)kguYqdR~;=&&s4)3&njSBt_Xe$*;fFn1`MBTo zLSW&rIu`EN<|}QEqI5;NEUq0Lga5S|t{_-srhG#s+n-NanM`)Rk!b&BDCV>UpqRtn z|4u*Ow$2uKfr88HH$w=pm=}my=jqgGtpysp2V{H>RMktV*rpd>MDmAQ literal 0 HcmV?d00001 diff --git a/static/favicon/summer@8x.png b/static/favicon/summer@8x.png new file mode 100644 index 0000000000000000000000000000000000000000..a529a15673b42a3c2b6f93320638de8d6fc89310 GIT binary patch literal 1985 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 IM6N<$g4S@bG5`Po literal 0 HcmV?d00001 diff --git a/static/favicon/winter@2x.png b/static/favicon/winter@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f4c28eae2b5fc82bf6ede1baa6172d6bab233c2d GIT binary patch literal 649 zcmV;40(Sk0P)yyg^J>DF8PzXWfD}w1~IR6vP>hvv(E} zP3`KCRGoC+1o!rW&Jx?(Tl?NlN_YNPaP81jUb{IZ$D|C1)M(QvYF9_Gjg#)PsXMKg zfr)A87nA`D-O7D?4nOFE2BI`HU@fnCuGd4v)SP$rolxco!eNz`ovbndU;TNr?=GNJNyo){}}<3 z=(_jStRailPKir;;Na5ed;AQf#zU7{Cq8}|FVb^h3O@i8R9pZgT>NjOkIpQDDeM5E j#j0O|2Y+I8`DMxvINI_@`<;`<00000NkvXXu0mjflmHj6 literal 0 HcmV?d00001 diff --git a/static/favicon/winter@32x.png b/static/favicon/winter@32x.png new file mode 100644 index 0000000000000000000000000000000000000000..3516580a81a61676741a2fb83cc6b86a473009d8 GIT binary patch literal 8256 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 literal 0 HcmV?d00001 diff --git a/static/favicon/winter@8x.png b/static/favicon/winter@8x.png new file mode 100644 index 0000000000000000000000000000000000000000..2924180ad009a4d4bed3134fedffe716f6f4155f GIT binary patch literal 2052 zcmV+f2>bVmP)@$G+SW_M?1g9~5(9RuSn z0vNAh0eB7zz;jptp2Gt092S7*umC)#2M!Ru*atZH9iqbnfPelxeY`w^`1t7TJ;BuL z0Ml=&M}Uw1RS0JK>U*CFsBQ#B`*OgaJqCFG?d0BY7hegM(#7IX;?ez>%%VgwhlQUEyHhd+J;@!>w$f*9O_P+9}mux=TMgRTa@ z1CyUewDXf%TB0>@39AI42LJwskwC8w${or7TPOoWSFmO$@XYL6I{0Iv-*#XqgHl(p zLI7&;H#e*^`&lRv$N<#^tPsGkqh($bFeZrio&a?^7XU8xV!76*$jQ(2ggZ&60#K$O zqid?jcxAY~36$wn0MtJ`1l<5t3x;$i0Q}Hg@SzChfUq+GxDrJpO3Xy9KqmsA{DEab zRnVOXKqYcG231jaBY@{_`2I;Ef-#M80jR*w^6lQb#CuPH8pZ_>5&V$Kg8LfOHipbw zfEV_h@wWlBIKZp`r0KUQ$)gRZ{eDIT;QH)G;{88>62>in^AP(T%~}BBCue2gATS5a z^z{Nlzb6-mwt($vZRcSDw16r^B?1ee4KA_(Qt_htmeA}+%nE?e%%}@Bk((_H@xlVU zmiqMBIRQR!B21k=#FajDiCF;7oT5wsQqsC|Dt{~vutR1A<2B{S)$z6A0!3m0xc8)y>% z4s`r%=d@QJX2^PQ@@I-@dlLlqG;ARzXdDEpr4Hc&Pb#4G?0x*D_SHdc3%~}HcTgw*Hv9IWb3Aedpq6<&_)e240P+o-m{Md4AabaMi)-l2t4I|9 z&VKBM$=HYPq?%L#@a(skH{JxDq+0;q-?x{x4})Sp%C(wc`m%D*(Sh6$!gBlZ{>=C~ zyxFUjl1mc;h&0cBymP0?0S2x_@?28ef4^;H9>QVTIewMm7$=viOyh!>A>jgIOz2=p zqk?!$C&Nv=f~FkF7=X>cGpOX!AMQ$*k=>V3r2P=%7Q=_%W(M|23&4jyPI8iQ5f_(- z`@->2YOtFWfDiS1o}zYlC)(E}1Q1;0ynUA$PAnr6Y2nIOIC7B#lLYe#d#iWO{+!|h z*aEoBc09`jMU|I%OdFSE)4gx*oe12y#2xJT3Jm=2`MBa;xdjvDDPViJ05KQY$ zI$$hfBFInQ37l=eH3`!VlP*5BGDyg^;!xAgUYrkL7s15jPPG8y?d!m}$z+U|?gB6l z=(8Je4jk7jMM2>Bg}HZuaf@JPHt}4x0Okk0DdZSxOedeqe779@aA6r3cSv*Vxd|cS z{Tplr96?+gq;B%%X9Teoa0W5InEHHin>cxJ@Za}$Ia`=Aa^_$7^sCgDigN;`73eLk z0z;SH%6jH&rIJFi)QDXHO_cA?+0!YV6)bSOl}`$3A;(J$ZsxwFd|EiV0?Z}jRRI}7 zc}`NfHZTv>uXgPYF!qCoWN8~eiT6Q8FrgsK2`ZTG5g4*Z2U)Vxwg>$P#Jx#aeJi1(fX(>`eO!w)`bl*!%7y@6PTs;mK@AG8DBD_C-w zS4689M`BkB)zL~*f~oIdMh^~pfZMy8+Qk{UIaFPoJQ72Epts+>^WX*3@+cSA_Ez2+ zRtMFK@Ngd@tW+J{s2v~w>vww^OxVPtjVpcS)A5=(kOSU!rB){bVC;c=1bGe%z;jpt zp2Gt092S7*umC)V1>iZgZx6SHruF@Jj2bSjL0wMneV*H3JN)pr)#di&EkM(qvL@Zp z)z)^w&)eQ>fxZBm9*Q)$Afw3g1O!U#>Bj&%EWpd^XAq@k|D64uR_F^rLt<(jH&7<- zpwMN-`xpSJdLwt4*^haW6nZW?u?%e5*RZkx%FKQuEq2`42bj79O{n4m%FKR*g8xU{ z5I|E?TVW+oYR>^La3s=m*%1rS?2d!7D}mCppHQb&M`8dCfnbS&ExY4L#s4ELfDuK3 zVA+5I7=lc2}DHM56yOjs$@kiX?JY0#!~Msr6Xq7+^%! iN}$T@r?UHZp8o+Q5JWj)xhPHm0000 {{/if}} + + + + + + + + + + + + +