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