,;ld0NWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNX00XNKl.  .;oodl:clool::c:cclocllooloxxxxxxdl..;oc'...                                  cWMMMMMMWNNNNNNNO'                                                                                                                   
kOKNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNK0KXXOoc;'.':dO0o' .cllol:;:lllccc:cclocllloldxxxxxxdc..:dl,...                                  cNMMMMMMWWNWWWWNO'                                                                                                                       
WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNNXXXNWWMMNx;...''.        .l0Oc,:c:cc;;:cllccc:::llcllododxxxxxxdl..cdc;'...                                 ,0MMMMMMWNNWWWWWO'                                                                                                                       
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNXKOkdc;'...,:oKMNd.                :00xc:;::;;:cclccccc:ll:lloxddxxxxxxdc..cxc;,...                                 .dWMMMMMWNNNNNNWO'                                                                                                     ..                  
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNXKOkxl:,'...         .dNXd.                'kXXOl:;;;;:::c::c:ccooloodxddxxkkxxdc..cxl;;..                                   lNMMMMWWNNNNNNWO'                                                                                         .....   ...''...      ..       
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNKOxdoc;,...                  .;;.     ...       .'cOXNXx:;;;;;;:ccllooodddxxxkkkk000OOkl..okl;;,..     ....                         cXWWWWWNNNNNNWWO'  ............                         . ..                                  ...........'.........','...     ..       
MMMMMMMMMMMMMMMMMMMMMMMMMMWNKOxl;....  .....                 .,;cc:,,cooddddc'..,oOOOKNNx:;;:looodddddxxkkkO00OOOO0000OOo.'xOl;;...'',,,'.........                   ,0NNWWNNXKXXNNWK; ........'.....               ':cll:,,:cc:;,,...                       ...........''','......''....';'....... ..      
MMMMMMMMMMMMMMMMMMMWWN0xol:,.     .............              'lxkkdxO0KKXXKOdc:okKXKKXX0o::cldxxxxxxxxxkO0OkkkkxkkkkkOOOo.,xkc;;.'cdO000kxl,......                   .dNNNNNNXKXNNNNXl................              'cddl::::;,,'.....              ...... ..,;,,,,'...',,;;;'''''.','...','.......... .    
MMMMMMMMMMMMMWWX0Oxo:'...   ....   ............       ..     .':ldkO0KKXXKKOolc:::lxkdc,,;:cdxxxxxxddxxkOOOOkxkkkxxkkxxdc.,xxc;;,:xO0KKKKK0d'.....                    :KNNNNNNXXXNNNNx.  .............       .      ..'....                .......',,,,....',,,;;;;;'.,;;;,,;,,;,,'';;'.,,,'.........  .    
MMMMMMMWWNKOxl:'..   ........','.  ............      'll,.   ...:dO0KKXXXKK0Oxdc..,:,...,;:cdxdddxxdoxxxxxkkxxxxxdxkkdol'.,xkc;::lk0KKKKKKKO:.....               ...  ,ONNNNNXXXXXNNNO,   .....'......       ..        .           .....',,,;;;;;;;;;;;;,'',;,;;;;;;'.,;;;;;;;;;;;,',;,,,,,..  .....        
MMWNKOkdc,..       ........';:c:.   .','......      .cO0Od:'...,oO0KXXKKXXKKXK0x:;lxo;'.';;:oxdodddoodddddddooloddddxolc'.,xkc;::lx0KKKKKKK0c.....               ......c0XKKKKXNXXNNNKl.   ..'......        ..             .....',,,,,;;;;;;;;;;;;;;;;;;;;,,;;;;;;;;,',;;;;;;;;;:;,,;,,.'''.......          
kdc;'..     ...............:lol'    .lxd;....';;,'..,dKKKOo:. .ck0000O0KKKKKKXK00O00kl;,;;;;:ccllcc:clcclc::::coddoodool'.;xxc;::ok0KKXKKKKOc.....               .......cOOkO0KKKXXXXXx.    .,.. .. ..              ....',,,;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,;;;;;;;;;,,;''........                
           ................,:l;.  .,oxkkxc..':oxdc:cdk0KK0d;..;dOOkxxdk00KXXKKKXKKK0x:'.',;;;;;;;;;;;;;;::;;;;:clllcolc:..ckxc;::lk0KXXKKXKx;.....               ........cxkkkkxxkkOOxc.   ..... ...     .......,,,,;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,'....                 .....  
           ..................'..  'oO000Kx' .:dkxoclx00KK0xl::okOkxddxO0KXXXKKKKKK0xc,..',;,,;;;;;;;;;;;;;;;;;;:::::lc:;..lOkc;::lkKKKKKKKKOc.....               ....... .:lllc;,,:,'..    ..   ........',;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,'.....      .. ...     ........    
          .........................':dO00d'.,cxkxdoox0KKXKKOkkO0OkkO000KKXKKKXXKKXOoc'...,,,;;;;;;;;;;;;;;;;;;:::;;cll::''lkxc;::oOKKKKKKKX0l......                    ...,;,,'....    ........';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,......     .  .............  ........... 
.         .......  ............  ...'lk00x:,,cdxxxxxk0KKXXKKKKKKKKKKXKKKKKKKKKKKKKOdc'..''.,;;;;;;;;;;;;;;;;:::c:::ldl:;',okxc;::oOKXKKXKKK0l.....              ...'''''''..........'',,;;;;;;;:::;::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,'.......    .....................    .............
.          ......   ..........     .:dk0Kkl::lodxxO00KKXXXXKKKKKKKXXKKKKKKKKKKKKKKkoc'.,;,,;;;;;;;;;;;;::;;::::c:::cl:;,.,dOkc:ccokKXXKKKKOx;....      .....'''',,''......',,',;;::;;::::ccllllolccccclc:ccc::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,'''............'''''..''''.................   .'''',;,,,,,'
           .....    ...   ....     .:dO0K0xlooodkOOO00KKXXXKKKKKXKXXXKXKKKKKKKKK0kxxl'.';,,;;;;;;;;;;;;:::;:cc:::;;;;;;,.,x0kc:::okOOkxdolc;.. ...'''',;;;,''..''''',;;:lloooolccclccooooodxxxdxoccclc::cllolcccc:;;;;;;;;;;;;;;;;::;;;,'''............''',;;;;;;;;;'..'........................,;;;;;;;;;;;
.                   ...   ...       .:x0KKOddxxxO00000KKKXXKKKKKKXKXXXXKKXXKKXKKOxxx:..,;,,;;;;;;;;;;;;;;;;:::;;;;;;;;;,.,xKkc;,.';;;,'''',,,''''''''';,,,,,;:cccclooddddxxxxxdolodxddxxxxxxkkxxdlcccllclololllllc::;;;;;;;;;;,,,''...........',,,;;;;;;;;;;;;;;;,'.....................''',,..';;;;;;;;;;;;
.              .     .        .    .';dO0K0kkOOOO0000000KKKKKKKXXKKXKKXKKXKKKKXK0Okd;..,;,,;;;;,;;;;;;;;;;;;;;;;;;;;;;;'.,xOdc:;,'',,',,'..''..'''',:lolloooddxxxxkxxxdddxxxxxxdddxkxxxxxxkkkkxdoolllodooolooccccc:;;;,,,''...........',;;;;;:;;;;;;;;;;;;:;,,,','......,'.''''.''.''',;;;;;;'.';;;;;;;;;;;;
               .             .'.  .,:ldO0KK00KK00KXXKKKK0KKKKXXXXXXXXXKKKXKKKKKKOOOd,.',;;;;;;;,;;;;;;;;;;;;;;;;:cccccc:;;clc;,;;,'...'''',;:cloooddxxkxxxxxkkkkkkkkxxxxxxxxxxxxxkkxxkxxxxxxxxxdoolccloddollc:,,''''.......'.';;,;::::;:::;;;;;;;;;;;;;;;;;;;'.','.'..',;;;'''',',,;;;;;;;;;;'.';;;;;;;,,'..
              ..            .,'. .,lodxOKKXK00000KKXXXXKKKKKKXXXXXXXKXXKKKKKKKK0000d:,,;;;;;;,..,;;,,;;;;;::ccloodddddlc:;,,''.',;;::cclodddddxxxkkOOOkkkxxxxxxxxxxxxxxxxxkOOOkxkkxxdxxdxxxxxxxxdoc:::;;:,'.........'',,,;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,;;;;;;,;;;;;;;;;;;;;;;;'.',,'......   
                           .,;,''cxkOO0KKKK0000KKKKXXXKXKKXXXXXKKXXKKXXKKKKKKK0Ok0Oo;;;;;;,,....',,;::cloodddxdddolclc:::::ccloooddxxxkkkkkkxxxxxxkkxxxxxxxxxxxxxxxkkkkxxxkkkkxxxxxxxxxxxxxddxdl:;'........'',,,,;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;,,''..... ..........'''
                          ....';oOKKK0KXKK0000K0KKKKKKKKKKXKKKKKKKKKKKKKKKKKXK0kxkkl,,;;;,,,,;:;;cooooddoooddoolllooooodxxkxxxxkkkxxxkkkxxxxxxxxxxxxxxxxxxxxkkkkkkOkkkkxxxxxxxxxxdddoooollccclc;,,;,'',,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;::::::cccccc::::;;;,'''....   ..... .',,,,,''''..
                       .      .;k0KOdlokOKKKKKKKKK0KKKXXKXXKKKKKKKK0KKKKKKKK0kdolo:',:c::::::cc::cccclooddddxxxxxxkkkkxkkkkkkkxxxxxdxxxxxxxxxxxxxxxxxxxxxkkkOOkxxxxxxxxxxxdddollccccc:::clllodxddddoc::;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:clllloodoooddolc::;,'..........'',;,;;...''....      
                         .    .l0KOo;..:x0KKXXKKKK0KXKKKKKXKKKKKKKK00Okxxdol:,'....,lxocccccllooodoccdxkOOOkOOO00OOOOdokkkkkkkkkkkkxxxxxxxkkkkkxkkkkxxxkkxxxxxxxddddddolllccc::;:cloooodxxxkkkOkkkxdoc:;;;::cc:;;;;;;:::::;;:;;;;;;;;;;;;;;::;:::cccllodxxxxdddlcc:;,,,,;,',:cc:::;;;;,''''..'...    ....'..
                          .  .l0XKOd:',oOKKKKKKKKKKKXK0KK0000Okxddoc:;;,'...     ..cxkkxxkOOOOOOOkkxdxkOOOOOOOOO00O0OdokkxkkkkkkkkkxxxxxkOOOkkkkxxxxxxxxxddxxdolcc::cccccllloddddxxxkkkkOkkOkO0OOkxxdc:;;::ccc:;;;::cllc:::;;::::cllccccllloolooooooddxxdodxdoooollllloxddolccc:,''..''',;:cllc,'....';;::;;
                         . ..ckKKKK0kxk0KKXKKXKKKK0000kddol::;,'....          ...,cx0KXXXXXXKKKK0OkkOOkOkkkO0OOkkOO00doOOkkkkOkkxkkkkkkxkOOOOOkkxxddollllc:cccccloooddddxxxxxxkkkkkkkkxxxxxkOOO0Okxxdlllcclcccc::cllodddollllooddxxxdddddddolllc::ccldxxkkkOOOO0Okxxxollc,''.......,:coodxk00kdc::;;,;;;;;;;
.                          .ck0KKKKKKKKK0KK000Oxdoccc:,......        .......',:cldx0XNNNNKXNXK00kxkkkxxxxxkO00OkkOkO0ddOOkkOOOkkkkkOkkkkkxddoollccclllloolodddddxkkkkkkkkkxxkkkkkxxxxxxxxxxxkO00Okxkxxxddoddxdoddxddxxxxxxxkkkkkxdlc::c:::::ccccloodddoddodxdddlc:,... .    ..''',;:cloddxkKKOdc;:;;;;;;;;;;
.                         .,d0K0000OOkkdolcc:;'.......         ...''',;;;:cccldxxdx0XXNNXXXKkdoddxxxxxxxxkkOOOOkkkkkOddO0OkkOkkxxddollllccllccooodxkkkxxxxxxxxkkOOOkkOkkkOkkkkkkkkkkkkkkkOkxkO0KKK0OOkkkkkkkkkkOOOkkkkkxdddddolc;,'.',cloddoooooolc:;,'........             .',,';:ccloodxO0KOo:::;;;;;;;;;;
..                        .;dkxdolc;,,,'......          ....''',;;:::::::ldddxxxxdd0XXNX0OOkoodxxxkOOkkkkkkOOOOOOOOkxddOOxoolcccccclcclddxkkkkkkkOOOOOkkkkkkkkkOkkxxkkkkkOOkkkkOOOOOOOkxkOkkxk0KKXK0OOOOOOkkkkkxddddoccc:;;:cllllc:cclddolc;,',,;;,;;'.                     .;ccclodxxkOO0KKK0o:cc;;;;;;;;;;
.                         ..',''.. ...      ...........',;;;;;;;::cllolllldxxxxxxdd0NX0kxxxxddxkkkO00OkkkkkO0OOkkkkxoccoollllooooddxkkO00OOOOOOOOkOOOOOOOOOOOkkOOOkkkkkOkOOOkkOOOOOOkkkkkOOkxxO0K000000OOxdol:;,,,,:ccccc::cllc::;,,',,,...',:::cclc:'                      'oxkO00KKKKKKKKKKKkc::;;;;;;;;;;
                                       .....,;,,;;;;;;;:;;;:::cccoooddddxxxxxxxkxoo0XOkkkkxxxxkkOOOOOxdxxxxdodxdodxxddxkkOOOkkkkOkkkOOOO0OOOOOOOOOOOOOOOkOkOOOOOOkkkkkOOkOOOOkOOOkkOOOOOOkkxddddxxdddoollllccc:cooodxxoc;,,,,,,,;;;;;,'...',;:::,,'...               .'..   'x0KXXKKKKKKKKKKKKOl::;;;;;;;;;;
..                               ...',,;;'.;;;;;;;;;;;;;;::looooodxxxxxddxxxxxxxdclOKOkOOOOkddxkdooollloodddodxkO00KOxOKKKKOkOOOOOOkkOOOOOOOOOOOOOOOOOOOkkOOOOOOOOkkkO0OO0OOkkOOOkxxxxdol:;,',::clolldddxxxxdddlc:;;::;;;;;::::c:;;,,''..........                  .':cll;. ,x0KKXXKKKKKKKKKKKklcc;;;;;;;;::
                       .......''';;;;;;;;,,;;;;;;;;;;::cccloddddxxxxxxxddxkkkkxxxlcxkxdddooolcllolodxxxkkkkkOOO0KKKXOxOKKKK0OOkkO0OOkOOOOOOkOOOOOOOOkOOOOkkkkOOOOOOOOOOkOOxxxxdolc:::cc:;;:llldxdxxdollc:;,,'...'.',,,;:::;;;,'....              .',;'.          .,cddxkd,  ,x0XXXXXKKKK0KXKXKkllc:;;;;;;;cc
                   .',,'''.',;;;;;;;;;;;;;;;;;;;;;;;;:ccllloxxddxxxkkOxddddddddol;:lllcclooddddxkxxkO00OOOkkO00KKKKKOxOKKK0OOOOOkOOOO0OOOOOOOOOkkkOOOOOOOkkkkkkkOOkkxxdollc:ccccclllodddooolcc:;;;,'',,'.......''..'......              ...';:::cddxxc.        .':ldkkkx;   ,kKXXXXXKKKKKKXXXKklll;;;;::::lc
..     .............,;;;,',,;;;;;;;;;:;;:c:;::cc:ccclllllodddxxddooddollcc;;::clc:cododdxxxxxkkOOOkkkOO00OOO0OO000KKOk0KK0OOOOOOOOkkOOOOOOOOOkkkkkkkOOOOOkdddollllccllccloolodooool:::;,'''..''',,,,,;;,.........                   ..,:lodk0000KKKKO;        .;:coxxkOl.   ,OKKXXKKXKKKKKKKK0Olloc:;;:::;;,
...........'',,','',;;;;;;;;;;;;;;;;;;:cloc:codolooooooooooooc::;;:;,,;:cloooodxdldkxxxxkkkOkkOOO0OOOO00OOO0000KK000xxKKK0O0OOkxkkkkkkkkOOOOOkxxddooollllc:cclloooodddooooc:;,'......   ..''............                   ....'',:loxOO00KKXXXKKKKKd.      .';clldxdoc.    ,kKKKKXKKKKKKKKKKKOoloc::;;;;;;;
........''',,;;;,,',;;;;;;;;;;;;:ccc:cloodl:ldoollc;;,;,,,,;;;;:clooooddxxxxxxxxooxkxkkkkkxkkkO00OOkOO0000O0KKKXX00Kxd0KK0OOOkkxxxxxxdooodollllc:::clloooooddddollc;;'.....         .    ....               .......'''';:cclodddxkO00KKKK0OO0KKKKKK0l.     .':llc:;,'..     ;kKXXXXXKKKK0KXKXKklloc;;;;;;;;:
...,'.'.',;;;;;;,',;;;;;;;;;;;;:clllllcccc;;:c:;,,'..'',cccloddxxxxxxkkkxxxxxxkklcdxxxxxxxxxkOOOOkkkkO000000KKKKXKK0xd0KKOxkkxdoolcclc:::cllllodoolllllc:;,,''....                                      ..,:ccllcoddxkkxxxxkkO00000KKKKKK000KKKXKKKO;      .,cc:,...   ..   ;k0XXXKKXKKKKKKKKK0ococ;;;;;:;;;
..';;,,',;;;;;;;;,;;;;;;;;;;;;;;;;;,,,,,,,,;clllllccoodxkkkxxxkxxxxxkkkkxxxxxxxdccxxxxkxxxxxkkkkOOOOk000KKKKKK00KKKkookkxlcccc::cclllllooollc:::;'......                                         .....,;:cllooxOO0KKKKXK0OkxxxkkO00KKKXXKKKKKKKXKKKd.      .;cc:,......',.  ,x0XXXKKKKKKKKKKKKKxclc;;;;;;;;;
..',;;;;;;;;:;;;;;;;;;;;;,'''...''',,;:cllodxkkkkkxodxxxxxkkkkkkkOkxxxxxxxxxxxxdclxxxxxxxxkkOOkkxkkkOOO00KKKK0kxkxdoccodllllodolllllc;;;,'...                                                   ..',;:odddc,':dO0KKKKKKKOO00kxdxxO00000KKKKKKKKKKK0c.    .;:cll:;,,...',;'  ;OKKXKKKXKKKKKKK000x::c;;;;;;;;;
.',;;;;;;;,,'''''.......''....,clloodddxxkkkOOkkkkxddxxxxxxxxxxxkkkxxkxxxxxxxxxdloxxxkkkxkkkkOOkxxddddddxxkOOkxdxxxdccddoccc:;'....''....                                                          ...,;,;;...,:lddxkOOkddkO000000000K00KKKKKKKKKKOl'.';;:llllol:,'.......  ;OK00K00KKK0K000OOkl,;c:;;;;;;;;
,;,,'....... ......';:cclc'.,:odxxxxxxxxxxkOOkkkkkxxxxxxxkxxxdxxxxxxkkkxxkxxxxxdloxkOOOkddxdolllcllddddxkOOO0Okxxdl:'..'.....    .......                                           . ............ .';:odxkxdooodxxkkOOkkxdolooodddxkOKKKKKKKK0KKK0xolodxdlcccc:,......      ;OKKKKKKKKKKKKK000Oo;:lcc:;;;;;;
..... ....''.,;:ccoddxdddl;,:oxxxxxxxxxddxkOOOOkkkkxddxxxxxxxxxxxxkkkkkxxxxddddlclddddolcccccloooxO00O00Oxdoc;,,,,'.....';,.                         .                        .    .   ............;loxO0KKKK00KXKKXXKKKKKK0OOOOOkk00KKXXKXXK0KKK0d::lccc:,'...            .d0KKKKKKKKKKKKK0000x:coolc;:c:::
...'''',;clloddddxxxkxkxo;,;lxxxxxxxxxxxkxxkkkOOkkkxxxxxxxxxxxxkOOkxxddolllccc:;,:cloooooolooocc:cllc:,::,;';:codxxlo:.....                                                ......        .........;lddxkO0O00OOKXKKXKKKKKKXXKXXXXKXKKXXXXXKKKKKKKk:.......                 :OKKKKKKKKKKKKKK0000x:;oxoc;;cl::
';:llloooooddxkOOOOOkkxo:,':coxxxxxxkxxxxxddxk000OkxxxxddxxkkOOOkxol:;;:::::ccc;,:lll:;;,'........,,:lcdxxOxkOO00KK0Oc.....             .    ..                            .......       ..'.....,:lodxkkO000O0KXXKK0KXKKXXKKXKKXXKKKXXXXXKKXXKKKo'....                   .l0KXKKKKKKKKKKKK000Kx:,okdl:;cl::
.;codxddolloddkOxxxxxoc::;:oloxxxxxxxxdxkkkkxxOOkxolllccccloooodolcc:;;:cc;,;,'..............;;:loxxkO0K000000KK0K00O:..,:...     ........ .......               ......   ...........      ......,:lodxxkO0K0OO0KXXK0KKKXXKXKKXKKXXXXXXXXXXXXXXXO:.....              ......l0KKKKKKKKKKKKKKK000k:,okxl:;cocc
.,;:clccc:clodlc::cooololcodddxxxxdddoloooodoldxxl;,,,,,;;:c:;;:c:;''.......''....',;cccololoxxkkkkkOOO0OkO0OOK00K0OOc..cl,...    ..,:clc,.........              ....... ...........       ......',,,,;::clllccodoodxdxkkOOOOkOOO000O00OO000K000o'.....              .....'o0KKKKKKKKKKKKKKKK00x,.;ool:;coll
,,;:::::;',;::::clodxxxxdoddoooollc::::::;;:cldkkdl;,,;,'..'.....    ..... .... .,oxdxddxxxkkOOkxxxkOOkkkxkkkk000K0kk:.'oo:'..... .:okOOx;.....'..               ................'...      .....''....           ..,,'..',,;;::::::;;:c:;;::::::,......              .....,oOKXKKKXKKKKKKKKKKK0o'..,;cc:cl:c
::::cclol;',;;:ldddollolccc:::::;::::::cccccllodl;'.  .  ................       .:dxxxxxxxxkOOOkkxkOOkkxxkkkkkO000OOx;.'odc;'.... .;okOko'....''..               .....................     ....'.........    .....;cc;,:cldddxkxdolccxOOxodddxd:,'.....              .....,dOKXXXKKKKKKKKKKK0Okl.....:l:::::
::;;:coxo,.,;;:llc:;;;::ccc:::::::;;;,,''........             .                 .lkkkxxxxxxkOO0OOkxkkxkkkkOOOkOOOOOkd,.,xd:;,.......:ddl,..........               ..........'.........    ............        ......'',,;;::;:ccccccclollc::clol:'.....              .....'lkO000OOOOOOOOOOkxdl;.....';::cc:
;;;;,,:cc;,,,;;,;:ccc::cool;,'.................                                 .dOkkkkxxxxxkkOOOkkkkkkOkkOOOOOOOOOOo'.;kxc;;'....................               ......................   ...'.......              ........ ..............  ....'......              ........'',,,''',,,,''...........,;:cl:
......',:loc;,',:cc:;'........     ............                       ..........'okkOOOkkkkkkOOOOkkkkkkkkkkOOOOO00OOd'.:kxl:;,...    ......'......               ......    ...........    ...'...'...              .......  ...........    .....''......             .......  ..... .....     .........;;:::
....'.'';:;'..  ..         ..      ...........              ......    .... .....'okkkkkkkkkk000OOkkkkkOkOOOOO00O0000d'.:Oko:;;'..      ............              ......    .... .......   .......'...              .... ..   ...  ....      ...........              ......    .... ..... ..  .........,;;;;
.....                ..    ..      ..........               ...       ...   ....,dkkkkxkkkkkOOOOOOkOkOOOOOOOO0K00OO0d'.c0Oxl:;,...      .....'.....              ... ...   ...  .....      ..........              ...  ..   ...   ...      ...........              ... ..    ...   ....      .... ...';:c:
           ..        ..    ..         ........              ...   .    ..      .:kkkkkxxxxkxkOOOOkxkkOOkO0000KKKK000d'.cOkxoc;,..        ........   .            ...  .    ...  ....        .........              ..   ..    .              ....''....                   ..    .    ...        .......,,cc:
               ...                    ........                   .      ..     .:kkkkkxxkkxxxkOOOOO0OOK00KKKKKXKKKKKx,.l0Oxoc,..          .......                ..    .    ..                ......                    .                      .......                    ..                       ...',,,;,
.              .            ..     ..    .....                                 .cOkkkxdodxxxkkO0O000KKKKKKKKKKKKXKKKx:;oOkxdl'               ....                     ..                     .......                    ..                     .......                    ..                        .,'.....
..             .         ......  .        ....                   .         .....oOOOOxdlcdxO00K00KKKXKKKXKKKKKKXXXK0l',o00xxl.  ..   ..       ...                                .........       ...                    ..        .....  .         ...                    ..           ..          .','.....
.                      ...........        ....                           ......'okOOd:c:;:ok0KKXKKKXK000000K00KKKKKOc..lK0kxl. ...  ....  .    ..                              ......  .......   ...                             ........ ..        ..                                   ......','.......   
                        ..............     ..                        ........  ,xOkko,,,,:oxk0KKK0000OOO0OOOO00O0000c..oK0xxl. ... .....       ..                             ....... .......  .  ..                        ......   ..................                       ....................          
                         .............  ...                  .,ccc;'';:ccllll,.:k0OOdc;;lxkkOOOOOOOOkkkkkkxkkOOO00OOl.'dK0kxo;,c:,,;;'''..      .                             .  ...........   ...                  .,cc:,'',:clllc:,,,,,::;;;;,'...           .  .........'...........              .......
                      ................ ...                  .,dOOkxxOO00KXXXKx:cOKOkkdodxOOkkkkkkkO0OOOOOkkkkkkO00OOl.,kK0kko:lOOOO000OOkd;.   .                                       ....... ...                 .'oOOkxxkkO00000Oxdl:ldol:;:;,,'............''..'........         .    ......... .,;,'.'.
                        ....... .......              ..      .;oddxO0KKKKXXXKkco0KOOkkxkOkkkkkkkOOOOOOOOOkOOOOkOOOOkc.;OK0kkdlxOO0KXXXXXXX0c.  ..                         .       .'cc'....                         .;odllooolooc:::;,'',;;,'',,,,,,,'.......           ..........'..........''',,'..,,,,,'.
               .           .',,...   ......         .'::...   ..;okO0KXXXXXXKxcdK0OOkkkkkkkkOOOO00OOkOOOOOOOOOkkOOOd;.;OKOkkdox000KXXXXXXXXO;.                                   .:OKKk;     ....  .        .,'..    ..',,,''',;;,,,',;;,,,'''.....        ...........'',;;;;,',',;,'..'....',,'',,..,,,;;,'
 .             ..        ..';:c;.    .........      .:xkko:..  .ck0000XXXXXX0xld0OOOkkkxxkkOOOOOOO00OOO0OkkkkkkkOOOx,.:0KOkOdlx0K0KXXXXXKKX0c.  .                             .. .;dkOOc.   ......         .',,'.... ..';;,;;;,,'''........ .........'.'','',,',;,,;::;;;;;;;;'..'''...'...'';;,,;,..,;;;,,,
                .         .;:lo;.   .;ol'  ..''''...'oO0K0d:. .;xO0O0000KKKK0xcdOkkkkkkxxxxkkkkkOOOOOOOOkkOOkkkkkkko'.:0KOkOxox0KKKXXXXKKKKO;         .       .            .....  .,lk0d.   .'...........'',;;;;;,'............ ..........'',;;;;;;;;;;;;;;,;;;;;;;;;;;;;;;;;,'',''''''''''.';;;;;;..,;;;,,,
.  .             ..  .    .:ll;.  .'cxOOd;..,ccodc;;cxKKKkxc..;xOOkxkkO000KXKxclxkkkxxxxxxxxkkkkkkOOkkkkxxkkkkxxkkkc..c0KOkOxokKXXXXXXXKKK0k;                          .    .    .,,.c0Oc;;::::::cc:::;;,'''..............'''''',;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,'',,''..'''''..,;;;;;..,;;;,',
.                         ..'.  . .lO0O0Kx'.,coxdl::oOKK0Oxc;:o00kddxxkO000KOocoxkkkkxxxxxxxxxxkkkkkkOkkkkkkxxxkkxxc..l0KkkOdlxKXXXXXXXXK00k;   .                       .        ....;OKOxdol:;,,,'..........,,,,;:cc::::;;;;;;;;;;;;;;:::::::cc:;;;;;;;;;;;;;;;;;;;;;;;::;;;,,,,''''...'.''',;;;;;'..,;;;,;
.              .  ..        .   .  'okO0Oo,.;cdxxo:lx0KKXXKOkkkO0kxkOOO0KKKKOl:oxkkkkxxxxxxxxxxxxkOkOOkkkkkxxxxxxxxc..oKKOOOdlx0KKXXXXXXXXKO;   .             ..',;cc:.'cl,....      ;O0dc;,'''',;::::::c:::cllllllolcc::::cc::::::ccccllcclc:llc:;;;;;;;;;;;;;;;;;;;;;;;;;;;,''',,........',,;;;;;,.';;;;;;
.                  .        ..      'cdOOo:,,:oxOxddkO0KKKKKK0O00000KKKKXXXXOocdxddxxxdxddxxxxxxxxxxkkxxxxxxkkkkkxxc..lKK00Oocx00KKK0OOkkxxl.   ..     ..',,;::lddool:..:c;':l,.     ;kOxddooddddxkxdooooollccllodooddooooddlcclloddooddolclllccc:;;;;;;;;;;;;;;;;;;;;;;;;;;;,'',,;'......',,;;;;;:;'';;;;:;
.                  ..              .'ldkOxc;;coxk0OkOOO0KXKKKK0KK00KXXXXXXXKklcooldxxddxdoxkxxxxxxxxxxxxxxdxxxxxxdo;..oKK0Okl;codoccc:cc::;;,',,,;,..'',::c::;......        .;:,..  .:O0kkkkkkkxxxkddddooddxddoodxxxxxxddxxxddddooddddddollllcc::::::;;;;;;;;;;;;;;;;;;;,,,,;,,,,'''','''',;;;:;;;;;..',,''.
                                  ..:dOO0OdcccdkO00O0000KKKXXXXXXXXXXXXXXXKKxlldoloddxxxoodddddxxxxdxxdddddoododddo,..dKOOkd;.';::::::c::;,,;,'...''....',;:;;,.:dl'.....    .'loc'.,d0OkOOkkkkxxxxxxddxxxxxdddxxkxxxxdddddxxdddoodoloooolllcc:::::::;;;;;;;;;;;;;;;;;;;;,;;;;;,,,;,,,;,'.''',,,'....       
                     .        .    ..ck0K0kdodkOO00000000KKXXXXXXXKKKKKXXXXXklodlcllooodllololldoollddodoodooddxxocc;cdxdool:,',,,,'...........',;:clolooodxxxdoxOo,''.....':ldxkxdodO0kkOkkkxxxxxkkkxdxxkkkxxxxxxxxxxxxxdddxdddddooollllc:lolclll::::;;;;;;;;;;;;;;;;;;;,;,,,,'''....... .  .....'....'''',
                              .    .':dO00OOkO00O0000K0KXXXXXXXXXXXXXXXXXXKKkclocclc::::::ccllcododdxxdddxxxxxxxd;':l:;::,............',;:cc:cloodddxxxxxxxxkxxxxdl:;;;;;,,cdxxkOOOO0KKOkOkkkxxxxxxkxxxxxxkkxxxxxxxxxxxxxdoooooddllloollllcldoloolccll::::;;;;,,''........................''',;;;;::;',;;;;;
.                      .     ...  .,;cdO0K00OO0000KKKKKKXXXXXXXXXKKXK00OOOkdc;cl:clcllcccccoddddxddxxxdodxddddol:'.',,,,,,,,;;,:cclooododxddddxddxxxxxxxxxxxxxxxxo::;:cc:;cdxxkkkO0O0XX0kkkkkxxxxxxxxxxxxxkkxxxxxxxxkkxxddoloollolllloodooooolllllc:::,''...............''''',,,,;;;;;;;;;;;;;::::cc,',;;;;;
                           ..''.  ':cdO0KK00KK0KKKXKKKKKKKKKOkOxddddoc::;;;'.,:c:colllcclcccllloollcccllodddddddl::odoooooddolcodddodddxxxxxxddxxxxxxxxxxxxxxxxxxxolc::ccldkkOOkkOOO0XX0kxkkkxxxxxxxxxxxxxxkxdxxddxxxkkkxddoloocllcclcccccc:;,''',,,;,'''',,,,,,,;,,;;;;;;;;;;;;;;;;;;;;;;;;;:cc::cc,',;;;;;
                .         ..,,...,cok0KKK0OkOkkOOkxdoooolccc:;;,,,;;,',;:c:',c:::cc:,,',;;;;::cloodddxkO0KKK0000dloxxxkkxxxdollodddddxxxxxddxxxxxxxxxxxxxxxxxxxxxxxxxooddxkOOOkkkkxk0XX0kxkkkkkxxxxxxxxxxxxxxddxdddddddoolcc:;;,'''''''',;:;;;:cclllllloooollccc:c:;:;;;;;;;;;;;;;;;:::;;;;;;:cc::c:,',;;;;;
                .        .....':oxkkkOOkxdolc:;:;,,,,,,'',,,,;;,,,,'..',,,..';,',;:::::loolodxxxxxxxkOOOO00KKKKKkodkxkkxxxxddddxxxxxxxkkkxddxxxxxxxxxxxxxxxxxxxxxxxkOOOOOOOOkkkkkOOO0KKOkkkkkkkxdxxkxxxdddoooolllccc::::;;,;;;;;;;;;::cclddxxddxkxxxxxddxxdooollllc::::;;;:;;;;;;;;;:::;;;;;;;:cc:cc;.';;;;;
                .         .. ..,:c::,',;,,'......,,,,''''...............''..'cllloddddxxxxxxxxxxkkO0KKKKKKKKKKKKkoxkkxxxdddxxxxxxxxxxxxxxxxxxxxxxxxdxxxxxxkxxxxxxxxk00000OkkkkkkkO0000KOxxddddxollllcccc::::::ccccllloooolodooddddddddxxxxxxxkxkkxkkxxxdddddddololllcc::;;;;;;;;;:c::;;;;;;;;;::::cc:'';;;;;
                .        .  ....''',''',,'.     ....  ............',,,,;:lc,;oxddxxxxxxxxxxxxkOO0KXXXKKK0000OO0OxoxOOkkxxxxxkkOkxxxxxxxxxxxxxxxxxxxxxxxxxkkkkkkkk0OO0OkOOOkkkkxkkxdllxxdlcc:::::cccccccclooooddxxxxxxxxxxxxxxxxxkkxxxxxkkkkkkkkkkxxxxxxxdxxxdddoodolloc::::::::::cooc::;;;;;;;::c::cc,',;;:;
 .                     ......''''.........        ...',;;,;;;;;,',:cc::clol,:xxxkxxxxxxxxxxxxk000KKKK00OOO000OOkxokOOOkxkkkkkkOOkxxxxxxxxkkxxxxxxxxxxxxxxxkkkxxxxxkxxdddoollllccc:'..',''codddoodddxxxxdxxxxkxxxxxxxxxxkOkkkxxxxxkkkkxxxxxxxxxxxxxxxxxxxxxxxxxkkkdolllclcc:ccclcllddlcc::;;;:;:c:::cl;,;:::;
  ..      .........    ...         .............',;;;:lc::::;;;,,;:::::loo:;cdxxkkxxxxxxxxxxxxO0000OOOOOkOkOOOOOxdkKK0kkkkkkkkkkxxxxxxxxxxkkxdddddddxxxdoooodollcllllcllllloodddl,..'cc;;okkkkxxxxxxxxxxxxxxxxxxxxxxxxxkOkkkxxxxxxkkkkxxxxxxxxxxxxxxxxxxxxxxxxxkxxdoloololclooddooddollcc::::clolcclo:,;:::;
,,,'...........          ......''',,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:cloo:,lxxxxxxxxxxxxxkxxkO000OOOOOkkOOOO00OkkkO00OkkkkkkxxxxxxxxddooooolccccccclccclccllodoodddddxxxxkOOOOkd,.;dOkocoxkkxxxxxxxxxxxxxxxxxxxxxdxxxxkkxxkkkkxxxxkxxxxxkxxxxxxxxxxxxxxxxxxxxxxddxxxxddoooooooddddxxxxdddooodxxoodol;,;:;::
:;,'.          ......'',,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;clodl;;oxxxxkxxxxxxxxxxkO0KKK0KK00OO000KKK0kxOOOOkxkkxdooooollccc:::::::cllloddddddxxxxxkkkkkkkxxxxxkkOO00Od,.l00klcoxxxxxxkxxxxxxxxxxxxxxxxxxxxxxxxxkkkkkxxxxxxxxxxxxxkkxxxxxxxxxxxxxxxxxxxxxxxxdxkkxoooodxxxxxxxxxdddddddoclc;...'''.
,'........''',,;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::lddo::dxxkkkxxxxxxxxxk0KKKKKKXXXK0OO00Okkxoodoolcclcc:::::::cllooooddddxxxxxxxxxxxxxxxxkkkkkOOkkkkxkkkkkkxo,.l0Kkc:okxxxxxxxxxxxxxxkkxxxxxxxxxxxxxxkkkxxxxxxxxxkkkxxxkkkxxxxxxxxxkkkxxxxxxxxxxxxxkkxdoddooddoolc:cc;,,,;;;;,'''.......
,.',,'',;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:cldxl:ldxxkkkxxxxxxxxxxkkOOOOOOOOkkxdxdollllloooolodooodddddddxkxxxxxxxxxxxxxxxxxkxxxxxxkkkkkkkkkkkkkkOOOOOd,'o00x::lxkkkxxxxxxxxxxxxxxkxxxxxxxxxxkOOkkxxkxxxxxxxxxxkkOOO000OOOOkOOOkkkkkkxdoooooolc::;;;:;;;;,''',;;,,,:lllllol;.',;;:
'.,;;,,;;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:cclodxl:lxxxxxdddddoooooooddddddxxxxxdxxxxxxxdxOOOkxxxxxxkkxxxxxxxxxxxxdxxxxxxxxxxkkxkkkkkxxxxxxxxxkkkkO0000Kk;'cxo:'.cxkkkxxxxxxxxxxxxxxkkxxxxxxxxxkOOkkkxkxxxxxxxxxxOOOOOOKKK0Okxxxdooollllc:cc:cc::::cccccllllllllodolloooooc::'...'..
,';;,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:cloool:;:cccllllllloolloddkkOOOkkkOOkkkOOkkkkdkKKOkxxxxxkkkxxxxxxxxxxxxxxkxxxxxxxxxxxkOOkkkkkxxdxxxxxxxO000KXk;'cl;. .lxkOOkxxxxxxxxxxxxxxxxxxxxxxxxxkOkkxxxxxdddoooooolcc:cllcc:;,,;clolcclllodddddddddddooooolcc:;;;;,'',,,,,...       
'';,,,,,;,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,''''''','.',:;.':cloddxxxxxxxxxxxxO00K0OOOOkkkkOkOOOkxOXKOOkxxxkkkxxxxxxxxxxxxxxkxxxxxxxxxxkOOOkkxkkxxxxxxxxxxkOOOKXXk;,:;.  .lkkOkkkxxxxxxkkxxxxxxxddddxxxdddoooc:;;;,,''',,,,,'.',,;:coooddxOkkkxxxddoooolcc:,,,'..,,,''..'..''',,'''. ...  ...
'',;,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,'''............',,;;:cloo;,oxxxkkxxxxxxxxxxxxO0000O00OOkkOOkkkOkk0K000kxxkkkxxxxxxxxxxxxxxxxxxxxxxxxxkkkkkxxxxxxxxxxxxxkOO00KXKKx;';,'. .lOkkkkkxxxxxxxxdolllc:;;;,;,,,,;;;:::;;,,;;;;:::::::c:,:lolllloolc;;;,'........     ..'''...'............... ....,;
'',;,,,;;;;;;;;;;;;;;;;:;;;;;;;;;;,,,'''',,,,''.....','',;:::;;coooldxxxd:,lxkxxkxxxxxxxxxxxk0000OO00OOkkkOkkkOkxO0kkkkkxxxxxxxxxxdxxxxxxxxxxxxxxkkkkkkkkkkxxxxxxxxxOOO0KKKKKK00d,.',.  .:doooooolc:;;;;;''''',,,,',::cloxxkOkdlc::::;,,;,''''............        ......       .                    .....,;;
,;,,,,',,;;;;;;,,,,,'''........',.....'',,,;;;;;,;clloollodoc::cclooodxxo:coxkkkxxxxxxxxxxxxxOOkkkkOO0OOOkOkkkOkkOOkkkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkxxxxxkkOOOOkkkkkOkkkkkkkxddoc'....  .,c::::ccclccccllllloodoooccccc::clol;,.......................              ..  .              ......'.''........,;;
;;,'...'.....................',;;;,;;;;:;;;;;;;;;:loollcclccc:::ccloodxxo:lxkxxxxxxxxxxxxxxxxkkkkkOOOOOOkkkkkkxxxkkkxxxxxxxxxxxxxxkkxxxxxxxxxxxxxxkkxxxdkkkkkkkxxxxxxdoloollolooc'.     .:dddddddddooolc:;;;;;,''................''........ ....                             ..  ...';clodddxkxkkc.......,;;
'..        ........',,,,;;;;;;;;;;;;;;;;;:::::;::::cc:;:cc:::;::::coodxxo:lxxxxxxxkxxxxxxxxxxxxkkkOOOOkkkxkxxxxdxO0OkxxxxxxxxxxxxxxxxxxdddoooddooddddllclldxkkkkkO000OOOO0000000d'      .'::;;;,,''.....                 ..      ...                                      . .,clccodxO0KKKKKXXXXKo.......,::
........''',,,;;;;;;;;;;;;;;;;;;;;;;;;;;;:::cc::llcc:::cllc:c::c:clolodxl:ldxxxxxxkkkxxxxxxxxxkkkkkkkxxxxxxxxxddxkOOkxxxxddddolloooodddoolloodxxdkkxxxxkkOKXXXXXKXXKK00000Oxddlc,. .      .                                  .                             ......  ..  .... ;kO000KXXXXXXKXKKKKX0l. ... .'::
;;;;;,',;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::cc:::;clc:::::::cooccdxl;lxxxkxxxxxkxxxxxxxxkkO0K0kxxxxxxxdxxdoodoooccccclllccclodxkkO0OO000KKKKKKKOkOOOOOOkxddoc:;,,''''..                     .  .                .                  ... ....'...     ..,;::;,,.....',.  ;OKK0KXXXXKKKXXXXXXXO:.  ... .::
;;;;;,'''',;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;::;;;:cc:;cc::;;::::cccclddc:lxxxkkxxxxxxxxxxxxxkOOOOkxxdddddoodxdlldxxxxdoooxkkkkO0OOkkkkxddddxxxdlll:,'''''....      .         ..            .......              .              ....,;;;;:cloooxkkd:...';:ccclc:;;,'''..'.  ;O00KKK0KK00KK00K0kxl'.   .. .,;
;;;,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::cll:;;;;;;;;::c::cccoxxdc:oddddxooddddoolloodxxxxxxxxxxkxxxxkkdlkKXXKK0OOkxddddolc;,''.......... ...         .  ....   ..........                                ...............',:cdkOOO00KKKKKKKOolooodollllc;'......     ;k000KK0K00OKKO000kxl.       .,;
;;;,,',,;,,;;;;;;;,,,,;;;;;;;;;;;;;;;;;;;;;;::clodolcc::clc:::::::cccloc,,:cc:ccllooodolloddxkkkOOOkkxxxxxdool;':cclc:;,,''.....               ......   ..  .. ....    .  ..                            .....''';:ldddxxxxxddooooodkO0KKXKKXXXXXKKkloddooc:,.'..           .o0KKKKKKKK00KKKKXXXXx.       .,;
;;'..'.',;,,,,;,,;,',;;;;;;;;;;;;;;;;;::::::loooooolccc::c:;;,,;;,;;::c:,;clldddxxxxxxdddddddoooolcc:,,,',,.... .   ......         .          ...  ..                                             .',,:;:loooooodxkO0KKXXXXXXKXXXXXXKKKKXXXXXXKKK0l'.......               .:0KKXXXXKKK00KKKKKXXKd. .     .';
;;'...'',,',,,,,,,,,,,,,;;;;;;;;;;;;;;:cc::;:;;;,,;;:;;,,;:;;;:clllooddo:codollcccccc;;,,;,;;';:;,.,:.':;co:c:;,.   ..             ..                                                           ..;cloxxkOOOOO000KKKKXXXXXXXXKKXXXXXXKKXXXXKKKXXXd.                       .l0XKXXXXXKKKKKKK00KXKo....   ...,
;;,,,;;,;,,,;;,;,,;,',,,;;;;,;;,'.''.'',;;;,;;;,,:clllooodddoloooollcc:,'''...'..,.,,,::cl:ldldkxxoxOddkkO000OOx;             ............                                                   .. .,coxkkkkkkkO00KKKKXXXXXXXXXXKKXXXKKKXXXXXXKKKKKO:.                  .    .l0KKXXXXXKKKK0KK000K0l....      .
c:ccc:;;;;;;;,,'..'.....''','''',;::,;clllllcoollooolc:;:;;;,.........'....,,,c:clcodxOOOOkOK0KXXKKKKK000KKXKKKO:. ...    ..';::ccc::ccll;..                            .   .               ......,;cllccllloodddxkkO00KKKKKKXXXXXXKKKKKXXXXKKXKd'.                 .     .l0XXXXXXXK00000KK00KO:.....      
kkxxl;'''..........',,,:c::clllcclc:;;:;,,,,,,'......   .        ........,cdddxxkkkkkOOkO0000KKKKKXXKKKKKKKK000Oc. .'.   ..:okOOO0000K00x;....                         .                     ....         ........,,,,',;;;:coolc::::lolllllcccc,.                 .      .lKXXXXXXXKK000KKK000x,....       
dooc;''''',::,,,,;::::c:;,,,,;,.......                    .......',,;::,'cxkkkkxOOOOOOOkO00KOO000000KKK00KKKKKKk:...,.   ..:dO000KXXKKK0d'....                         .   .                   .      ...   .....';c;,'',:clldxdlc:,;oxdlccc::;,..                        .lKXXXXXXXKK000KK0000o. ..        
clllccllcccc;............                                 ......',;,,;:,'cxkkOOkkkkkOOOO0OO0OO0000O0KKK0O000000k:..';'    .;oxkOOO000Oko;.                             .                              ..  . .....',;;,,;:ccllllcloollddddoollooo:'.                 .     .c0K000KK0KKK00000Okd;            
,,,,'......                                                             .:kOOOkkkkkOOOkOOkO0000O000000K0O0O000KO:..,;'.   ...',,,;;;;'...                                                                                  .           .. ..  ....                         .;;,,;:;;;:;;;,;;,'..            
                                                                        .lOOOOkkOOOOOOOOOkO0O0OOOkO0OO0O00O00KKk:..;:;,.                             ..                                                                                                                                                     
                                                                        .oOkkkkkkkOOkOkkkxOOO00OOOOOxkOO0Ok0K00x;..cc:;'                  .         .   .                             ..                                                                                                                    
                                                                        'dkkkkxxxxxxxxxkOkkkkOOOOOO0OOOk00kO00Od, 'ooc;'.                 .                                                                                                                                                   .             
                                                                        ,dOOOkxxxxxxxkkOOkkkkOOOOOO000OkOOO00OOd'.,ooc;,'.                  ..