DDDDDDDDDDDDD          iiii                                                                                                                     
D::::::::::::DDD      i::::i                                                                                                                    
D:::::::::::::::DD     iiii                                                                                                                     
DDD:::::DDDDD:::::D                                                                                                                             
  D:::::D    D:::::D iiiiiii    mmmmmmm    mmmmmmm   uuuuuu    uuuuuu rrrrr   rrrrrrrrr      ggggggggg   ggggg   ooooooooooo       ssssssssss   
  D:::::D     D:::::Di:::::i  mm:::::::m  m:::::::mm u::::u    u::::u r::::rrr:::::::::r    g:::::::::ggg::::g oo:::::::::::oo   ss::::::::::s  
  D:::::D     D:::::D i::::i m::::::::::mm::::::::::mu::::u    u::::u r:::::::::::::::::r  g:::::::::::::::::go:::::::::::::::oss:::::::::::::s 
  D:::::D     D:::::D i::::i m::::::::::::::::::::::mu::::u    u::::u rr::::::rrrrr::::::rg::::::ggggg::::::ggo:::::ooooo:::::os::::::ssss:::::s
  D:::::D     D:::::D i::::i m:::::mmm::::::mmm:::::mu::::u    u::::u  r:::::r     r:::::rg:::::g     g:::::g o::::o     o::::o s:::::s  ssssss 
  D:::::D     D:::::D i::::i m::::m   m::::m   m::::mu::::u    u::::u  r:::::r     rrrrrrrg:::::g     g:::::g o::::o     o::::o   s::::::s      
  D:::::D     D:::::D i::::i m::::m   m::::m   m::::mu::::u    u::::u  r:::::r            g:::::g     g:::::g o::::o     o::::o      s::::::s   
  D:::::D    D:::::D  i::::i m::::m   m::::m   m::::mu:::::uuuu:::::u  r:::::r            g::::::g    g:::::g o::::o     o::::ossssss   s:::::s 
DDD:::::DDDDD:::::D  i::::::im::::m   m::::m   m::::mu:::::::::::::::uur:::::r            g:::::::ggggg:::::g o:::::ooooo:::::os:::::ssss::::::s
D:::::::::::::::DD   i::::::im::::m   m::::m   m::::m u:::::::::::::::ur:::::r             g::::::::::::::::g o:::::::::::::::os::::::::::::::s 
D::::::::::::DDD     i::::::im::::m   m::::m   m::::m  uu::::::::uu:::ur:::::r              gg::::::::::::::g  oo:::::::::::oo  s:::::::::::ss  
DDDDDDDDDDDDD        iiiiiiiimmmmmm   mmmmmm   mmmmmm    uuuuuuuu  uuuurrrrrrr                gggggggg::::::g    ooooooooooo     sssssssssss    
                                                                                                      g:::::g                                   
                                                                                          gggggg      g:::::g                                   
                                                                                          g:::::gg   gg:::::g                                   
                                                                                           g::::::ggg:::::::g                                   
                                                                                            gg:::::::::::::g                                    
                                                                                              ggg::::::ggg                                      
                                                                                                 gggggg