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