;;;::::::::cccccccccccccccccccc:::::::ccccclcllcccclllllccccccc:ccccccc::::::;;;
:::::::::c:cccccccccccc:c:::::c::::::ccccclcclcccccllcccccllccccc:cccccccc::::;;
::::::::::cccccccccccc::::::::ccccccccccccclclccccccllllcccccclccc:c:::::::::::;
:::cccccc:ccccccccccc::::::::cccccccccccccccclccc::clllllccccllcccccccc:::::::::
:ccccccccccccccccccccc::cccccccccccccclccccclccc:;;:::::::::::ccccccccccccc:::::
:ccccc;;:cccccc:;;:ccc:ccccccclccccccclcccccccccc:;;;;;;::::;;:::cccclcccccc:::;
;:::::::,;ccccc;cccccccccccccclclcclcccccccccccc:;;;;,,,;;;;;;;;:::::::::::::;;;
;:::::ccl,ccclcllcccccccccccc:ccccclccccc:;;c:;;,;;,,;;,,,,,,,,;;;;;;;;;;;;;;;;,
:::::ccc:;c::lcc::cccccccccccllc,,;cllll;:::c::;;;;,',,,,,,,,::;;;;;;;;;;;;;;;;,
:::cccccc:;;:cc:',ccccccclooddddl:;;oxxoldl:c::;;,c:;.''''.'cc,,;;;;;;;;;;;,;;;,
::::cccc;.;',c:,,,:cccccoddddddoc;lodlcddocc:c:;;;colc,,...clc,,,:;;;;;;;;,,,,,,
cclccc:c:,.....'',:lcc:coddoodoll:,:c;,cc::::::;;;;;;;;;',,..,,,',:;;;;,,,,,,,,,
clcccc,::c:;:coolc:c::cccloclolllo;'c,,::;::;;:;;;;,...':xO;cl'''..,;;;;;;,,,,,,
ccc::c;';clllooolc:,;c:cllll:odl:c:;...',:;;;;;:'.'''..;xxoloxd.',..;;;;;,;,,,,,
:c:;;;:'.';;;::;,,',c:;clcc:;:doc::,'...',,;;;;;'....','..,:llllc;.,;:::::::;;;;
:::;,,;;',::..'::;,::,;::;,,,'col,;;,'...,;;:::;,..  ';'',,',oxl,;:::cccccc:ccc:
;:;,,',;,.:l:.cl;';;..,'.;:ol,.:lc.  ;c.',;::cc;;,'.  ;;,,..oxo,'';clcllllcccccc
::;,'.''',:cc:cc::'.';'..',;'..'lc:,,lo:;:cc:c::;;,...,;::'clo:',;clllllllcccccc
::cdoloooloddddddoddxxxxkxdooddxxxxk00000KK0kxdxkkxkxkkkkkkxxdddkkkxkOOxxdxxdddd
::cc:::cccccccclllllllllllcccllcclccccccccclcccc:c::::ccclcccccccccccclccc::::::
:;;:;:::cc:;;;:ccccc::c:::::cc:::c::ccc::ccccccccc;ccc:ccccc:::;:::::;,,,,;;,'''
''''''''',,,''''',,,,,'''''''',,'''',,,',,'',,,,;;;,,,,,,,,,,,''''',,'''''',..,;
:cc::ccllodddxkOOOOOxxkO0KKKKKK0OkkkkkOkOKKXXXXXXXKKKKK0KK0000OOOOkxoolllc;,,.',
:::::cccccccc::cdool:cllclooddc:c::clllcllodkO000KKXXNNNNNWWWWNWNNK0kddoll;,,.''