`:                                         
                                                      `..:::::,:;,`           i#   ,                                     
                                        ;`          `,::;::;::;::;;:.        `xx` ;x`                                    
                                        ##        `,::::;::::;;;;::;;:.      ;xx;;xx,                                    
                                    #:  nx;      `::::i;::;:*++*;::::;::`    #xxxxxx;                                    
                                    nx*.xxz`    ,::::*++i;;*++***;:::::;:,` `nxMxxxx*                                    
                                    nxxnxxx,  `:::::i**+#**+i;:::;::::::;;:..xxxxxxx#                                    
                                    nxxxMxx+ .;:::::*i;;;;;:::::::::::::::;:,nMxxxxxn`                                   
                                   `xxxxxxx#,::::::ii::::::::::::::;:::::::;;+MxxxMxx,                                   
                                   `xxxxxxx#:::::::i::::::::::::::::;:::::::;;zxxMMxxi                                   
                                   ,xMxxxxn::;+::::::::i:::::::::::::;::::::::ixxWMxx+                                   
                                   :xxMxxx;:;z;:::i::::*::::::::::::::;,:::::::zMWxxxz                                   
                                   ;xxMMxi,,++::,*;:::;i::::::::i:::::::.:::::.iWMxxxz                                   
                                   ixxMW+`,:z;,::+:;::i;::::::::*:::::,:..::::;`zWMMxx.                                  
                                   ixxxx.`,*+,::ii;;;:i;::::::::;i::::.,,`.;;:i.:Mxxxxz`                                 
                                   ;MMM*`,,#;,,:;:*;*:i;:::::::::+::::,`:` ,;i:..nxxxxx,                                 
                                   zWWn...;#:,,;,.+i*:;;::::::,;:i;:::,,*:  :*:.,;MWMi.                                  
                                  ;WWM;,,.i+,,;;..***::;::::::.;;:i::;,,;+` `*;,;;zxMx:                                  
                                  :zx+,,,,*i,,*;.:i*i:::::;:::,;*:;i::;,:+i  :i,;*:xxxn;      `..`                       
                                    i:,;,:*;::+i,;**i;::,:;:,,,;+::*:,i:,*+.  *::#;*xnnn#+++++##+`                       
                                   *z,,i,:*:,;+*,;+i*;;:,:;,,,:;#i:ii,;;,i+i  ,i:#*:znnzzz####++.                        
                                 `iM+,;i::*:,***::+***i:,:;,,,:i+#;i+i*+;i*+.  i:##,;nnzz####++:                         
                        `:;;;;i*#znMi,i;::i::+*i;:**i**,,:i,;,:*zx#;i;;+;*##i  ,;##:,+nzz####+i                          
                         ;zz##zzznxM:,*ii,:,;+*i;ii***#:,;*:;,;#+#*i:;:*;:i*+.` ;##i::zzz###++.                          
                          ;#####zzxn,,+**,;,i+++;;;;+##i:;*;;:;**+i+n#+#z##++#+;:##i:,*zz#;:;;                           
                           ;++###zx*,,+++,;;zz##i:::nMnzz#zzzzzz#+nz#zx#n*z++*:;:+#*:::#z##+:`                           
                            ;++##zz:,;i+#::*##:;+##*;*zxnxxxxnxMnMznx##*#+**+;*i.i#*;:,;zz##i                            
                            `**;:#*,:i;+#i+*x**n#zz+#:iznzxnnnnzMzMz*;i;ii#*+*:,.;zi:;:,*z#*`                            
                             `.i+#::ii:*#+*++;#+ixM#++::#*Wnnnnxzzxx+::::,;#++;.`i+;:;;;:+*`                             
                              i++*,;ii,;#+*n;#+:z#*,+##i;in#znnW*xxn::;;;:i++*;,.+;i::,:;:.                              
                              `i+:;;**,:#++#:zi;zi*::zn;*:xMMMMx#xW*:;;::;i##*;,,+`i:::``::.                             
                               `::;i;*,:#+#;;n:***z+z+z*z*#MMxznnxn::;::,,+M##i::#`::,::  .:`                            
                               .;;i;;*,;*+nz:#,*xn*nnxz*zzW+i,+n#xi:;;::::zWz#*:*M`::,,;,   .                            
                              `;;i;;;+,;++nx:#:*; `*nxn*#n*.:.,x*x;::::,,:MWzz*:#n`,;,::;.                               
                              :,,::,;+;:#+nx;+;:;`.++#xizi,.,.:+*x*;:,::,:nn+*:;xz,.i:;;:;`                              
                             `` ,;;.i#i:++zn*++,*;:,.:n:x;,,,,,*#nn+:,,,:*#ni+:iW#*`+i;;::;`                             
                               .i*:.+#+:*#*##:+i;,..,+;in;.,;,.;znnni,,,;xx#i;:zn##`x;:;;;::`                            
                              `i*i:*+z#*iz+#*i;##;;;z;:Mi:..,,.,*z+#z*i+xxzi+;*W#z+`#z` `,,,,`    ,.                     
                              ;**;i;;z##+#n*;::::**i::n+*,......z+#+zz*z#+i#;;#n##*,:,,          `..                     
                    ```      :*+*i***+#z###z*;:::::,,*+i*......`;##z*i;;;*+;;##zz**:*            ...`                    
                 .i#nnn`   `;****++++*zz####zi:;::::i#**....::;;:,+i*++##i:;+#+z#i*i*:           ...,                    
               :#xxnxnn+` `:iii;;;;nz*+z+z##+#zi::iii#*,.,:;:::::;;*i;;;;*+zn++zi**+i*.          ...,                    
             .#xxxxxnn+++`       ,+;*+*#+####+#z#*z+z*.`,;:::,,,,:::**++i++**+#*i+++***.         ,..,        .,          
             zxxxxxxni:#zi         :#+###zzzzz#####;,```.;::,,,,,,:,....;***++*i**##****.        ,...       .,.`         
             zxxxnzz*z#znz        ,#####nxnnnz##zz:...```::,,,,,,,:....;*+**+#***++##+++*:      `,.,       ..`.`         
             ++*i*#xxxnxxn,      ,+##z+:Mnz+zzzzzn*...````:,,,,,,,...,i#nz**##z+*+i.:i*+++i.    .,..      `..`.          
            `x#+#xxxxxxMMx*     .i**;, ;xn++zzzzzxx;..````..,,,,......+xx+*+zz##+*+:   `...`    ,,,.      .....          
             nxxxxMMMMMMnnn`           +n##nnzzzznxx+..``````````...,zxxz*+nz######+.           :::.     ,..`.`          
             *xMMMMMxxxM#zM:          `znznzzznzznxxnz:``````````..;xxnn*+n#++#+++##+.          ;;;.    `:...`           
             .xMMMMM###znzM+          +nnnzzzznz#nnnnz#*.```````..+#zxzzzz+++++z#+++++:`        i;;`    :;::.            
              #MMxznzznWWzMx`        ;nnnnz*##z##nnnzz++#;.````.i#**zn##+#+++++###;;;,.`       `i;;    .;;;.             
              :xz#zWnzzWWnMW;       :nnnz*,.#+#+#zzzzz+*+**:..:*ii**#n#++zn#++**+++`           .;;;   `,;;,              
              `MWznWWnzxWMzz#      ,##+:`  ;++#++nzz###**i;;;iiiiii*#nnz++zzz#***++,           ,:;;   ..;:               
              .;nMzMWMzxWWn,;.            `++*+*+nz#####*i;;;;iiiii**#z++*###+#+**+:           ,.,:  `..:                
             `.`.zzMWWnn@WM:.,:`          ,++,i**:z###zz+*iiiiiiiiii**++++++++++**+*:i*i,     .,...,`....                
              .``#xn@@W#M@W+..,:,`        *+, ,*; .*+#z+z*iiiiiiiiiii++++++++**ii*;;i+#*i:   `,.....,..,`                
              `,:zWnM@@nn@@x#.,,,:       :*.  `i:  .+##z+*iiii;;;;;:i+*****iii,;;,:;+#ii;;. `:::::,,,,.,,,               
              `.``.zn@@Mn@@WMn,,,:`      .     .;.;**+z#iiii;;;;;;,.+*iiiiii;,;;,:;+#ii;;;;,,........,,...`              
               ,```.#M@Mn@@@M@n,,,,        `.,:;i****+ziii;;;;;;:..:i;;;iii;,;;,;;+#iiii;i:........,:.....`              
               .,,.`.z@Wn@@@W@@i,,:    `,;i+**iiii***#*i;;;;;;:,...;;;;;;i:,i;,;;+#*iiiii,.....,:;;i.....,`              
               .`.;*#n@@xM@@WW@z,,:  `:#*iiiii;;;i**+#:;;::::,....:;;;;;;:,i:,;;++*iiiii;......i;;;....:::.              
               ..`..zn@@@n@@@M@W,,;` i+*#i::,;;;;;ii+*:,,:::......;;;;;;,,;:,;i+#iiiiiii;.....,i;;...,:,..,              
                ,.``.ix@@nW@@W@@i,*.;**;i*;,;,;i;ii**i:,....`...,;;;;;;,.;,,;;*zii;::ii;;.....:;;;:i,.....:              
                 ....;x@@WM@@@@@z;+i:.ii;*i;,;,iiii*ii,,..````...;;;;;,.;,,;;i#i;,```,;;:.....;;;;;;......,              
                   .x@@W@@W@@@@@W*+,..*i,iii:::;ii*iii....````..:;;;;,.:.,;;;#i;.``````,:.....i;;;;..,::;;.              
                  ..+W@@@@@@@@M@##i...*i.iiii,;,;i*iii....`````,i;;;.,:.,;;i+*;.````````,....:;;iii;iii*ii.              
                  ,...+@@@@@MMMziz,...i*.;i*i::;,iiii;...:,```.i;;;.,:`:;ii*+;.````````.,....;;;:;::::;;i:               
                  ,:,,:xWWMMWW#z#M.``,i*.:ii*i,;,;ii;;.:;,;,`.;;;;.:,.:ii;*+;,`````````.....::::::,...,i,                
                   `.izWWW@Mz#nWWMi``:i*..i;*i;,;.;;;i:,..,;,,;;,.:.,;i;;i+;,``````````,...::::,,......,                 
                     .+z+z##n#@WMMz``:i*.`;;i+i:,:,;;i.,;;.:;i:.,:.,i;;;i*;.,``````````,..............,                  
                      *+##xW@WMW@@M,.;;*.`:;;**;,:,,;i::.,:.i,.:,.:i;;;i*i... ```````` ,,............,`                  
                      :MWMW@n@W@@@W,,;;*.`:;;;+i;.:.:i.,:.,;.,:.,i;;;;i*i, ,`    ````` ,;..........,,`                   
                       xMWM@W@@@@@n`;;;*.`,;;;i+i:.:.;;;;;,,:..ii;;;;;*i:  :`    ``````:i,......,,,`                     
                       *W@@@@@@@@M,`;;;i``.i;;;*#*:.:,i;;;i,.;*;;;;;;*;:` `:     . ````:;:......`                        
                       .M@@@@@@@z:``;;i:```;;;;;i#*;.:i;;;.:*i;;ii;;*;,,` `:    `.````.:;::....;.                        
                        :M@@@Wz**,``::i:```:;;;i;iz+i.;;;:*+;ii*i;;*;,``. .:    `.````,;;::....+z;`                      
                         ,+++iiii```;:i,```.;;;;i**#z*i;*#**+*i;;i*:,`  .`.:`   `.````:;;:.....izz+,                     
                         :;;;;;ii``.::;,````:;;;;i*+zz#zz#+*;;;;*i:.    `..:`   .````.;i;......:z###i`                   
                         :;;;;;ii,:i;i:.`````:;;;;;;i;:;**ii;;i*;,`      ..,.   ,```:iii,......,z####+.                  
                        `..:;;;;i,:i**:.```` `.,::,,`` ``,i**i;,`        `.,:`  :``:*i*+,.....,.+##+##+`                 
                        .`..,;;;;..i**:` `       ` .`   `,:::.`           ,,:. `:`:*ii**,....,,,i##*+##,                 
                        ,``...,;i:,,*i:`          ``:,``,::;.             ,,::``:,*i;***......,,;##**##:                 
                       ..``.`...:`,:;i,           `:+nnxz*;,              `:;:..:i*;;*;;......,,:##+i#+:                 
                       ,`......`;:`;:;,          `;*+#+#+*;`               ,;::,;*;;::i+....,,,,,+#+i++:                 
                      `.........ii:,i;, ``     `,***z+**z**.               .i::;ii,`;*++....,,,,,*#**+#,                 
                      ..........i;i;;i,```    `:+**+#*;i#+i;               .;::;*,.;++++...,,,,,,i#+**#.                 
                      ,........,i;i*;*,````  `;+***+**;;*#;;`              .;::ii`;i*#z+...,,,,,,;#+**+`                 
                     ..........,;;;+*+.``````i**ii+**i;;i+*;;              ,;::*;,;i+##i..,,,,,,::z#**+                  
                     ..........:;;;*+#.`````;i;;;;***;;;;*+;;.             :::;+;*;*##i;..,,,,,,::##++*                  
                    `,.........:;;;i##.````,;;;;;;;*+;;;;i*i;;`            :::**;+i+#;;;..,,,,,:::++++;                  
                    ...........:;;;i+n.```.;;;;;;;;i+;;;;;**;;,            :::+;*i*#i;;:.,,,,,,:::i+++,                  
                    ,..........:;;;inx.```;;;;;;;;;*+i;;;;**;;i`          `,;i*;*;#*;;;:.,,,,,:::::#++.                  
                   `,..........;;;;i;i,..,i;;;;;;;;**i;;;;i*;;;:`         .,:*iii**:;;;,.,,,,,,::::+++`                  
                   ............;;;i:.;:..;i;;;;;;;;+**;;;;;*i;;i`       `.,::+;*;#;:;;;,,,,,,,:::::*++                   
                   ............;;;i.;;;.,ii;;;;;;;;+**;;;;;*i;;;;      `.,:::*;i*x#::;;,,,,,,,:::::i+i                   
                   ,...........;;i:;i;;,;iii;;;;;;;++*i;;;;ii;;;;.    `.,,::::+izzn;::;:,,,,,:::::;;++.                  
                  `,,,,,,,...,,i;;;;;ii:*iiii;;;;;;+#*i;;;;;*;;;;:   `.::::::::#z+*;::;;,,,,::::::;*#*i.                 
                  `:,,,,,,,,,,:;ii;;;;ii*iiii;;;;;i#n**;;;;;*;;;;;`  .::::::::,:+: `;::i:,,,:::::;*++ii*.                
                   ,,,,,,,,,,,;;;i***i;**iiiii;;;;*zx**i;;;;i;;;;;  ..`,:::::,,,:`  .;:i;:::::::i+++*ii**,               
                   .,,,,,,,,,:;i.++++#z#**iiiii;;i*#*+**;;;;;;;;;: `.  `,:::::,,:    ,:;i;;;:::i*++*******,              
                   `:,,,,,,,,;;, .*#+###+*iiii;;;i*i.#**;;;;;;;;;, `  ` `,:::i,,.     ::i;;;;;i**++*+******.             
                    ,,,,,,,:;;;   `;####+*iiiii;i**,`****;;;;;;;;.    ````,:,;;:`     `::;;iii**++i*+******i`            
                    `,,,,,:;;;`     ,+#+++iiiii***,``:***;;;;;;;;`   ``` `.:,,+i       `:;;;i***+***+*****i*i            
                     ,,,,:;;i`       `*+++*iii*##i,```****;;;;;;:    `````.,,,::        .:;;i**+***++*****i**;           
                     .,,;iii.         ;++++*+#n#*i*i;:i***i;;;;;.  ` ```.,,,,,,,`        `;ii***i**#+*****i*++.          
                     `:;iii.          *++++zxz**iiiii*i+****i;;;````..,,,,,,,,,,,         `*+**i**++******i*++i          
                      :ii:`          `+++zxn+iiiiiiiiii+*******;,:,,,,,,,,,,,,,,,.        .++*i***#+*******+++i          
                       `             .++zx+iiiiiiiiiiii********:,,:;:,,,,,,,,,,,,:`       ;+++i**+#******+++++;          
                                     ;i.;iiiiiiiii;;iiii+******,,,,,::;;;;;;::,,,..      `*+++***#+++++*++++++.          
                                     .  :iii;;;;;,``..,;*******i;:,,,,,,,,,,,,,,..,`     .*++#**+#++++++###+#;           
                                        ,i;;;;;;.```...`.;****::;;;:::::::,,,,,,....     ,*+###+##+++++#####*`           
                                        ,i;;;;:.````...``.***;..`...,:::::::::,,,..`     `*+##z#z#++++#####+`            
                                        :i;;::.``````,.```:**.```......;**zx;```.``       .+#zznz#+++#####+`             
                                        ;i:::.``````.,.```.i;.`.`......,*ii*`              :zzznzz##z####*`              
                                       .;i::,```````.,.```....`.`.......iii:                iznxzzzzzzzz+                
                                       ::;:,..``````.:.``````.`.........;i*`                `#nxnnzzzzzn+                
                                      .;:;,..````````:.```````..........:ii                `;#nxnxnnzznz#`               
                                      ;:::.....``````:.``````...........,i;               ,+#znMnxnnnn###:               
                                     ,;:,,.....``````;.``````...........,*;              .+###zxxxnnnz###*               
                                    `;:,.,.....`````.;.``````...........,*;              ;##++znMxxn######`              
                                    ,:,........``````:,``````...........:*i.             *##*+#zxMnz######,              
                                   `::.........```..`:,``````...........;i;:             ##++++#Mxz#####+#i              
                                  `,:..........```...i,``````...........i::;            `##*++#xnz######+##              
                                 `,:.............`.`.*:``````...........;,,;`           `z++++nxz####z###zz.             
                                 ,,,.............`.`.*:.`````..........,:,.::           `z+++zxz####zz#zzzz;             
                                ,,,..............```.i:..``............,,,,,i           .z++#nn####znzznnnn+             
                               .:,...............`.`.i,`.``...............,,;,          .z++nzz##zznzznnnnnn`            
                              `:,...................,i,``.................,,:;          ,z+zz#z#zznnnnnnnnnn`            
                             `:,,,,,................:;..``................,,,i.         ,z#n#zzzznnnnnnnnnn;             
                            `:,,,,,:,...............::..``......`........,,,,:;         :zn##zzznnnnnnnnx#,              
                           .i:::,,,:,,..............:,````......`........,,,,,i`       .izn#nzznnxxxxxn+,                
                          .i;::::,,::,,............,:,`````.............,,,,,,;:    `;#znn#znznnxxxx#;`                  
                         ,*i;;:::,,:;,,............,:...``..............,,,,,,;*`*` ;zznnnznnnnxxxxx`                    
                       ,,**i;;::::,:;:,,...........,,...................,,,,,:;*iW+ *nnnnznnnxxxxxxx;                    
                      :*****;;;:::,:;:,,,..........,...................,,,,,,:;*nWM`#nnnnzxxxxxxxnxx#                    
                     :******i;;:::::i:,,,..........,....`..............,,,,,,:i*#WW*znnxxnxxxxxxnnxxx`                   
                    .*ii*****i;;:::;i;,,,,.........,....`.............,,:,,,::i++MWWxnxxnxxxxxxnnxxMx,                   
                   `;iii******i;::::i;:,,,.........,..................,::,,,:;*++xWWWxxxxxxxxxxnxMMxn,                   
        `....`    `;ii*i****+**i::::*;:,,,,...........................,::,,,:i++#zWWWWxxxxxxxxnxMMxnn`                   
       `*;*;**ii;;*iiii+*****++*i;::*i;,,,,..........................,:::,,::*++##MWWWxxxxxMxnxMMxnn:                    
       :*:*;**iii*iiiii+#****+*#+i;:i*;:,,,,........................,:;;,,,:;*+##zzWWWxxxMMxxMMMM#i`                     
       **;*;******iiii*+z#+***#*+#*;i*i:,,,,.......................,:;;:,,,:i+#zzzzxWWMxMMMMMMz;.                        
      `+*;*;***+**ii*+++#zz#+*+#**++i*i;,,,,......................,::;:,,,::*###zzznW@MMMMMM+;.,.`                       
      ,**;*;*++****+++#**#nn##+z+***#**i:,,,,....................,::;;,,,:;+####zzzzW@WWWWWWWWW@WWni`                    
      ;**;+;++*+++##+#+**++nx###n****++i;,,,,,...................,:;;:;i*#######zzznxWWWWWWWWWWWWWW@#