pub struct Logo {
pub lines: &'static [&'static str],
pub sgr: &'static str,
}
pub fn get(selector: &str) -> Option<Logo> {
let sel = selector.to_ascii_lowercase();
if sel == "none" || sel == "off" {
return None;
}
let name = if sel == "auto" { detect_distro() } else { sel };
Some(
known(&name)
.or_else(|| known(&detect_distro()))
.unwrap_or(Logo {
lines: TUX,
sgr: TUX_SGR,
}),
)
}
fn detect_distro() -> String {
let id = std::fs::read_to_string("/etc/os-release")
.ok()
.and_then(|s| {
s.lines().find_map(|l| {
l.strip_prefix("ID=")
.map(|v| v.trim().trim_matches('"').to_ascii_lowercase())
})
})
.unwrap_or_default();
normalize(&id)
}
fn normalize(id: &str) -> String {
if id.starts_with("opensuse") {
return "opensuse".to_string();
}
match id {
"linuxmint" => "mint",
"raspbian" | "raspberry-pi-os" => "debian",
"popos" => "pop",
"" => "tux",
other => other,
}
.to_string()
}
fn known(name: &str) -> Option<Logo> {
Some(match name {
"debian" => Logo {
lines: DEBIAN,
sgr: "38;2;215;7;81",
},
"arch" => Logo {
lines: ARCH,
sgr: "38;2;23;147;209",
},
"ubuntu" => Logo {
lines: UBUNTU,
sgr: "38;2;233;84;32",
},
"fedora" => Logo {
lines: FEDORA,
sgr: "38;2;60;110;180",
},
"mint" => Logo {
lines: MINT,
sgr: "38;2;111;190;70",
},
"manjaro" => Logo {
lines: MANJARO,
sgr: "38;2;53;191;92",
},
"pop" => Logo {
lines: POP,
sgr: "38;2;72;185;199",
},
"opensuse" => Logo {
lines: OPENSUSE,
sgr: "38;2;115;186;37",
},
"alpine" => Logo {
lines: ALPINE,
sgr: "38;2;12;89;191",
},
"void" => Logo {
lines: VOID,
sgr: "38;2;71;138;58",
},
"nixos" => Logo {
lines: NIXOS,
sgr: "38;2;82;119;195",
},
"gentoo" => Logo {
lines: GENTOO,
sgr: "38;2;148;120;185",
},
"endeavouros" | "endeavour" => Logo {
lines: ENDEAVOUROS,
sgr: "38;2;155;80;190",
},
"kali" => Logo {
lines: KALI,
sgr: "38;2;39;127;219",
},
"elementary" => Logo {
lines: ELEMENTARY,
sgr: "38;2;64;142;203",
},
"zorin" => Logo {
lines: ZORIN,
sgr: "38;2;21;166;225",
},
"artix" => Logo {
lines: ARTIX,
sgr: "38;2;39;166;219",
},
"rocky" => Logo {
lines: ROCKY,
sgr: "38;2;16;185;129",
},
"almalinux" | "alma" => Logo {
lines: ALMALINUX,
sgr: "38;2;24;118;210",
},
"centos" => Logo {
lines: CENTOS,
sgr: "38;2;156;57;135",
},
"devuan" => Logo {
lines: DEVUAN,
sgr: "38;2;160;40;150",
},
"mx" => Logo {
lines: MX,
sgr: "38;2;236;236;236",
},
"garuda" => Logo {
lines: GARUDA,
sgr: "38;2;231;96;72",
},
"tux" | "linux" | "generic" => Logo {
lines: TUX,
sgr: TUX_SGR,
},
_ => return None,
})
}
const TUX_SGR: &str = "38;2;236;236;236";
const DEBIAN: &[&str] = &[
" _,met$$$$$gg.",
" ,g$$$$$$$$$$$$$$$P.",
" ,g$$P\" \"\"\"Y$$.\".",
" ,$$P' `$$$.",
"',$$P ,ggs. `$$b:",
"`d$$' ,$P\"' . $$$",
" $$P d$' , $$P",
" $$: $$. - ,d$$'",
" $$; Y$b._ _,d$P'",
" Y$$. `.`\"Y$$$$P\"'",
" `$$b \"-.__",
" `Y$$",
" `Y$$.",
" `$$b.",
" `Y$$b.",
" `\"Y$b._",
" `\"\"\"",
];
const ARCH: &[&str] = &[
" -'",
" .o+'",
" 'ooo/",
" '+oooo:",
" '+oooooo:",
" -+oooooo+:",
" '/:-:++oooo+:",
" '/++++/+++++++:",
" '/++++++++++++++:",
" '/+++ooooooooooooo/'",
" ./ooosssso++osssssso+'",
" .oossssso-''''/ossssss+'",
" -osssssso. :ssssssso.",
" :osssssss/ osssso+++.",
" /ossssssss/ +ssssooo/-",
" '/ossssso+/:- -:/+osssso+-",
" '+sso+:-' '.-/+oso:",
" '++:. '-/+/",
" .' '/",
];
const UBUNTU: &[&str] = &[
" .-/+oossssoo+/-.",
" .:+ssssssssssssssssss+:.",
" -+ssssssssssssssssssyyssss+-",
" .ossssssssssssssssssdMMMNysssso.",
" /ssssssssssshdmmNNmmyNMMMMhssssss/",
" +ssssssssshmydMMMMMMMNddddyssssssss+",
" /sssssssshNMMMyhhyyyyhmNMMMNhssssssss/",
".ssssssssdMMMNhsssssssssshNMMMdssssssss.",
"+sssshhhyNMMNyssssssssssssyNMMMysssssss+",
"ossyNMMMNyMMhsssssssssssssshmmmhssssssso",
"ossyNMMMNyMMhsssssssssssssshmmmhssssssso",
"+sssshhhyNMMNyssssssssssssyNMMMysssssss+",
".ssssssssdMMMNhsssssssssshNMMMdssssssss.",
" /sssssssshNMMMyhhyyyyhdNMMMNhssssssss/",
" +sssssssssdmydMMMMMMMMddddyssssssss+",
" /ssssssssssshdmNNNNmyNMMMMhssssss/",
" .ossssssssssssssssssdMMMNysssso.",
" -+sssssssssssssssssyyyssss+-",
" .:+ssssssssssssssssss+:.",
" .-/+oossssoo+/-.",
];
const FEDORA: &[&str] = &[
" /:-------------:\\",
" :-------------------::",
" :-----------/shhOHbmp---:\\",
" /-----------omMMMNNNMMD ---:",
" :-----------sMMMMNMNMP. ---:",
" :-----------:MMMdP------- ---\\",
",------------:MMMd-------- ---:",
":------------:MMMd------- .---:",
":---- oNMMMMMMMMMNho .----:",
":-- .+shhhMMMmhhy++ .------/",
":- -------:MMMd--------------:",
":- --------/MMMd-------------;",
":- ------/hMMMy------------:",
":-- :dMNdhhdNMMNo------------;",
":---:sdNMMMMNds:------------:",
":------:://:-------------::",
" :---------------------://",
];
const MINT: &[&str] = &[
" ...-:::::-...",
" .-MMMMMMMMMMMMMMM-.",
" .-MMMM'..-:::::::-..'MMMM-.",
" .:MMMM.:MMMMMMMMMMMMMMM:.MMMM:.",
" -MMM-M---MMMMMMMMMMMMMMMMMMM.MMM-",
" ':MMM:MM' :MMMM:....::-...-MMMM:MMM:'",
" :MMM:MMM' :MM:' '' '' ':MMM:MMM:",
".MMM.MMMM' :MM. -MM. .MM- 'MMMM.MMM.",
":MMM:MMMM' :MM. -MM- .MM: 'MMMM-MMM:",
":MMM:MMMM' :MM. -MM- .MM: 'MMMM:MMM:",
":MMM:MMMM' :MM. -MM- .MM: 'MMMM-MMM:",
".MMM.MMMM' :MM:--:MM:--:MM: 'MMMM.MMM.",
" :MMM:MMM- '-MMMMMMMMMMMM-' -MMM-MMM:",
" :MMM:MMM:' ':MMM:MMM:",
" .MMM.MMMM:--------------:MMMM.MMM.",
" '-MMMM.-MMMMMMMMMMMMMMM-.MMMM-'",
" '.-MMMM''--:::::--''MMMM-.'",
" '-MMMMMMMMMMMMM-'",
" ''-:::::-''",
];
const MANJARO: &[&str] = &[
"██████████████████ ████████",
"██████████████████ ████████",
"██████████████████ ████████",
"██████████████████ ████████",
"██████████████████ ████████",
"████████ ████████",
"████████ ████████ ████████",
"████████ ████████ ████████",
"████████ ████████ ████████",
"████████ ████████ ████████",
"████████ ████████ ████████",
"████████ ████████ ████████",
"████████ ████████ ████████",
"████████ ████████ ████████",
"████████ ████████ ████████",
"████████ ████████ ████████",
"████████ ████████ ████████",
"████████ ████████ ████████",
];
const POP: &[&str] = &[
" /////////////",
" /////////////////////",
" ///////*767////////////////",
" //////7676767676*//////////////",
" /////76767//7676767//////////////",
" /////767676///*76767///////////////",
" ///////767676///76767.///7676*///////",
"/////////767676//76767///767676////////",
"//////////76767676767////76767/////////",
"///////////76767676//////7676//////////",
"////////////,7676,///////767///////////",
"/////////////*7676///////76////////////",
"///////////////7676////////////////////",
" ///////////////7676///767////////////",
" //////////////////////'////////////",
" //////.7676767676767676767,//////",
" /////767676767676767676767/////",
" ///////////////////////////",
" /////////////////////",
" /////////////",
];
const OPENSUSE: &[&str] = &[
" .;ldkO0000Okdl;.",
" .;d00xl:^''''''^:ok00d;.",
" .d00l' 'o00d.",
" .d0Kd' Okxol:;,. :O0d.",
" .OKKKK0kOKKKKKKKKKKOxo:, lKO.",
" ,0KKKKKKKKKKKKKKKK0P^,,,^dx: ;00,",
".OKKKKKKKKKKKKKKKKk'.oOPPb.'0k. cKO.",
":KKKKKKKKKKKKKKKKK: kKx..dd lKd 'OK:",
"dKKKKKKKKKKKKKKKKk; .'kdkkx.'0k. c00,",
"xKKKKKKKKKKKKKKKKKKk0KKKKKKKKKk; dKO.",
"lKKKKKKKKKKKKKKKKKKKKKKKK0Pd:kd dKO.",
";00KKKKKKKKKKKKKKKKKKKKKKk;.,0k. cKO;",
" ,KKKKKKKKKKKKKKKKKKKKK0k; .0K,",
" .OKKKKKKKKKKKKKKKK0k:. .dKO.",
" .d0KKKKKKKKKK0kd:. :O0d.",
" .d00OKKKKKO0d' 'o00d.",
" .;d00xl:^''''''^:ok00d;.",
" .;ldkO0000Okdl;.",
];
const ALPINE: &[&str] = &[
" .hddddddddddddddddddddddh.",
" :dddddddddddddddddddddddddd:",
" /dddddddddddddddddddddddddddd/",
" +dddddddddddddddddddddddddddddd+",
" 'sdddddddddddddddddddddddddddddddds'",
" 'ydddddddddddd++hdddddddddddddddddddy'",
".hddddddddddd+' '+ddddh:-sdddddddddddh.",
"hdddddddddd+' '+y: .yddddddddddddh",
"ddddddddh+' '//' '.' -sddddddddddddd",
"ddddddh+' '/hddh/' ':s- -sdddddddddd",
"ddddh+' '/+/dddddh/' '+s- -sdddddddd",
"ddd+' '/o' :dddddddh/' 'oy- .ydddddd",
"hdddyo+ohddyosdddddddddho+oydddy++ohdddh",
".hddddddddddddddddddddddddddddddddddddh.",
" 'yddddddddddddddddddddddddddddddddddy'",
" 'sdddddddddddddddddddddddddddddddds'",
" +dddddddddddddddddddddddddddddd+",
" /dddddddddddddddddddddddddddd/",
" :dddddddddddddddddddddddddd:",
" .hddddddddddddddddddddddh.",
];
const VOID: &[&str] = &[
" __.;=====;.__",
" _.=+==++=++=+=+===;.",
" -=+++=+===+=++=+++++=_",
" . -=:'' '--==+=++==.",
" _vi, ' --+=++++:",
" .uvnvi. _._ -==+==+.",
" .vvnvnI' .;==|==;. :|=||=|.",
"+QmQQmpvvnv; _yYsSXkyQ7k;//=+++++.",
"+QQmQQmmmpvsvpu 6WQmk} //=++++++.",
" QmmQQQQmmvsv+; jQm} 6QQmv=++++++.",
" YmmmQQQpvsv+; jQm} 6QQmv=+++++.",
" 4QmmQpvvsv+; jQm} 6QQv=+++++.",
" 9QmpvvsQ+; jQm}6QQv=+++;",
" \"9pvsQm; jQmQQv=++;",
" \"9QmQm;jQmQv=+;",
" \"\"9QmQv=;",
];
const NIXOS: &[&str] = &[
" ▜███▙ ▜███▙ ▟███▛",
" ▜███▙ ▜███▙▟███▛",
" ▜███▙ ▜██████▛",
" ▟█████████████████▙ ▜████▛ ▟▙",
" ▟███████████████████▙ ▜███▙ ▟██▙",
" ▄▄▄▄▖ ▜███▙ ▟███▛",
" ▟███▛ ▜██▛ ▟███▛",
" ▟███▛ ▜▛ ▟███▛",
"▟███████████▛ ▟███████▙",
"▜██████████▛ ▟████████▛",
" ▟███▛ ▟▙ ▟███▛",
" ▟███▛ ▟██▙ ▟███▛",
" ▟███▛ ▜███▙ ▄▄▄▄▖",
" ▟███▛ ▜███▙▄▄▄▄▄▄▄▄▄▟███████████▖",
" ▜██▛ ▜███▙▀▀▀▀▀▀▀▀▀▜███████████▘",
" ▜▛ ▟████▙▄▄▄▄▄▄▄▄▄▟███▛",
" ▟███████████████▙▜███▙ ▄▄▄▄▖",
" ▟███████████████▛ ▜███▙ ▟███▛",
" ▟███▛ ▜██████▛",
" ▟███▛ ▜███▙",
];
const GENTOO: &[&str] = &[
" -/oyddmdhs+:.",
" -odNMMMMMMMMNNmhy+-'",
" -yNMMMMMMMMMMMNNNmmdhy+-",
" 'omMMMMMMMMMMMMNmdmmmmddhhy/'",
" omMMMMMMMMMMMNhhyyyohmdddhhhdo'",
".ydMMMMMMMMMMdhs++so/smdddhhhhdm+'",
" oyhdmNMMMMMMMNdyooydmddddhhhhyhNd.",
" :oyhhdNNMMMMMMMNNNmmdddhhhhhyymMh",
" .:+sydNMMMMMNNNmmmdddhhhhhhmMmy",
" /mMMMMMMNNNmmmdddhhhhhmMNhs:",
" 'oNMMMMMMMNNNmmmddddhhdmMNhs+'",
" 'sNMMMMMMMMNNNmmmdddddmNMmhs/.",
" /NMMMMMMMMNNNNmmmdddmNMNdso:'",
"+MMMMMMMNNNNNmmmmdmNMNdso/-'",
"yMMNNNNNNNmmmmmNNMmhs+/-'",
"/hMMNNNNNNNNMNdhs++/-'",
"'/ohdmmddhys+++/:.'",
" '-//////:--.",
];
const ENDEAVOUROS: &[&str] = &[
" ./o.",
" ./sssso-",
" ':osssssss+-",
" ':+sssssssssso/.",
" '-/ossssssssssssso/.",
" '-/+sssssssssssssssso+:'",
" '-:/+sssssssssssssssssso+/.",
" '.://osssssssssssssssssssso++-",
" .://osssssssssssssssssssssso++:",
" .://+ssssssssssssssssssssssso++:",
" .:///ossssssssssssssssssssssssso++:",
" ':////ssssssssssssssssssssssssssso+++.",
"'-////+ssssssssssssssssssssssssssso++++-",
" '..-+oosssssssssssssssssssssssso+++++/'",
" ./++++++++++++++++++++++++++++++/:.",
" ':::::::::::::::::::::::::------''",
];
const KALI: &[&str] = &[
"..............",
" ..,;:ccc,.",
" ......''';lxO.",
".....''''..........,:ld;",
" .';;;:::;,,.x,",
" ..'''. 0Xxoc:,. ...",
" .... ,ONkc;,;cokOdc',.",
" . OMo ':ddo.",
" dMc :OO;",
" 0M. .:o.",
" ;Wd",
" ;XO,",
" ,d0Odlc;,..",
" ..',;:cdOOd::,.",
" .:d;.':;.",
" 'd, .'",
" ;l ..",
" .o",
" c",
" .'",
];
const ELEMENTARY: &[&str] = &[
" eeeeeeeeeeeeeeeee",
" eeeeeeeeeeeeeeeeeeeeeee",
" eeeee eeeeeeeeeeee eeeee",
" eeee eeeee eeee eeee",
" eeee eeee eeee eeee",
"eee eee eee eee",
"eee eee eee eee",
"ee eee eeee eeee",
"ee eee eeeee eeeeee",
"ee eee eeeee eeeee ee",
"eee eeee eeeeee eeeee eee",
"eee eeeeeeeeee eeeeee eee",
" eeeeeeeeeeeeeeeeeeeeeeee eeeee",
" eeeeeeee eeeeeeeeeeee eeee",
" eeeee eeeee",
" eeeeeee eeeeeee",
" eeeeeeeeeeeeeeeee",
];
const ZORIN: &[&str] = &[
" 'osssssssssssssssssssso'",
" .osssssssssssssssssssssso.",
" .+oossssssssssssssssssssoo+.",
"",
" '+ssssssssssssssssss++ssssssssso+'",
" -+ssssssssssssssssss+- '+ssssssso+-",
"'ossssssssssssssssss+. .+sssssssso'",
".ossssssssssssssssss+' 'ossssssso.",
":osssssssssssssssssso. .osssssssss:",
"osssssssssssssssssss. osssssssss+",
":sssssssssssssssssss. ossssssss+:",
".ossssssssssssssssss. .ossssssss+.",
"'ossssssssssssssssss+' '+sssssssso'",
" -+sssssssssssssssss+- -+ssssssss+-",
" '+ssssssssssssss++. .+ssssso+'",
"",
" .+oossssssssssssssssssssoo+.",
" .osssssssssssssssssssssso.",
" 'osssssssssssssssssssso'",
];
const ARTIX: &[&str] = &[
" '",
" 'o'",
" 'ooo'",
" 'ooxoo'",
" 'ooxxxoo'",
" 'oookkxxoo'",
" 'oiisxxxxxxo'",
" 'oiiisxxxxxxxo'",
" 'oiiiisxxxxxxxxo'",
" 'oiiiiisxxxxxxxxxo'",
" 'oiiiiiisxxxxxxxxxxo'",
" 'oiiiiiiisxxxxxxxxxxxo'",
" 'oiiiiiiiisxxxxxxxxxxxxo'",
" 'oiiiiiiiiisxxxxxxxxxxxxxo'",
" 'oiiiiiiiiiisxxxxxxxxxxxxxxo'",
" 'oiiiiiiiiiiisxxxxxxxxxxxxxxxo'",
];
const ROCKY: &[&str] = &[
" __wgliliiligw_,",
" _williiiiiiliilililw,",
" _%iiiiiilililiiiiiiiiiii_",
" .Qliiiililiiiiiiililililiilm.",
" _iiiiiliiiiiililiiiiiiiiiiliil,",
" .lililiiilililiiiilililililiiiii,",
"_liiiiiiliiiiiiiliiiiiF{iiiiiilili,",
"jliililiiilililiiili@' ~ililiiiiiL",
"iiiliiiiliiiiiiili>' ~liililii",
"liliiiliiilililii' -9liiiil",
"iiiiiliiliiiiii~ \"4lili",
"4ililiiiiilil~| -w, )4lf",
"-liiiiililiF' _liig, )'",
" )iiiliii@' _QIililig,",
" )iiii>' .Qliliiiililw",
" )<>~ .mliiiiiliiiiiil,",
" _gllilililiililii~",
" giliiiiiiiiiiiiT'",
" -^~lilili@~~'",
];
const ALMALINUX: &[&str] = &[
" 'c:.",
" lkkkx, .. .. ,cc,",
" okkkk:ckkx' .lxkkx.okkkkd",
" .:llcokkx' :kkkxkko:xkkd,",
" .xkkkkdood: ;kx, .lkxlll;",
" xkkx. xk' xkkkkk:",
" 'xkx. xd .....,.",
" .. :xkl' :c ..''..",
" .dkx' .:ldl:'. ' ':lollldkkxo;",
" .''lkkko' ckkkx.",
"'xkkkd:kkd. .. ;' :kkxo.",
",xkkkd;kk' ,d; ld. ':dkd::cc,",
" .,,.;xkko'.';lxo. dx, :kkk'xkkkkc",
" 'dkkkkkxo:. ;kx .kkk:;xkkd.",
" ..... .;dk:. lkk. :;,",
" :kkkkkkkdoxkkx",
" ,c,,;;;:xkkd.",
" ;kkkkl...",
" ;kkkkl",
" ,od;",
];
const CENTOS: &[&str] = &[
" ..",
" .PLTJ.",
" <><><><>",
" KKSSV' 4KKK LJ KKKL.'VSSKK",
" KKV' 4KKKKK LJ KKKKAL 'VK",
" V' ' 'VKKKK LJ KKKKV' ' 'V",
" .4MA.' 'VKK LJ KKV' '.4Mb.",
" . KKKKKA.' 'V LJ V' '.4KKKKK .",
" .4D KKKKKKKA.'' LJ ''.4KKKKKKK FA.",
"<QDD ++++++++++++ ++++++++++++ GFD>",
" 'VD KKKKKKKK'.. LJ ..'KKKKKKKK FV",
" ' VKKKKK'. .4 LJ K. .'KKKKKV '",
" 'VK'. .4KK LJ KKA. .'KV'",
" A. . .4KKKK LJ KKKKA. . .4",
" KKA. 'KKKKK LJ KKKKK' .4KK",
" KKSSA. VKKK LJ KKKV .4SSKK",
" <><><><>",
" 'MKKM'",
" ''",
];
const DEVUAN: &[&str] = &[
" ..,,;;;::;,..",
" '':ddd;:,.",
" ''dPPd:,.",
" ':b$$b'.",
" 'P$$$d'",
" .$$$$$'",
" ;$$$$$'",
" ..:;;;::;;;;$$$$$;",
" .,;;''' ';$$$$$'",
" .,;' ;$$$$;",
" .;' ;$$$$;",
" .;' ;$$$$;",
" .;' ;$$$$'",
" ;' ;$$$'",
";' ;$$'",
" ;$'",
];
const MX: &[&str] = &[
"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM",
"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM",
"MMMMMMMM MMMMMMMMMMMMM MMMMMMMM",
"MMMMMMMMMM MMMMMMMMM MMMMMMMMMM",
"MMMMMMMMMMM MMMMMMM MMMMMMMMMMM",
"MMMMMMMMMMMMM MMM MMMMMMMMMMMMM",
"MMMMMMMMMMMMMMM M MMMMMMMMMMMMMMM",
"MMMMMMMMMMMMMMM MMMMMMMMMMMMMMM",
"MMMMMMMMMMMMMM MMMMMMMMMMMMMM",
"MMMMMMMMMMMMMMM MMMMMMMMMMMMMMM",
"MMMMMMMMMMMMMMM M MMMMMMMMMMMMMMM",
"MMMMMMMMMMMMM MMM MMMMMMMMMMMMM",
"MMMMMMMMMMM MMMMMMM MMMMMMMMMMM",
"MMMMMMMMMM MMMMMMMMM MMMMMMMMMM",
"MMMMMMMM MMMMMMMMMMMMM MMMMMMMM",
"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM",
"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM",
];
const GARUDA: &[&str] = &[
" .%;888:8898898:",
" x;XxXB%89b8:b8%b88:",
" .8Xxd ... 4X:.",
" .:XeXY; :%.",
" .8YY; .8b.",
" .8Y; :8:",
" .8Y; X:",
" .8Y; X.",
" .8Y; X:",
" .8Y; X.",
" .8Y; X:",
" .8Y; X.",
" .8Y; X:",
" .8Y; .X.",
".8Y; .d8:",
"X8: .:d88Y",
" X8x. ..:xd888Y'",
" '%88xxxxxxxxxx8888YYY'",
];
const TUX: &[&str] = &[
" a8888b.",
" d888888b.",
" 8P\"YP\"Y88",
" 8|o||o|88",
" 8' .88",
" 8`._.' Y8.",
" d/ `8b.",
" dP . Y8b.",
" d8:' \" `::88b",
" d8\" 'Y88b",
" :8P ' :888",
" 8a. : _a88P",
" ._/\"Yaa_: .| 88P|",
" \\ YP\" `| 8P `.",
" / \\.___.d| .'",
" `--..__)8888P`._.'",
];