..               .x+=:.      .x+=:.
                                                           x .d88"               z`    ^%    z`    ^%
     u.    u.                  ..    .     :                5888R                   .    k      .    k
   x@88k u@88c.       u      .888: x888  x888.       .u     '888R        .u       .@8Ned8"    .@8Ned8"
  ^"8888""8888"    us888u.  ~`8888~'888X`?888f`   ud8888.    888R     ud8888.   .@^%8888"   .@^%8888"
    8888  888R  .@88 "8888"   X888  888X '888>  :888'8888.   888R   :888'8888. x88:  `)8b. x88:  `)8b.
    8888  888R  9888  9888    X888  888X '888>  d888 '88%"   888R   d888 '88%" 8888N=*8888 8888N=*8888
    8888  888R  9888  9888    X888  888X '888>  8888.+"      888R   8888.+"     %8"    R88  %8"    R88
    8888  888R  9888  9888    X888  888X '888>  8888L        888R   8888L        @8Wou 9%    @8Wou 9%
   "*88*" 8888" 9888  9888   "*88%""*88" '888!` '8888c. .+  .888B . '8888c. .+ .888888P`   .888888P`
     ""   'Y"   "888*""888"    `~    "    `"`    "88888%    ^*888%   "88888%   `   ^"F     `   ^"F
     ^Y"   ^Y'                         "YP'       "%       "YP'