##  ##        ###    #####    #### ###### ######  
 ##  ##       ## ##  ##   ##  ##  ##  ##     ##    
 ##  ##      ##   ## ##      ##       ##     ##    
 ######      ##   ##  #####  ##       ##     ##    
 ##  ##      #######      ## ##       ##     ##    
 ##  ##      ##   ## ##   ##  ##  ##  ##     ##    
 ##  ##      ##   ##  #####    #### ###### ######