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