+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++----++-----------+-+-+--------------------++++++--++++++++++++++++++++++++++++++-++----++-----------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----++-----------+-+-+--------------------++++++--++++++++++++++++++++++++++++++----++-----------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++-----------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+-+-+--------------------++++++--++++++++++++++++++++++++++++++-----------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------+-+-+--------------------++++++--++++++++++++++++++++++++++++++-------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+-+-+--------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------++++++--++++++++++++++++++++++++++++++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------++++++--++++++++++++++++++++++++++++++---------------++++++--++++++++++++++++++++++++++++++--------------++++++--++++++++++++++++++++++++++++++-------------++++++--++++++++++++++++++++++++++++++------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++-++++++++--+-+++++++++--+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++-++++++++--+-+++++++++--+++++----++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++--+-+++++++++--+++++----++++++++++++++--------------------------------++++++++--+-+++++++++--+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------++++++--+-+++++++++--+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--+-+++++++++--+++++----++++++++++++++--------------------------------++--+-+++++++++--+++++----++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++++++++--+++++----++++++++++++++--------------------------------+-+++++++++--+++++----++++++++++++++---------------------------------------------------------------------------------------------------+++++++++--+++++----++++++++++++++-------------------------------------------------------------------------------------------------+++++++--+++++----++++++++++++++--------------------------------++++++--+++++----++++++++++++++----------------------------------------------------------------------------------------------++++--+++++----++++++++++++++--------------------------------------------------------------------------------------------++--+++++----++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++++----++++++++++++++--------------------------------+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++----------------------------------++++++++++++++---------------------------------++++++++++++++--------------------------------++++++++++++++-------------------------------------++++++++------------------------------------++++++++--------------------------------+++++++++++--------------------------------++++++++++---------------------------------++++++++--------------------------------++++++++--------------------------------+++++++--------------------------------++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++-++++++++--+-+++++++++--+++++----++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++--+-+++++++++--+++++----++++++++++++++--------------------------------++++++++--+-+++++++++--+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------++++++--+-+++++++++--+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--+-+++++++++--+++++----++++++++++++++--------------------------------++--+-+++++++++--+++++----++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++++++++--+++++----++++++++++++++--------------------------------+-+++++++++--+++++----++++++++++++++---------------------------------------------------------------------------------------------------+++++++++--+++++----++++++++++++++-------------------------------------------------------------------------------------------------+++++++--+++++----++++++++++++++--------------------------------++++++--+++++----++++++++++++++----------------------------------------------------------------------------------------------++++--+++++----++++++++++++++--------------------------------------------------------------------------------------------++--+++++----++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++++----++++++++++++++--------------------------------+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++----------------------------------++++++++++++++---------------------------------++++++++++++++--------------------------------++++++++++++++-------------------------------------++++++++------------------------------------++++++++--------------------------------+++++++++++--------------------------------++++++++++---------------------------------++++++++--------------------------------++++++++--------------------------------+++++++--------------------------------++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++----++-----------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----++-----------+-+-+--------------------++++++--++++++++++++++++++++++++++++++----++-----------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++-----------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+-+-+--------------------++++++--++++++++++++++++++++++++++++++-----------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------+-+-+--------------------++++++--++++++++++++++++++++++++++++++-------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+-+-+--------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------++++++--++++++++++++++++++++++++++++++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------++++++--++++++++++++++++++++++++++++++---------------++++++--++++++++++++++++++++++++++++++--------------++++++--++++++++++++++++++++++++++++++-------------++++++--++++++++++++++++++++++++++++++------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++-----------+-+-+--------------------++++++--++++++++++++++++++++++++++++++----++-----------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++-----------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+-+-+--------------------++++++--++++++++++++++++++++++++++++++-----------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------+-+-+--------------------++++++--++++++++++++++++++++++++++++++-------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+-+-+--------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------++++++--++++++++++++++++++++++++++++++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------++++++--++++++++++++++++++++++++++++++---------------++++++--++++++++++++++++++++++++++++++--------------++++++--++++++++++++++++++++++++++++++-------------++++++--++++++++++++++++++++++++++++++------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++++++--+-+++++++++--+++++----++++++++++++++--------------------------------++++++++--+-+++++++++--+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------++++++--+-+++++++++--+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--+-+++++++++--+++++----++++++++++++++--------------------------------++--+-+++++++++--+++++----++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++++++++--+++++----++++++++++++++--------------------------------+-+++++++++--+++++----++++++++++++++---------------------------------------------------------------------------------------------------+++++++++--+++++----++++++++++++++-------------------------------------------------------------------------------------------------+++++++--+++++----++++++++++++++--------------------------------++++++--+++++----++++++++++++++----------------------------------------------------------------------------------------------++++--+++++----++++++++++++++--------------------------------------------------------------------------------------------++--+++++----++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++++----++++++++++++++--------------------------------+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++----------------------------------++++++++++++++---------------------------------++++++++++++++--------------------------------++++++++++++++-------------------------------------++++++++------------------------------------++++++++--------------------------------+++++++++++--------------------------------++++++++++---------------------------------++++++++--------------------------------++++++++--------------------------------+++++++--------------------------------++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++-----------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++--+--------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------+-+-+--------------------++++++--++++++++++++++++++++++++++++++-----------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------+-+-+--------------------++++++--++++++++++++++++++++++++++++++-------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+-+-+--------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------++++++--++++++++++++++++++++++++++++++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------++++++--++++++++++++++++++++++++++++++---------------++++++--++++++++++++++++++++++++++++++--------------++++++--++++++++++++++++++++++++++++++-------------++++++--++++++++++++++++++++++++++++++------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++--++-------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------+-+--------------------++++++--++++++++++++++++++++++++++++++-------------+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------+-+-+--------------------++++++--++++++++++++++++++++++++++++++-------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+-+-+--------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------++++++--++++++++++++++++++++++++++++++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------++++++--++++++++++++++++++++++++++++++---------------++++++--++++++++++++++++++++++++++++++--------------++++++--++++++++++++++++++++++++++++++-------------++++++--++++++++++++++++++++++++++++++------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-+++++++++--+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------++++++--+-+++++++++--+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++--+-+++++++++--+++++----++++++++++++++--------------------------------++--+-+++++++++--+++++----++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++++++++--+++++----++++++++++++++--------------------------------+-+++++++++--+++++----++++++++++++++---------------------------------------------------------------------------------------------------+++++++++--+++++----++++++++++++++-------------------------------------------------------------------------------------------------+++++++--+++++----++++++++++++++--------------------------------++++++--+++++----++++++++++++++----------------------------------------------------------------------------------------------++++--+++++----++++++++++++++--------------------------------------------------------------------------------------------++--+++++----++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++++----++++++++++++++--------------------------------+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++----------------------------------++++++++++++++---------------------------------++++++++++++++--------------------------------++++++++++++++-------------------------------------++++++++------------------------------------++++++++--------------------------------+++++++++++--------------------------------++++++++++---------------------------------++++++++--------------------------------++++++++--------------------------------+++++++--------------------------------++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++-++--+-+-+++++++--+++++----++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++--+-+-+++++++--+++++----++++++++++++++--------------------------------++--+-+-+++++++--+++++----++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++++++++--+++++----++++++++++++++--------------------------------+-+++++++++--+++++----++++++++++++++---------------------------------------------------------------------------------------------------+++++++++--+++++----++++++++++++++-------------------------------------------------------------------------------------------------+++++++--+++++----++++++++++++++--------------------------------++++++--+++++----++++++++++++++----------------------------------------------------------------------------------------------++++--+++++----++++++++++++++--------------------------------------------------------------------------------------------++--+++++----++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++++----++++++++++++++--------------------------------+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++----------------------------------++++++++++++++---------------------------------++++++++++++++--------------------------------++++++++++++++-------------------------------------++++++++------------------------------------++++++++--------------------------------+++++++++++--------------------------------++++++++++---------------------------------++++++++--------------------------------++++++++--------------------------------+++++++--------------------------------++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------+--------------------++++++--++++++++++++++++++++++++++++++---------------+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------+-+-+--------------------++++++--++++++++++++++++++++++++++++++-------+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+-+-+--------------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------++++++--++++++++++++++++++++++++++++++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------++++++--++++++++++++++++++++++++++++++---------------++++++--++++++++++++++++++++++++++++++--------------++++++--++++++++++++++++++++++++++++++-------------++++++--++++++++++++++++++++++++++++++------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------++--+-+-+++++++--+++++----++++++++++++++--------------------------------++--+-+-+++++++--+++++----++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++++++++++-+++++----++++++++++++++--------------------------------+-++++++++++-+++++----++++++++++++++---------------------------------------------------------------------------------------------------++++++++++-+++++----++++++++++++++-------------------------------------------------------------------------------------------------+++++++--+++++----++++++++++++++--------------------------------++++++--+++++----++++++++++++++----------------------------------------------------------------------------------------------++++--+++++----++++++++++++++--------------------------------------------------------------------------------------------++--+++++----++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++++----++++++++++++++--------------------------------+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++----------------------------------++++++++++++++---------------------------------++++++++++++++--------------------------------++++++++++++++-------------------------------------++++++++------------------------------------++++++++--------------------------------+++++++++++--------------------------------++++++++++---------------------------------++++++++--------------------------------++++++++--------------------------------+++++++--------------------------------++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+--+-+-++--+----------------++++++--++++++++++++++++++++++++++++++----+--+-+-++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--+-+-++--+----------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-+-++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------++++++--++++++++++++++++++++++++++++++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------++++++--++++++++++++++++++++++++++++++---------------++++++--++++++++++++++++++++++++++++++--------------++++++--++++++++++++++++++++++++++++++-------------++++++--++++++++++++++++++++++++++++++------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----+--+-+-++--+----------------++++++--++++++++++++++++++++++++++++++----+--+-+-++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--+-+-++--+----------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-+-++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------++++++--++++++++++++++++++++++++++++++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------++++++--++++++++++++++++++++++++++++++---------------++++++--++++++++++++++++++++++++++++++--------------++++++--++++++++++++++++++++++++++++++-------------++++++--++++++++++++++++++++++++++++++------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-+++++++++--+++++----++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++----++++++++++++++--------------------------------++++++++++++++++++----++++++++++++++---------------------------------------------------------------------------------------------------++++++++++++++++----++++++++++++++-------------------------------------------------------------------------------------------------+++++++--+++++----++++++++++++++--------------------------------++++++--+++++----++++++++++++++----------------------------------------------------------------------------------------------++++--+++++----++++++++++++++--------------------------------------------------------------------------------------------++--+++++----++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++++----++++++++++++++--------------------------------+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++----------------------------------++++++++++++++---------------------------------++++++++++++++--------------------------------++++++++++++++-------------------------------------++++++++------------------------------------++++++++--------------------------------+++++++++++--------------------------------++++++++++---------------------------------++++++++--------------------------------++++++++--------------------------------+++++++--------------------------------++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++--++++++++++++++--------------------------------++++++++++++++++++++--++++++++++++++---------------------------------------------------------------------------------------------------++++++++++++++++++--++++++++++++++-------------------------------------------------------------------------------------------------+++++++--+++++----++++++++++++++--------------------------------++++++--+++++----++++++++++++++----------------------------------------------------------------------------------------------++++--+++++----++++++++++++++--------------------------------------------------------------------------------------------++--+++++----++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++++----++++++++++++++--------------------------------+++++----++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--++++++++++++++----------------------------------++++++++++++++---------------------------------++++++++++++++--------------------------------++++++++++++++-------------------------------------++++++++------------------------------------++++++++--------------------------------+++++++++++--------------------------------++++++++++---------------------------------++++++++--------------------------------++++++++--------------------------------+++++++--------------------------------++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--+-+-++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--+-+-++--+----------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-+-++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-+----------------------++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------++++--++++++++++++++++++++++++++++++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------++++++--++++++++++++++++++++++++++++++---------------++++++--++++++++++++++++++++++++++++++--------------++++++--++++++++++++++++++++++++++++++-------------++++++--++++++++++++++++++++++++++++++------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--+-+-++--++---------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-+-+---+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-------------------------+++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------+++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------+++--++++++++++++++++++++++++++++++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------++++++--++++++++++++++++++++++++++++++---------------++++++--++++++++++++++++++++++++++++++--------------++++++--++++++++++++++++++++++++++++++-------------++++++--++++++++++++++++++++++++++++++------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----++++++++++++++---------------------------------------------------------------------------------------------------++++++++++++++++----++++++++++++++-------------------------------------------------------------------------------------------------+++++++--+++++----++-+++++++++++--------------------------------++++++--+++++----++-+++++++++++----------------------------------------------------------------------------------------------+-++--+++++----++-+++++++++++--------------------------------------------------------------------------------------------++--+++++----++-+++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++++----++++++++++++++--------------------------------+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++----------------------------------++++++++++++++---------------------------------++++++++++++++--------------------------------++++++++++++++-------------------------------------++++++++------------------------------------++++++++--------------------------------+++++++++++--------------------------------++++++++++---------------------------------++++++++--------------------------------++++++++--------------------------------+++++++--------------------------------++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++-+++++----++++++++++++++-------------------------------------------------------------------------------------------------++++-++--+++++----++--+-++++++++--------------------------------+++-++--+++++----++--+-++++++++----------------------------------------------------------------------------------------------+-++--+++++----++--+-++++++++--------------------------------------------------------------------------------------------++--+++++----++--+-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++++----++++++++++++++--------------------------------+++++----++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++----------------------------------++++++++++++++---------------------------------++++++++++++++--------------------------------++++++++++++++-------------------------------------++++++++------------------------------------++++++++--------------------------------+++++++++++--------------------------------++++++++++---------------------------------++++++++--------------------------------++++++++--------------------------------+++++++--------------------------------++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-+-+--------------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+--------------------------++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------++--++++++++++++++++++++++++++++++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------++++++--++++++++++++++++++++++++++++++---------------++++++--++++++++++++++++++++++++++++++--------------++++++--++++++++++++++++++++++++++++++-------------++++++--++++++++++++++++++++++++++++++------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------+++-++--+++++----++--+-++++++++--------------------------------+++-++--+++++----++--+-++++++++----------------------------------------------------------------------------------------------+-++--+++++----++--+-++++++++--------------------------------------------------------------------------------------------++--+++++----++--+-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++++----++++++++++++++--------------------------------+++++----++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--++++++++++++++----------------------------------++++++++++++++---------------------------------++++++++++++++--------------------------------++++++++++++++-------------------------------------++++++++------------------------------------++++++++--------------------------------+++++++++++--------------------------------++++++++++---------------------------------++++++++--------------------------------++++++++--------------------------------+++++++--------------------------------++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------+--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------+--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------+--++++++++++++++++++++++++++++++--+----------------++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------++++++--++++++++++++++++++++++++++++++++-------------++++++--+++++++++++++++++++++++++++++++-------------++++++--++++++++++++++++++++++++++++++-------------++++++--++++++++++++++++++++++++++++++------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++--+++++----++--+-++++++++----------------------------------------------------------------------------------------------+-++--+++++----++--+-++++++++--------------------------------------------------------------------------------------------++--+++++----++--+-++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++++----++++++++++++++++++----------------------------+++++----++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++++++++++++++++++------------------------------++++++++++++++++++----------------------------+++++++++++++++++++----------------------------++++++++++++++++++---------------------------------++++++++------------------------------------++++++++--------------------------------+++++++++++--------------------------------++++++++++---------------------------------++++++++--------------------------------++++++++--------------------------------+++++++--------------------------------++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++----------------------------++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-++--+++++----++----++++++++--------------------------------------------------------------------------------------------++--+++++----++--++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------+++++-+-+++++++++++++++++++----------------------------+++++-+-+++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++++++++++++++++++-----------------------------+++++++++++++++++++----------------------------+++++++++++++++++++----------------------------++++++++++++++++++---------------------------------++++++++------------------------------------++++++++--------------------------------+++++++++++--------------------------------++++++++++---------------------------------++++++++--------------------------------++++++++--------------------------------+++++++--------------------------------++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++----------------------------++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------+++--++++++++++++++++++++++++++++++--+--+-----------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-----------+++++++++++++++++++++++++++++++++++++++++++----------+++++++++++++++++++++++++++++++++++++++++-----------++++++++++++++++++++++++++++++++++++++++-----------++++++++++++++++++++++++++++++++++++++++----------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------++--+++++----++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------++++++-+-+++++++++++++++++++----------------------------+++++-+-+++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++++++++++++++++++-----------------------------+++++++++++++++++++----------------------------+++++++++++++++++++----------------------------++++++++++++++++++---------------------------------++++++++------------------------------------++++++++--------------------------------+++++++++++--------------------------------++++++++++---------------------------------++++++++--------------------------------++++++++--------------------------------+++++++--------------------------------++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++----------------------------++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------+++++--++++++++++++++++++++++++++++++--+--+-----------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-----------+++++++++++++++++++++++++++++++++++++++++++----------+++++++++++++++++++++++++++++++++++++++++-----------++++++++++++++++++++++++++++++++++++++++-----------++++++++++++++++++++++++++++++++++++++++----------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++----------------------------+++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++-----------------------------+++++++++++++++++++----------------------------+++++++++++++++++++----------------------------++++++++++++++++++---------------------------------++++++++------------------------------------++++++++--------------------------------+++++++++++--------------------------------++++++++++---------------------------------++++++++--------------------------------++++++++--------------------------------+++++++--------------------------------++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++----------------------------++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++----------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++----------+++++++++++++++++++++++++++++++++++++++++++----------++++++++++++++++++++++++++++++++++++++++++----------++++++++++++++++++++++++++++++++++++++++-----------++++++++++++++++++++++++++++++++++++++++----------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++---++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------+-++--+-----+++++++++++++++++++++++++++----------+++++++++++++++++++++++++++++++++++++++++-----------++++++++++++++++++++++++++++++++++++++++------------+++++++++++++++++++++++++++++++++++++++----------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++----+++++++++++++++++++++++++-++--+-----++++++++++++++++++++++++-++--+-----++++++++++++++++++++++++++--+-----+++++++++++++++++++++++++--------++++++++++++++++++++++++--------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-+++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++++++++++++++++++-----------------------------+++++++++++++++++++----------------------------+++++++++++++++++++----------------------------++++++++++++++++++-----------------------------------+++-----------------------------------------+++-----------------------------------++++++++-----------------------------------+-+-+++------------------------------------+-+++-----------------------------------+-+++------------------------------------+++-----------------------------------+++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++----------------------------++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++------------------------------++++++++++++++++++----------------------------+++++++++++++++++++----------------------------++++++++++++++++++-----------------------------------+++-----------------------------------------+++-----------------------------------++++++++-------------------------------------+-+++------------------------------------+-+++-----------------------------------+-+++------------------------------------+++-----------------------------------+++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++----------------------------++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++----------++++++++++++++++++++++++++++++++++++++++++----------++++++++++++++++++++++++++++++++++++++++-----------++++++++++++++++++++++++++++++++++++++++----------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++----+++++++++++++++++++++++++-++--+-----++++++++++++++++++++++++-++--+-----++++++++++++++++++++++++++--+-----+++++++++++++++++++++++++--------++++++++++++++++++++++++--------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------++++++--++++++++++++++++++++++++++++++-------------++++++--++++++++++++++++++++++++++++++------------++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++-++----------+++++++++++++++++++++++-++----------++++++++++++++++++++++-++----------++++++++++++++++++++++++----------+++++++++++++++++++++++----------++++++++++++++++++++++----------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------++++++++++++++++++++++------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------++++++--++++++++++++++++++++++++++++++----------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----++++++++++++++++++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++-++----------+++++++++++++++++++++++-++----------++++++++++++++++++++++-++----------++++++++++++++++++++++++----------+++++++++++++++++++++++----------++++++++++++++++++++++----------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------++++++++++++++++++++++------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----+--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---+----------++++++++++++++++++++++---+----------++++++++++++++++++++++--+----------++++++++++++++++++++++++----------+++++++++++++++++++++++----------++++++++++++++++++++++----------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------++++++++++++++++++++++------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++----+----------++++++++++++++++++++++---+----------++++++++++++++++++++++--+----------++++++++++++++++++++++++----------+++++++++++++++++++++++----------++++++++++++++++++++++----------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------++++++++++++++++++++++------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++--------------------------------+++++++++++++++++++----------------------------+++++++++++++++------------------------------------------------------------------------------------------------------------------------+++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++-+++------------------------++++++++++++++++++---------------------------------------------------------------------------------------------------------------------++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+--------------------------------------------------------------------------------------+++------------------------++------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++-------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++------------------------++------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++-----------------------++------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++-+++++++++++----------------++-+++++++++++-------------------------------------------------------------------------+++++++++++----------------++++++++++----------------+++++++++----------------++++++++----------------+++++++----------------++++++----------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++---------------------------------+++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++-+++++++++++----------------++-+++++++++++-------------------------------------------------------------------------+++++++++++----------------++++++++++----------------+++++++++----------------++++++++----------------+++++++----------------++++++----------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++------++++------------------++---+-+++++---------------------------------------------------------------------------+++++++++------------------++++++++------------------+-+++++-------------------+++++------------------+++++------------------++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-+++-----------------------------------+-+++------------------------------------+++-----------------------------------+++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++------++++------------------++--++++++++---------------------------------------------------------------------------+++++++++------------------++++++++------------------+++++++-------------------+++++------------------+++++------------------++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++-++------------------------------------++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++--++++++++++----------------++--++++++++++-------------------------------------------------------------------------+++++++++++----------------++++++++++----------------+++++++++----------------++++++++----------------+++++++----------------++++++----------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++---+++++++++----------------++--++++++++++-------------------------------------------------------------------------+++++++++++----------------++++++++++----------------+++++++++----------------++++++++----------------+++++++----------------++++++----------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------++++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------++-------++++++++++++-------++-------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+++++++++++++-------++++++++++++-------++++++++++++------+++++++++++++----++++++++++++----+++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------++++------++++++++++++------++++------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------+++++++++++++-------++++++++++++-------++++++++++++------+++++++++++++----++++++++++++----+++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---+----------++++++++++++++++++++++--+----------++++++++++++++++++++++++----------+++++++++++++++++++++++----------++++++++++++++++++++++----------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------++++++++++++++++++++++------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-++----------++++++++++++++++++++++++--+-----+++++++++++++++++++++++++----------++++++++++++++++++++++-----------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------+++++++++++++++++++++++----++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-----+++++++++++++++++++++++++----------++++++++++++++++++++++------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++----+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------++++++++++++++++++--------------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------++++++++++++++++++++++---+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+++++++++++-------------------------------------------------------------------------+++++++++++----------------++++++++++----------------+++++++++----------------++++++++----------------+++++++----------------++++++----------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++---------------++++++++++----------------+-+++++-------------------+++++------------------+++++------------------++++-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------+++++++++++++-------++++++++++++-------++++++++++++------+++++++++++++----++++++++++++----+++++++++++++++++++++++++++++++++++++++++-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------+++++++++++++-------++++++++++++-------++++++++++++------+++++++++++++----++++++++++++----+++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+++--------------------++--------------------------------------------------------------------------------------------------------------------------------------+-----------+-+------------+-----------+-----------------------------------------------------------------------------------------------------+++++------------------+++-------------------------------------------------------------------------------------------------------------------------------------++----------+-++-----------++----------++----------------------------------------------------------------------------+++++++----------------++++------------------------------------------------------------------------------------------------+-----------------------------------++----------+-++-----------++----------++----------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------+---------------------------------+-++++--------++++++---------++++--------++++--------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------++++++--------++++++---------++++--------++++--------------------------------------------------------------------------+-------++++++++++++-------++++++++++++------+++++++++++++----++++++++++++----+++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------+++++++++++-+--+++++++++++++++--++++++++++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++--+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-+++++++-+-++++++++-+++++++-+++++++++++++++++++++++++++++++++++----------------+++++++++++++++++++++++++++++-++++++++++++++++++++++++-----++++++----+++++++--++++++--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--+-+++++++-+-++++++++-+++++++-+++++++++++++++++++++++++++++++++++++++++---------++++--------++++---------------------------------------------------------------------------------------++----------------------------------------------------------------------------++++++++++++--------------------------------------++-----+----------------------------------------------------------++-----+---------------------+-++++++++-+++++++-++++++++++++++++++++++++++++++++++++++++++++--++++++++++++++++++++++++++++++++++----+++++++++++++++++-+++++++++++++++++++++++++++-++++++++++++++--------------------------+---------++++-+++++------+++-