oooooooo .ooooo. oooooooooooo oooooooooo. oooo oooooo oooo .oooo. .o. .o .oooo.
dP""""""" 888' `Y88. `888' `8 `888' `Y8b `888 `888. .8' .dP""Y88b .888. .d88 .dP""Y88b
d88888b. 888 888 888 888 888 888 oooo `888. .8' ]8P' .8"888. .d'888 ]8P'
`Y88b `Vbood888 888oooo8 888 888 888 .8P' `888. .8' <88b. .8' `888. .d' 888 .d8P'
]88 888' 888 " 888 888 888888. `888.8' `88b. .88ooo8888. 88ooo888oo .dP'
o. .88P .88P' 888 888 d88' 888 `88b. `888' o. .88P .8' `888. 888 .oP .o
`8bd88P' .oP' o888o o888bood8P' o888o o888o `8' `8bd88P' o88o o8888o o888o 8888888888