oooooooooooo o8o ooooooooooooo oooo oooo d'""""""d888' `"' 8' 888 `8 `888 `888 .888P oooo 888 oooo ooo 888 oooo 888 d888' `888 888 `88. .8' 888 .8P' 888 .888P 888 888 `88..8' 888888. 888 d888' .P 888 888 `888' 888 `88b. 888 .8888888888P 888 o888o .8' o888o o888o o888o 888 .o..P' .o. 88P `Y8P' `Y888P