.o88o. oooooooooooo ooooooo ooooo ooooooooo. . oooo oooo
888 `" d'""""""d888' `8888 d8' `888 `Y88. .o8 `888 .8P'
o888oo .888P Y888..8P 888 .d88' .o888oo 888 d8'
888 d888' `8888' 888ooo88P' 888 88888[
888 .888P .8PY888. 888 888 888`88b.
888 d888' .P d8' `888b 888 888 . 888 `88b.
o888o .8888888888P o888o o88888o o888o "888" o888o o888o