+++++++++++++++++++++++++++++++++++++++-----------------..........................              ...............---------++++++++++OOOOOOOOOOOOO#############################OOOOOOOOOOOOOO+++++++++++++-----------------..................................
++++++++++++++++++++++++++++++++++++++++-----------------...........................        ..................---------++++++++++OOOOOOOOOOOOO#############################OOOOOOOOOOOOOO++++++++++++-----------------....................................
+++++++++++++++++++++++++++++++++++++++++-----------------...................................................---------++++++++++OOOOOOOOOOOOOO###########################OOOOOOOOOOOOOOO++++++++++++----------------......................................
-+++++++++++++++++++++++++++++++++++++++++-----------------................................................----------+++++++++++OOOOOOOOOOOOOO##########################OOOOOOOOOOOOOOO++++++++++++---------------........................................
--+++++++++++++++++++++++++++++++++++++++++-----------------..............................................----------+++++++++++OOOOOOOOOOOOOOO#######################OOOOOOOOOOOOOOOOO++++++++++++---------------.........................................
---+++++++++++++++++++++++++++++++++++++++++-----------------...........................................-----------+++++++++++OOOOOOOOOOOOOOOOO##################OOOOOOOOOOOOOOOOOOO++++++++++++---------------.........................................--
----+++++++++++++++++++++++++++++++++++++++++-----------------........................................------------+++++++++++OOOOOOOOOOOOOOOOOOO###########OOOOOOOOOOOOOOOOOOOOOOO+++++++++++++---------------.........................................---
-----++++++++++++++++++++++++++++++++++++++++------------------.....................................------------++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++---------------........................................------
------++++++++++++++++++++++++++++++++++++++++-------------------.................................-------------++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++--------------........................................--------
-------+++++++++++++++++++++++++++++++++++++++--------------------.............................--------------++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++---------------.....................................------------
---------+++++++++++++++++++++++++++++++++++++-----------------------......................----------------+++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++---------------.....................................--------------
----------++++++++++++++++++++++++++++++++++++---------------------------............--------------------+++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++++---------------....................................-----------------
-----------+++++++++++++++++++++++++++++++++++---------------------------------------------------------++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++----------------....................................-------------------
-------------+++++++++++++++++++++++++++++++++-------------------------------------------------------++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++++++----------------....................................-------------------++
---------------++++++++++++++++++++++++++++++-----------------------------------------------------+++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++-----------------....................................-------------------++++
..---------------++++++++++++++++++++++++++-----------------------------------------------------++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++------------------....................................-------------------++++++
...------------------++++++++++++++++++-------------------------------------------------------++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++++-------------------....................................------------------+++++++++
.....---------------------------------------------------------------------------------------+++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++--------------------.....................................-----------------+++++++++++
........---------------------------------------------------------------------------------++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++---------------------.....................................-----------------+++++++++++++
..........----------------------------------------------------------------------------++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++----------------------.....................................-----------------++++++++++++++
..............---------------------------------------------------------------------+++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++---------------------......................................----------------++++++++++++++++
..................--------------------------------------------------------------+++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++--------------------........................................---------------+++++++++++++++++
..........................----------------------------------------------------+++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++-------------------.........................................----------------+++++++++++++++++
.....................................--------------------------------------++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++------------------..........................................----------------++++++++++++++++++
    .......................................------------------------------+++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++------------------...........................................---------------+++++++++++++++++++
          ....................................-------------------------+++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++------------------...........................................----------------+++++++++++++++++++
                ................................----------------------+++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++-----------------............................................----------------+++++++++++++++++++
                       ..........................-------------------+++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++----------------............................................----------------++++++++++++++++++++
                             .....................-----------------++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++-----------------............................................----------------++++++++++++++++++++
                                ...................---------------+++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++----------------............................................-----------------++++++++++++++++++++
                                  .................---------------+++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++----------------...........................................------------------++++++++++++++++++++
                                    ...............--------------++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++-----------------..........................................------------------++++++++++++++++++++
                                    ...............-------------++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++-----------------.........................................-------------------++++++++++++++++++++
                                     ..............------------+++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++-----------------........................................-------------------++++++++++++++++++++
                                     .............-------------++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++++------------------......................................---------------------+++++++++++++++++++
                                     .............------------++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++++++------------------.....................................----------------------+++++++++++++++++++
                                     ............------------+++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++++++++++++-------------------..................................------------------------++++++++++++++++++
.                                   ............------------+++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------...............................--------------------------++++++++++++++++++
...                                .............------------++++++++++++++++OOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------.............................-----------------------------+++++++---------
......                            .............------------++++++++++++++++OOOOOOOOOOOOOOOOOOOO+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------.........................-----------------------------------------------
........                        ..............------------+++++++++++++++++OOOOOOOOOOOOOOOOOO+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------.....................-------------------------------------------------
............                 ...............-------------+++++++++++++++++OOOOOOOOOOOOOOOOO++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------...............----------------------------------------------------
..................       ..................------------+++++++++++++++++++OOOOOOOOOOOOOOO+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------.......--------------------------------------------------------
.........................................-------------+++++++++++++++++++OOOOOOOOOOOOOO+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------
--.....................................-------------++++++++++++++++++++OOOOOOOOOOOOO++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------
------..............................---------------++++++++++++++++++++OOOOOOOOOOOO+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------
----------.......................----------------+++++++++++++++++++++OOOOOOOOOOO+++++++++++++++++++++++++-----------++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------
----------------.............------------------+++++++++++++++++++++OOOOOOOOOOOO+++++++++++++++++++++---------------------++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------
---------------------------------------------+++++++++++++++++++++OOOOOOOOOOOOO++++++++++++++++++++--------------------------+++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------++++++------------------
------------------------------------------++++++++++++++++++++++OOOOOOOOOOOOOO+++++++++++++++++++-------------------------------+++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------++++++++++++----------------
+++++----------------------------------++++++++++++++++++++++OOOOOOOOOOOOOOOO+++++++++++++++++++---------------------------------++++++++++++++++++++++++++++++++++++++++--------------------------------------------------+++++++++++++++++--------------
+++++++++---------------------------+++++++++++++++++++++++OOOOOOOOOOOOOOOOOO++++++++++++++++++------------------------------------++++++++++++++++++++++++++++++++++++++------------------------------------------------+++++++++++++++++++++------------
+++++++++++++++-----------------++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOO+++++++++++++++++--------------------------------------++++++++++++++++++++++++++++++++++++-----------------------------------------------+++++++++++++++++++++++++----------
++++++++++++++++++++++++++++++++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++---------------------------------------+++++++++++++++++++++++++++++++++++---------------------------------------------+++++++++++++++++++++++++++++--------
+++++++++++++++++++++++++++++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++---------------------------------------++++++++++++++++++++++++++++++++++---------------------------------------------++++++++++++++++++++++++++++++++------
++++++++++++++++++++++++++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++---------------------------------------++++++++++++++++++++++++++++++++++--------------------------------------------++++++++++++++++++++++++++++++++++-----
++++++++++++++++++++++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++----------------------------------------++++++++++++++++++++++++++++++++++-------------------------------------------+++++++++++++++++++++++++++++++++++++---
OOOO+++++++++++++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++---------------------------------------+++++++++++++++++++++++++++++++++++------------------------------------------+++++++++++++++++++++++++++++++++++++++--
OOOOOOOOOOOOOOOOOOO+++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++--------------------------------------+++++++++++++++++++++++++++++++++++++----------------------------------------+++++++++++++++++++++++++++++++++++++++++-
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++-------------------------------------+++++++++++++++++++++++++++++++++++++++---------------------------------------++++++++++++++++++++++++++++++++++++++++++-
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++-----------------------------------++++++++++++++++++++++++++++++++++++++++++--------------------------------------+++++++++++++++++++++++++++++++++++++++++--
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++---------------------------------+++++++++++++++++++++++++++++++++++++++++++++------------------------------------++++++++++++++++++++++++++++++++++++++++++--
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++-------------------------------++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------++++++++++++++++++++++++++++++++++++++++++---
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++-----------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------++++++++++++++++++++++++++++++++++++++++++----
OOOOO####################################OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++++--------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------++++++++++++++++++++++++++++++++++++++++++-----
O#############################################OOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------++++++++++++++++++++++++++++++++++++++++++------
###############################################OOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++----------------------++++++++++++++++++++++++++++OOOOOOOOOOOOOOO+++++++++++++++++++++++----------------------+++++++++++++++++++++++++++++++++++++++++++-------
################################################OOOOOOOOOOOOOOOOOOOOO+++++++++++++++++++++--------------------+++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++++++----------------++++++++++++++++++++++++++++++++++++++++++++--------
################################################OOOOOOOOOOOOOOOOOOOO+++++++++++++++++++++------------------+++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++++++++++++-------+++++++++++++++++++++++++++++++++++++++++++++++---------
################################################OOOOOOOOOOOOOOOOOOO+++++++++++++++++++++-----------------+++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
################################################OOOOOOOOOOOOOOOOOO+++++++++++++++++++++----------------++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------
###############################################OOOOOOOOOOOOOOOOOO+++++++++++++++++++++---------------++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
##############################################OOOOOOOOOOOOOOOOO++++++++++++++++++++++---------------++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------
#############################################OOOOOOOOOOOOOOOOO+++++++++++++++++++++---------------++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------
OO#########################################OOOOOOOOOOOOOOOOO+++++++++++++++++++++----------------+++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------
OOOO#####################################OOOOOOOOOOOOOOOOO+++++++++++++++++++++------------------+++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------
OOOOOOO################################OOOOOOOOOOOOOOOOO++++++++++++++++++++--------------------+++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------
OOOOOOOOOOO##########################OOOOOOOOOOOOOOOOO++++++++++++++++++++---------------------+++++++++++++++++OOOOOOOOOOOOOOOOOOOOOO#######OOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------
OOOOOOOOOOOOOOOO#################OOOOOOOOOOOOOOOOOOO+++++++++++++++++++------------------------++++++++++++++++OOOOOOOOOOOOOOOOOOO##############OOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
OOOOOOOOOOOOOOOOOOOOOOOO##OOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++---------------------------+++++++++++++++OOOOOOOOOOOOOOOOO##################OOOOOOOOOOOOOOOOOOOO+++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++++----------------------------+++++++++++++++OOOOOOOOOOOOOOOO####################OOOOOOOOOOOOOOOOOOO++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++-------------------------------++++++++++++++OOOOOOOOOOOOOOO######################OOOOOOOOOOOOOOOOOOO+++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++++----------------------------------+++++++++++++OOOOOOOOOOOOOOO#######################OOOOOOOOOOOOOOOOOO+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++++++++-------------------------------------+++++++++++++OOOOOOOOOOOOOO########################OOOOOOOOOOOOOOOOO+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
++++++++++++++++++++OOOOOOOOOOOO++++++++++++++++++++++----------------------------------------++++++++++++OOOOOOOOOOOOOOO#######################OOOOOOOOOOOOOOOO++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------
+++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------++++++++++++OOOOOOOOOOOOOO#######################OOOOOOOOOOOOOOOO++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------
++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------++++++++++++OOOOOOOOOOOOOO######################OOOOOOOOOOOOOOOO++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------
--------+++++++++++++++++++++++++++++++++++++-------------------------------------------------++++++++++++OOOOOOOOOOOOOO#####################OOOOOOOOOOOOOOOO+++++++++++++++++++++++++------------+++++++++++++++++++++++++++++++++++++++-----------------
-------------++++++++++++++++++++++++++++-----------------------------------------------------++++++++++++OOOOOOOOOOOOOO####################OOOOOOOOOOOOOOO++++++++++++++++++++------------------------+++++++++++++++++++++++++++++++++++++--------------
------------------+++++++++++++++++++---------------------------------------------------------++++++++++++OOOOOOOOOOOOOOO#################OOOOOOOOOOOOOOOO++++++++++++++++-------------------------------+++++++++++++++++++++++++++++++++++++++----------
-----------------------+++++++++--------------------------------------------------------------++++++++++++OOOOOOOOOOOOOOOO#############OOOOOOOOOOOOOOOOO++++++++++++++------------------------------------+++++++++++++++++++++++++++++++++++++++++-------
------------------------------------------------------------------....------------------------++++++++++++OOOOOOOOOOOOOOOOOO#########OOOOOOOOOOOOOOOOOO+++++++++++++---------------------------------------+++++++++++++++++++++++++++++++++++++++++++----
---------------------------------------------------------------.........----------------------++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++------------------------------------------++++++++++++++++++++++++++++++++++++++++++++--
--------------------------------------------------------------.........-----------------------++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++---------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++
..-----------------------------------------------------------.........-----------------------+++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++-----------------------------------------------++++++++++++++++++++++++++++++++++++++++++++
....----------------------------------------------------------......-------------------------++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++--------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++
.....---------------------------------------------------------------------------------------+++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++-------------------.......--------------------------++++++++++++++++++++++++++++++++++++++++++
.....--------------------------------------------------------------------------------------+++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++---------------..................---------------------+++++++++++++++++++++++++++++++++++++++++
.....-------------------------------------------------------------------------------------+++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++------------........................-------------------+++++++++++++++++++++OOOOOOOOOO+++++++++
.....------------------------------------------------------------------------------------++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++------------............................-----------------+++++++++++++++++++OOOOOOOOOOOOOO++++++