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