,o888888o.     8 8888     ,o888888o.  `8.`888b           ,8' 8 8888888888   
    8888     `88.   8 8888  . 8888     `88. `8.`888b         ,8'  8 8888         
 ,8 8888       `8.  8 8888 ,8 8888       `8b `8.`888b       ,8'   8 8888         
 88 8888            8 8888 88 8888        `8b `8.`888b     ,8'    8 8888         
 88 8888            8 8888 88 8888         88  `8.`888b   ,8'     8 888888888888 
 88 8888            8 8888 88 8888         88   `8.`888b ,8'      8 8888         
 88 8888   8888888  8 8888 88 8888        ,8P    `8.`888b8'       8 8888         
 `8 8888       .8'  8 8888 `8 8888       ,8P      `8.`888'        8 8888         
    8888     ,88'   8 8888  ` 8888     ,88'        `8.`8'         8 8888         
     `8888888P'     8 8888     `8888888P'           `8.`          8 888888888888