DDDDDDDDDDDDD                                                                                                             iiii                                                                       
D::::::::::::DDD                                                                                                         i::::i                                                                      
D:::::::::::::::DD                                                                                                        iiii                                                                       
DDD:::::DDDDD:::::D                                                                                                                                                                                  
  D:::::D    D:::::D     eeeeeeeeeeee    nnnn  nnnnnnnn    nnnn  nnnnnnnn        eeeeeeeeeeee  vvvvvvv           vvvvvvviiiiiii             cccccccccccccccc   ooooooooooo      mmmmmmm    mmmmmmm   
  D:::::D     D:::::D  ee::::::::::::ee  n:::nn::::::::nn  n:::nn::::::::nn    ee::::::::::::ee v:::::v         v:::::v i:::::i           cc:::::::::::::::c oo:::::::::::oo  mm:::::::m  m:::::::mm 
  D:::::D     D:::::D e::::::eeeee:::::een::::::::::::::nn n::::::::::::::nn  e::::::eeeee:::::eev:::::v       v:::::v   i::::i          c:::::::::::::::::co:::::::::::::::om::::::::::mm::::::::::m
  D:::::D     D:::::De::::::e     e:::::enn:::::::::::::::nnn:::::::::::::::ne::::::e     e:::::e v:::::v     v:::::v    i::::i         c:::::::cccccc:::::co:::::ooooo:::::om::::::::::::::::::::::m
  D:::::D     D:::::De:::::::eeeee::::::e  n:::::nnnn:::::n  n:::::nnnn:::::ne:::::::eeeee::::::e  v:::::v   v:::::v     i::::i         c::::::c     ccccccco::::o     o::::om:::::mmm::::::mmm:::::m
  D:::::D     D:::::De:::::::::::::::::e   n::::n    n::::n  n::::n    n::::ne:::::::::::::::::e    v:::::v v:::::v      i::::i         c:::::c             o::::o     o::::om::::m   m::::m   m::::m
  D:::::D     D:::::De::::::eeeeeeeeeee    n::::n    n::::n  n::::n    n::::ne::::::eeeeeeeeeee      v:::::v:::::v       i::::i         c:::::c             o::::o     o::::om::::m   m::::m   m::::m
  D:::::D    D:::::D e:::::::e             n::::n    n::::n  n::::n    n::::ne:::::::e                v:::::::::v        i::::i         c::::::c     ccccccco::::o     o::::om::::m   m::::m   m::::m
DDD:::::DDDDD:::::D  e::::::::e            n::::n    n::::n  n::::n    n::::ne::::::::e                v:::::::v        i::::::i        c:::::::cccccc:::::co:::::ooooo:::::om::::m   m::::m   m::::m
D:::::::::::::::DD    e::::::::eeeeeeee    n::::n    n::::n  n::::n    n::::n e::::::::eeeeeeee         v:::::v         i::::::i ......  c:::::::::::::::::co:::::::::::::::om::::m   m::::m   m::::m
D::::::::::::DDD       ee:::::::::::::e    n::::n    n::::n  n::::n    n::::n  ee:::::::::::::e          v:::v          i::::::i .::::.   cc:::::::::::::::c oo:::::::::::oo m::::m   m::::m   m::::m
DDDDDDDDDDDDD            eeeeeeeeeeeeee    nnnnnn    nnnnnn  nnnnnn    nnnnnn    eeeeeeeeeeeeee           vvv           iiiiiiii ......     cccccccccccccccc   ooooooooooo   mmmmmm   mmmmmm   mmmmmm