.oooooo. oooo oooooooo ooooo ooo ooo ooooo
d8P' `Y8b `888 dP""""""" `888' `8' `88. .888'
888 .oooo.o 888 d88888b. 888 8 888b d'888
888 d88( "8 888 `Y88b 888 8 8 Y88. .P 888
888 `"Y88b. 888 ]88 888 8 8 `888' 888
`88b ooo o. )88b 888 o. .88P `88. .8' 8 Y 888
`Y8bood8P' 8""888P' .o. 88P `8bd88P' `YbodP' o8o o888o
`Y888P