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

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

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

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

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

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

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

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

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

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

·¢±íÓÚ 2009-1-25 19:57 | ÏÔʾȫ²¿Â¥²ã
ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2007-2-8

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

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

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

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

·¢±íÓÚ 2009-1-25 19:57 | ÏÔʾȫ²¿Â¥²ã
18651
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2007-10-7

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

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

´óÅ̲»ÊÇÎÒ¼Ò¿ªµÄ·É·ÉÀËÍõ²¨ÀËÑо¿¼ÒÔ°×·²¨ÖðÀË

·¢±íÓÚ 2009-1-25 19:57 | ÏÔʾȫ²¿Â¥²ã
ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2005-9-13

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

·¢±íÓÚ 2009-1-25 19:57 | ÏÔʾȫ²¿Â¥²ã
ÎÒÔÚµÈ2009Ò³:*29*:
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2006-10-24

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

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

·¢±íÓÚ 2009-1-25 19:58 | ÏÔʾȫ²¿Â¥²ã
°ïןÇÂ¥
È罨Æß¼¶¸¡ÍÀ
¹¦µÂÎÞÁ¿
ÉÆÔÕ ÉÆÔÕ
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2008-12-31

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

·¢±íÓÚ 2009-1-25 19:58 | ÏÔʾȫ²¿Â¥²ã
Ìáʾ: ×÷Õß±»½ûÖ¹»òɾ³ý ÄÚÈÝ×Ô¶¯ÆÁ±Î
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2008-7-18

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

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

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

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

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

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

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

÷»¨Ð¡º¢½ðÈÚÒ×ѧ¼ÒÔ°¹ÉÊÐ×½Ñý¼Ç

·¢±íÓÚ 2009-1-25 19:58 | ÏÔʾȫ²¿Â¥²ã
×£´ó¼ÒÅ£Äê´ó¼ª£¡£¡£¡
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2002-4-29

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

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

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

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

·¢±íÓÚ 2009-1-25 19:58 | ÏÔʾȫ²¿Â¥²ã
°ïןÇÂ¥
È罨Æß¼¶¸¡ÍÀ
¹¦µÂÎÞÁ¿
ÉÆÔÕ ÉÆÔÕ
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2008-12-31

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

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

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

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

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

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

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

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

´óÅ̲»ÊÇÎÒ¼Ò¿ªµÄ·É·ÉÀËÍõ²¨ÀËÑо¿¼ÒÔ°×·²¨ÖðÀË

·¢±íÓÚ 2009-1-25 19:59 | ÏÔʾȫ²¿Â¥²ã
ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ
½ð±Ò:
½±Àø:
ÈÈÐÄ:
×¢²áʱ¼ä:
2005-9-13

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

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

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

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

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

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

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

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

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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