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