::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 ̄|:::::::::::::::::::| ̄ ̄ ̄ ̄|:::::::::::::::::::::::::::::| ̄|:::::::::::::;;;;;;;;;;;;;;;::::: | ̄|::::::::::::;;;;;;;;;;;;;;;:::::::| ̄
 ̄|::::::| ̄ . ̄ ̄|::::::| ̄ ̄  ̄|::::::|___ |::::::|  ̄|::::::|___ |::::::|
|::::::| __ .|::::::| |::::::::::::::::::::|  ̄ |::::::::::::::::::|  ̄
|::::::| |::::::| .|::::::| |::::::| ̄|::::::| |::::::| ̄ ̄ __
_|::::::|___|::::::| ____|::::::|____ _|::::::|__ ̄ _|::::::|____|::::::|
_| ::::::::::::::::::::::::::::: |___|::::::::::::::::::::::::::::|_|:::::::::::::::::::::|_____| ::::::::::::::::::::::::::::::: |_
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::