●
×
×
●
●
×
●
×
×
×
●
×
●
●
●
●
●
×
●
●
×
×
×
●
×
●
×
×
×
×
●
×
●
×
×
●
●
×
●
●
●
●
×
×
●
●
×
●
×
●
●
●
×
●
●
×
×
×
×
×
●
×
×
×
●
●
●
●
●
×
×
●
●
×
×
×
×
●
●
×
×
●
●
×
●
●
×
×
×
●
×
●
×
●
×
×
●
×
×
×
●
●
●
●
●
●
●
×
●
×
●
×
×
×
×
●
×
●
×
●
×
●
×
●
×
●
×
●
●
×
●
●
×
×
●
●
×
×
×
×
×
×
●
●
×
×
×
×
×
●
●
●
×
●
●
●
×
●
●
●
×
●
●
●
×
●
×
×
●
×
●
●
●
×
×
×
●
×
●
●
●
×
×
×
●
●
●
×
×
●
●
×
×
×
●
●
×
●
×
×
●
●
●
●
×
●
×
×
●
●
×
●
×
●
●
×
●
●
●
×
×
×
×
●
×
●
×
×
●
●
●
×
●
●
●
×
×
●
●
●
×
●
×
×
●
×
●
×
×
●
●
×
×
●
●
●
●
●
●
×
×
●
●
●
×
×
●
×
×
×
●
×
×
×
●
●
●
×
●
●
×
×
×
×
×
×
●
×
×
×
●
×
●
×
●
×
●
●
●
●
×
●
×
×
×
×
×
×
●
×
×
×
●
×
×
●
●
●
×
×
●
●
×
●
×
●
×
×
●
×
●
×
●
×
●
●
●
×
×
×
●
×
×
●
×
×
●
×
×
●
●
×
●
●
×
×
×
×
×
×
×
×
●
×
×
●
●
●
●
●
×
×
●
●
●
×
×
×
●
×
×
×
×
●
●
●
●
●
×
●
×
●
●
×
●
×
●
●
×
●
●
×
●
×
●
●
●
●
●
●
●
×
×
×
●
×
●
×
●
×
●
●
×
●
●
×
×
×
×
●
●
●
×
●
×
×
●
●
●
×
×
×
●
×
×
×
●
●
×
●
●
×
×
×
●
×
●
●
●
×
×
×
●
×
●
●
×
●
×
●
×
●
×
●
●
●
×
×
●
●
×
●
●
×
●
×
×
×
×
×
●
×
●
●
×
×
×
×
●
×
×
●
●
×
●
×
×
●
●
●
×
×
×
×
×
●
×
●
×
●
●
×
×
×
●
●
×
×
×
×
×
×
×
●
×
●
×
×
×
●
×
●
×
●
●
●
●
×
×
×
×
×
×
●
●
×
●
×
×
×
●
●
●
●
×
×
●
×
●
×
×
●
●
×
●
●
●
●
●
×
●
×
●
●
×
●
●
×
●
●
×
●
×
×
×
●
×
●
×
●
●
●
●
×
●
●
●
×
×
×
●
×
●
●
●
●
●
×
●
×
●
×
×
×
●
×
●
×
×
●
×
×
×
●
●
×
●
×
●
●
×
●
×
×
●
●
●
●
×
●
●
●
●
●
●
●
×
●
●
×
×
×
●
●
×
×
●
●
●
×
●
×
×
×
●
×
●
●
●
×
×
×
●
●
●
●
×
●
×
●
×
×
×
●
●
●
×
●
×
×
×
×
×
●
●
●
●
×
●
●
×
×
●
×
●
●
×
×
×
×
●
×
×
●
●
×
●
●
●
●
×
●
×
●
×
●
×
●
×
●
×
×
●
●
×
×
×
●
●
×
●
●
×
●
●
×
×
×
×
×
×
●
×
●
●
×
×
●
×
×
×
×
×
●
×
●
●
●
●
×
●
●
●
●
●
×
●
●
●
×
●
●
●
×
×
●
×
●
●
●
●
●
●
●
●
●
×
×
×
●
●
×
×
●
×
●
×
×
×
●
×
×
●
×
×
●
×
●
●
×
×
●
●
●
●
●
●
●
●
●
●
×
×
●
×
×
●
●
×
×
×
×
×
×
●
×
×
●
×
×
●
●
×
×
●
●
×
●
●
×
×
×
×
●
×
×
●
●
●
×
●
×
×
×
●
●
×
×
×
×
●
●
×
×
×
×
●
●
×
●
●
×
×
●
●
×
×
●
●
×
×
×
●
●
×
×
●
●
×
×
●
●
●
●
×
×
●
×
×
●
●
×
●
●
×
●
●
×
×
×
●
●
●
●
×
●
×
●
●
×
●
×
×
●
●
×
●
×
●
×
×
●
×
●
●
●
×
×
×
●
●
●
×
●
×
●
×
×
●
●
×
×
●
●
●
×
×
●
●
●
×
●
●
×
×
×
×
●
●
×
×
●
×
●
●
×
×
●
×
×
×
×
×
×
●
×
×
×
●
×
●
×
●
●
×
×
●
●
×
●
●
×
●
●
×
●
×
×
●
×
●
×
×
●
×
●
●
●
●
×
×
●
●
●
●
×
●
●
×
●
●
×
●
×
×
●
●
×
●
●
×
×
●
×
×
●
●
×
×
●
●
×
●
×
●
×
×
×
×
×
●
×
●
●
×
●
×
×
×
●
●
●
●
×
●
×
●
×
×
●
●
●
×
●
×
●
●
×
×
●
●
×
●
×
●
●
×
×
●
●
●
●
●
●
×
×
×
×
●
●
×
●
×
●
×
×
×
×
×
●
●
×
×
●
●
●
×
●
×
×
●
×
●
×
×
×
●
×
×
●
×
●
×
●
●
●
●
●
×
●
●
×
●
●
●
×
●
●
●
×
×
×
×
×
●
×
●
×
×
●
×
●
×
●
×
×
×
●
●
×
●
×
●
×
×
●
×
●
●
×
●
×
●
●
●
×
×
●
●
●
×
×
●
×
●
●
●
×
●
●
●
×
●
●
●
×
×
●
×
●
×
●
●
×
●
●
●
×
●
●
×
●
×
×
×
●
×
●
×
●
●
×
×
×
×
×
×
●
●
●
●
●
●
●
●
●
●
●
×
●
●
●
×
×
●
×
●
×
●
×
×
●
×
×
●
●
●
●
×
●
×
×
●
×
×
×
●
●
×
●
●
●
●
×
●
●
×
●
●
×
●
×
●
●
●
×
×
●
●
×
×
×
×
●
●
●
×
×
×
●
×
×
●
●
●
●
●
●
×
●
●
●
×
×
×
●
×
×
×
×
●
●
●
●
●
●
●
●
●
×
●
×
●
●
●
×
●
●
●
×
●
●
●
×
●
●
●
×
●
●
×
●
●
●
×
●
●
●
●
●
●
×
●
●
●
●
●
●
●
×
●
×
●
×
●
×
×
●
×
×
●
●
×
×
●
×
●
●
●
×
●
●
●
●
×
●
●
●
×
●
×
●
×
×
×
●
×
●
×
×
●
●
×
×
×
×
●
×
●
●
×
×
×
×
×
●
×
×
●
×
●
●
●
×
●
●
×
×
×
×
×
●
●
×
●
●
×
●
●
×
●
●
×
×
●
●
×
●
×
×
×
×
●
×
●
×
●
●
●
●
●
×
×
●
●
●
●
×
×
×
×
×
●
●
●
×
×
●
×
×
×
●
●
●
●
×
●
●
●
×
●
×
●
●
×
×
×
×
×
●
×
●
×
×
×
×
●
●
×
●
●
●
●
●
●
●
●
●
×
●
×
●
●
×
×
●
×
●
●
●
×
●
×
●
×
●
×
●
×
●
●
●
×
×
●
●
×
×
●
×
●
×
●
●
×
●
●
●
×
●
×
×
●
●
●
●
●
×
×
×
×
●
●
●
●
×
×
●
●
×
●
●
●
●
×
●
●
●
●
×
●
×
×
●
×
×
●
●
×
×
●
×
●
×
●
●
●
●
●
×
●
●
×
×
×
×
●
×
●
×
×
●
×
×
×
●
×
●
×
×
×
×
×
●
●
×
×
●
●
●
×
●
×
●
×
●
●
●
●
×
×
×
×
×
×
×
●
×
×
●
●
●
●
×
●
×
●
●
●
×
●
×
●
×
×
●
●
●
●
×
×
●
×
●
●
×
×
×
×
●
●
●
×
×
●
●
●
×
●
×
×
●
●
×
●
×
●
●
●
×
●
×
●
●
●
●
×
×
×
×
●
×
●
●
●
●
×
●
×
×
●
×
×
●
×
●
●
●
×
×
×
●
×
×
●
●
●
●
●
●
×
×
●
×
●
×
×
●
●
×
×
×
×
×
●
●
×
●
●
×
×
×
×