_,.----.                 _,.---._    .-._          _,.---._      ,-,--.
 .' .' -   \  .-.,.---.   ,-.' , -  `. /==/ \  .-._ ,-.' , -  `.  ,-.'-  _\
/==/  ,  ,-' /==/  `   \ /==/_,  ,  - \|==|, \/ /, /==/_,  ,  - \/==/_ ,_.'
|==|-   |  .|==|-, .=., |==|   .=.     |==|-  \|  |==|   .=.     \==\  \
|==|_   `-' \==|   '='  /==|_ : ;=:  - |==| ,  | -|==|_ : ;=:  - |\==\ -\
|==|   _  , |==|- ,   .'|==| , '='     |==| -   _ |==| , '='     |_\==\ ,\
\==\.       /==|_  . ,'. \==\ -    ,_ /|==|  /\ , |\==\ -    ,_ //==/\/ _ |
 `-.`.___.-'/==/  /\ ,  ) '.='. -   .' /==/, | |- | '.='. -   .' \==\ - , /
            `--`-`--`--'    `--`--''   `--`./  `--`   `--`--''    `--`---'