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