........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
...................................................::::$&&&&$::::::::::::::::::::.......................................
........................::$&&;:::::::x&&&&&&&&&&&&&$$$$$$XXXXX$$$$$$$$$$$XX$$$$$$&x::::::::::::::x+:....................
......................x$XXXXXXX$$$$XXXxxxXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXxxx&:...................
.....................;$xxXXXXxxXXXXXxxxxxXXXXXXX$XXX$$$$$$$XXXXXXXXXXXXXXxX$$$$$$$$$$$$$$$$XXxxxxx$;....................
..................:$$XXxxxxxxxxxxxxxxxxxxXXXXXXX$$XX$$$$$XXXXX$$XXXXxxxxxXXXXX$$$$$$$$XXXXxxXxxX$$$;....................
...............:$$$$$XXXx+x;;;xxxxxxxxxxxXXXX$$$$X$$X$$$$$$XXXX$XXxxxxxxxxxxx$$$$$$$$$$XXXxxX$XXX$;.....................
..:$$$$$$$$$&&&&&&&&$XXxxxx;;;;+xxxxxxxXxxXX$$$$$$$$$X$X$X$XxXXXXX$XxxxxxxxxxxXX$$X$$XXXXXXXXXXX$x......................
..;$;+xxxX$$&&&&&&&&$Xxxxx;;;;;;+xxxxxxxxxXXXXXX$$$$$$$XX$XxxxxXxXXxxxxx;;xxx+xXxxXXXXXXXXXXXXX$X.......................
...;;$;+xXXxxXX$$$$&$Xxxx++;;;;;;;+x+xxx;xxxxxXXX$$$$$$$XXxxxxxxX$$xxxxxx;;;;+xx;+xxxXXXxxxxxx$:........................
......;x$x++xxXxxxXXxXxx+;;;;;;;;;;;+xxx;+x;;+xX$$$$X$$xxxxxxxxxx$XXxxxxxxxxx;+xxxxXxxxxxxxxx$..........................
.........;Xxx;++xx++x+;;;;:::;;;;++;xxXx++xx;;+xxXXX$$$x++xXXxxxX$Xxxxxxxxxxxxxxx+xxxxxxxxxx$;..........................
...........$x;;;;;+xx+;;::::;;;;:;;;;xxXx+;++;;x+xx$$$$x+xXXXxxxXXXXxxxxx++xxxxxxxxxxxxxxxX$x...........................
.......:;$$+;;;;;;;;;;:;;:::::::;;;;+;+XXX+;;;xx;++$$X$xxxXxxxxx$$xxxx+xxxxxxxxxxxxxxxxxxxxx$...........................
....;$$X+;;::::::::::;::::;;;;;;::;;;;+xX$x;;;;xx+xXX$X+;xx;;;+$$$xxx+;xxxxxxxxxxxxxxxxxxxxx$...........................
....:$x+;;::::;;::::;:::::;;;;:;;;;;;;;;x$X;:::xxx+xX$Xx+Xx;;;xX$$xx+xxxXXxxxxxx+;;;xxXXXXXX$...........................
......;$$$XXxx;:::::;::::::::::;;;;;;;;xxX$+:::+XXxxX$xx+xx;;;;x$x+xxxxxxx+;;;;;;;+xxxxXXXX$X$::::......................
..........$x+;::::::;:::::::::::;+x;;;;;;xX;:::;;xxx$$Xxxx;;;;+Xx+xxxxxxx+xx;;;;;+xxXXXXxxxxXxXXXX$&;:..................
..........$xx++::::;::::::::;;+xxxXXXx;;;;x;::;;;+XX$$$xXX+;;+xxxxx+xX$$$$$$XXXXXXXXXX$XXXXxXxxxxXXXXX&&;...............
...........$$x+;;:;+;;;;;;;;;xX$$$$$$$$$X+;;;;;;+xXx$$XXXxxxxx;+x$$$$&&&&$$Xxxx;+xxxXxxXXXXxxxxxxxxxxXXX&...............
.........Xxxx+++:::;;;;;;;;xxxx$$X$$$$$$$$Xx+;xXXXX$$$$XXXXxxX$X$$$$$&&&&$XxxXxxxxxxxxXXXxxxxxxxXXXxxXXX&:..............
........Xx;;;::;;+++x+;;;;;;xxxx$X$$$$$$$XxX$X+X$$$$$$$$$$XxX$$$$$&&&&&$XXXXxxxXxxXXXxXXXXXXxxxxxxxxxxXXX$..............
........Xx;::::;;++;;;++;xxxxxxxX$$$$$$$$X$$$$XX$$$$X$$$$$$$$$XxxXXXXXXXXXXxXXXXXXXXXXXXXXxxxxxxxxxxxxxXX$$.............
.......xx;;;:::;;;;++++xxXxxxxXXXXXXX$$$xx+x$$$$$$$XXXX$$$$$$$$XXxxx+xxxXxXXxXXX$XXXXXXXXXxxxxxxxxxxxxxxXX$$............
.......x+::::::;+;;++xxxXXXxxxxxXxxxxxxxX$$$$$$$XXX$$$$$$$$$$$$$$XxxxxxXxxxxxXxxxX$$XXXxxxXXXXxxxxxxxxxxxXX$$X..........
......;X;:::::::;++++xXXxxxxxxxxXxxXXXxxXX$$$X$$$$$$$$$$$$$$XXXXXxxxxxXXXxxXXXXXXxxxXXXxxxxxXxxxxxxxxxxxxxxXX$$x........
.....:X;:::::::::;;+;++xxxxxxxxxXXXXXXXXXXXXxXX$$$$$$X$$$$$XXXxxxxx+xxxXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxxxXXXX$+.......
.....;$;:::::::;;:;++xxxxxxxXXXxxxxxXXXxxxxxxxxxX$$$XX$$XxxXXXxxxxx+;+xxxXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXX$$;......
....xX;;::::::::::;+xx++xxxx+++xxxxXXXxxxxxxxxxx+;+x$$$+;;;+x$$xXxxx+;+++xXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$&;......
...xX+;::::::::::::;:;++++;++xxXX$$Xxxxxxxxxx+;;;;::+X;:::;;xxxx+;+;;;+;;;++xxxxxxxxx+;+xx;+xxxxxxxxxxxxxxxxxXXX$x:.....
..+$++;::::::::::::::;;;;;;+xx$$$Xxxxxx;;;++x+;;::;;+X+;;::;++xxxxx+x+++;;;;xxxxxxx+;+x;;;;;;;+xxxxxxxxxxxxxxxXXX$&+....
.;$x+;::::::::::::::::;;+++xXXxxx+;+x+++xx++;;;;;+xxxXXxxx+;+;;;;+;;;;;+x;;x;;;xxxx+;;;;;;;;;;;++xxxxxxxxxxxxxxX$$$$&;..
;$+;;:::::::::::::::::;;++++;;;;;;x+;;;;;x;;;;+x;xxxXXXXxx+xx+;;;;;;+;x;;;;;;+++;;;;;;;;;;;;;;;;;;+xxxxx+xxxxxxX$$$$$&:.
&x;;:::::::::::::::::::;;;;++;;;;;;;;;;;;;;;;+xxxxxxxxxxxxxxxxxxxx++;;;;;;;;;;;;;++xxxx+;;;;;;;;;;;;xxxxxxxxxxxXX$$$$:..
&x;;:::::::::::::::::::;;+;;;;;;;;;;;;;;;:;;;;xx;;;;;;;;;xxxxxXxxxxxxxxx+xx;;;xx;;;;+++xxxxxxxxx;;;xxxxxxxxxxxXXXX$$&;..
:&xx;;:::::::::::::::::;;;::::;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++xxxxxxxxxx+xx+;;;;;++xxxx;;;;;;xxxxxxxXXXX$$$$$$&;.
:&x+:::::::::::::::::::::::;;xx+xxx;;;;:;;;;:::::::;;;;;;;;;;;;;;;;+x+;;;;;;;;xxx;++;;;;;;;++xxx;;;;;;;xxxxxxxX$$$$$$$&:
:$x+:::::::::::::::::;:::;;;x;;;;;;;;;;;;;;;:::;;;:;;;;;;;;;;;;;;;;;;;;;x;;;;;;;;;+++;;;;;;;;;++xxx+;xxxxxxxXXX$$$$$$$&:
.:&x+;:::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;x;;;;;;;;;;x;;;;;;;;;;;+;;;;;;;;;;+xxxxxxxxxXXXX$$$$$$$&:.
..:&x;;::::::::::;;:::::::::::::;;;::;;;;;;;;x;;;;xxx+;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;++;;;;;;;;;;;;xxxxxxX$$$$$$$$$$$$$$
..:&x;:::::::::;;::::::::::::::::::::;;;;;;xxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;++;xXXX$$$$$$$$$$$$$$$$&
...:&x;;::::::;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;:::;;;;;;;;;;xxxxx+xxxxxxxxXxx$$$$$$$$$$$$$$$$&&&
....:&x+;;:::::::::::::::::::::::::;;;;:;;;;;;;;;;;+x+;;;;;;;;x;;;;;+;;;;;;;;+xxxxxxxxxxxxxxxxXXXX$$$XX$$$$$$$$$$$&;;..:
......+$x++::::::::::::::::::::::;;;;;;;;;;;;;;;;;x+++x;;x;;;;xx;;xxxxxxxxxxxXxxXXxx$$XXXXXXXxxXXX$$$$$$$$$$$$$$$&+.....
.......xXx+;;;;;;:::::::::::::;;+xxxxxxxxxxxxxx+;;++;+++xxx;xXXXxxxxxxxxXXXXxxxxxxxX$$$$X$$$$$XXXXX$$$$$$$$$$$$$$$$XXXX&
........;Xxxx+;;;;;;;;;;+++xxxxxxxxxxxXXX$$$$$$xxx+x+x+xxxxXXXXxxxxxxxxxxxXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$&
.........x$xxxxx;;+;+++xxxxx;;xxxXX$$$$$$$$$$$$$$$xx+;;;+XXxxxxxXxxxxxxxxxxxxxxxxxxXxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$&
..........X$$$Xxxxxxxxxx;;+++xXXXX$XXXXX$$$$$&&&$$Xx++xxXXXXXXXxxxxxXXXXXXXXXxxxxXxxxxxXxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$&
...........$$$XXxxxxx+;;;xxxxxXXXXXXXXXXXXX$$$$$$&$XxxXxxxxxxxxxxxXXXXXX$$$$$XXXXxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&
...........$$$Xxxxxx;;;xxxxxxxxxxXXX$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXXXXXX$$X$$XXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$&
...........$$$XXxx;;;++;;;;xxxxxxXX$$$$$$$$$$$$$$$$XxxxxxxxxxxxxxxxXXXXX$XX$$X$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&
...........$$XXXx;;+xxxxxxxx++xxxXXXXX$$$$$$$$$$$$$XxxxxxxxxxxXXXXXXXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&
.............$xxx+xxxxxxXXXXX$XXxxXXXX$$$$$$$$$$$$XxxXXxxxxxxXXXXXXXXXXXXXXXX$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&$&&&
...............:$xxXXx+xXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXx+xXXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&:................
.................::;&&&$$XX$$$$$$$$$$$$$&&&&&::::;$XXXxxxXXX$$$$XXXXXXXxXX$$$$$$$$$$$$$$$$$$&$::::::....................
........................::::::::::::::::..........;$XxxxXXXX$$$$XXXXXXXXXX$$$$$$$$$&&&&&;:::............................
..................................................;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&x.....................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................