~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppfppfffpppppfpppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppffffffffffpffffppfffffffpppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~hh^^^^^HHHHHH~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppppppppppffffffffffffppffffpffffffffpppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~hhhhH^^^^^^^^^^^HHHHHHHhhhhh~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppffffffffffffffffffffffffffffffpfffppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~hhhhhhH^^^^^^^^^^^^^^HHHHHHHHhhhhhhhhppppppppppppppppppppppppppppppppppppppppppppffffffffffffffffffffffffffffffffffpppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~hhhhhhhhHHHHHHHHH^^^^^^^^^^^^^HHHHhhhhhhpppppppppppppppppppppppppppppppppppppppppppppffffffffffffffffffffffffffffffffpppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^~~~^HHHHHhhhhhhhhhhhhhHHHH^^^^^^^^HHH^^HHHHHHHHhhhppppppppppppppppppppppppppppppppppppppppppfffffffffffffffffffffffffffffppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^HhhhHHhhhhhhhhhhhhHHHH^^^^^HHHHHHH^^^^HHhhhhhhppppppppppppppppppppppppppppppppppppppfffffffffffffffffffffffffffppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppphhHHHH^^^^^^HHHHHHHHhhhhhhhhhhhhHHH^^^^^^^^^^^^^^^^^HHHhhhhhhhpppppppppppppppppppppppppppppppppppfffffffffffffffffffffffffpppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppphhhhHHHHH^^^^^^^HHHhhhhhhhhhhhhhhHHH^^^HHHH^^^^^^^^^^^HHHHHhhhpppppppppppppppppppppppppppppppppppffffffffFFFFFffffffffffffffpppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppphhhhhhHHHH^^^^HHHHHHffffffhhhhhhhHHHHHHHHHHHH^^^^^^^^^^^HHhhhppppppppppppppppppppppppppppppppppfffffffFFFFFFFFFffffffffffffppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppfffffffffffhhhhhHHH^^^^^HHHHHfffffffhhhhhhhhHHHH^^HHHHHH^^^^^^^^HhhhppppppppppppppppppppppfpppppppfffffffffFFFFFFFFFFffffffffffffffppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppfffffffffffffffhhhhHHH^^^^^HHHHffffffffhhhhhhhhhH^^^^^^HHHH^^^^^^HHHhhhhppppppppppppppppppffffppppfffffffffFFFFFFFFFFFFFFFfffffffffpppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppffffffFFFFffFFfffFfhhhhhHHH^^HHHhhhhHHffffhhhhhhhhhHHH^^^HHHHHH^^^^^^HHhhhhppppppppppppppppfffffffffffffffffFFFFFFFFFFFFFFFFfffffffffppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppffffffffFFFFFFFFFFFFfffffhhhhHHHHHHhh^^^HHhhhHHHHHHhhhhhhH^^^^^HHHHH^^^^^HHhhhppppppppppppppffffffffffffffffffFFFFFFFFFFFFFFFFfffffffffppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppfffffffffFFFFFFFFFFFFFFFfffffhhhhHHHhhhhhHHhHHHH^^^^HHHHhhHHH^^^^^^^HHHH^^^^^HhhhppppppppppppfffffffffffffffffffFFFFFFFFFFFFFFFFfffffffppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppffffffffffFFFFFFFFFFFFFFFFFFffFffhhhHHhhhhhhhh^HHHH^^^^^HHHHHHHH^^^^^^^^HH^^^^^HhhppppppppppppfffffffffffffffffffFFFFFFFFFFFFFFFFffffffppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppfffffffffffffFFFFFFFFFFFFFFFFFFFfffffhhhHhhhfhhhhhhhHHHHH^^^^^^^^^^^^^^^^^^HHHH^^HHhhppppppppppppfffffffffffffffffFFFFFFFFFFFFFFFFfffffffppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppffffffffffffffFFFFFFFFFFFFFFFFFFFFFFFFFfffhhhhhhfffhhhhhhhHhHHH^^^^^^^^^^^^^^^^HHHHHHHHhhhpppppppppppppfffffffffffFFFFFFFFFFFFFFFffffffffffffpppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppffffffFffffFFffFFFFFFFFFFFFFFFFFFFFFFFFFFFFfffhhhhffffffffhhHHhhhHHHH^^^^^^^^^^^^^^HHHHHHHhhhhppppppppppppppppfffffffFFFFFFFFFFFFfffffffffffffffpppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppfffffffFFFFfFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfffhfffffFFFffhhhhhhhffhhhhH^^^^^^^^^^^^HHHHHHhhhhhpppppppppppppppppfffffffFFFFFFFFFfffffffffffffffffpppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~###~~~~~~~~~~~~~~~~ppppppppppppffffffFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfffffFFFFffffffffffffffhhhhhHH^^^^^^^^^^^^^^^HhhhhppppppppppppppppppfffffffFFFFFFFFffffffffffffffffffppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~###~~~~~ppppppppppppppppppppppfffffffFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFffffffffffffffffhhhhhhHH^^^^^^^^^^^^^^HhhhhhppppppppppppppppfffffffffFFFFFFfffffffffffffffffffppppppppppppppppppppppppppphpppppp~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppp###pp~~pppppppppppppppppppppppfffffffFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFffffffffffffffffhhhhhHHH^^^^^^^^^^^^^^HhhhhpppppppppppppppfffffffffffFFFffffffffpfffffffppffppppppppppppppppppppppppphhhppppppp~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppp|pppp~~ppppppppppppppppppppppffffffFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfFfffffffffffffhhhhhhHH^^^^^^^^^^^^^^^hhhhhpppppppppppppffffffffffffffffffffffpppffffffppppppppppppppppppppppppppphhhhppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppp?ppppppppp|pppp~~~pppppppppppppppppppppffffffFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFffffffffffffhhhhhhHHH^^^^^^^^^^^^^^Hhhhhhhhhhhhpppppffffffffffffffffffffffppppfffffpppppppppppppppppppppppppphhhhhppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppp+---------+ppppp~~ppppppppppppppppppppppfffffFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFffffffffffffhhhhhhHHHH^^^^^^^^^^^^^HHHHHHHHHhhhhhpppfffffffpppfffffffffffpppppfffffpppppppppppppppppppppphhhhHhhhppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppp~~~~~pppppppppppppppppppppppppppp|ppppp~~~pppppppppppppppppppppffffffFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfffffffffffhhhhhhHHHHHH^^^^^^^^^^^^^^^^^HHHHhhhhhhpfffffpppppppfffffffffppppppfppppppppppppppppppppphhhhhHHHhhhppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppphhhppppppppppppppppppppppppppppppppppp+---+pp~~~ppppppppppppppppppppppfffffFFFFFFFFFfFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfffffffffffphhhhHHHHHHH^^^^^^^^^^^^^^^^^HHHHHHhhhhhhhhhhppppppppffffffppppppppppppppppppppppppppphhhHHHHHHhhhppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppphhhhhpppppppppppppppppppppppppppppppppppppp|pppp~~ppppppppppppppppppppppfffffffFFFFFFfffFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfffffffffpphhhhhHHHHH^^^^^^^^^^^^HHhHH^^^HHHHHHHHHHHhhhhhhhppppppffppppppppppppppppppppppphhhhhhhhH^^HHhhhpppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppphhhHHHhhppppppppppppppppppppppppppppppppppppp|pppp~~ppppppppppppppppppppppffffffffffFFfffffFFFFFFFFFFFFFFFFFFFFFfFFFFFFFFFFFFFFFFFFFFffffffffffpphhhhhHHHH^^^^^^^^^^^^^HHhHHHHHHHHHHHHHHHHHHhhhhhhhhhhpppppppppppppppppppppppphhhhhhhHHH^^^Hhhhpppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppphhhhhhhhpppppppppppppppppppppppppppppppppppp|ppppp~~pppppppppppppppppppppppfffffffffffffffffffffffFFFFFFFFFFFFffffFFFFFFFFFFFFFFFFFfffffffffffppphhhhHHHH^^^^^^^^^^^^^^HHhhHHH^^^^^^^^HHHHHHHHHHHHhhhhhhhpppppppppppppppppphhhhhhHHH^^^^HHhhhhppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppphhhhppppppppppppppppppppppppppppppppppppp+------==----------------+------------------------------------------------------------------------+ppphhhhHHHH^^^^^^^^^^^^^^HHhhhHHHH^^^^^^HHHHHHHHhhhhhhhppppppppppppppppphhhhhhhHHHH^^^^^Hhhhhhpppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppppppppppppppppp|ppppppp~~ppppppppppppppp|pppppppppppppppfffffffffffffffffffffffffffffffffffffffffffffffffffpppppppppphhhhHHHHHH^^^^^^^^^^^^^HhhpphhHHHHH^^^HHHHHHHHhhhhhhppppppppphhhhhhhhhhhhhhH^^^^^^^^Hhhhppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp|ppppppp~~~pppppppppppppp|pppppppppppppppppfffffffffffffffffffffffffffffffffffffffffffffffpppppppppppphhhhhHHHHH^^^^^^^^^^^^^HhhppphhhHHHHHHHHHHHhhhhhhhhhhhhhhppphhhhhhhhhhhhHHH^^^^^^^^Hhhhhpppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp|pppppppp~~pppppppppppppp|pppppppppppppppppppppppppppffffffffffffffffffffffffffffffffffffppppppppppppphhhhhhHHHHH^^^^^^^^^^^HHhpphhhhhhhhh^^^^^hhhhhhhhhhhhhhhhhhhhhhhhhhhHHHH^^^^^^^^^HHhhppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppfpppppppppppppppppppppppppppppppppppppppppppp|pppppppp~~pppppppppppppp|pppppppppppppppppppppppppppppppppppffffffffffffppppppffffffppppppppppppppppphhhhhhhhHHHHH^^^^^^^^^^HHH^^HHHHHhhhhh^^^^^^hhhhhHhhHhhhhhhhhHHHHHHH^^^^^^^^^^HHHHhppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppffffppppppppppppppppppppppppppppppppppppppppppp+--+pppp~~~pppppppppppppp|ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppphhhhhhhhHHHHH^^^^^^^^^^HHHH^^^^HHHhhHhhh^^^^^HHHHhhHHHHHHHHHHHHHHH^^^^^^^^HHHHHhpppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppffffffpfppppppppppppppppppppppppppppppppppppppppppp|pppp~~ppppppppppppppp|pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppphhhhhhhhhHHHH^^^^^^^^^^^^^^^^^^^HHHHHHHH^^^^^^^HHhHH^^^^HHHH^^HHHHHH^^^HHHHhhpppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppfffffffffffpppppppppppppppppppppppppppppppppppppppprr|rrrr~~ppppppppppppppp|pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppphhhhhhhhhHHHH^^^^^^^^^^^^^^^^^^^^^^^HH^^^^^^^^HHhHH^^^^^^^^^^HHHHHHHHHhhhhppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~pppppppppppppppffffffffffffppppppppppppppppppppppppppppppppppprrrrrrp|pppprrrpppppppppppppp|ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppphhhhhhhhhHhHHhh^^^^^^^^^~^^^^^^^^^^^^^^^^^^^^^HHHH^^^^^^^^^^^^HHHhhhhhhppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~pppppppppppppppppfffffffffffpppppppppppppppppppppppppppppppppprrrpppppp|pppppprrppppppppppppp|ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppphhhhhhhhhhhhhhppp^^^~~~~^^^^^^^^^^^^^^^^^^^^^HHHH^^^^^^^^^HHHhhhhhppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~pppppppppppppppppffffffffffpppppppppppppphhpppppppppprrrrrppprrpppppppp|pppppprrppppppppppppp|ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppphhhppphhhhppppppph~~~~^^^^^^^^^^^^^^^^^^^^^^H^^^^^^^^^^HHhhhhpppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~pppppppppppppppfffffffffffffpppppppppppphH^^Hhhppppprrrppprrrrrppppppppp+---+ppprrpppppppppppp|ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppprrr~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^HHHhhhhppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ppppppppppppppffffffffffffffpppppppppphH^^^^^rrrrrrrrppppppppppppppppppppppp|pppprrppppppppppp|ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppprrrHHH^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^HHHhhhhpppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ppppppppppppffffffffffffffffppppppppphhH^^^^^^~~hppppppppppppppppppppppppppp+--+pprrpppppppppp|pppppppp+--------#ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppprrrhhHHH^^^^^^^^^^^^^^^^HHH^^^^^^^^^^^HHHhhhpppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~ppppppppppfpffffffffffffffffffffppppppphhH^^?^Hhpppppppppppppppppppppppppppppppp|ppprrppppppppp+--------+pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppprrrhhhhhHHHH^^^^^^^^^^^^^HHhHHH^^^^^^^HHHhhhpppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~pppppppppffffffffffffffffffffffffpppppppphhh|hhppppppppppppppppppppppppppppppp#####pprppppppppp|pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppprrrphhhhhhHHHHHH^^^^^^^^^^^HHhhHHHHH^^^HHhhpppppppppppppfffpppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~ppppppppfffffffffffffffffffffffffpfppppppppp+---+ppppppppppppppppp+-----------#####--=---------+ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppprrppphhhhhHHHHHHHH^^^^^^^^^^^^HHhhhHH^HHHhhpppppppppppppfffffppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~pppppppppffffffffffffffffffffffffffffpppppppppppp|ppppppppppppppppp|ppppppppppp#####pprppppppppp|pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppprrppppphhhHHHHHHHH^^^^^^^^^^^^^^^HHhhhHhhhhpppppppppppppffffffppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~ppppppppffffffffffffffffffffffffffffffppppppppppp#-----------------+ppppppppppppp|pppprrpppppppp|ppppppppppppppppppppppppppppppppppppppffffpppppppppppppppppppppppppppppppppppppppppppppppppprpppppphhhHHHHHH^^^^^^^^^^^^^^^^^^HHhhhhhpppppppppppppppfffffffppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~ppppppppfffffffffffffffffffffffffffffffpppppppppppppppppppppppppppppppppppppppppp|ppppprrppppppp|pppppppppppppppppppppppppppppppppppffffffffppppppppppppppppppppppppppppppppppppppppppppppppprpppppphhHHHHH^^^^^rr^^^^^^^^^^HHHHhhhppppppppppppppppfffffffffppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~pppppppppffffffffffffffffFfffffffffffffffppppppppppppppppppppppppppppppppppppppppp|pppppprrpppppp|ppppppppppppppppppppppppppppppppffffffffffffpppppppppppppppppppppppppppppppppppppppppppppppprppppphhh~~~~~^^^^rr^^^^^HHHHHHhhhhhhppppppppppppppppffffffffffppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~pppppppppffffffffFfFffffFFFffFfffffffffffffppppppppppppppppppppppppppppppppppppppp|ppppppprrppppp?pppppppppppppppppppppppppppppppfffffffFFfffffppppppppppppppppppppppppppppppppppppppppppprrrrrppppphh~~~~~~~^^^r^^^^^^HHhhhhhhhhpppppppppppppppppfffffffffffpppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~ppppppppppffffffFFFFFFffFFFFFFFFffffffffffffpppppppppppppppppppppppppppppppppppppp|pppppppprrppppppppppppppppppppppppppppppppppfffffffFFFFFfffpppppppppppppppppppppppppppppppppppppppppppprpppppppphh~~~~~~~~rrrr^^^^HHHhhhhppppppppppppppppppppppfffffffFffffpppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~ppppppppppffffffFFFFFFFFffFFFFFFFFffffffffffffffppppppppppppppppppppppppppppppppppp|ppppppppprrppppppppppppppppppppppppppppppppfffffffFFFFFFFfffppppppppppppppppppppppppppppppppppppppppppprppppp~~~~~~~~~~~~~~^^^^^^HHhhhhpppppppppppppppppppppppffffffffFfffffppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~pppppppppfffffffFFFFFFFFFFFFFFFFFFFfffffffffffffffppppppppppppppppppppppppppppppppp|pppppppppprrrppppppppppppppppppppppppppppppfffffffFFFFFFfffffppppppppppppppppppppppppppppppppppppppppprrpppp~~hhhHH~~~~~~~^^^^^^^HhhhhppppppppppppppppppppppppfffffffFffffffffppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~pppppppppfffffffFFFFFFFFFFFFFFFFFFFFfffffffffffffffpppppppppppppppppppppppppppppppp|pppppppppppprrrhhpppppppppppppppppppppppppppffffffffFFfffffffpppppppppppppppppppppppppppppppppppppppprrppp~~~hhhhHHH~~~^^^^^^^^^HhhhppppppppppppppppppppfppppfffffffFFffffffffppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~ppppppppffffffffFFFFFFFFFFFFFFFFFFFFFFffffffffffffppppppppppppppppppppppppppppppppp|ppppppppppppphrrHHhppppppppppppppppppppppppppfffffffffffffffpppppppppppppppppppppppppppppppppppppppp~~~~~~~phhhhhHHHH^^^^^^^^^^^HhpppppppppppppppppppppfffpffffffffFFFFfffffffpppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~ppppppppfffffffffFFFFFFFFFFFFFFFFFFFFFFffffffffffppppp+----------------------------+----------+phH^^^^^Hhppppppppppppppppppppppppppffffffffffffpppppppppppppppppppppppppppppppppppppp~~~~ppppphhhhhhhHHH^^^^^^^^^^^^hhppppppppppppppppppppfffffffffffffFFFFfffffffppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~pppppppfffffffffffFFFFFFFFFFFFFFFFFFFfffffffffffffffp/pppppppppppppppppppppppppppp/ppppppppppp|pphH^?^Hhppppppppppppppppppppppppppppfffffffppffppppppppppppppppppppppppppppppppppp~~~~pppppppphhhhhhhHHH^^^^^^^^^^^HhpppppppppppppppppffpfffffffffffffFFFFFfffffffppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~pppppppfffffffffffFFFFFFFFFFFFFFFFFFFFffffffffffffff/pppppppppppppppppppppppppppp/pppppppppppp|ppppp|pppppppppppppppppppppppppppppppppffffpppppppppppppppppppppppppppppppppppp~~~~~ppppppppppphhhhhhhHH^^^^^^^^^^^HHhpppppppppppppppffffffffffffffffffFFFFffffffffpppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~pppppppffffffffffffFFFFFFFFFFFFFFFFFFFFFFffffffffff/pppppppppppppppppppppppppppp/ppppppppppppp+-----+ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~ppppppppppppppphhhhhhhHH^^^^^^^^HHHHhppppppppppppppfffffffffffffffffffFFFFFfffffffppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~pppppppfffffffffffffFFFFFFFFFFFFFFFFFFFFFFFFffffff/ffpppppppppppppppppppppppppp/ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp~~~~ppppppppppppppppppppppphhhhhhHHH^^^^^^^^HHHhppppppppppppppffffffffffffffffffffFFFFfffffffppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~ppppppppffffffffffffffffFFFFFFFFFFFFFFFFFFFF-----+ffpppppppppppppppppppppppppp/pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp~~~~~pppppppppppppppppppppppphhhhhhHHH^^^^^^^^HhhhpppppppppppppffffffffffffffffffffFFFFFffffffppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~pppppppppfffffffffffffffFFFFFFFFFFFFFFFFFFFFFFffffffppppppppppppppppppppppppp/pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp~~~~~pppppppp~~~~~~pppppppppppppppppppppppppphhhhhHH^^^^^^^^HHhhhppppppppppppppfffffffffffffffFFFFFFFFFffffffppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~pppppppppffffffffffffffFFFFFFFFFFFFFFFFFFFFFFFfffffffpppppppppppppppppppppp/ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~pp~~~p~~~~~~ppppppppppppppppppppppppppphhhhHH^^^^^^^^^HHhhppppppppppppppppffffffffffffFFFFFFFFFFffffffppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~ppppppppppfffffffffffffffffFFFFFFFFFFFFFFFFFFffffffffpppppppppppppppppppp+pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppppphhhhHH^^^^^^^^^HHhhppppppppppppppppfffffffffffFFFFFFFFFFfffffffppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~pppppppppppffffffffffffffffFFFFFFFFFFFFFFFFFFfffffffffppppppppppppppppppp|pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppphhhhHH^^^^^^^^^HHhhpppppppppppppppppffffffffffFFFFFFFFFfffffffffpppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~ppppppppppppppfffffffffffffFFFFFFFFFFFFFFFFFFFfffffffffpppppppppppppppppp|ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppphhhHH^^^^^^^^^^HHhhpppppppppppppppppfffffffffFFFFFFFFFFffffffffffppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~pppppppppppppppfffffffffffffFFFFFFFFFFFFFFFFFFFfffffffppppppppppppppppppp|pppppppppppppppphhhhhhhhpppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppppphhhhHHH^^^^^^^^^^^HhhpppppppppppppppppfffffffffFFFFFFFFFFfffffffffffpppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~pppppppppppppppffffffffffffFFFFFFFFFFFFFFFFFFFFffffffffppppppppppppppppp|pppppppppppppphhhhhhhhhhhhhhhpppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppphhhhhHH^^^^^^^^^^^^HhhppppppppppppppppppffffffffFFFFFFFFFffffffffffffpppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~pppppppppppppppppffffffffffffFFFFFFFFFFFFFFFFFFFFfffffffppppppppppppppp###pppppppppppphhhhhHHhhhhhhhhhpppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppphhhhhHH^^^r^^^^^^^^HhhppppppppppppppppppfffffffFFFFFFFFFFffffffffffffpppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~pppppppppppppppffffffffffffffFFFFFFFFFFFFFFFFFFFffffffffpppppppppppppp###pppppppppppphhhhhHHHhhhhhhhhhhppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppphhhhhhhHH^^r^^^^^^^HHHHhpppppppppppppppppffffffffFFFFFFFFFffffffffffffpppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ppppppppppppppppffffffffffffffFFFFFFFFFFFFFFFFFFFfffffffpppppppppppppp###pppppppppppphhhHHHHHHhhhhhhhhhhhhpppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppphrrrrhhHH^^rr^^^^^^^HHHHhppppppppppppppfpffffffffFFFFFFFFFFffffffffpppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~pppppppppppppppfffffffffffffffFFFFFFFFFFFFFFFFFFfffffffffffppppppppppp|pppppppppppphhhHHH^HHHHhHhhhhhhhhhppppppppppppppppppppppppppp~~~~~~~~~~~ppp~~~~~~~~~~~~~~~pppppppppppppppprrrrrhhrrrrrrrr^^^^^^^HHHHhppppppppffpppppffffffffFFFFFFFFFFFffffffffppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~ppppppppppppppfffffffffffffffFFFFFFFFFFFFFFFFFFFffffffffffffppppppppp|ppppppppppphhhHHHH^^^HHHHHhHhHhhhhhpppppppppppppppppppppppppp~~~~~~~~~~ppppp~~~~~~~~~ppprrrrrrppppppprrrrrrpphhhhhhhHH^^^r^^^^^^HHHhhppppppppfffppppffffffffFFFFFFFFFffffffffffppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~pppppppppppppfffffffffffffffFFFFFFFFFFFFFFFFFFfffffffffffffppppppppp+----+pppppphhhhHHH^^^^^^HHHHHHhhhhhhppppppppppppppppppppppppp~~~~~~~~~~~pppp~~~~~~~~pppppprrrrrrrrrrrrppppppphhhhhhhHH^^^r^^^^^^HHhhppppppppfffffpfffffffffFFFFFFFFFFfffffffffpppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~pppppppppppppffffffffffffffFFFFFFFFFFFFFFFFFFFffffffffffffppppppppp|pppp|pppppppphhhHHHH^^^HHHHHHHHhhhhhppppppppppppppppppppppp~~~~~~~~~~~~~~~pp~~~~~pppppppppppppppppppppppppppphhhhhhHH^^^^^r^^^^^HHhhppppppppfffffffffffffffFFFFFFFFFfffffffffpppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppffffffffffffffFFFFFFFFFFFFFFFFFFFFffffffffffffppppppp|pppp|pppppppphhhhHHHH^^^^^^^HHHHhhhhhppppppppppppppppppppp~~~~~~~~~~~~~~~~~~p~ppppppppppppppppppppppppppppppphhhhhhHH^^^^^^^^^^HHhhpppppppppfffffffffffffFFFFFFFFFFFfffffffpppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppffffffffffffffFFFFFFFFFFFFFFFFFFFFfffffffffffffffffpp|pppp|ppppppphhhhhHHHH^^^^^^^^HHHhhhhhhppppppppppppppppppppp~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppphhhhhHHH^^^^^^^^HHHhhhppppppppfffffffffffFFFFFFFFFFFFFfffffffpppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppffffffffffffffFFfFFFFFFFFFFFFFFFFfffffffffffffffffff|pppp?pppppphhhhhHHHH^^^HHHH^^HHHHHhhhhhpppppppppppppppppppp~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppphhhhhHH^^^^^^^^HHHHhhppppppppfffffffffffFFFFFFFFFFFFFFfffffffppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppfffffffffffffffffFFFFFFFFFFFFFFFFFFFffffffffffffffff|fppppppppphhhhhhHHHH^^HHHHHH^^HHHHHhhhhppppppppppppppppppppp~~~~~~~~~~~~~~ppppppppppppppppppppppppppppppppppphhhhhHH^^^^^^^^HHHhhpppppppppffffffffFFFFFFFFFFFFFFFFFfffffffpppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppfpppfffffffffffffffFfFFFFFFFFFFFFFFFFfffffffffffffff|pppppppppphhhhhHHHHH^^HHHHHHHHHHHHHhhhhpppppppppppppppppppppp~~~~~~~~~~~~ppppppppppppppppppppppppppppppppppphhhhhhH^^^^^^^^^HHHhppppppppppfffffffffffFFFffFFFFFFFFffffffffppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppffffffffffffffffffFFFFFFFFffFFFffffffffffffffpp|pppppppppphhhhhHHHH^^HHHhHHHHHHHHHHhhhhppppppppppppppppppppppppp~~~~~~~~ppppppppppppppppppppppppppppppppppppphhhhhH^^^^^^^^^HHhpppppppppppfffffffffffffffffffFFFFffffffffppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppffffffffffffffffffFFFffffffffffffffffffffffffp|ppppppppppphhhhhHHH^^HHHhhhHHHHhhhhhhhhpppppppppppppppppppppppppp~~~~ppppppppppppppppppppppppppppppppppppppppphhhhH^^^^^^^HHHhppppppppppppfffffffffffffffffffffffffffffffppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppfffffffffffffffffffffffffffffffffffffffffffffp|pppppppppppphhhhHHH^^HHhhhhhhHhhhhhhhhpppppppppppppppppppppppppp~~~pppppppppppppppppppppppppppppppppppppppppphhhhHH^^^^^^HHHhhppppppppppppfffffffffffffffffffffffffffffpfpppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppffffpppppppffffffffffffffffffffffffffffffffppp|pppppppppppphhhhhHH^HHHhhhhhhhhhhhhhpppppppppppppppppppppppppppp~~ppppppppppppppppppppppppppppppppppppppppppphhhhHH^^^^^HHHhhpppppppppppppffffffffffffffffffffffffffffpppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppffpppppppppppfffffffffffffffffffffffffpffpppp|ppppppppppppphhhhHHHHHhhhhhhhhhhhhhhppppppppppppppppppppppppppp~~pppppppppppppppppppppppppppppppppppppppppppphhhhhH^^^^^HHhhhpppppppppppppffffffffpffffffffffpfffffffpppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppffffffffffffffffffffffppppppppp|ppppppppppppphhhhhHHHHhhhhppphhhhhhpppppppppppppppppppppppppp~~~pppppppppppppppppppppppppssspsssssppppppppppphhhhhH^^^^^HHhhpppppppppppppppfffffffpppfffffpppppppfffffpppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppfffffffffffffffffffpppppppp|pppppppppppppphhhhHHHhhhhpppppppppppppppppppppppppppppppppp~~~ppppppppppppppppppppppppsssssssssssssppppppppppphhhhHH^^^^HHhhpppppppppppppppffffffppppppppppppppppffffpppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppppppppppppfffFFpppffffffpppppppppppp|ppppppppppppppphhhHHHhhhpppppppppppppppppppppppppppppppp~~~~ppppppppppppppppppppppppsssssssssssssssspppppppppphhhhHH^^^HHHhhpppppppppppppppppffffpppppppppppppppppffffppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppffffppppppppppppp|ppppppppppppppphhhHHhhhppppppppppppppppppppppppppppp~~~~~ppppppppppppppppppppppppppsssssssssssssssssspppppppphhhhHHH^^HHHHhhpppppppppppppppppppfppppppppppppppppppfffffppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppppfpppppppppppppp|ppppppppppppppphhhHhhhpppppppppppppppppppppppppp~~~~~pppppppppppppppppppppppppppppsssssssssssssssssspppppppppphhhHHHH^HHHHhppppppppppppppppppppppppppppppppppppppffffffppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp|ppppppppppppppphhhhhhpppppppppppppppppppppppp~~~~ppppppppppppppppppppppppppppppppsssssssssssssssssssspppppppppphhhHHHHHHHHhpppppppppppppppppppppppppppppppppppppppffffppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppppppppp###ppppppp|ppppppppppppppphhhhhhppppppppppppppppppppppp~~pppppppppppppppppppppppppppppppppsssssssssssssssssssssssppppppppphhhhHHHHHHhhpppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppppppppp###-------+pppppppppppppphhhhhhppppppppppppppppppppp~~~~ppppppppppppppppppppppppppppppppsssssssssssssssssssssssssppppppppphhhhHHHHHhhpppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppfffpppppppppppppppppp###pppppppppppppppppppppphhhhhpppppppppppppppppppp~~~pppppppppppppppppppppppppppppsssssssssssssssssssssssssssssssppppppppphhhhHHHHhhpppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppfffpppppfffffffppppppppppppppppppppppppppppppppppppppppphhhhhppppppppppppppppppp~~ppppppppppppppppppppppppppppssssssssssssssssssssssssssssssssssppppppppphhhhHHHhhhppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppfffffppffffffffffpppppppppppppppppppppppppppppppppppppppphhhhppppppppppppppppppp~~ppppppppppppppppppppppppppppsssssssssssssssssssssssssssssssssspppppppppphhhhhHhhhppppppppppppppppppppppppppppppppppppp~~~~~pppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppffffffffffffffffffpppppppppppppppppppppppppppppppppppppphhhhhppppppppppppp~~~~~~~ppppppppppppppppppppppppppppsssssssssssssssssssssssssssssssssppppppppppppphhhhhhhhppppppppppppppppppppppppppppppppp~~~~~~~~~~pppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppfffffffffffffffffppppppppppppppppppppppppppppppppppppphhhhhpppppppppppp~~~~~~~ppppppppppppppppppppppppppsssssssssssssssssssssssssssssssssssppppppppppppppppphhhhhppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~p~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppfffffffFFFFffffffppppppppppppppppppppppppppppppppppppphhhhhppppppppppp~~~~~~~~~~pppppppppppppppppppppppsssssssssssssssssssssssssssssssssssppppppppppppppppppphhhhhppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~p~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppfffffFFFFFFFffffpppppppppppppppppppppppppppppppppppppphhhhpppppppppppp~~~~~~~~~~~pppppppppppppppppppppsssssssssssssssssssssssssssssssssssppppppppppppppppppppphhhpppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~pp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppfffffffFFFFFFFFfffffppppppppppppppppppppppppppppppppppphhhhhpppppppppppp~~~~~~~~~~~~ppppppppppppppppppssssssssssssssssssssssssssssssssssssppppppppppp~~~ppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~pppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppffffffffffFFfFffffffffpppppppppppppppppppppppppppppppppphhhhhppppp~~~~~~~~~~~~~~~~~~~~~pppppppppppppppsssssssssssssssssssssssssssssssssppppppppp~~~~~~~~~~pppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppffffffffffffffffffffffpppppppppppppppppppppppppppppppphhhhhppppp~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppssssssssssssssssssssssssssssssssppppppppp~~~~~~~~~~~~ppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppfffffffffffffffffffpppppppppppppppppppppppppppppppppphhhhhppppp~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppsssssssssssssssssssssssssssspppppppppppp~~~~~~~~~~~~~~~ppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppfffffffpffffffppppppppppppppppppppppppppppppppppppphhhhhppp~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppsssssssssssssssssssssssssssppppppppppppp~~~~~~~~~~~~~~~~~ppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppfffppppffffppppppppppppppppppppppppppppppppppppppphhhhppp~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppssssssssssssssssssssssspppppppppppppppp~~~~~~~~~~~~~~~~~~~pppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppfffpppppppppppppppppppppppppppppppp~~pppppphhhppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppssssssssssssssssssssppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppppppppp~~~~pppphhhpppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppsssssssssssssssssssppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~pppphpppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppssssssssssssssssspppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~~pppphpppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppssssssssssssssssspppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppp~~~~~pppppppppppppppppp~~~~~~~~ppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppssssssssssssssssppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppp~~~~~~~pppppppppppppppp~~~~~~~~~pppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppssssssssssssppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppp~~~~~~~~ppppppppppppppp~~~~~~~~~~~pppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppsssssssssspppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppp~~~~~~~~~~ppppppppppppp~~~~~~~~~~~~~pp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppssssssssppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppp~~~~~~~~~~~~ppppppppppp~~~~~~~~~~~~~~pp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppssssssppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppp~~~~~~~~~~~~~ppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppsssssppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppp~~~~~~~~~~~~~~~ppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppsssppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
