,, ,,, ,,,, ,,,,,,,,
          /\        /;; ;;;;;;;;;;;;;; ;;;/ ,;`.   ,,,,
         ;  `-.    /// //////// /////  // ,','`;. ///;;;;,.
        ,'   ,,`-.;;;;;; ;;;;;;; ;;;;// ,' ,'  `.`. ///;;//;,
       ,'   ;;;//////// ////// ///////,'  ,'     ; : ;;// ;//,
       `.  ;`;;;;;;;: ;;;;:;; ;:;:;;:;:  ,'     ,' : ;;;;;;;;/,
        `. `; :!::::!;;;;;!::::!;!;;!;:  `.   ,'  ,'///!!;;;;;;
          `._!!;!!!!;!!!!!;!!!!;!;!!;!!`.  `;'  ,'-.!!!//;;;////
             ;   .   .               ,        ,'    ::-!_///;;;;
           .' ,%'  ,%'     `%.   `%.;;   `%.   ;;   ,::  `! ////
          .', '    '    `%,  `:.   `::.   ::  :;    %::    `! ;;
         ,';;        `%, `;;.         `::. `.;;;    `:%   %:///
        ,';;'  ;      ;;  `::;   `%,    ;%:.  ::     ::     %`!/
      ,' ;.'  .%.    ;;    `;;     ;;   ' `;   %     ::    %  :
      :  `;;  %%%    `::   ;;     ;;;      `    `    ::     % `
      ;    ' .%%'  `%  ;   '  ,., `;;         `%,   ::'   %::%
     ;`. `.  %%%%   ;;   .___;;;;  '     `:    `;   ::     :::
     : :  ;  %%%%   ;: ,:' _ `.`.        ;;;   ;;   `::    :::.
     `.;  ;  `%%'  ;;' :: (0) ; :       ::'    ;      ::   `:::
      ,' ;'  %%'  ;;'  ;;.___,',;       ;;    ;;       ;   ,:::
     ,  ;'  :%:   ;;  ,'------''      ;;;'  .;;            :::'
    ,' ;;   ;%;   ;;  '             ::'    ,;;;            :::
    :  :'   :%:   `;             ;;;;'      ;;             ::%
    :  ;;   :%'   ;;   ;...,,;;''         ;;'    ;     ;   :::
    ;  `;   ::   ;;' ,:::'     .        .;;     ,'    ;;   `;;
    ;  ;'   :: .;;' ,:::'   ,::%.      ;;;    ,'     ;;    ,;;
    : ;;.  .:' ;;' ,:::' ;;:::' ;;    ;;'    ,'    ;;;    ;;;'
     :`;;  ::  ;;  ;;;' '  .    ;;    '  _,-'     ;;;     `;'
     : ;' .:'  ;; .::: ,%'`;   ;;;   _,-'       .;;;'     ;'
    ,' ;; ;;  ;;' :::' ,, .;  ;;  _,' ;      ,;;;'     ,;;'
   .'~~~~~~~~~._ ,;' ,',' ;;  ',-'   ,'    ,';;       ;;;'   ;;;
 ,'             `-.,' .'  ;; ,'     ,' ;;;;;;'       ,;;    ;;;
.';           .    `.,   ;; ,'      ;              ,;;%    ;;;
: ..       _.';     ;   '_,'       .'       ,,,,,,,%;;'    `;;;
`.  .     (_.' .  ;'  ,-'          :  ,,,,,;;;;;;;;;'      .;;;
  `-._        ___,' ,'             :.."""""`````'        ,;;;;
      `------'____.'               :                   ..;;;;
         `---'                     `.               ..;;;;'
                                    :......:::::::::;;;;'
                                     :::::::::::::::;'      ,;;;
                                      ;                   ;;;;'
                                      ;                 .;;;;
                                    ,'...:::::.        ;;;'
                                   .'          `;;;;;;''
                                   ;
                                   `----------------------------