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