. .oooo.
.o8 .dP""Y88b
.o888oo oooo oooo ooo oooo oooo ooo .oooo. ]8P' ooo. .oo. .oo.
888 `88. `88. .8' `88. `88. .8' `P )88b <88b. `888P"Y88bP"Y88b
888 `88..]88..8' `88..]88..8' .oP"888 `88b. 888 888 888
888 . `888'`888' `888'`888' d8( 888 o. .88P 888 888 888
"888" `8' `8' `8' `8' `Y888""8o `8bd88P' o888o o888o o888o