-------------------------------------------------------+-++-++-++-++++++++-+++-+++-+++++--------------------------------------------------------------------------++-++-++-++++++++-+++-+++-+++++--------------------------------------------------------------------------------------------------------------------------++-++-++++++++-+++-+++-+++++---------------------+-++-++++++++-+++-+++-+++++----------------------++-++++++++-+++-+++-+++++---------------------++-++++++++-+++-+++-+++++--------------------------------------------------------------------------------------------------------------++++++++-+++-+++-+++++---------------------------------------------------------------++++++-+++-+++-+++++-------------------------------------------------------------++++-+++-+++-+++++---------------------+++-+++-+++-+++++---------------------------------------------------------------------------------------------------------------------------------+++-+++-+++++---------------------------------------------------------------------------------------------------------------------+++-+++++---------------------+--+++++-----------------------+++++----------------------+++++---------------------+++++---------------------++++---------------------+++--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-----++------+++-----------+++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++------+++-----------+++--+++++++++++++++++++----++------+++-----------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------+++-----------+++--+++++++++++++++++++------+++-----------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++-----------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++-----------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++--++++++++++++++++++++-----------+++--+++++++++++++++++++-----------+++--+++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++--+++++++++++++++++++--------+++--+++++++++++++++++++-------+++--++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++--++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++--+++++++++++++++++++++--++++++++++++++++++++--+++++++++++++++++++--+++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------++-++-++-++++++++-+++-+++-+++++--------------------------------------------------------------------------------------------------------------------------++-++-++++++++-+++-+++-+++++---------------------+-++-++++++++-+++-+++-+++++----------------------++-++++++++-+++-+++-+++++---------------------++-++++++++-+++-+++-+++++--------------------------------------------------------------------------------------------------------------++++++++-+++-+++-+++++---------------------------------------------------------------++++++-+++-+++-+++++-------------------------------------------------------------++++-+++-+++-+++++---------------------+++-+++-+++-+++++---------------------------------------------------------------------------------------------------------------------------------+++-+++-+++++---------------------------------------------------------------------------------------------------------------------+++-+++++---------------------+--+++++-----------------------+++++----------------------+++++---------------------+++++---------------------++++---------------------+++--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++-----++------+++-----------+++--+++++++++++++++++++----++------+++-----------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------+++-----------+++--+++++++++++++++++++------+++-----------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++-----------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++-----------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++--++++++++++++++++++++-----------+++--+++++++++++++++++++-----------+++--+++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++--+++++++++++++++++++--------+++--+++++++++++++++++++-------+++--++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++--++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++--+++++++++++++++++++++--++++++++++++++++++++--+++++++++++++++++++--+++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------------------------+++++-++++++++-+++-+++-+++++---------------------+-++-++++++++-+++-+++-+++++----------------------++-++++++++-+++-+++-+++++---------------------++-++++++++-+++-+++-+++++--------------------------------------------------------------------------------------------------------------++++++++-+++-+++-+++++---------------------------------------------------------------++++++-+++-+++-+++++-------------------------------------------------------------++++-+++-+++-+++++---------------------+++-+++-+++-+++++---------------------------------------------------------------------------------------------------------------------------------+++-+++-+++++---------------------------------------------------------------------------------------------------------------------+++-+++++---------------------+--+++++-----------------------+++++----------------------+++++---------------------+++++---------------------++++---------------------+++--------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++-+----+++-----------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------+++-----------+++--+++++++++++++++++++------+++-----------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++-----------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++-----------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++--++++++++++++++++++++-----------+++--+++++++++++++++++++-----------+++--+++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++--+++++++++++++++++++--------+++--+++++++++++++++++++-------+++--++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++--++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++--+++++++++++++++++++++--++++++++++++++++++++--+++++++++++++++++++--+++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------++-----------+++--+++++++++++++++++++-------++-----------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++-----------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++-----------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++--++++++++++++++++++++-----------+++--+++++++++++++++++++-----------+++--+++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++--+++++++++++++++++++--------+++--+++++++++++++++++++-------+++--++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++--++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++--+++++++++++++++++++++--++++++++++++++++++++--+++++++++++++++++++--+++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++-+-++++++-+++-+++-+++++----------------------++-+-++++++-+++-+++-+++++---------------------++-++++++++-+++-+++-+++++--------------------------------------------------------------------------------------------------------------++++++++-+++-+++-+++++---------------------------------------------------------------++++++-+++-+++-+++++-------------------------------------------------------------++++-+++-+++-+++++---------------------+++-+++-+++-+++++---------------------------------------------------------------------------------------------------------------------------------+++-+++-+++++---------------------------------------------------------------------------------------------------------------------+++-+++++---------------------+--+++++-----------------------+++++----------------------+++++---------------------+++++---------------------++++---------------------+++--------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++-+-++++++-+++-+++-+++++---------------------+++++++++++++++-+++-+++++--------------------------------------------------------------------------------------------------------------++++++++++++-+++-+++++---------------------------------------------------------------++++++-+++-+++-+++++-------------------------------------------------------------++++-+++-+++-+++++---------------------+++-+++-+++-+++++---------------------------------------------------------------------------------------------------------------------------------+++-+++-+++++---------------------------------------------------------------------------------------------------------------------+++-+++++---------------------+--+++++-----------------------+++++----------------------+++++---------------------+++++---------------------++++---------------------+++--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++-+++++--------------------------------------------------------------------------------------------------------------++++++++++++++++-+++++---------------------------------------------------------------++++++-+++-+++-+++++-------------------------------------------------------------++++-+++-+++-+++++---------------------+++-+++-+++-+++++---------------------------------------------------------------------------------------------------------------------------------+++-+++-+++++---------------------------------------------------------------------------------------------------------------------+++-+++++---------------------+--+++++-----------------------+++++----------------------+++++---------------------+++++---------------------++++---------------------+++--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++-+++-+++++---------------------------------------------------------------+-++++-+++--+--+++++-------------------------------------------------------------++++-+++--+--+++++---------------------+++-+++--+--+++++---------------------------------------------------------------------------------------------------------------------------------+++-+++-+++++---------------------------------------------------------------------------------------------------------------------+++-+++++---------------------+--+++++-----------------------+++++----------------------+++++---------------------+++++---------------------++++---------------------+++--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++-----------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+++-+---------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++-+---------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++--++++++++++++++++++++-----------+++--+++++++++++++++++++-----------+++--+++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++--+++++++++++++++++++--------+++--+++++++++++++++++++-------+++--++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++--++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++--+++++++++++++++++++++--++++++++++++++++++++--+++++++++++++++++++--+++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--+++-++--------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++-++--------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+++--++++++++++++++++++++-----------+++--+++++++++++++++++++-----------+++--+++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++--+++++++++++++++++++--------+++--+++++++++++++++++++-------+++--++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++--++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++--+++++++++++++++++++++--++++++++++++++++++++--+++++++++++++++++++--+++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------+--+++-+++--+--+++++--------------------------------------------------------------+++-+++--+--+++++---------------------+++-+++--+--+++++---------------------------------------------------------------------------------------------------------------------------------+++-+++-+++++---------------------------------------------------------------------------------------------------------------------+++-+++++---------------------+--+++++-----------------------+++++----------------------+++++---------------------++++++--------------------++++---------------------+++--------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++--+++-+---------+++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------++--+++++++++++++++++++-------------++--+++++++++++++++++++------------++--+++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++--+++++++++++++++++++--------+++--+++++++++++++++++++-------+++--++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++--++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++--+++++++++++++++++++++--++++++++++++++++++++--+++++++++++++++++++--+++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------++++-+++--+--+++++---------------------+++-+++--+--+++++---------------------------------------------------------------------------------------------------------------------------------+++-+++-++++++-++-----------------------------------------------------------------------------------------------------------------+++-++++++-++-----------------+--+++++-----------------------+++++----------------------+++++---------------------+++++++++-----------------++++---------------------+++--------------------------------------------+-------------------------------------------++-----------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------+--+++++++++++++++++++--------------+--+++++++++++++++++++------------++--+++++++++++++++++++++++++++++++++++++++++++++++++++++---------+++--+++++++++++++++++++--------+++--+++++++++++++++++++------++++--++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++--++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++--+++++++++++++++++++++--++++++++++++++++++++--+++++++++++++++++++--+++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++--+--+++++---------------------------------------------------------------------------------------------------------------------------------+++-+++-+++++++++-----------------------------------------------------------------------------------------------------------------+++-+++++++++-----------------+--+++++-----------------------+++++----------------------+++++---------------------+++++++++-----------------++++---------------------+++--------------------------------------------+-------------------------------------------++-----------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++----------------------------------------------------------------------------------------------------------------+++-++++++++++----------------+--+++++-------------------------+++----------------------+++++---------------------++++++++++----------------++++---------------------+++--------------------------------------------+-------------------------------------------++-----------------++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++--+++++++++++++++++++------------++--+++++++++++++++++++++++++++++++++++++++++++++++++++++--------+++++++++++++++++++++++++-------+++++++++++++++++++++++++-----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++--++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++--+++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------++--+++++++++++++++++++++++++++++++++++++++++++++++++++++-------++++++++++++++++++++++++++------++++++++++++++++++++++++++-----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++--++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++--+++++++++++++++++++---++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+++++++++++++++++++++++++++-----++++++++++++++++++++++++++-----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++--++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++--++-++++++++++++++++---+-++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------+++-+++++++++-----------------+-----------------------------------------------------------------------------------+++++++++-------------------------------------------------------------------------------------------------------------------------------------++-----------------++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----++++++++++++++++++++++++++-----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++--++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---+---+++++++++++++++-------++++++++++++++-------++++++++++++++++++++++++++++++++++++++++++++++++++++++---++++++++++++++---++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++--++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-------+++++++++++++++-------++++++++++++++-------++++++++++++++++++++++++++++++++++++++++++++++++++++++---++++++++++++++---++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++-++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++--+++++++++++++++++++-+-------+++++++++++++++-------++++++++++++++-------++++++++++++++-+++++++++++++++++++++++++++++++++++++++---++++++++++++++---+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------------+++++++++++-----------------------------------------------------------------------------------------------------------------------------------++-----------------++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------+------------------------------------------------------------------------------------------++-+++++-----------++-+++++----------------------------------------------+++++-----------++++-----------+++-------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------+++--------------------------------------------+-------------------------------------------++-++++++----------++-++++++---------------------------------------------++++++----------++++-----------+++------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------++--++++-----------++--++++----------------------------------------------+++++-----------++++-----------+++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++----+-----++++++++---+-----+++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++----++++++++---+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------+-------------------------------------------+++++++++++++++++++++++++++++++++++++++---++----++++++++---++----+++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++----++++++++---++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------++++++++++++++--------+++++++++++++++++++++++++++++++++++++++++++++++++++++---++++++++++++++---++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------++++++++++++++++++++++++++++++++++++++++--+++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++--++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------+++++++---------++++-----------+++-----------------------------------------------------------------------------------------------------------------------------------------++++++----------++++-----------++----------------------------------------------------------------------------------------------------------+-----+++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++----++++++++---++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------+++++++----++++++++---+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-------------+--------------------------------------------------------------------------------------------------------+---------------------------------------------------++------+++------++----------------------------------------------------------------------++++------+++------++------------------------------------++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+++++-+++++++++++++++++++++++++++++++++++++++++++++++---++++--++++++++++++++++++++++------++------------------------------------------------------------------------------------+---+---------+++++++++++++++++++++++++++++++++++++----------------+++