-------------------------------------------
-------------------------------------------
----------+++++++++++-%%%%%%%%%%%%%%%%@@---
-------+++++**+++++++++%#%%%%%%%%%@@@%%%---
-----++++*%@@@@*+++++++%*+*%##%%%%@@@%%%---
-----++++#%@@@@@@#+++++%*+++++++#%@@@%%%---
-----+++***#@%####*+++=%#+++++++*%%%@%%%---
-----*+++**#@@%##%%++++%#*+++++++#%%%%%%---
------***%#@@@@@@@@*+++%#*+*+++++#%%%%%%---
-------*+#*#%@@@@@@%#*++*######%%%%%%%%----
--------+***#%@@@@@@%+++++++++++-----------
---------+*#@@@@@%@@%#++++++++-------------
-----------+++**#@@@@%#++++++--------------
-------------++*%@@@@@%%#+++++-------------
-------------+++%@@@@@@%%%**++-------------
-------------------------------------------
-------------------------------------------