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