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