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