8888888b. 888 888 888 888 8888888888P 888b 888
888 Y88b 888 888 888 888 d88P 8888b 888
888 888 888 888 888 888 d88P 88888b 888
888 d88P 8888888888 888 888 d88P 888Y88b 888
8888888P" 888 888 888 888 d88P 888 Y88b888
888 T88b 888 888 888 888 d88P 888 Y88888
888 T88b 888 888 Y88b. .d88P d88P 888 Y8888
888 T88b 888 888 "Y88888P" d8888888888 888 Y888