###############################
###############################
###############################
########################...####
#######################.....###
###########............~~~...##
###########..................##
###########..................##
###########...........#.....###
###########...........##...####
###############################
