.o88o.   .o           oooo                           .o            oooo                                                  
     888 `" o888           `888                         o888            `888                                                  
    o888oo   888   .oooo.o  888 .oo.   oooo oooo    ooo  888   .ooooo.   888  oooo       .ooooo.   .ooooo.  ooo. .oo.  .oo.   
     888     888  d88(  "8  888P"Y88b   `88. `88.  .8'   888  d88' `"Y8  888 .8P'       d88' `"Y8 d88' `88b `888P"Y88bP"Y88b  
     888     888  `"Y88b.   888   888    `88..]88..8'    888  888        888888.        888       888   888  888   888   888  
     888     888  o.  )88b  888   888     `888'`888'     888  888   .o8  888 `88b.  .o. 888   .o8 888   888  888   888   888  
    o888o   o888o 8""888P' o888o o888o     `8'  `8'     o888o `Y8bod8P' o888o o888o Y8P `Y8bod8P' `Y8bod8P' o888o o888o o888o