######## .......# ......+ ...... #...# ##+###...# #....#...# #....'...# #....#...# +....#.<.# #D...#...+ ##..###..# #..# #..# +... .... #......... #......... #.........# #.......