### #.#### ##....## #..##..##########.### #....g................ #..h##........##..## #..#..#......#..# ##.#............# #..############.. #.......... .!# #....###### ## ###.### #8'''8# #.###.# ##...## #..<..# #######