ËÑË÷
Â¥Ö÷: ÖØÑô

[ÌÖÂÛ] MACDÂÛ̳¡¼ÊµÕ½¿´Å̽»Á÷¡½½ðÅ£Äê´º½ÚÇÀÂ¥¿ñ»¶Ìû¡££¨µÚÒ»¸ßÂ¥117888¥֮ǰÒѼӷ֣©¹Ø±Õ

 ¹Ø±Õ [¸´ÖÆÁ´½Ó]

·¢±íÓÚ 2009-1-25 20:00 | ÏÔʾȫ²¿Â¥²ã
:*P :*P :*P
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2006-2-23

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

·¢±íÓÚ 2009-1-25 20:00 | ÏÔʾȫ²¿Â¥²ã
Å£ÄêÎÒµÄÕË»§ÄÜ×öµ½10ÍòÔª¾ÍÖª×ãÁË£¬ÏÖÔÚ²ÅÒ»Íò£¬ÎûÎû
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2005-12-30

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

·¢±íÓÚ 2009-1-25 20:00 | ÏÔʾȫ²¿Â¥²ã
ÎÒÐÕÕÔ,ÎÒ½ÐÕÔ¹«Ã÷,´ó¼ÒºÃѽ
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2007-4-7

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

Ç©µ½ÌìÊý: 282 Ìì

·¢±íÓÚ 2009-1-25 20:00 | ÏÔʾȫ²¿Â¥²ã
ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ
ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ
ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ
ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ
ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2007-2-8

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

·¢±íÓÚ 2009-1-25 20:01 | ÏÔʾȫ²¿Â¥²ã
×£MACDµÄÅóÓÑÃÇÅ£Äê·¢²Æ!
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2003-12-21

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

·¢±íÓÚ 2009-1-25 20:01 | ÏÔʾȫ²¿Â¥²ã
ÖÁÉÙ100000Ö»¹ÉƱ½«ÔÚ6¸öÔÂÄÚ·­±¶:*22*: :*22*: :*22*:
´ó¼Òˬ
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2008-7-27

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

·¢±íÓÚ 2009-1-25 20:01 | ÏÔʾȫ²¿Â¥²ã
:*P :*P :*P
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2006-2-23

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

·¢±íÓÚ 2009-1-25 20:01 | ÏÔʾȫ²¿Â¥²ã
ÎÒÐÕÕÔ,ÎÒ½ÐÕÔ¹«Ã÷,´ó¼ÒºÃѽ
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2007-4-7

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

Ç©µ½ÌìÊý: 2 Ìì

·¢±íÓÚ 2009-1-25 20:01 | ÏÔʾȫ²¿Â¥²ã
×£MACDµÄÅóÓÑÃÇÅ£Äê·¢²Æ!
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2007-3-5

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

Ç©µ½ÌìÊý: 4896 Ìì

´óÅ̲»ÊÇÎÒ¼Ò¿ªµÄ·É·ÉÀËÍõ²¨ÀËÑо¿¼ÒÔ°×·²¨ÖðÀËÐÐÔÆÁ÷Ë®»°Í¶×ʹÉÊÐ×½Ñý¼Ç

·¢±íÓÚ 2009-1-25 20:01 | ÏÔʾȫ²¿Â¥²ã
ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2005-9-13

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

·¢±íÓÚ 2009-1-25 20:01 | ÏÔʾȫ²¿Â¥²ã
ÖÁÉÙ100000000000000Ö»¹ÉƱ½«ÔÚ1¸öÔÂÄÚ·­±¶:*22*: :*22*: :*22*: :*22*:
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2008-7-27

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

·¢±íÓÚ 2009-1-25 20:01 | ÏÔʾȫ²¿Â¥²ã
:*P :*P :*P
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2006-2-23

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

Ç©µ½ÌìÊý: 2 Ìì

·¢±íÓÚ 2009-1-25 20:02 | ÏÔʾȫ²¿Â¥²ã
×£MACDµÄÅóÓÑÃÇÅ£Äê·¢²Æ!
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2007-3-5

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

Ç©µ½ÌìÊý: 3140 Ìì

·¢±íÓÚ 2009-1-25 20:02 | ÏÔʾȫ²¿Â¥²ã
½ð±Ò»Ô»Í:*29*:
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2007-10-25

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

·¢±íÓÚ 2009-1-25 20:02 | ÏÔʾȫ²¿Â¥²ã
:*P :*P :*P
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2006-2-23

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

Ç©µ½ÌìÊý: 2 Ìì

·¢±íÓÚ 2009-1-25 20:02 | ÏÔʾȫ²¿Â¥²ã
×£MACDµÄÅóÓÑÃÇÅ£Äê·¢²Æ!
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2007-3-5

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

·¢±íÓÚ 2009-1-25 20:02 | ÏÔʾȫ²¿Â¥²ã
:*22*: :*22*:
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2007-6-22

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

·¢±íÓÚ 2009-1-25 20:02 | ÏÔʾȫ²¿Â¥²ã
×£MACDµÄÅóÓÑÃÇÅ£Äê·¢²Æ!
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2003-12-21

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

·¢±íÓÚ 2009-1-25 20:03 | ÏÔʾȫ²¿Â¥²ã
:*P :*P :*P
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2006-2-23

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

·¢±íÓÚ 2009-1-25 20:03 | ÏÔʾȫ²¿Â¥²ã
×£MACDµÄÅóÓÑÃÇÅ£Äê·¢²Æ!
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2003-12-21

»Ø¸´ ʹÓõÀ¾ß ¾Ù±¨

ÄúÐèÒªµÇ¼ºó²Å¿ÉÒÔ»ØÌû µÇ¼ | Á¢¼´×¢²á

±¾°æ»ý·Ö¹æÔò

±¾Õ¾ÉùÃ÷£ºMACD½öÌṩ½»Á÷ƽ̨£¬Çë½»Á÷ÈËÔ±×ñÊØ·¨ÂÉ·¨¹æ¡£
Öµ°àµç»°£º18209240771 ¡¡ ΢ÐÅ£º35550268

QQ|¾Ù±¨|Òâ¼û·´À¡|ÊÖ»ú°æ|MACDÂÛ̳

GMT+8, 2026-4-2 04:02 , Processed in 0.142296 second(s), 8 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí