  p:::::p r:::::r     r:::::ro::::o     o::::o  x::::::::::x        y:::::y   y:::::y
 p:::::p     p:::::p r:::::r     rrrrrrro::::o     o::::o   x::::::::x          y:::::y y:::::y
 p:::::p     p:::::p r:::::r            o::::o     o::::o   x::::::::x           y:::::y:::::y
 p:::::p    p::::::p r:::::r            o::::o     o::::o  x::::::::::x           y:::::::::y
 p:::::ppppp:::::::p r:::::r            o:::::ooooo:::::o x:::::xx:::::x           y:::::::y
 p::::::::::::::::p  r:::::r            o:::::::