oloooooolllllllllllcccccc:::::;;;;,,,,'''...........                          ..
ooooooooooooooolllllllccccc:::::;;;,,,,'''..............                     ...
dddddddddddooooooolllllccccc::::;;;,,,,''''...............                   ...
dddxddddddddddoooooolllllccc::::;;;;,,,,'''................                  ...
xxxxxxxxxddddddddoooollllcccc::::;;;;,,,,'''...............                 ....
kkkkxxxxxxxxddddddoooollllcccc::::;;;;,,,''''...............                ....
kkkkkkkkxxxxxdddddooooollllcccc::::;;;,,,,''''..............                ....
OOkkkkkkkxxxxxddddddoooollllcccc:::;;;;,,,,'''..............                ....
OOOOOkkkkkkxxxxdddddooooollllcccc:::;;;;,,,'''.............                     
OOOOOOkkkkkkxxxxxdddddooolllllcccc::;;;;,,,''''...........                      
OOOOOOOOkkkkkxxxxxdddddoooolllcccc:::;;;,,'...............                      
00OOOOOOOkkkkkxxxxxdddddooollc,''.';::;;,... ..............                     
00O0OOOOOkOkkkkxxxxxdddddoool;:c;,'.','.     ..............',;,'.               
000OOOOOOkOkkkkkxxxxxdddddool,ldoc:;'.          .         ';;:',.               
0000OOOOOOOkkkkkkxxxxxddddoo:.codoc:;,.        ..                               
0000OOOOOOOkkkkkkkxxxxddddol..,;,,:c,,.''....;..:c.                             
0000O0OOOOOOkkkkkkxxxxddddoc..........    .... ..OKd'                           
0000OOOOOOOOOkkkkkxxxxddddoc...        ........;kXKk:                           
000000OOOOOOkkkkkkxxxxddddl;..... .........':dkKXK0xl'                          
00000OOOOOOOkkkkkkkxxxddo,...,xo'.......';dk0KKKK000KOd:,'.                     
0000OOOOOOOkkkkkkkxxxxdo.....ckKKkoc:ccoOKXXXXXNXNNNNX0Okxxdl,                  
00000OOOOOkOkkkkkxxxxdd,. ...lOXXNNNNNNNNNNNNNNNWWWNXKK0000K0Od,                
000OOOOOOOOkkkkkkxxxxdc.  ...:kKNNNWWWWWWWWWWWWNNXXKKK000OKXXK0x..              
000OOOOOOOOkkkkkkxxxxo,.... .'kXNNNWWWWWWWWWWWNXXKK00KOkockKXXKO' ...           
000OOOOOOOkkkkkkxxxxdo'.. .  .cOXXNNWWWWWWNNNNNN0dl:;;'. .c0KK0k.  ......       
0OOOOOOOkkkkkkxxxxo:;,...    ...;d0XNNNNWWWWWNXx,.....  ....':ol  .;;.........  
OOOOOOOkkkkkkxxdo,..         ......'cdk0KXXXKl.....      .  ... ...:ddl;........
0OOOOOkkkkkxxd,.           ...............;;....... .        .. ...:xxxddlc,....
OOOOOkkkkkxl..              ....    ...     .                     .,coddddddoc;'
OOOOkkkkxxd;.... .        ......            .                    ...'';clodddddo
OOkkkkxxdc......  ..... ..   ...           .   ...         .    ...',,,,,;;:lllx
kkkkkxo:'....   .......... ..  ....... ...........  .      ...  ...',,,,,,,,,,,;
kdlc:'.........................  ....'..............    .. ........',,,;,,,,,,,,
,...............................,:ccc;.............................,,,,,,,,,,;,,
....... ................. ....'::ccc'..............................;;;;,,,,;;;,,
.............................;cc:::'..............     ...........';:::;;;;;;;;;
'..........................,:ccccc,...............................,;::::;;::;;;;
''..,'...................,:cclcllc....'..''.......................;:::::::::::::
,'.',................',;::clcclllc...,',,,,'........... .........;:c:::::c::::::
..................';;::;:ccccllll:'.'''',,;;',c,'..............';cccc:cccc::c:::
............',;;::ccc:cccllllllcc:,,,',,,,,,;;;,'.............,:ccccccccccc:cc::
;;;;;;;;:c::ccclllclllllclooollclc:,,'',,,,,,,,,,''''......,;:cccccccccccccccc:c
ccccc::cclccclloloolloolcclcclccccccc::;;;,,,,,,,''''',,;:::lcccccccccccclc::c::
c::::c::cc::lloooooolollclclcclllooollllccclllccccccc:ccccccccclccccccccccc::cc: