__######__#######_######__##___##____###____######__######_
_##_______##______##___##_##___##___##_##___##___##_##___##
_##__###__#####___##___##_#######__##___##__##___##_##___##
_##____##_##______######__##___##_#########_######__##___##
_##____##_##______##___##_##___##_##_____##_##___##_##___##
__######__#######_##___##_##___##_##_____##_##___##_######_