...            .........           ..... ....                                             
                  ..::::::::::::::.--::::::.:::::::::::::::::::::::::::::::::::.::::::--.::::::::::::::..                        
                 :..::............ ::.................................................:: ..........:::::.:                       
                 :::::............ ::..  . ........................................ ..:: ...........::::::                       
                 ::::............. ::.   . ..................................... .   .:. ............:::::                       
                 ::::............. .:.   . ..................................... .   .:................:::                       
                 ::::............. .:.   . ..................................... .   .:................:::                       
                 ::::...............:.   .........................................   .:..............:::::                       
                 ::::...............:.  ........................................... ..:..............:::::                       
                 ::::...............::...............................................:: .............:::::                       
                 ::::.............. :*%%%%:......................................%%%%#: .............:::::                       
                 ::::.............. :+%%#*:......................................###%+: .............:::::                       
                 ::::.............. :+%#%+:.....................................:#%%%+: .............:::::                       
                 :--:::::::::::::::.:+%%%=::::::....:::::::::::::::::::::::::::::+%%%+:.:::::::::::::::--:                       
                :==-::...........................                         .............................:-=:                      
                :==-::....................                                         . ..................:-=:                      
                :+=---:::::::::::::::::::::::::::::::::::::::.....:::...::::::.::::::::::::::::::::::::-==:                      
                .-=============+===+++++================================================================--.                      
                      .:::::........ ..   ....................................................:..:::                             
                       =---:::::::.................::::::::::::::::::::::::::::::::::........::::--=.                            
                       ++==-------:..............::::----------:::::::::::-----------:....:.::---=++.                            
                      .*++==----=-:..............::::----------:::::::::::-----------:..:.::::-==+**.                            
                      .*++==------::..............:::----------::::::::::::----------:..::::::===+*#.                            
                      .*++===-----::.............::::----------:::::::::::-----------:.:::::::===+**.                            
                      .*++==------::.............::::----------:::::::::::-----------:.:::::::===+**.                            
                      .#**+===---::.............::---:::::::::::-----:----:::::::::::::::::::-==-=+*.                            
                      .#**++===--::.............::---:::::::::::----------:::::::::::::::::::-==-=+*.                            
                      .#**++===--::............:::---:::::::::::----------:::::::::::::::::::-==-=+*                             
                      .#**++===--::............:::---:::::::::::----------:::::::::::::::::::-==-=+*                             
                      .#**++===--::.............::---:::::::::::----------:::::::::::::::::::-==-=+*                             
                      .#**++===--::.........::::::----::::::::::----------:::::::::::::::::::-==-=+*                             
                      .**+==------::.:...:...   .....:::-------:::::::::::-----------:..:::::-===+**.                            
                      .**+==------::..::....  ..::::::::::-----:::::::::::-----------:..::::::===+*#.                            
                      .**+==------::.::... ......::::---:::----:::::::::::-----------:..:::::-===+*#.                            
                      .#*+==----=-::::....:....  ....:---:::----::::::::::-----------:..:::::-===+*#.                            
                      .#*+==----=-:::....:...   .:::.:::--:::--:::::::::::-----------:..:::::-===+*#.                            
                      .#*+==----=-:::.......  ....::-::::--::--:::::::::::-----------:..:::::-===+*#.                            
                      .#**++===--::..  ...:.....:::---...::..:::----------:::::::::::::::::::-====+*.                            
                      .#**++===--::.:. ....:..:.::::--...::..:::----------:::::::::::::::::::-==-=+*                             
                      .#**++===--::....  .::....:.:--:...::..:::----------:::::::::::::::::::-====+*                             
                      .#**++===--::........:.::::----:..:::.::::----------:::::::::::::::::::-====**                             
                      .##*++===--::............:::-::..:::.:::::----------:::::::::::::::::::-====**.                            
                      .##*++===--::.....:.........::::::::::::::----------:::::::::::::::::::-===+**.                            
                      .#*++==-----:::..::::......::::---------::::::::::::-----------::.:::::-===+*#.                            
                      .#*++=------::::::::.......::::----------:::::::::::-----------:.::::::-===+*#.                            
                      .#*++=------::::::::.......::::----------:::::::::::-----------::::::::--==+*#.                            
                      .#*++==-----::::::::.......::::----------:::::::::::-----------:..:::::-===+*#.                            
                      .#*++==-----::::::::.......::::----------:::::::::::-----------:..:::::-===+*#.                            
                      .#*++=------::::::::........:::----------:::::::::::-----------::::::::-===+*#.                            
                      .#*++===----::.......:.....::::::::::::::::::::::::::-:::------::::::::-===+*#.                            
                      .#*+++===--::.......::::::::---:::::::::::::--------:::::::::::::::::::-===+*#                             
                      .#*+++===--::.......::::::::---:::::::::::---------::::::::::::::::::::-===++#.                            
                      .##*+====--::.......::::::::---:::::::::::::--------:-:::::::::::::::::-===+*#.                            
                      .##*++===--::.......::::::::---:::::::::::------:---:::::::::::::::::::-===+*#                             
                      .##*++==---::.......::::::::---:::::::::::----:-----:::::::::::::::::::-===+*#.                            
                      .#*++==-----::::::::.......:::::::::::::::::::::::::----------:::::::::-===+*#.                            
                      .#*++=------::::::::........:::------:::::::::::::::-----------:..:::::-===+*#.                            
                      .#*++=------::.:::::........:::------::--:::::::::::-----------:.::::::-===+*#.                            
                      .#*++=------::::.:::........:::--------:::::::::::::-----------::::::::-===+*#.                            
                      .#*++=------:::::..:........:::------::--:::::::::::-----------::::::::-===+*#.                            
                      .#*++=------:::::::........::::----:::-:::::::::::::-----------::::::::-===+*#.                            
                      .%#*+===---::...........:::::::::::::::::::::::::::::::::::::-:::::::::-===+*#.                            
                      .%#*++==---::.......::...:::---:::::::::::::--------:::::::::::::::::::-===+*#                             
                      .%#*++==---::.......::::..::--:::::::::::::::::-----:::::::::::::::::::-===+*#.                            
                      .%#*++==---::.......::::::::::-::::::::::::::::-----:::::::::::::::::::-===+*#                             
                      .%#*++==---::.......::::::.::--::::::::::::::::-----:::::::::::::::::::-===++#.                            
                      .%#*++==---::.......:::::.::--:::::::::::::::::-----:::::::::::::::::::-===+*#.                            
                      .%#*+===---::.......:::..::::--::::::::::::::::-----:::::::::::::::::::-===+*#.                            
                      .#**+==-----::::::::.......::::---:--:::::::::::::::-----------:::::::::-==+*#.                            
                      .#**+==-----:::::::........::::----::-::::::::::::::-----------::::::::-==++*#.                            
                      .#**+==-----::::::::.......::::------:::::::::::::::-----------::::::::-==++##.                            
                      .#**+==-----::::::::.......:::::--::::::::::::::::::-----------:::.::::-===+*%.                            
                      .%**+==-----::::::::.......:::::--:::::-::::::::::::-----------::::::::-===+#%.                            
                      .%#*+==-----:::............::::::::::::::::::::::::::::::----::::::::::-===+*%.                            
                      .%#*++==---::.......::::::::--:::::::::::::::---:---::::::::::::::::::--===+*#.                            
                      .%#*++==--:::.......::::::::--::::::::::::::-:::----:::::::::::::::::::-===+*#.                            
                      .%#*+==----::.......:::::::::-:::::::::::::::::::::-:::::::::::::::::::-===+*#                             
                      .%#*+===---::.......:::::::::-:::::::::::::::::::--::::::::::::::::::::-===+*#                             
                      .%#*++==---::.......:::::::::-:::::::::::::::::::--::::::::::::::::::::-===+*#                             
                      .#*++==----::::.....:::::.:::::::::::::::::::::::::::::::::::--::::::::-===+*#.                            
                      .##*+=------::::::::.......:::::::::::::::::::::::::--::-------::::::::-==++#%.                            
                      .%#*+=------::::::::.......:::::::::::::::::::::::::::--::-----::::::::-==+*#%.                            
                      .%#*+=------::::::::.......::::::::::::::::::.::::::::---------::::::::-==+*#%.                            
                      .%#*+==-----::::::::.......:::::-----:-:::::::::::::-----------::::::::-==+*#%.                            
                      .%#*+=------::::::::.......:::::::---:-::::::::::::::----------::::::::-==+*#%.                            
                      .%#*+=------::::::::.......::::---::-::::-:::::::::::----------::::::::-==+*#%.                            
                      .%#*++==---::.:.....:::::::::-::--:::.:::::-::-::::::::::::::::::::::::-===+*%.                            
                      .%#*++==---::.:.....:::::::::::::::::::.:::::::::::::::::::::::::::::::-===+*%.                            
                      .%#*++==---::.:.....::::::::--:::.::::::::--:::::::::::::::::::::::::::-==++*%.                            
                      .%#*++==---:::......:::::::::-:.:::.::::::::::::::::::::::::::::::::::--==++#%.                            
                      .%#*+===---::::.....::::::::-::-:.:.::::::::::::::::::::::::::::::::::--==++#%.                            
                      .%#*+===---::::.....::::::::::::::::::::::::::::::::::::::::::::::::::--==++#%.                            
                      .%#*+==-----::::::::.....::::::::::::::::::::::::::::::::------::::::::-==+*#%.                            
                      .%#*+==-----::::::::...:.::.:::::::::::::::::::::::::::::------::::::::-==+*##.                            
                      .%#*+=------::::::::::....:::::::::::::::::::::::::::::::------::::::::-==++*%.                            
                      .%#*+==-----::::::::.:..::.::::::::::::::::::::::::::::::------::::::::-==+*#%.                            
                      .%#*+==-----:::::::..:::.:.::::::::::::::::::::::::::::::------::::::::--=+*#%.                            
                      .%#*+==-----:::::::::::::::::::::::::::::::::::::::::::::------::::::::-==+*#%.                            
                      .%#*++===--::::::::.::::::::---:::::::::::::::::::::::::::::::-:::::::--==+*#%.                            
                      .%#*++===--:::.:.:::::::::::---:::::::::::::::::::::::::::::::::::::::--==+*#%.                            
                      .%#*++===--:::.::.::::::::::--::::::::::::::::::::::::::::::::-:::::::--==+*##.                            
                      .%#*++=----::::::::::::::::::::::::::::::::::::::---::::::::::::::::::--==+*#%.                            
                      .%#*++==----::::::::::::::::--:::::::::::::::::::---::::::::::::::::::--=++*#%.                            
                      .%#*++=-=--:::::::::::::::::---:::::::::::::::::::::::::::::::-:::::::--=++*#%.                            
                      .%#*+==-----::::::::::::::::::::::::::::::::::::::::-----------:::::::--=++*#%.                            
                      .%#*+===----:::::::::::::::::::::::::::::::::::::::::---:------:::::::--=++*#%.                            
                      .##*+===-----:::::::::::::::::::::::::::::::::::::::--:--------::::::---=++*#%.                            
                      .%**++=====--::::::::::::::::::--------:::::::::::::::---------::::-----=++*#%.                            
                      .%#*+======--::::::::::::::::------------:::::::::::------------:::----==++*#%.                            
                      .%#*++=====--:::::::::::::::-------------:::::::::::------------:::----==++*#%.                            
                      .%#**+====---::::::::::::::-----:::::::::------:-----------------------=+++*#%.                            
                      .%#**++===---::::::::::::::-----::::::::::---:-------------------------=+++*#%.                            
                      .%##*++====--::::::::::::::--------------------------------------------=+++*#%.                            
                      .%##*+++=====-==========----==-------------------=====+++++++++=====---=++**#%.                            
                      .%%####***++===--===-==+=---------------:-----------==*#+++++++=======+*#####%.                            
                      :%%%##****++=====--====+++*##%%###****++*****####%%#####*++++++========+*##%%%.                            
                      :@%%##****++======--====++=+*******+++++++***************+++++++======++*##%%@:                            
                ......-@%%%%%%##*++=======-=======+++++++=++++++++++++++++++++++++++++===++++#%%%%%@-.....                       
            ..........-%%%%%%%%%%%%######****+++++***+*++*+++++++++++*****###%%%%%%%%%%%%%%%%%%%%%%%-::.....                     
           .......:::-+%%%####%%%%%#############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%########%%%+--::.....                   
           ........::-=@@%%###***++=========++++*#%%%%%%%%%%%%%%%%%%%%%%%#%###***+++++===++++*##%%@@=-::......                   
              ........:***##%%%%%#*++++========--=========================+++++++++***++**###%###***:......                      
                     ..===+++++++++****#########*#%#%%%%%%%%%%%%%%%%%%%%%%%%%%%######***++++++++====..                           
                      .----------========+++++=+++++++++++++++++++++++++++++++++++=======-------:---                             
                       -:::::::::::::::::::::::::::--:::-------------:::::::::::::.:::::::::::::::::                             
                       :::...........................................................:............::                             
                       ::.........         ............................................ .. . ......:                             
                       :.........                 ...               ......         ..        .......                             
                       ..........                                                 ...         ......                                                                                                                                                                                   
                                                                                                                                                                                                                                             
                                       ...            .........           ..... ....                                             
                  ..::::::::::::::.--::::::.:::::::::::::::::::::::::::::::::::.::::::--.::::::::::::::..                        
                 :..::............ ::.................................................:: ..........:::::.:                       
                 :::::............ ::..  . ........................................ ..:: ...........::::::                       
                 ::::............. ::.   . ..................................... .   .:. ............:::::                       
                 ::::............. .:.   . ..................................... .   .:................:::                       
                 ::::............. .:.   . ..................................... .   .:................:::                       
                 ::::...............:.   .........................................   .:..............:::::                       
                 ::::...............:.  ........................................... ..:..............:::::                       
                 ::::...............::...............................................:: .............:::::                       
                 ::::.............. :*%%%%:......................................%%%%#: .............:::::                       
                 ::::.............. :+%%#*:......................................###%+: .............:::::                       
                 ::::.............. :+%#%+:.....................................:#%%%+: .............:::::                       
                 :--:::::::::::::::.:+%%%=::::::....:::::::::::::::::::::::::::::+%%%+:.:::::::::::::::--:                       
                :==-::...........................                         .............................:-=:                      
                :==-::....................                                         . ..................:-=:                      
                :+=---:::::::::::::::::::::::::::::::::::::::.....:::...::::::.::::::::::::::::::::::::-==:                      
                .-=============+===+++++================================================================--.                      
                      .:::::........ ..   ....................................................:..:::                             
                       =---:::::::.................::::::::::::::::::::::::::::::::::........::::--=.                            
                       ++==-------:..............::::----------:::::::::::-----------:....:.::---=++.                            
                      .*++==----=-:..............::::----------:::::::::::-----------:..:.::::-==+**.                            
                      .*++==------::..............:::----------::::::::::::----------:..::::::===+*#.                            
                      .*++===-----::.............::::----------:::::::::::-----------:.:::::::===+**.                            
                      .*++==------::.............::::----------:::::::::::-----------:.:::::::===+**.                            
                      .#**+===---::.............::---:::::::::::-----:----:::::::::::::::::::-==-=+*.                            
                      .#**++===--::.............::---:::::::::::----------:::::::::::::::::::-==-=+*.                            
                      .#**++===--::............:::---:::::::::::----------:::::::::::::::::::-==-=+*                             
                      .#**++===--::............:::---:::::::::::----------:::::::::::::::::::-==-=+*                             
                      .#**++===--::.............::---:::::::::::----------:::::::::::::::::::-==-=+*                             
                      .#**++===--::.........::::::----::::::::::----------:::::::::::::::::::-==-=+*                             
                      .**+==------::.:...:...   .....:::-------:::::::::::-----------:..:::::-===+**.                            
                      .**+==------::..::....  ..::::::::::-----:::::::::::-----------:..::::::===+*#.                            
                      .**+==------::.::... ......::::---:::----:::::::::::-----------:..:::::-===+*#.                            
                      .#*+==----=-::::....:....  ....:---:::----::::::::::-----------:..:::::-===+*#.                            
                      .#*+==----=-:::....:...   .:::.:::--:::--:::::::::::-----------:..:::::-===+*#.                            
                      .#*+==----=-:::.......  ....::-::::--::--:::::::::::-----------:..:::::-===+*#.                            
                      .#**++===--::..  ...:.....:::---...::..:::----------:::::::::::::::::::-====+*.                            
                      .#**++===--::.:. ....:..:.::::--...::..:::----------:::::::::::::::::::-==-=+*                             
                      .#**++===--::....  .::....:.:--:...::..:::----------:::::::::::::::::::-====+*                             
                      .#**++===--::........:.::::----:..:::.::::----------:::::::::::::::::::-====**                             
                      .##*++===--::............:::-::..:::.:::::----------:::::::::::::::::::-====**.                            
                      .##*++===--::.....:.........::::::::::::::----------:::::::::::::::::::-===+**.                            
                      .#*++==-----:::..::::......::::---------::::::::::::-----------::.:::::-===+*#.                            
                      .#*++=------::::::::.......::::----------:::::::::::-----------:.::::::-===+*#.                            
                      .#*++=------::::::::.......::::----------:::::::::::-----------::::::::--==+*#.                            
                      .#*++==-----::::::::.......::::----------:::::::::::-----------:..:::::-===+*#.                            
                      .#*++==-----::::::::.......::::----------:::::::::::-----------:..:::::-===+*#.                            
                      .#*++=------::::::::........:::----------:::::::::::-----------::::::::-===+*#.                            
                      .#*++===----::.......:.....::::::::::::::::::::::::::-:::------::::::::-===+*#.                            
                      .#*+++===--::.......::::::::---:::::::::::::--------:::::::::::::::::::-===+*#                             
                      .#*+++===--::.......::::::::---:::::::::::---------::::::::::::::::::::-===++#.                            
                      .##*+====--::.......::::::::---:::::::::::::--------:-:::::::::::::::::-===+*#.                            
                      .##*++===--::.......::::::::---:::::::::::------:---:::::::::::::::::::-===+*#                             
                      .##*++==---::.......::::::::---:::::::::::----:-----:::::::::::::::::::-===+*#.                            
                      .#*++==-----::::::::.......:::::::::::::::::::::::::----------:::::::::-===+*#.                            
                      .#*++=------::::::::........:::------:::::::::::::::-----------:..:::::-===+*#.                            
                      .#*++=------::.:::::........:::------::--:::::::::::-----------:.::::::-===+*#.                            
                      .#*++=------::::.:::........:::--------:::::::::::::-----------::::::::-===+*#.                            
                      .#*++=------:::::..:........:::------::--:::::::::::-----------::::::::-===+*#.                            
                      .#*++=------:::::::........::::----:::-:::::::::::::-----------::::::::-===+*#.                            
                      .%#*+===---::...........:::::::::::::::::::::::::::::::::::::-:::::::::-===+*#.                            
                      .%#*++==---::.......::...:::---:::::::::::::--------:::::::::::::::::::-===+*#                             
                      .%#*++==---::.......::::..::--:::::::::::::::::-----:::::::::::::::::::-===+*#.                            
                      .%#*++==---::.......::::::::::-::::::::::::::::-----:::::::::::::::::::-===+*#                             
                      .%#*++==---::.......::::::.::--::::::::::::::::-----:::::::::::::::::::-===++#.                            
                      .%#*++==---::.......:::::.::--:::::::::::::::::-----:::::::::::::::::::-===+*#.                            
                      .%#*+===---::.......:::..::::--::::::::::::::::-----:::::::::::::::::::-===+*#.                            
                      .#**+==-----::::::::.......::::---:--:::::::::::::::-----------:::::::::-==+*#.                            
                      .#**+==-----:::::::........::::----::-::::::::::::::-----------::::::::-==++*#.                            
                      .#**+==-----::::::::.......::::------:::::::::::::::-----------::::::::-==++##.                            
                      .#**+==-----::::::::.......:::::--::::::::::::::::::-----------:::.::::-===+*%.                            
                      .%**+==-----::::::::.......:::::--:::::-::::::::::::-----------::::::::-===+#%.                            
                      .%#*+==-----:::............::::::::::::::::::::::::::::::----::::::::::-===+*%.                            
                      .%#*++==---::.......::::::::--:::::::::::::::---:---::::::::::::::::::--===+*#.                            
                      .%#*++==--:::.......::::::::--::::::::::::::-:::----:::::::::::::::::::-===+*#.                            
                      .%#*+==----::.......:::::::::-:::::::::::::::::::::-:::::::::::::::::::-===+*#                             
                      .%#*+===---::.......:::::::::-:::::::::::::::::::--::::::::::::::::::::-===+*#                             
                      .%#*++==---::.......:::::::::-:::::::::::::::::::--::::::::::::::::::::-===+*#                             
                      .#*++==----::::.....:::::.:::::::::::::::::::::::::::::::::::--::::::::-===+*#.                            
                      .##*+=------::::::::.......:::::::::::::::::::::::::--::-------::::::::-==++#%.                            
                      .%#*+=------::::::::.......:::::::::::::::::::::::::::--::-----::::::::-==+*#%.                            
                      .%#*+=------::::::::.......::::::::::::::::::.::::::::---------::::::::-==+*#%.                            
                      .%#*+==-----::::::::.......:::::-----:-:::::::::::::-----------::::::::-==+*#%.                            
                      .%#*+=------::::::::.......:::::::---:-::::::::::::::----------::::::::-==+*#%.                            
                      .%#*+=------::::::::.......::::---::-::::-:::::::::::----------::::::::-==+*#%.                            
                      .%#*++==---::.:.....:::::::::-::--:::.:::::-::-::::::::::::::::::::::::-===+*%.                            
                      .%#*++==---::.:.....:::::::::::::::::::.:::::::::::::::::::::::::::::::-===+*%.                            
                      .%#*++==---::.:.....::::::::--:::.::::::::--:::::::::::::::::::::::::::-==++*%.                            
                      .%#*++==---:::......:::::::::-:.:::.::::::::::::::::::::::::::::::::::--==++#%.                            
                      .%#*+===---::::.....::::::::-::-:.:.::::::::::::::::::::::::::::::::::--==++#%.                            
                      .%#*+===---::::.....::::::::::::::::::::::::::::::::::::::::::::::::::--==++#%.                            
                      .%#*+==-----::::::::.....::::::::::::::::::::::::::::::::------::::::::-==+*#%.                            
                      .%#*+==-----::::::::...:.::.:::::::::::::::::::::::::::::------::::::::-==+*##.                            
                      .%#*+=------::::::::::....:::::::::::::::::::::::::::::::------::::::::-==++*%.                            
                      .%#*+==-----::::::::.:..::.::::::::::::::::::::::::::::::------::::::::-==+*#%.                            
                      .%#*+==-----:::::::..:::.:.::::::::::::::::::::::::::::::------::::::::--=+*#%.                            
                      .%#*+==-----:::::::::::::::::::::::::::::::::::::::::::::------::::::::-==+*#%.                            
                      .%#*++===--::::::::.::::::::---:::::::::::::::::::::::::::::::-:::::::--==+*#%.                            
                      .%#*++===--:::.:.:::::::::::---:::::::::::::::::::::::::::::::::::::::--==+*#%.                            
                      .%#*++===--:::.::.::::::::::--::::::::::::::::::::::::::::::::-:::::::--==+*##.                            
                      .%#*++=----::::::::::::::::::::::::::::::::::::::---::::::::::::::::::--==+*#%.                            
                      .%#*++==----::::::::::::::::--:::::::::::::::::::---::::::::::::::::::--=++*#%.                            
                      .%#*++=-=--:::::::::::::::::---:::::::::::::::::::::::::::::::-:::::::--=++*#%.                            
                      .%#*+==-----::::::::::::::::::::::::::::::::::::::::-----------:::::::--=++*#%.                            
                      .%#*+===----:::::::::::::::::::::::::::::::::::::::::---:------:::::::--=++*#%.                            
                      .##*+===-----:::::::::::::::::::::::::::::::::::::::--:--------::::::---=++*#%.                            
                      .%**++=====--::::::::::::::::::--------:::::::::::::::---------::::-----=++*#%.                            
                      .%#*+======--::::::::::::::::------------:::::::::::------------:::----==++*#%.                            
                      .%#*++=====--:::::::::::::::-------------:::::::::::------------:::----==++*#%.                            
                      .%#**+====---::::::::::::::-----:::::::::------:-----------------------=+++*#%.                            
                      .%#**++===---::::::::::::::-----::::::::::---:-------------------------=+++*#%.                            
                      .%##*++====--::::::::::::::--------------------------------------------=+++*#%.                            
                      .%##*+++=====-==========----==-------------------=====+++++++++=====---=++**#%.                            
                      .%%####***++===--===-==+=---------------:-----------==*#+++++++=======+*#####%.                            
                      :%%%##****++=====--====+++*##%%###****++*****####%%#####*++++++========+*##%%%.                            
                      :@%%##****++======--====++=+*******+++++++***************+++++++======++*##%%@:                            
                ......-@%%%%%%##*++=======-=======+++++++=++++++++++++++++++++++++++++===++++#%%%%%@-.....                       
            ..........-%%%%%%%%%%%%######****+++++***+*++*+++++++++++*****###%%%%%%%%%%%%%%%%%%%%%%%-::.....                     
           .......:::-+%%%####%%%%%#############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%########%%%+--::.....                   
           ........::-=@@%%###***++=========++++*#%%%%%%%%%%%%%%%%%%%%%%%#%###***+++++===++++*##%%@@=-::......                   
              ........:***##%%%%%#*++++========--=========================+++++++++***++**###%###***:......                      
                     ..===+++++++++****#########*#%#%%%%%%%%%%%%%%%%%%%%%%%%%%%######***++++++++====..                           
                      .----------========+++++=+++++++++++++++++++++++++++++++++++=======-------:---                             
                       -:::::::::::::::::::::::::::--:::-------------:::::::::::::.:::::::::::::::::                             
                       :::...........................................................:............::                             
                       ::.........         ............................................ .. . ......:                             
                       :.........                 ...               ......         ..        .......                             
                       ..........                                                 ...         ......