+mNmhssysdmmhddNMNhmmmmNMMMmmNNNmhhsshhddNNNNNNmdmmNmmmNNNMNNdhyhdmMMMNhmmhy:                            
           .   oNmNNdhhdmMMNNMNNNmmhyhNMMMNmmmmNshy-yymNNMMNmmmNmmdddddNNNNdhdhhdNMMMMNdmmho                            
           ...`smdmNMMNNMMMMMNNNMNdyohNMNMNdodmNosdhddNMMMmNdyhmNNmmmmdmNMNNNdhdmNNNNMNNNmmy                            
          . -:ooydNMMNNmMMMMMMMMMMNhohMNmNmsohMmdhNNNMMNMNhhhdmMmMMMMMMMMMMMMMNNNNMNmNMMNNmd.                           
          ...hhdddMMMNdNmNMMMMMMMMNmdNNmNNdyosdmmmNNMMMmNdyhddNMMMMMMMMMMMMMMMNNNNNNMMMMNNNmo.                          
          :hyNmNNMMMMmdNMNNMMMMMMNNmdmmNNms:-shhmhhdMMNmhhddNMMMMMMMMMMMMMMMMMMMMNNNMMMMNNmdso    ``                    
      `  `//+MMMMMNMMMNNNMNNMNMMMMNNNNMNNh/:+hmyo-+smMNdhhsymMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNmhy.-:-.                     
      `:.:.+ydMMMMdmMMMmNMNNmmNNMMMMNNNNd/hydms+`.:syhhhhdNmdNNMMMMMNNMmmmmNMMMMMMMMMMMMNNmNNd/.                        
        -os/yNMMMNmMMMMmNdmNNNMMMMmdmmdyyoyhhs:..:os+::+yddddNMMMMMMNNMMMMMMMMMNmmmNMMMMNNd+yNm:                        
          +mMMNMNmmMMMmNNNMNMMMMMNddho/:oysyy+:/+o+/-...-/oyhhmNMMMMNmMMMMMMMMMNdmmNMMMMNMN+-+dh.                       
         .:-mhhNNdNMMNNMNNNMMMMMNmhsoo+/oooosyyys+:-..`..-/shhdNMMNNNNNMMMMMNmNNMNNMMMMMMMMMh:/h+                       
         `:omdNmmdNMMMMMNMMMMMMMdmyssyhdmNmNNmdhy/-..`..:shmNMMMMNNNNNMMMMMMMNmmNMMMMMMMMMMMMNNdy                       
    `.....:NmdNdddhNMMNNMMMMMMMNymhhdmmdhNNMNmNNms-``.-+hNMMMMMMMNNMMMMMMNNmNMNNNMMMMMMMMMMMMMNNm/                      
    `  ``+NMNdmdddhhmNNMMMMMMMMdNh/..:+-`-++::ssss.  `:yNMMNdosyysymNNmddmNNNmNMMMMMMMMMMMMMMMNNNo                      
      `-+sNNMmddddNNNNMMMMMMMNmNN/`   `.----:-.`.-`  `:yhys+/://+syysosyhdmNMMNNMMMMMMMMMMMMMMMMNs                      
         :NNMNdmmdmmmNNNMMNNNNNNd-              ``   `/s+:-.````.-::::/oyhmNNMMMMMMMMMMMMMMMMMMMNy                      
         :NmMMNNMMMMMMNmNNNMNMNMs.              ``   `/o/:-.```.....--/oydmNMNNNNMMMMMMMMMMMMMMN/ss.`                   
         .yydNNNMMMNNNMMMMMMMMMMo.``           ````  `/s+/:.```.....-:+shdmNNMMMMMMMMMMMMMMNmMMym+o/                    
         `o -ymdNMMMNmmmmNMMMMMMs:.```        `````  `:so++-.....---:+oydmNNNNMMMMMMMMMMMNNNMMmy.yso-                   
          s/` -dNMMMMNNNNMMMMMMNy:-.`````     `````  .:o//s-....---:+oyhdmNNNMMMMMMMMMMMMMMMMMNN- ss+.                  
          :h/-+yNMMMMMMMMMMMMMMNh:-...````    ./+/-.`-+yssy+....--:/oyhdmNMMMMMMMMMMMMMMMMNMMMMN/ `y/+                  
       ``.-ohdhmNNMMMMMMMMMMMMMNy::-..````    `ossssshmMMMNy....-:/oshddmNMMMMMMMMMMMMNMMNmdmMMN.  o/-`                 
          `.shh:+NMMMMMMMMMMMMMMy--:-..``      `.../hmmmmds/...-:/+syhmNNNMMMMMMMMMMMMNmmmddhymy/s+s.                   
       `   :ohmddMMMMMMMMMMMMMMMh--:/:.````````..``-::-/++:..--:/+sydmNmdmMMMMMMMMMMMMNNhNmyyh+/+s.+                    
       `-/++o/omNMMMNMMMMMMMMMMMM+--//:....`````...`  .:::----:+oyhdmNmdmNMMMMMMMMMMNNNNNmmmmyhdys:                     
        ``+ydmmNMNNMMmNNMMMMMMMMMN+:://:--:/++oyyyyyyhmmmmhhhyyyyhdmNmddmNMMMMMMNNmNMMNNmNNNNdds/                       
        ``.yodydMNMNmmNMMMMMMMMMMMNy//++//:-.``..` ``...:/+oossyddmNNmmmNMMMMNMNMNmmMMNNNMNNNmN.                        
           +dms+ymmmmNMMMNNMMMMMMMMMms//oo/:::/++/:::-:+oyhdddhdmmmNmmNMMMMMMNMMNmmNNmNdhNddss-                         
            :sdmmNNmNMMMmoMMMMMMNMMMMNho////+/+oyhmNNNNMMNmddhddmNNNNNMMMMMMMMMMMMNmNNNNmmms-                           
              `./+++/dMMddMMMMMMmmMMMNhdh+/--...``..-//+o+//ooydmNNNMMMMMMMMMMMMMMMNmmyhNmd               `````.........
                     +NMMsMMMMMMNdNMMNhyhds::---....--::::/+oyddmNMMMMMMMMMMMMMMMMMMMMMMmdo       `.:::::-....``````````
                     .NMMdNNMMNdmddMMMhysyhho+//////++++++syhdmNMMMMMMMMMMMMMMMMMMMMMMNNmo.    `/sy+:-...``````` ```````
                      oNmNMNMMNdmdmMMMdo++oyhdhhyhhhhhhhhhdmNNMMMMMMMMMMMMMMMMMMMMMMMMMNo-   -shy/-.```````        `````
 ````                -:hNMMMNMMMNmmMMMN+///+oydmNNNNNNNNNNMMMMMMMMMMMMNmmmNMMMMMMMMMMMMMMNysddy+-.``              ``````
`````....```            +ymMNNmNNyyNMMMo::::/+shmmNMMMMMMMMMMMMMMMMMNmmddddmNNNMMMMNNMMMMNNmds/-.``              ``````.
    ``````....````        `:+smmMMMNNNm/::--:/+oydmNNNNNNMMMMMMMMMMNmdhhhhhhdddddmmmNMMNNdhs/-.``               `````...
           ```..-:/+/:-`      ./+odNmmy:------:/+shdmNNNMMMMMMMMMNmddhhhhyyyy+hyyyyhhyo/:-.````````             ```...--
             ```..-::/+o+/-. `+hMMNmmds:----...-:+syhddmmNNNNNNmmddhhyyyyyss++sssooo+/:-....--..``              ```...-:
               ```..--:://+sydNNNNmdhs+:----....--/osyhhddddddhhhyyysssoo++o+oo++++++///:::--..```           ``````..-::
                ``...---.--:/shdmyoo://-...--.`...-:/+osssssyysssooso++////os:///:/:::--....``````         ``````...--::