##########  ##########  ##########  ###  ####         ####  
#::####::#  #::#######  #::::::::#  #:#  #::#         #::#  
#::#  ####  #::#        ####::####  #:#  #::#         #::#  
#::#        #::#           #::#     #:####::##        #::#  
#::#        #::#####       #::#     #::::::::#        #::#  
#::#        #::#####       #::#     ######::##        #::#  
#::#        #::#           #::#          #::#   ###   #::#  
#::#  ####  #::#           #::#          #::#   #:#   #::#  
#::####::#  #::#           #::#          #::#    ####::##   
##########  ####           ####          ####     ######