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