oooooooooo.  ooooo   .oooooo.     .oooooo.     .oooooo.   ooo        ooooo ooooooooo.   ooooo     ooo ooooooooooooo oooooooooooo ooooooooo.   
`888'   `Y8b `888'  d8P'  `Y8b   d8P'  `Y8b   d8P'  `Y8b  `88.       .888' `888   `Y88. `888'     `8' 8'   888   `8 `888'     `8 `888   `Y88. 
 888     888  888  888      888 888          888      888  888b     d'888   888   .d88'  888       8       888       888          888   .d88' 
 888oooo888'  888  888      888 888          888      888  8 Y88. .P  888   888ooo88P'   888       8       888       888oooo8     888ooo88P'  
 888    `88b  888  888      888 888          888      888  8  `888'   888   888          888       8       888       888    "     888`88b.    
 888    .88P  888  `88b    d88' `88b    ooo  `88b    d88'  8    Y     888   888          `88.    .8'       888       888       o  888  `88b.  
o888bood8P'  o888o  `Y8bood8P'   `Y8bood8P'   `Y8bood8P'  o8o        o888o o888o           `YbodP'        o888o     o888ooooood8 o888o  o888o