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