'########:::::'###::::'########::::'###::::'########::'##::::'##::'######::'##::::'##:'########:'########::
 ##.... ##:::'## ##:::... ##..::::'## ##::: ##.... ##: ##:::: ##:'##... ##: ##:::: ##: ##.....:: ##.... ##:
 ##:::: ##::'##:. ##::::: ##:::::'##:. ##:: ##:::: ##: ##:::: ##: ##:::..:: ##:::: ##: ##::::::: ##:::: ##:
 ##:::: ##:'##:::. ##:::: ##::::'##:::. ##: ########:: ##:::: ##:. ######:: #########: ######::: ########::
 ##:::: ##: #########:::: ##:::: #########: ##.....::: ##:::: ##::..... ##: ##.... ##: ##...:::: ##.. ##:::
 ##:::: ##: ##.... ##:::: ##:::: ##.... ##: ##:::::::: ##:::: ##:'##::: ##: ##:::: ##: ##::::::: ##::. ##::
 ########:: ##:::: ##:::: ##:::: ##:::: ##: ##::::::::. #######::. ######:: ##:::: ##: ########: ##:::. ##:
........:::..:::::..:::::..:::::..:::::..::..::::::::::.......::::......:::..:::::..::........::..:::::..::