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