JezK
Edit File: autorules.e52b1f59e73fd739ac1bb1dbb51932c3f2e0b7aed5ac9d13e297dad6c900abc8.srule
�^ K� � � K � w � � � � � � � � � j � C uuuuL|EL������O�b��b��1�s��s��H��H��H��@��@��@��@��@���ӠӠ������Z��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��X��_�/�/�/�/�/�/�/�/զ�i��i��i��i��i4 ����Ȝ�t��t��t��t��t-�/�/�ӸѸѸѸѸѸѸѸѸѸ�B�K��K��J��J��J��K��K��K��X��X��X��ĹW��s��h��eݿbĶ'��,��?��>�?��=��&��2�� ��+��'��>��<��>��>��>��.�*�*�خpסخnɡaƮnɡaƮnɡaƮnɡaƮnɡaƮnɡaƮnɿưpɿưpɿưpɿưpɿưpɿưpɿưpɿӥpܪӥpܿjӰeܿjӰeܿjӰeܿjӰeܿjӰeܿjӰeܿjӰeܿjӰeܿjӰeܿjӰeܿjӰeܿjӰeܿjӰpɿưpɿӥpܪӥpܪӥpܪӥpܪӥpܪӥpܪӥpܪӥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaˣnĬaˣnĪg˥hĪg˥hĪg˥hĪg˥nªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaͥnªaˣnĬaˣhªaͥnªaͥnªaͥnªaͥnªaˣh¬gͣh¬gͣh¬gͣh¬gͣh¬gͣh¬gͣh¬gͣh¬gͣh¬gͣh¬gͣh¬gͣ}rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¿tͰ{¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹rͶ}¹��|��|��|��)��)��)��)��)��)��)��)��)��)��)��9�9�9�l�>�>�>�)��)��)��)��9��9��9��l|G�E�E��� � ��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O