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