::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::–:::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::..:::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::-:::::::::::::::..:::::::::::::::-:::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::-.-:::::::::::::..:::::::::::::-.-:::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::-.-::::::::::::.-::::::::::::-..::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::—::::::::::—-::::::::::–.:::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::.:–::::::::-::.::::::::–:.::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::.:–:::::::.//.:::::::–:.:::::::::::::::::::::::::::::::::::
:::::::::::::::::::::-::::::::::::::::.::-::::::.//.::::::-::.::::::::::::::::-:::::::::::::::::::
:::::::::::::::::::::-..–:::::::::::::.::–::::.//.::::–:/.:::::::::::::–..-:::::::::::::::::::
::::::::::::::::::::::::-.—-::::::::::.//–:::.//.:::–//.::::::::::—-.-::::::::::::::::::::::
::::::::::::::::::::::::::——–:::::::.//:-::.//-::-://-:::::::——–::::::::::::::::::::::::
:::::::::::::::::::::::::::::—:::—::::.//:—//–.://.::::—:::—:::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::—:/::—-.///.-//-.///.—-::/:—::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::—://::-.:/:.-:.:/:.-:://:—:::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::—://:.—..-.-.://:—::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::—————.-.–..` `..–.-.—————::::::::::::::::::::::::
::::::::::::::::–.…..—::://////////////-..` `..-/////////////::::—.…..–::::::::::::::
::::::::::::::::::::::::::::————-.-.–.-““..–.-.————-::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::—///:.—..—.:///:–::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::–:///:–.:/:.::.:/:..-:///:–:::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::–://:——///.-//-.://–:—://:–::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::—:::—:::–//:—//—://–::::–:::—:::::::::::::::::::::::::::
::::::::::::::::::::::::::——-:::::::–//:-::.//-::–//–:::::::——-::::::::::::::::::::::::
:::::::::::::::::::::::–.—::::::::::–//–:::.//.:::–//–::::::::::—.–:::::::::::::::::::::
:::::::::::::::::::::-..-::::::::::::::./:-:::::.//.:::::-:/-::::::::::::::-..-:::::::::::::::::::
::::::::::::::::::::::::::::::::::::::./:-::::::.//.::::::-:/.::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::.:–:::::::.:/.:::::::–:.:::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::.:-:::::::::-::-:::::::::-:.::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::.–::::::::::—-::::::::::–.:::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::..-::::::::::::.-::::::::::::-..::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::-.::::::::::::::..::::::::::::::..:::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::-:::::::::::::::..:::::::::::::::-:::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::..:::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::–:::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::