888 888 .d8888b. 8888888888 888
888 888 d88P Y88b 888 888
888 888 .d88P 888 888
88888b. 88888b. 8888" .d8888b 8888888 .d88888 888 888
888 "88b 888 "88b "Y8b. 88K 888 d88" 888 888 888
888 888 888 888 888 888 "Y8888b. 888 888 888 Y88 88P
888 888 888 888 Y88b d88P X88 888 Y88b 888 Y8bd8P
888 888 888 888 "Y8888P" 88888P' 8888888888 "Y88888 Y88P