...
                  .::::::          .:::::.             ...
                 ::::::@@@@@@@@@:.::::::::d@@@@@@@b. .::::::.
                  "":@@@@@@@@@@@@@:::::d@@@@@@@@@@@@:::::::::
                   :@@@@@@@@@@@@@@@@:d@@@@@@@@@@@@@@@@:::::::
                 .@P;:;@@@@@@@@@@@@@d@@@@@@@@@@@@@@@@@@":::"
               .@@P:  :d@@@P::;@@@o @P^:@@@@@@@@@@@@@@@@":
               :@@@od@@@@@::  ::@o@ :" :@@@@@P:::;@@@@@@@
               `@@@@(   )@@b:::d@@o `::/"@@@@:.  :)@@@@@@:
           ..::::@@@@..d@@@@@@@@@@@ ,@(  )@@@@@:::@@@@@@P
         .:::::.\::@@@@@@@@P.::::.. :.@oo@@@/@@@@@P"::::
       .::::::::"::::::::::::::::: :::.:..@@@@@@@@@@@@":::
       :::::::::.:::::::::::::::::.:::::::.@@@@@@@@@@@@@::::
       ::::::::.::::::::::::::::: ::::::::::.@@@@"..::::::::.
      .::::::::.::::::::::::::::: :::::::::::::. ;:::::::::::
   .:::::.`::::'@@@@@@@@@@`:::"'  ::::::::::::::.":::::::::"'_
 .:::::::@@@@@@@@@@@@@@@@@@@@@@@@  "::::::::::::::.`:::::'@@@@@::.    ...
 ::::::::@@@@@@@@@@@@@@@@@@@@@@@@:  @@@"::::::::::::@@@@@@@@@@@:::::.:::::
 ::::::::.@@@@@@@@@@@@@@@P;:::::::   @@@@@b""""""":"@@@@@@@@@@:::::::::::'
  ::::::::@@P.::::::::::::::::::::.  @@.:::::::::.@@@@@P.:::.@::::::::::
   :::::::,.::::::::::::::::::::::: .:::::::::::::::::::::::::.::::::::"
   .:::::::.:::::::::::::::::::::::X::::::::::::::::::::::::::::`:::::
  ::::::::.:::::::::::::::::::::::: :::::::::::::::::::::::::::::`"'
 :::::::: ::::::::::::::::::::::::'    `::::::::::::::::::::::::::::
 `::::"' ::::::::"""::::::"""'           `:::::::::::::::::"":::::'
          :::::'                              `""":::::"'