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