oooooooo oooo oooooooo ooooooooooooo dP""""""" `888 dP""""""" 8' 888 `8 d88888b. oooo ooo 888 ooo. .oo. .oo. d88888b. 888 `Y88b `88. .8' 888 `888P"Y88bP"Y88b `Y88b 888 ]88 `88..8' 888 888 888 888 ]88 888 o. .88P `888' 888 888 888 888 o. .88P 888 `8bd88P' `8' .o. 88P o888o o888o o888o `8bd88P' o888o `Y888P