oooooooooooo oooooo oooo ooo ooooo o8o ooooooooo. d'""""""d888' `888. .8' `88. .888' `"' `888 `Y88. .888P `888. .8' 888b d'888 oooo ooo oooo 888 .d88' d888' `888. .8' 8 Y88. .P 888 `88b..8P' `888 888ooo88P' .888P `888.8' 8 `888' 888 Y888' 888 888 d888' .P `888' 8 Y 888 .o8"'88b 888 888 .8888888888P `8' o8o o888o o88' 888o 888 o888o 888 .o. 88P `Y888P