Pollen-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
April 2012
- 5 participants
- 111 discussions
24 Apr '12
Author: fdesbois
Date: 2012-04-24 10:00:16 +0200 (Tue, 24 Apr 2012)
New Revision: 3303
Url: http://chorem.org/repositories/revision/pollen/3303
Log:
images are binary files
Modified:
trunk/src/site/fr/resources/home.png
trunk/src/site/fr/resources/logo.jpg
trunk/src/site/resources/home.png
trunk/src/site/resources/logo.jpg
Property changes on: trunk/src/site/fr/resources/home.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Property changes on: trunk/src/site/fr/resources/logo.jpg
___________________________________________________________________
Added: svn:mime-type
+ image/png
Property changes on: trunk/src/site/resources/home.png
___________________________________________________________________
Added: svn:mime-type
+ image/png
Property changes on: trunk/src/site/resources/logo.jpg
___________________________________________________________________
Added: svn:mime-type
+ image/png
1
0
24 Apr '12
Author: fdesbois
Date: 2012-04-24 09:50:17 +0200 (Tue, 24 Apr 2012)
New Revision: 3302
Url: http://chorem.org/repositories/revision/pollen/3302
Log:
remove empty dirs
Removed:
trunk/src/site/fr/resources/schemas/
trunk/src/site/fr/resources/tutoriel/
trunk/src/site/resources/schemas/
trunk/src/site/resources/tutoriel/
1
0
r3301 - in trunk/src/site: . fr/resources fr/resources/schemas fr/resources/schemas/business fr/resources/schemas/ui fr/resources/schemas/votecounting fr/resources/tutoriel fr/rst resources resources/schemas resources/schemas/business resources/schemas/ui resources/schemas/votecounting resources/tutoriel rst
by fdesbois@users.chorem.org 24 Apr '12
by fdesbois@users.chorem.org 24 Apr '12
24 Apr '12
Author: fdesbois
Date: 2012-04-24 09:45:57 +0200 (Tue, 24 Apr 2012)
New Revision: 3301
Url: http://chorem.org/repositories/revision/pollen/3301
Log:
clean documentation
Added:
trunk/src/site/fr/resources/home.png
trunk/src/site/fr/resources/logo.jpg
trunk/src/site/resources/home.png
trunk/src/site/resources/logo.jpg
Removed:
trunk/src/site/fr/resources/pollen.png
trunk/src/site/fr/resources/schemas/CreerSondage.jpg
trunk/src/site/fr/resources/schemas/CreerSondage2.jpg
trunk/src/site/fr/resources/schemas/DC_Pollen.png
trunk/src/site/fr/resources/schemas/DC_PreventRules.png
trunk/src/site/fr/resources/schemas/DET_PollState.png
trunk/src/site/fr/resources/schemas/Depouiller.jpg
trunk/src/site/fr/resources/schemas/Depouiller_1a.jpg
trunk/src/site/fr/resources/schemas/UC_Gestiondesvotes.png
trunk/src/site/fr/resources/schemas/Voter.jpg
trunk/src/site/fr/resources/schemas/business/DC_BusinessDTOs.png
trunk/src/site/fr/resources/schemas/business/DC_DBUtil.png
trunk/src/site/fr/resources/schemas/business/DC_ServicePoll.png
trunk/src/site/fr/resources/schemas/business/DC_ServiceResults.png
trunk/src/site/fr/resources/schemas/business/DC_ServiceUser.png
trunk/src/site/fr/resources/schemas/business/DC_ServiceVote.png
trunk/src/site/fr/resources/schemas/business/DS_Conception_CreerSondage.jpg
trunk/src/site/fr/resources/schemas/composants.png
trunk/src/site/fr/resources/schemas/packages.png
trunk/src/site/fr/resources/schemas/pollen_logo.jpg
trunk/src/site/fr/resources/schemas/schema-architecture.png
trunk/src/site/fr/resources/schemas/ui/DC_UIOs.png
trunk/src/site/fr/resources/schemas/ui/chart.png
trunk/src/site/fr/resources/schemas/ui/dateTimeField.png
trunk/src/site/fr/resources/schemas/ui/feedBack.png
trunk/src/site/fr/resources/schemas/ui/topCount.png
trunk/src/site/fr/resources/schemas/ui/topCreation.png
trunk/src/site/fr/resources/schemas/ui/topIndex.png
trunk/src/site/fr/resources/schemas/ui/topVote.png
trunk/src/site/fr/resources/schemas/votecounting/DC_ServiceExport.png
trunk/src/site/fr/resources/schemas/votecounting/DC_ServiceExportImpl.png
trunk/src/site/fr/resources/schemas/votecounting/DC_ServiceExportXML.png
trunk/src/site/fr/resources/schemas/votecounting/DC_ServiceVoteCounting.png
trunk/src/site/fr/resources/schemas/votecounting/DC_ServiceVoteCountingImpl.png
trunk/src/site/fr/resources/schemas/votecounting/DC_VoteCountingDTOs.png
trunk/src/site/fr/resources/schemas/votecounting/Seq-executeVoteCounting.png
trunk/src/site/fr/resources/tutoriel/Capture-1.png
trunk/src/site/fr/resources/tutoriel/Capture-2.png
trunk/src/site/fr/resources/tutoriel/Capture-3.png
trunk/src/site/fr/resources/tutoriel/Capture-4.png
trunk/src/site/fr/resources/tutoriel/Capture-5.png
trunk/src/site/fr/resources/tutoriel/Capture-6.png
trunk/src/site/fr/resources/tutoriel/Capture.png
trunk/src/site/fr/resources/tutoriel/Creation-links.png
trunk/src/site/fr/resources/tutoriel/Creation-step1.png
trunk/src/site/fr/resources/tutoriel/Creation-step2.png
trunk/src/site/fr/resources/tutoriel/Creation-step3.png
trunk/src/site/fr/resources/tutoriel/Creation-step4.png
trunk/src/site/fr/resources/tutoriel/Results.png
trunk/src/site/fr/resources/tutoriel/Vote.png
trunk/src/site/fr/rst/analyse.rst
trunk/src/site/fr/rst/architecture.rst
trunk/src/site/fr/rst/assentiment.rst
trunk/src/site/fr/rst/business.rst
trunk/src/site/fr/rst/condorcet.rst
trunk/src/site/fr/rst/developer.rst
trunk/src/site/fr/rst/historique.rst
trunk/src/site/fr/rst/nombre.rst
trunk/src/site/fr/rst/pourcentage.rst
trunk/src/site/fr/rst/tutoriel.rst
trunk/src/site/fr/rst/ui.rst
trunk/src/site/fr/rst/user.rst
trunk/src/site/fr/rst/votecounting.rst
trunk/src/site/resources/pollen.png
trunk/src/site/resources/schemas/CreerSondage.jpg
trunk/src/site/resources/schemas/CreerSondage2.jpg
trunk/src/site/resources/schemas/DC_Pollen.png
trunk/src/site/resources/schemas/DC_PreventRules.png
trunk/src/site/resources/schemas/DET_PollState.png
trunk/src/site/resources/schemas/Depouiller.jpg
trunk/src/site/resources/schemas/Depouiller_1a.jpg
trunk/src/site/resources/schemas/UC_Gestiondesvotes.png
trunk/src/site/resources/schemas/Voter.jpg
trunk/src/site/resources/schemas/business/DC_BusinessDTOs.png
trunk/src/site/resources/schemas/business/DC_DBUtil.png
trunk/src/site/resources/schemas/business/DC_ServicePoll.png
trunk/src/site/resources/schemas/business/DC_ServiceResults.png
trunk/src/site/resources/schemas/business/DC_ServiceUser.png
trunk/src/site/resources/schemas/business/DC_ServiceVote.png
trunk/src/site/resources/schemas/business/DS_Conception_CreerSondage.jpg
trunk/src/site/resources/schemas/composants.png
trunk/src/site/resources/schemas/packages.png
trunk/src/site/resources/schemas/pollen_logo.jpg
trunk/src/site/resources/schemas/schema-architecture.png
trunk/src/site/resources/schemas/ui/DC_UIOs.png
trunk/src/site/resources/schemas/ui/chart.png
trunk/src/site/resources/schemas/ui/dateTimeField.png
trunk/src/site/resources/schemas/ui/feedBack.png
trunk/src/site/resources/schemas/ui/topCount.png
trunk/src/site/resources/schemas/ui/topCreation.png
trunk/src/site/resources/schemas/ui/topIndex.png
trunk/src/site/resources/schemas/ui/topVote.png
trunk/src/site/resources/schemas/votecounting/DC_ServiceExport.png
trunk/src/site/resources/schemas/votecounting/DC_ServiceExportImpl.png
trunk/src/site/resources/schemas/votecounting/DC_ServiceExportXML.png
trunk/src/site/resources/schemas/votecounting/DC_ServiceVoteCounting.png
trunk/src/site/resources/schemas/votecounting/DC_ServiceVoteCountingImpl.png
trunk/src/site/resources/schemas/votecounting/DC_VoteCountingDTOs.png
trunk/src/site/resources/schemas/votecounting/Seq-executeVoteCounting.png
trunk/src/site/resources/tutoriel/Capture-1.png
trunk/src/site/resources/tutoriel/Capture-2.png
trunk/src/site/resources/tutoriel/Capture-3.png
trunk/src/site/resources/tutoriel/Capture-4.png
trunk/src/site/resources/tutoriel/Capture-5.png
trunk/src/site/resources/tutoriel/Capture-6.png
trunk/src/site/resources/tutoriel/Capture.png
trunk/src/site/resources/tutoriel/Creation-links.png
trunk/src/site/resources/tutoriel/Creation-step1.png
trunk/src/site/resources/tutoriel/Creation-step2.png
trunk/src/site/resources/tutoriel/Creation-step3.png
trunk/src/site/resources/tutoriel/Creation-step4.png
trunk/src/site/resources/tutoriel/Results.png
trunk/src/site/resources/tutoriel/Vote.png
trunk/src/site/rst/analyse.rst
trunk/src/site/rst/approval.rst
trunk/src/site/rst/architecture.rst
trunk/src/site/rst/business.rst
trunk/src/site/rst/condorcet.rst
trunk/src/site/rst/developer.rst
trunk/src/site/rst/historical.rst
trunk/src/site/rst/number.rst
trunk/src/site/rst/percentage.rst
trunk/src/site/rst/tutoriel.rst
trunk/src/site/rst/ui.rst
trunk/src/site/rst/user.rst
trunk/src/site/rst/votecounting.rst
Modified:
trunk/src/site/fr/rst/depouillement.rst
trunk/src/site/fr/rst/index.rst
trunk/src/site/rst/index.rst
trunk/src/site/rst/methods.rst
trunk/src/site/site_en.xml
trunk/src/site/site_fr.xml
Added: trunk/src/site/fr/resources/home.png
===================================================================
--- trunk/src/site/fr/resources/home.png (rev 0)
+++ trunk/src/site/fr/resources/home.png 2012-04-24 07:45:57 UTC (rev 3301)
@@ -0,0 +1,438 @@
+�PNG
+
+
+IHDR�<cKsRGB���bKGD������� pHYs��tIME��� IDATx���w|���ߙ�����!4)"
+���Z�#{��^�z/��
+����Ć]A��"��$Ho[�<���@6��������f�̜ggfϳ��Qf0DDDDD�
+������Y1+ """""fDDDDDĬ�������Q�`����Z���*,5���e�>h�֢E[""biіh-�SB�
+gyє�G2h���V��Y���gG[��v�-���|J��Îҥ��4�V�mĦ���a��|�`���,K[w_�{�#ωe����O/�QV^١[��+>�<|�C�gV@DDD�&�F�uur{%4��v�����*�ފJ�?/�cĚ�yC���%55ʾ}��h�E������j�G��=w?Poi�1��n�wʵn�^���KT�N��[:ş>���g
+���˘�ij��iЮrQ+�yG�ǧg~����.��m�t�n����-�v��R�Z���~����2w9��yq�/wt�x���}��v���>��34���.�c�f;�n��H=��I����e����5���\�/%��1d��M��JԻf�JT1�|[��^p[���M���R}�l�յ��*��s�U5=&�t�֚�
+��z# JʼE�ޢROYYYYYYiiiIIIyyyii������fem�>�/��m���2L��n�-KG��5'ǭ��F��A)l�#�:7���]uǃo�����0+ """j+**����=oi^Q��],�q���a8�
+W{������L�V�{W��D�swz�;f_�큑w-)�m~��K���g^ve���W�3�����^��\�3:�ʗ�缻��|�[Q���{��/o�V���>�g�s�6�^e��w6v��yú�Խ��T&`Q��|��g7y�ö́^�F��m�~�Ų���g�a"����ZkO�v���-���9���g���zp�=�%��0q��^{��xw�ŕn7�"""����tJ�JK���$��؛e:p�� S�����%$Fgv�RT�bd\6y��zE���#��,�}m�����gN��_�g����n��bc�ޭ_~^1���CK�M�����GF��ġ��;`o�������=鲌�#���*ඊ��r���3o�kԽ�՛����tW "���}��^5������l�^>����,m��gY"bD�{(�v��S�+=���Q�]��}v��o>"�L� U{�FE9<�����?�w�73.nЁ�yDDDD�9+����d���}~�}ĩ�ņ(��E�w?۞���>���v�_r��gϖ/?���� !�'^b�R��|����~l���=��]��K�m,O�1�����߽2Ǎ�f�G�ܶ��/�~ェ-�}5�W�s����ݏ���U�Vk�ޫ���2��W/=�Ο6���>��I7��0rʻ���3��o��#A�x|Z�ei�֖OL��Zk�a@k���n�x=��Q>_0}�?4��~�u�^x<�����w���h�W{<�,G���~,=z�"fDDDDm#+(�P
+>�7ĩ۷��zQމ��¼e��;�:LK��p:�jӐ�i�n�u���\����������ɩ#��9{^����:;�s����ț�E���Q$ ��������%{ܾ�/o�}�5���;l�ޤ@�zU�m9�> T� J�����(�^y�;������{<q��3�J_3��#N;��F}k<>���ki��}>-�X�%"�q[�x�Fp}��/���~q:T��Υ���Z "�vw���#�����Z1w�%�����/IO���-�s�ū���,��1��a�Ӣ
+
+J��'��Lt���1�ּ��⮣"�/R�~��o�z\���#�g�
+��G����S0c�Ǩ�=e�ɾ��]�q�|W�����+�Z���n+`Q���A��O�yԤ�Sn<�}��~�?��1o�oeM��Tz|��>�����ki����,��Z[�ey<�qk�[����\s���__1�گV�.D��UW��
+�O!�쿝���/�g�~�U�� �"""�����giٵ��}�����0��L�8��v�l�15"�!�!�S�
+
+�+*��`����{��;��7��ӑ�
+�.Y���3/��y�5��">X��wWt94�����Q;�n��(\�s~�>��^�&��G����ǧ��ڝ��e�#K~�����
+Tԑ�`wu��n���$���n�Z"I�ܖ#ԡ�歱S�����@�)��ۭ�^�����W`r�k�˧v�5��ׯ���� �:�Ĺ����_ЧGh_���YQ+�*t{|�e��&qQ��h_R�/5�J��R��8�H���;��_&�(s�9jZߩ_O<=�j���
+��ϘQ}��-�l�'��+�6$y��% ��-���4:���^��������V��e����*��������,�����q�-���*жuYWW����@EuS럿�s���o����5�q�e}�u�sf��\�)�x|>fF���a{�!�iKN5����t���+�lt�Q�t�|��N}���HK�G��""����Y������/��c�4ho9���������]y��
+1BL�i&�T�=��J�״*�����)�������I�W=�2n���M��[o�ꈨ�Dw:��{��=��L{=��?~��O�k�3c�����1P;�b����|U�m�68@Q�K�`�=R�NΛ�4滟���!{7h�\O~����\��p�7���#��|ҩ �wջ���u?�#�Qs[�o��ͳK�����'D֝��y���JOy���ғ���x�����x<���}���q0rv�y�k>�v����{}>�;�����;u��υ���lAbF�=�Xwϋ���$%"<�����ڢ�_��}n�[k^>.��hY�l���#�������:fDDDDDmG�u0�X1jDDDDD-^���"""""���+��Y�����;L32*��$"""bV@D�Dk4���@)���cɒ��d+V�Ϝ����k�o��}��Ez�ti~ݵ>��Sf�7�ɳ��蚑Y���G���lozA~����ߜZ�z��`Wn������u�����㟙#.\߾}^�x���/���6�
+��a�ۆ4�,�z6cY!3f$�z�;��(2��e�.e��
+c�B�Z5G��[�����w�wsuA���V0D5�[����(.)�o��[os4���+O8a�Ñs��\N��6�_�4MX����3|x|R����WVF���G4n�r�f�7���Q�+u�Ph�l0�#�C~�����u���?ݳ��xb�����"�c����l��|��ζmÞ����E�M��gr�Ӌ����?R�~��6��1S������up�xxO�:�x�&C��fo�^EF�-X�ӣG�)��}��d�kDDDT�4+�>�)��RFp���=;k�W��T�,XA쒉HW߾��ڳ����'�9�X�M�P��
+[�dY���<����GF��#"""f���!�}d�~����s������f����m���V����������~�����#""�-pȉ'�����h��
+�#�uw�1�-1hߡ�_���;2:�/7D%��p������fud�5S�iv �i#/�2��Z�a]���l��0�v4U��g�͝��z���N砿�||�Uw��ꡊܲ����o�[�ő���v����È�VpXy����x�쪄����ӓ0 ����}1�>|1oPOԸ�<��Dz�`�I��m�:'$�y��E���w9�ݎA��"ִ�m�υ6� p^��o=6������$�����L Wî�����-�O�z�������_|�!��b�,\y-����M9w���o�Yq�������v�ˆǃ��N����C�V�W��]�^���d&�N���!�5^�Z ��#ɬ���:К�OK��j;
+����1ltcG��������}�3:���cƫ�ti��yo��+�����p�_�7�0�>�|���5��ļ�s�X��;�|<�s��.'z��E����|��;����"���o�`����/�ґ��
+�g�t�'��rc�Fs>�E@X��K&#F@��8���Ѿ.������+O>�S�{{q�V��_F������ ��X��ú!)�����zG�!�;ξ���AnL���HIFjO<�����G�Z��O���R�s�/��I��� ��]T��<<w6�ތyW��
+(�v5�Y�W���hDG#TA��Z�>�5<�GN����i�K�|I |�m��l�A~[�BW�^����E�8<�O�K��_��[[LZEx��q�;���|4%5���y'2�����F��K���d�����g���E���E���),��l���Q���?��뮂=���}rJrԟ3�e�C����γ�j�����&c��蔁;N��+���/A�3(��7c1�<�/�`@V.�:�۱yV���7a�yT�c�Yxo$�z߬@�g����l\q!�����8%�o�"L/Ǭ�X�z����݄�������/�Ǵ� {p�$<��=�8�݊���F\v3N~Yk�h
+&��af���9�Z�ܝ��Q,;yw;��-�@']�SI�<g��w0$����/�j�9q�lܒ�����Q�.������1<=���j;��Wc�Tl�@�R|i���_R�J6���� �@��{�SC9�(�G�X�7w�3&�!��
+��������f��n�1��7l��lk����w�=��Ȗ�������7{���e�t��i]���������Ͷ��?��N�q
+����װ�
+~��x��78�w+�VcPT�*�sCq���C0s*[�!e��ױ�Y���xD�`��2��aa4Ɵ'����93Q����Q
+*
+�S�y;
+ƪ���p�n*�mś���E�������#�����r�=��`Z��ݍק�\����^@*$U)t��.:g��n��k]9��������8�7b�6X�*BG���Z.)�6�l��|�A��h�j(��.C�YOLZEx��u<�XlP�J2:v���,M늍��j�˰���';��f�N�wӖ���c2`���;���_sV�rd�t�h���1Ϝ��3����
+?>��[04
+J!b6�Ô%P�+
+Q�:&�R��`J���t��#>��Ee6����r`�����!g9�؍3��_�(�+�UKEĦ�d;|L$F�?8����l�9�c_ ��k��{��@|]-(� D#��r�[R��4�¼�9��G\o<4�* ��褫��T�
+^�ej|~&�� �V��UĹ�r!�$d�ຣ0u6<���<\r%�Q�%��������5�p�j��0���
+fz�����6��
+ZW���2DE��C��]�S�Ȕ���M5���⻩-�Ew�5kmd����F)�$����]�.\�
+�?��?���x�w�_���w8��&��Ǥ��j������I4 �O@L{(���M��%����?oBcw�f ��B�j��=k[�A���G�1t��B�Q��a�o0V��p��8 ?ѝ�THd2T)J-�x�%����1q)�<�����DH�gn�]k0D���O�Kn|? �/Ɛ�8!���ZO����o�Am���s�+��[L[��.�#�b͙@��������{g�OĄ# 6�%%�@FCN��|0j�U�@�qT�{���b����Wp���?YH ��0n\��;v��F40���8`W�6V���qcX3lzU�M�V���~����谚��DKp��л�����NLI����Ӷ7u~��)�$bD���g#u>>ف��0�O���_B��;�����6��E�,��B<���o7����:/�xv.}�J����{�=�7Q�`h��>�b-����#��s�fa�Rh`�,|��v�4��A��`
+��aw1�Bǭ��D��-|]Xk07��#���J��Q&o}NT�I׀�� kO�
+Xf�8�^��NI���
+GJ*RS��h7�fc�D���a.�/)с.�
+=��/�`ܫ�����Vަ����ʧ�1}������:����1�s���v���Q5��٣ǒ%K��aVq�q�����]�:��jYS�w$p:ͩo��isr��Y�\������3{�[��aի ��lڍ{���h?]\���w��wp�x�}\y3����=�pR4��Qx�.���:�}\��-�x�}\3�_�
+�/ǫ��-��wv���pϿ��!x����G���H��3q�?�����=�'O���W7��8F��7��on胯,���;���T$g�Ի0�b�:O.��c�i�_�]�1�c �c'\:CR�s��q�c0;
+��<�_�~nD��30f(~}s.�kC���T�ڃG��Q�o��s���'���?��o���@�S��vٰ�?��F��2#|jH-�V͘���6%��T�7� JTLL��8��3gx�ѐG=��5�T���>��W�o�VRT��ͽ���n����o�aE������\u��3�[�
+�oVp��tdߏl�Od�n ��"6��}���@Ɏm�19�|�-�r����{�>k�����n�Z�_��6`��?�c����T����k@;�#����z����E\Ng�����jK ���r���K�,��ȸ���u-�����Z�RP"YZ���羝;�L 씶�B�l�UP1s��c�_XX���9��u�W�=P}�&�� W�o��87羅
+A��gtgT���� jJ���:�Loz��6�T�'���w{� ��>-?���m(el�BB]�4��~7������*`��men���F��������F^�GHh?�]�Ϸv�&�֑�eìj��_�ظ� Kr��Gx�N�kt����\:je#�c�\��z�e(v��KV"&���nE�
+�L¨W1�#�BDĬ���Q}�Q}��
+�QC����;,2:�5�5dͪ`�e�6nlؾ
+0j�U
+@����[̶�G����0]��"�9�Ɛ���M�$p�Z�a^K\�ڕ�7�0���x��v�
+˙�e�#�p$�@D�vqQ��̀
+]��\��ؤ������w�T���qM�)AXxhnv�~�w���I��'c-ߨ��>���>͡DDDD�
+��EڧE��I;��3�j�BC�-�ۯ����t\|x^n��~�z���\!�����x��.?Eי$""bV@TK�XC�~�e�9��C�P��=.o�����7�N�1C�m���;��B�Ӥ>�ݘ����w\&DDD�
+���21u��T4B���D�;����O�ng��z�N����>����<"a���e˶6k.$�<gx�����?�iOv����,:�}hHH����}�����]���M4���q�q�����O�ڿձÏͰ��O�l�T)%Ү]�s�I~d��'�k��`D������S����SO6�-���;���;ȗ|��j?.���+���4�Wo�������ʫΚob�>�yj�U�.fDDDDDI
+h�;��t"j3�c���Z/�+ """"bV@MLD���-�ODDDD-g79�Txx8�@DDDD-�
+�������"""""bV@DDDDD�
+������Y5���q�������{N����s�k��s~���ÇGEE�,s ��7L� w�uWNNNm{�^u����k]ݻZ��>�lذa���L-��V0�9�hQ�ƕI��ӧ�=Zk���ާO��g�-���Ν;���Vd�'����F��Z'$$����������f�
+T���{X[4{��m�f�����?��S�L����}�=���nm���~�{����ٳ'<<�o߾
+j�N�4��n�k����������W0��mliii�\śEp!�k"""f����B IDAT0����z���S�N���گ)v뭷�t�M{���xBBBTo8��M�0Ak}�g|��������
�?���V`͍��>}�l߾�����{�]�z��o�]w]�|�I�:uJNN��x�bKJJ�;����
+OJJ�#�i�zS� ����g�K.����ADDD�
+�@lܸ��E��R�3���?����y]BBB����iÆ
+N=���R��|��q�)�TߨeY�c��������+�|�g����ӧgff�]�q�`ʔ)�s���}��7nj����?�����g�y槟~Z�>ggg�Ѷ����:���L-�|S�{�<��G�����Ё�[u�6mڴiS��\�b�O?�d�l��q����O��ի�����w߽p��q�ƍ7��������D$�h�7���>��ڵ��������O>���N{��G �s�̩^�ĉ}>_�v��u�f?g���[o�u���ӧO��k�Z���[�nP\\���X4����Y���F�a!~���z˩�9/����o|EdӦMv���7����&Mz��wk>^=�f�m�>��3&O�|�1�Ա��7���o�~2䤓N����/N<�����z�S�����U�VU/v����=ѢE���;�����k�ΝvT�
+vꩧ6n��E�����܃�1+�`�ȡZ�e͚5k֬��R�ҥ˿��o{yM�}�<lذmwРA�-������),,����7jF�n�Ǝ;~����m8p�K/�t�WԻ�۵k���>��S&L������kP�jN�VJu���k���曫w�4J��E��џp�� ""��N�;�����u���1+ """"��w1#""""bV@DDDDD�
+������Y5���
+�����Z>�6&""""j��W@DDDDĬ��������"""""bV@DDDDD�
+������Y1+ """""fDDDDDĬ��������"""""bV@DDDDD�
+������Y1+ """""fDDDDDĬ��������"""""bV@DDDDD�
+������Y�%۷g1DD�
+���M�""fDDԦ�ݰa��Ō�""j�vdg���tƁ��Y�Q�W�^Y^���
+""fDD�F-]�\)��/?3DD�
+����ڲu+LGyY�1+ "�6jٲe�2'Nd4����մu�Ve(%j��͌�_�F�����
+
+�Pp����R��词#���h?-[�u�(���|��e� �""j[�_�=CL�㞻�bL���Q۲f�:�0�i�6Ƅ��Y�-kUJ)@ ���aL���Q۲u�V�%��r{<�}� �BD��5���hNW�@���c�_�>˖-gd���z�2M.�MD�/XDD��eK���^��T
+(@mܴ�����]YTPXYY���TTTT\B�CD�
+�����;g�2�e� ����F��������v/�R()))--IJN
+
+e���%�"j��n7��~X��0M�@KxlD���g͜1�uU���5ӡXYi�D��t�BB].��!��v�j�yh�"����ĉBS�����,KU�h�R�aL�B�Ȅ���y6��3Pe����N)ii)��)i��������,ZDĬ����9]�g�}�qhtYYYJ)�(���ۣ-�-۶���|���v�Ӥ|>��(%�i���a�ߦwȰo��eY�."bV@D��D��^`ݮ=�QP������Q��PJ�^oeEe+���z���&�Ν���Ĥ����1+ "j��i�_�����?��}7w�������3\���32NJ�eΜoZQ]RR�g̜��ߚt+���:fv�VG�쀈�5���p����3���/>WJJ���t%R���Z�r͵��$''+�q�M�h�m��'`�R������52�u�7|7o��X,\�C����(q\�'�2#gg^�-��ycD��,\���w�9$;PTX�c�6(%0��w��ED�
+����-�i���;�Fk��S����^Q\�"B��i���.Q��1�[o��9���#+gǎm[�@)����p�ADĬ��� �
+���߳�mc@Eޮ]` �u���{�� Jo��vk�KrR��(�rrs~�fۮ���z=JA)���0���C���5���@�EF�̀4�¢B@h�� N@�FdܳE�w�G{���%�}{�i�����<-/+�g�"v���ʷn�\TTȣ���5���4!��Z��'�{#Y:P?,\��(����0��n�!��� ��m�Z� ���J`Ϟ�[n��6���i��X0U\XPV�01+ "j4v`������;�|�� �3}�aDK��Y�k���R�#�������k�IHH
+�x�ͩ>����!6..<*RD#�.cDĬ�����]�E0���/���ɗ_�Cᵥ�ڇ�}\{1hLG
+����3ZEuB�B���Q�����/i�݈�OPJ�w:k�����Y�կ_�@���x}�n.Ftp<v�U"�z��fN�&$߰NA��@My���R���v�����?+))i�}PJ���4ǹ�"����gJ�_�er�i��LE�� p ��m�aB���� k�����1w6)1A��/,��{䑍>Ų,��S��R&��"�Fg:�w�U�@���~������tW
+J��O���+g�(�0����`���!e�zX��ٻw�n�Ml۲9k�����m��"�P�-�����7������Fi��0��9(���z�[�lĀ[b �i��q��TDx�ʞ��(-]�vm��QC� ���ҀO�Z��?�{��"�Ffy}�6��#eY��mY��:�
+PJD�N�X�n�'��� J)���⋭�R�IIv&��@)Q(+/_�|ycm"5���V
+�5�Y���m��E¾"bV@D���+���^6S�RG8��9�}��=/��Yѩ����=>_Drrr���[AV��h�/�Н���*s����FZ�4M�0�V��f�����z=�^oNv���ۡ���]j*3"bV@D��GUO����ky=v��_PXTT��4����φ+�sX�'��X0e��ׯo��ꐑ!Z�!D�#|^P��pL�6����>��2�^~������eKΎ,��kOf��1��1+ "j|N��^���@��`��駟��4����p Ju��9�� "��x�7Z~�b���C�.����i�CW���o6��13$$DD��+({��TXxXFf'�""fDDMs�2L@�obE[ �<$��}�%Krrr��Y�e�=�)I0/���;[P��٧-�^q�qЖ�m}���X�=3��Z�N��?ޠ�֬Z��6m���RR��wh���.%�CǎI�y�Q�������v�T bF��DE��A`8����߯��:��E��C�y@�֛>�h{�0� ;kGnNNJ�+m+��^3wH�g[��'<��C7�pCJJJ��|����֮�Y�a�744�A��;����f:���#��Z�Q��
+�[���u,DgL�G�k�����a:l�ԓ�RZ$t�/��OH���X�pQ�WBb"�{��n�;J$�倂R�t8�p���w���cm\|�%�.w��g�s�hk��e�e<r��Y�!f�0x��#&ư��RJ�N״��� }>g.h�#c��xf�1��P�a|��-�^����_{�@�qB��*^z������Q�Rj����ü���SRS#"#;��W_�!S�x�G1+ ":�N'��J �2�#""J)5�����Ͳ,���hDg����6�i?wη߶�%&$V#p�Ӏ���Hs�G��r����)$1�����������<���Y�!�~��!�ݬ5zt�2�{VA0m�4�^�GD+((1f&���d����ԑ�����5-�j�4��쾤�����Ƿ(((૯�Z�dI��{���'+(+-բM�s�YѡfY��f�=�TDpĕ�b�����z�|>C ���"u~2�n@��{6Lsᢖ>� 6:J ��P@�Jk@t��R:\!W_{m���n�<�4�*""fDD�O��Y�K�;Ͽ�t� ���{fΘ�X�m��U{�
+��'V=�?�_>�D�4?o�����
+
+"���_FĊihh��o���,�ŋmܰ1%%��d_1+ ":Ԝ��
+�o���<��������b��v����/�CG�T����]��0�PJ ,����.%9EA�5���>�T�Ǻ0:�V0]���#���~����c�cG^r �"bV@D�����?3�j�=����������Q.������--�q�z�_Y��C��=��嗖\���@�]����w\��a(An�·z��ޛ1c��՝�vs�X6DĬ���Ep9����}W�qWFv=̞�l8��Ly����{ʶ%�I�ޗ�����"�����i�D���n��h]--PJ���q1�e���'M���g'Oޱ}��c�~��<l��YQKa�
+< ��h�)o��c�A�1�ݒ�RF,���e����.#\EW�^7���J͙3�Egݺ����[��>�L��!��P�@Iaq��ѣ2i�>���#�=�X3DĬ���%e>/�&��e"��x裔��������ʔi��K���O�Ӿ�/+V��
+�S�C��^o�_)�����i�|�Q�ޞ:�0�e�_���������~�Z��@��v�������)?������g͚��[�YM+~�ـ��N�Բ1�WU���2�J�@Iq�O˗ݿˬ`Dx�}[;-������O�V��؈��
+��t�p���n���{��1�iӔR�j��n��K��_�
+���r�\UIPc���Ȩ�����7n,g�0���P�D���m
+�U%k��'Zk
+@9�����V0:*
+ڲ�ƢJ��7oB)������%K�
+
+��~��y������a�aa������h?D����%"j�̟':�.bz��|�9�U���E���t�D$1)!7;�q�ODT��� Z_��R_�/��i�F�NC)�<�-u%�U+W�����r� !,$7"A�� �TW�xkA����#V�����)�+ ��͞O��fo�R�'���*(���|�����*��+�ʔRJ)m)gt�'J�[Q�#�nToظ���1&:�>�{�<Jx34�����]�f��U�xx�"�Tuu�
+4���UYi��Ek(N��/�ĸU�sg�=L8T蟷5����y�CD7D������>[�p�˞�QVR:oΜ�Y��Ą�?[�e:5����`��E�x����("�6�������?
+���Rq�����S^�rsw.X0��;[AA�i����QI�[fY��P"����p�O���C�i��*��l��DB���Bo��#��R�p8�z�퓇
+k�ut9�W��(�(��0T��D���L��0�������阖:����Y�_�}oc�������*�O���۞J�?��y���폵k�2�aXŅ����Lh�J�ʄ�*���A�-�@��C�ŋ���9���tz<��D����u�dl�����m�:��?�r�
+���D�&�bGD�6+
+�w�B��c`��((,���*S��`�J�(��@)e7��D)(���\���@�9-7�JMI���l�0�7S�(�����Z+�a�?��s�[ٴi�("bV@D�����Eh�[��RJ��_r#�o�!}�����~_���@�o e@a�W�J)��;E���o�U(+-���G-4+HM�3�Z'�@���L3D�����_�]��]w��'��ED�
+�������RD�a��u��$�q��z(������B������\��a�/��ZˬiJ�vV��Y_�+S>%Z)m8]�>�h��{����9\雈�ڲ�R�������JJ�<i�=JD9��ޑ
+�w�>آ�����-��11��c(��8���]�@ `~���۷��Q�����c/-�Y1+ "jv�i/,(�z��7��+|^����۶������V� (��)pw~���!]D���^]wz#J��FX�P�`:�7�pC/�6}Z����
+"�"� E�qU�0����9�S�!�r�UW�����/�a*X�W�rWT|��-���{�@�jU�B�I ���46�?
+�P�?���_�GD�
+��Z"gH�ެ��R�}W+^O½�����_Q^і8��DD� u�i�(��2��&Mn�5m�>C�#��������=|H�� ����;y��"��H `�v.`y�PF}�=�Lψp�D)%��t������Z��*�j��/J)��իZb�t�I������*�7Q�0�7g��o����"�Gk
+mU��t0-6��:N|M�(���o�x<m3z{v�.**B#
+��Z�T�����ʆ��A[��滽���k�ͭ{�F�?,�;ﺫ�)řDĬ�����ֆa��KpM2�t��G�h����˯�f�֭['U���-K[w�qGK�ldDDU�]�{tp��(��S�7d���_�֥W+��xJ�"�C $4Tkm7FU���F� �@�{w�Q��j��[�n��t5rR��D����-.+�� �p{��h=,&Z4DD���L�Pۓ/=�W^�YID�
+����?%
+�~���h
+()/��v6�%��&YLS������FEE�ʟIp3D�/�H�4$;7瞻��GD�
+��Z���0�V�
+���o�:].�"e�����W��Է�4��Y@i�u��=-��a�����TyEK9�=CE��Z���
+�{��|�Wy��"�D��7�,+���@)F�5�*��E�|ٲ�˗���Uz�
+P���@)�KϿ���h�RRc"�[A�������9*r���ϛ_^n'JP\Rr��cx��"��BWk�*�S���^�^Ye%����������{)�@��p����T貲��ւF^7g���jqYV��Dg P���m"Q@�W%cTe���y�G����W�PbƟUSJ)5s�,�}D���`���2M�n��[�UI��'��^U6cj�֭R��L�P�
+m/�#P�/>iS��H�\.��(e��������*�8���\T�Cu� ��2��:}�+*�(s�J)��&�������$P���8t�w��9HD�
+�����H�=(���D`DD��̮y_��f8]�Zb��ti(�g�iU������|�6���@�f�1RSRZZ�۷o�`/����!2��8��LJ)��jo0�<:���7JJ��R��.����iHD�
+��1��2%��-��;���Gd�B��4����D�S.J����z���DDF���E��P������[Z�����f�������I������(����>��iHD�W@D�6+�EJ��Q���o�o�)����M�?�0o���6:�T|\�����?�C���-��33�S���EU(�Up���`�y˖����DĬ����z<��o�)C��Y���o���]�M�H��6����ji�MNN��@%v�Ё�D�q�Q}y�"�C��r���U3��)j�6�������r���;��Y��xWP��1-��;f�I��-������:��p�7sx&�_�<%Q��}�������i��0�;�������V>�2�N@5�7Dbi=��珸��Uv�ƍ�;�t4�l:{}"Q�ϣ-�KD�갯��Z+�� e�����>��mؕ��^h#|���a�R��P�[�"�#Z`J��pH#6ߕ�<��w�X��D���"j��m�ұS'��j�Q�QH�����n�y�ᑑ���A�P*"�����O1rd�lNNNzz��t5Z�����n߶=�}:OI"j��W@D��=D5F_�ޤOR� IDAT"�y;�~�ɶ@�ӹ�����=����(%���۷e�BCCE�1�\��ٱa:Ǝ���#�v�+ ��jgnnJj���B#��K�@$<"���ݝ���6~�3Ͽ`J��""�DEE���b�YQ^c�f�O���v�ܙ��ij��Z/�Qke7a��ߪ{ږ��Lk���z<��C�L|���˖|�OO�<t�`Kk�=�������R����Y��%-���4���h�RJ9��.�)ID��S�}D�J���MIKs8��{�}H�vI�YY-��۷o���딡L������y���A�'''���p�#.8���?5CA�Z�U[�Q�hH\țM���Z�m
+��OH())�F���Qj���}�-�J"j��W@D���>��]*JK�Zf���0M���<=���<h��~tÍ7�}�yg�q�'}\�����Z��?x�;.�C��l�[u��|%��:i�ݻwEGG��@bb��s�F=`�R��[6"j����Q�T�W�h����Z��D�<����j}�ȑ�s��������Of���RJmݴ�����ʲDk-!!��O�>���4�˦͜�_�H �9�t�R""v��ӏ�3:vl-̠�-��G��3�y<E�E�1�<1���b_�VJ)�Hc_��Re~���-���EE;w��m��ko�"O<��a(
+�c�N/���G�̞={�C������s�=��sF��4';'�M�������g�����xE��u����t:/9�� ?/og+J dffVu.56QJJ�yVQ��`���***R�BS4�R�v�ƖV�[��8]G��/"�N�v�%�n,*�����Q
+�iݿ�;�N�z�������{�����J�0����g������8��6l����~����u�B��Ӻ����
+���@D�я��gb�|�+ �����M�+)-miU^�xqJJ
+��������;>�*{�9��7I&�'��A:H���"� �D{o���+b[,�誨��
+Ri�;H$$B �O�)�����̈́Z &�����g^�s��[���Ds�]"!
+4�{&PU5 `Ԙ1�;vD"���n;�ө��ȣ�U���~h��qb"!�gE�gN���ؾ���T2�8+`������OJif������(o������J$��h�W_ڝ��ǎ������'�8���v�������錍�=�r�e˗o�� ���[��p8b���ʮ昳��[r�xHh(?��1�
+c�b��� Cw/�S����K��^u��YY��E������1�Y,�{����{O��l`��6N�������g�]�v́�$�՚��p���(ˉ{�H������Xa��w��@�kt��Y���㬀1�.������0wPV�U�7`���,������6m��l�7��)/N�ukע{��������k�-]����b���ϛף[�s:�̙3�����~ �}�}^^^��0aaa��B�K�!>����H2�4�m�k�����?�o_�9��ǻƈ#�͛[�l �f���aF�^�b������6��nݺ�����M����S��$E�-i�9�ʮ]ks���yVQRղ=� �gĈ�7onX��j���w��
+��w�:.琡C�yd�5h�_c��ꫯ�s��(Pӎ��Cݯ�i�F����#F���u�ԩ���!喛o�ѳ篿.��q�cǍ�R"BhH����\uHH�y���Ǝ1bD�>}N�lΰ�#~_��t�����ϋ>�aU��))m�w�j1ԡ��HjբyRR?��1�
+c� �t�굳�1=-5.>�{n3e������%K���h˦��=�|��]^{cy�,.*
+W- t��1c|"I$u�����ɓo�}b���������1�S<uI�����jX���Ll��xv�@��mfF(���iS�6m�#c�A�y������^��j�0��6k�ԫRؓ��j�
+<�Wz���C�ve��+���WTwJ՚� M�
+��ǟ\իO`h護�m��mE��0f�8N?]��y((,���
+���;�o"iΖ 8�c6�!B�Ν8%`�]���1ְI)���]P�>"B@����M�,�{�g%�k��FR��W@D�}��=���C̼�]۶ɩ��EX�l$�{]!@��AR�ۧ���[
+8�\fHl�%%%AAA
+��<�أ3?��,���/0u"��*����2�.�W�k��bB,�}��u\��s�A7�|s�k����͚6�R��ٚcƵ~V���.Z���g�
+
+"ss�;�] ������P�b�lڲ�\a���2"�b�mWg�;��mۚ�DfiԺ�[B �?��c��d�qV�c^�w�>�}�M �!@� A���}�9�v�֮�����>D:)^')eXX�n���`�ĉ99��{O�&���Vr'D�����D"B�Z��#"�OK~Y��
+�����W�nEfxOX��dv� �߷/8$�@�g�1�-{����,�9'0��bǶ��oX_�+9��^�w���h��U�Ԟ�'@-X���z��A��3�ߟ��ִi��y�7o�۸q���E'5��GFa��S����TM���b�ٻg��aC
+� j1���D �f�J��Z�hΏc����.������0�7Y5N�6�- �6l�;�r����С�n�0a��1�v��[۹}��!�j��HJ �w�;f�;3g>���w�}O�|G7����,�ҩS�9_���{`_ң>�;RJsH�{��;��M�9��M{�!֙nۼI�g�����ȝ?�>f���f�Z��c�]Nx�1c첒��ܦm[T5�`qĪ=�Nl]E�d�@��_�����Z���|�M�iiK�/;x0���?�sᄃ}��u�������w��a,xws�"N�4)''gȐ���s��j%"��=i��=��O?��i �9�u]��ə�ɧ_~����4E��s���@@qaA�3�����q7�h��4sWsh�9}�]��q��7���۱����1�.?�W����j���t~;�+M)%��k=]U� �t��O=Q\\\����p<��;�ܺcGPH�4d@@@jZz�f�z��U�;Z�x��f3v\Ռa)%">��3C�)[6o�ۯK�V��S�$��bi�����=��HQ�Fqq�~a���G��y�:Q�XVVv�M75�:���ѣ\NgJJ��g<���$
+�SJiv!�]w���7�pJ��\q_c첵f��y��3�ˢ�bD��9��w㍷�r��������x��1f�
+�.��$���f�\���_�S���r�y���;�������!�ϋ��䓊��iӦ]ٵ+�>��6|�{�Q"��q��A/�0�o�k���������%�Ǝ=�M�<m�PR�o
+�<*�YJ>~V�0u�#i��6�����,q_c�uM�~�;�������y�~�q̘�uO <!$�A@�<��������������17�`���˱����3�1-5����~��7|���+Vt���L&�����/�DH�Ն**+�|�����:A��vfDR����a#G�y��p�`ԵG�˦� b��ͪRR5��w�ɏc���k��h���7o6��4CdZ�pA}���3�{o箝ǎ�(/�'�~=W����.����j�8�����^���;/�q���0�n�u��V�[���(��� &�ۧ�
+�:m7���xZ�|jd�'�`�ҥ�]�&i_RƱc�$� `۶m��=��3�8+`���x�AEU��L��Dp�
+c�Ngݏ���ߊKJ̽¤a<��#Ӧ�q�
+c{����_����s����O
+]O;thذ�32f͚5�)�a��^f���$����I~4� /�̄q���M�49s@^^���'���5����|˭�A�!�v�(8ϟ�2e���i�c�0�إ������~�fp��j�'��{]��n���ݸ~�����""Iěn�9"<��?�;|||�{$H�Z�?̛��^���ڷoo�wG��FcpM��ݺv}�����]���>� �i�$C����t���p�t����g�\��e8]�%�S_�����W_~�X,�'�h%�f)))�?�8?V����6f�]���(
+`�e� t�u,#�Q\ܹ����7ޘ�r9_y���D��(-)
+&"Ϫ��u���w����;�8CBC�JKK�l4tȐ�C�&6N�܂{�Q �#���v���_}���W;v�����y��=N?֟�5kjnzP���W�\�p+Lee��jU4˩�)"MU*�6*�1Ƽ��E���
+>\QT0dž�%�CR��{�]�dI�X\\�ԓO���N���q7�H$�����oߙ9��;'�=***����>����?������ w�p�#O��駟�СCֱ�/��j�?W�Y[\\h?~�5��������W��i��7���?��_�=�w�Y�È��>�)*.@tkw8[�j����@����ݧj:]��2d�֭�����b�]N���1v�*+-
+R-��O@HҐ+�-�?�mb�?�`���Wu���+������n5|xhX���}�����%*<,���Y�f��xrrr&�u����Sb@DS�Li۶��WEQqϮ]����uCVTVDGDL�|W��z���!����w��M�6�j�����m��vʃ�\���_XX�i�������
+��>�ެYQmJ�O%FeEy]f�0�g�1v�\٭��={N����D�"μx(�OJz���LLH����{�������;~��ƌ~��G�^����-Z��ر������ɓ'����RXX�9M��J)�@�X��;��f�ۉH�����V�Z;�ν{v�5��[4Q�;���>����=qӏ���M�(�5�:�_Xt�B!���м�l~�c�
+A��<����؉�zڹ��uI���C=tʗ���1c�iB|��7���=� ���ɧ����ܹ�1�3vܸڇ���l�AD)��EBG�d:��c�v@@DUQ���.݁(j$a�֭~V+�{��/�jFN�355�E�
+��,_�,���eB@PTT�n͚��\��c����^��~��4s��3��@@?��ĉ����#F��WVΙ;�3: ����#$�9�I�����B��ϱ�KÈ���O���d���y��.�uʨ�VY�w�͢@='���+ڴ�]�Tg��r�Υ������G������<�ʤ����ȑËKJ�ݰ~樗Pմ�z��G��?��������l���M.X��fc}a^��A�z����O�/�ݹw]p�V1#|�Y�fW��]��=� HӴU+V���>B��`��y�S���P�̫����h���6v�m������<���eH�X�Mk���r��sg�Ν�����;'����{D�~>>����##�����?�b�'�jy1��\� �U+�V
+���X""����q�FŅjJ?|��/�2\δ��f͛{y���͍��(��ü���
+iH���8��e�G1�.7:tpgx�� n�H�Z,�'ܶo�^���Z�r���
+���VT�{��NWv]�fͼ�U_�Kx:��~�����l۶U
+P�r�� E��x��;�o��:s���)�������"Dǎw����c���D���JIq����f7A��^D Hڟ��̙�}���(�zv����G~�i��ge�R^�j�a����ӝ���s�͛��_z��5�-$<�)D�or��C��1�8+`�1�})6>Az��s��PU-�<��s�*��P���{�!EQ~Z��!��9�@("55՜��Q>� �P�IwNBD�-� �ݦh��Epe�n��1�8+`�1o����N�t���#(���s��U#���4�21�V!���q��o�O>xp֬���|�~����و���W4HXV^>�|~c�0�إ�p8F�@P��p38t/�I��C6o��E��|W�*����,��
+N��E�M#��<��E4m�[hN���57�tcyy9?��1�
+c��2e��Y�o-H@�;&ܚ��<lĈ��9��(��W/EJ������v��ј1c�
+
+�B�Y����ԓO�c�㬀1�.��ǏO�>��c�I q��.Y��_6ܒ�R����m��$%@ �������{J��r���Rw�P��࣏?�inj1�
+c�R�}�mB� �zؖ�I��;nKOO����r�
+e����is��%�
+PU��[�hϯ�-[J)��h���C�<�#c����4V�^�j�Zό�z�4� {o�gQ��Ձ.sS3Z�v-�:{�8��]�C��/���߽��,[��H�1�zpF��ۯ������H2�8+`��K������"N}�?�#(��%�l�F�@�R���t�ڎ�G @���[����9i�7ԙq�ܪ�ww�z�6M��[�U3�g���ٻ3f(�� S_�+ �����P�a1HD�WxNEh�/��*0g�W�Y����g�&"��5L͵^s����0��֙�����I�X_%������<�1��7�7�cgVQ^j�L\��g$��^�(J]����=y�d�?/��n�:C�-K�f�bcc��9���{��jD��$�啋��(@�ZO� Ðqqq.�����iw "U
+<B4m��h���W�>�$@P�p�+/a������!����I�ee>����2��+`�5`=��9b�>�
+�0!"�c�(��t�+*:f��˖.]�vݎm�KK�T�b66�-� ��j��-�6�5����8�rA�ժ(���OxXX\|\Tt����y$I�?��"�a��;^�:ӹK�0ל��� ��7���kXT.�X�q���?�L�,�0�~�
+!�K7֭Y�����吅�.�3 ��f2lHe��f+���ٴq���V�ࠠ������Х��(I
+0G��<��=���@Uռ�����%���{�b�����\�!
+s���@$��5AD���o��[�|;t�L����f�zhh�av����TJ����נ!�'3!4{�ѓc�OLR�S.I�q:]{��B\�~r�vq��e[�n�?��1�
+c�4y�j�Z�i9�ޜ�@�
+\\X���W׀������������JK�[����!aa��۴���,-)���ڸa��i����Q�сA�������NPJ@���SZRr�HF^^^EyY|B"I�����a7t���5UD!�9�ِÐR�\.�]���||};\�&599�`r�����9�����c�|}|P��QVV��u�sc�R���gdd��MC@3i�,�D
+
+)-)��FJ�Bxƛх�0$Re�
+c�ef�s�㬀1�.���?��AUUkF���TE��!�M��)u�JI�kߞ�hҬ����n�f������������Ν��
+KKJ��ؿ?�j����E�GDEG�����P�Fff汣�6[YXxx�+ZGEG���J)���:thO����r�M����
+��t:
+C�����v��e�!����4��t��_ٽۺիK�K���UU������n��R[Yf�т�|M�TU���v���I���F�GDGEI��hV���HKOGDE�=�?|��M7�r����l���Ҙ����z�����
+�c
+�6f�5H1����_.��t�#///""�<�]m���;w��?`�"P�XV,_]���p��c�
+�����.�+';���,;;���<(8(&&68(��tdee���DDFF��6�kd�4)
+D��<��q�e˖;���է���13x�QA���"�$���w��Q�ܹ��V~��}I��KD�(���rs�;�t:��r���;"���mҸ��>������K�}�ڵ{��*+*�sr***E1s��h��***�C� $T�@}a��\R-j���O+c�AP�N�ʥ�kXn��߶n�nN2�8�'�����y�m��ǻm6ۢE��w�Gy�U IDAT>��9�[4GD)%�ۻ�U��R����wD� ���-Z�hڼyaAANvvVVVAAAhHH���jܸqPP�p�������fkݺ��պg�xUU��2BU�$�$IDRJ) �'%��'
+q8=]��"���I ��>������[�'ƛ?��� ��*�4)=5eƌ�>�h�=n��&���$��K�+��(��V&T���r����3�2e����͝��כ��뺾yӦ &�3��~�W�k`�v{xd���s���H��sӦM={�<�7{�
+�֛���мy3" ��P�m�Ҥi�����g�fEQJKK�geefd�\zXxX\\|Bb��rU��VU�q�xֱ̫z�$�#G2R���
+��j�`�=�����tk�X���}}���j�7m���0`��t��&"�(�!������>jtXX����=�����P���y��n˶����IIM-))ٿgOTL���233T��Ŭ��TkUUrr���e�y9^��1��t����p��ο8}��h�q7�T��@y�-<"����8��w��iR�M4A���U+Wm)����A����=66Zw��:>ތ�++�5U#"JLl�~�:C��j��������+W�ZE��>�zA��j۶]�Ͷ�����{�}@���p��l�4\ �5r��oL3��2�fw��ӦO���_��3�֛o?q��?�sǎ���S����ãF�Z�~����W�cF�Q-�K�
+���+ڴ�ǖ1�Yc�է}���J���v�, f�d���;�yD
+����("�I�m��V
+����%QEe�;
+CoݦM���uhh+Bsg��#��](
+
+}|}ݹ`]���V._��ƚ�&0��x��u��6k��3�1 ��(..��Qs�����`)�`jںի->>�5"B!��G�����Ï��Ҝ�lNJ��W�|���˗����Ӗ,Yr�
+c�X���Y�lrŊ��=��}Ͻ����n?��_���� m�Y�O��r�222��e�qV�c��w�ފ��]>洩!�suX��0ώ���$�V�[���*��Y��:0 Ќ�S���/[^ZZ
+B��ϑ��
+
+�v{II����y�!��u�aѴ
+��K2G]QՎgt(���;�V+�5�3�Y�RC�l��^i?p`?"yNTu:����X�{Fz��i����ug��р�}?�ꫤ�$s|y�3+�����ч�{M��:u��^b/M�ڸI�IwM��
+��ٟ^?p���o_����e��:~�Z�ݩ��[I`�&M����1�8+`��:y�l�pQ�:���8��& �q�&���Z�ԃi�W�
+ ٲi#z�iD$))i�V�P���^;��VW�ٲq��իS��oFI�$`3i"��+PU5�3�]D���\�O��ܜsy��v���C�������^v�]�X�̄�>_��ϝ����99B�DdF������X�2�ȑ�]���ּU+��
+s��iKxHȚ?֚i���@@.���w�}�8b岥S^|���Y���0~���?@M���Hմo��nР���߶p�����3gVTV\��s@��͜�.?1�
+c���ƴ���Y�; B��wFYI鹦c~�
+����\�<??��!���.��?|������U+Wd=2��k��PZRb�W�7��~��&�����Z�����BAU-���efAD���M�����r����]\T(8�q�p��m�����ն]���
+�c��+�/
+0�:������(4c��u�6ojӮ݀k�-,,��[��$*�II��sϵ����矾��U���U霭�|�
+RZ\�ۯK�;�݀�`(**�4
+��4i�ܯ�w�\.sn�@�,>�{of��m�8���w����/E��K�z�ɧ����)f�y-�Ō1�08А� �&�C@BRT��!�7m�xNi��
+@���;w�ľ�\�c�H�#B�>}�o�ZXXh�ٜv{��}7m�`���Y��b���s�d��M�4v��[��\�<**�CǎD:���l��AD��1�&yB�捛J���_70�Pڶ�[{�����o�-�6[������(.����S��������Ɏ���f�MU��������o�C۷n---%�~X45''7+3�O�~��tmߺ-��-[6���+-[�TU
+_?�O?��9�y��?�|��Ԑ����~7<I���������%s��!r�e"�&���8n���o�V�"##�\yeTt���o�.]����+���[Q5���R��$P(8b��u�����N�2)c��Rj>�(���.i�/��ɇ�u�=�y}vv��I�P(/��⡴Ԓ����z����N�#3�X@@@dd�@LJJ���{\����9���z]��.!x��m��۷l�
+WHHh����֮^��|���A�$�t��m�,
+��P�����I�022�c�Έ�h��é���_;p����C�����W�m�o��WH���r4㈔2!�q�V�6�_ݪ�+�-k۾���i��ʬVk��W'$�W�%�|���^�~�f�ƍ=���
+��ݙW��a���=z��fy�u��EJ)Vu
+-�??11�k��U"���W
+���_<e�����N]�(��JL���# ���D3�8+`���QRR���RGw������
+�4Iʰ!C:v��81PT������à�U+�v���O?
+>H��� �$PT���~�?�ڤ�}�Ǐ#bXDD��֮^3x��0N���kcbb�h�Z �{+2����PU�\D\�z���BUQ;t��(�\�ȳ/�p�t�4�N׆uk���IٲM���H͢i��訪����~D,++��t09�_�=�üyRʪ}���0}��{�8y��ޘֻo߫z�Bs8�y�}�l劏>��t�ު����7�dn.f�b�1o�#�c�n���ť�ख़QP�5JJ�z���f�<k�Y���D'6NTT��uOp"7��l("�a�m۶ۼic��cbc�$_qE+�Z�h�ƍ͛�PU�s�N��mPӴҲ2sh~i�m��M���"!!^���z&�
+!����u�n�+����׳gwEQ�t��f���JU�Y����' �������4mERJI5K5�DD�UMQ-Z�����7^{���>c���ph��r��E����WT��v�Պ%�%#G��ѫ�砸a��o�}?�/OW�������*B�Z�.�ܼ�?V��@~�cކ�
+c^���24,�0$!�;dƜ`�GDd�ZK��������ɓ'�P�8��V�Y���Ȱ����U�nT�F�6"nX��I���:p���!�
+�0�ʅ�˖�>`�@E U�+X����r�E˖�w�پcǘ�H)���zZ�=�:TVڋ���߯�J```l�8����`" @R҉4�v@EE��
+�bbJ��*�+|�|UMkۮ]TddtL��eU��s��qt�s�O=���#���a:���_
+
+
+����u}�I_͝S��@p���z��O?�m��te�����i��ZW"�4���P�X��f�y�+`�y���~[����
+xE�g6��WTt��i��]�k��+Z�
+���r�r���简��蘘�����( ���i�w�*pe+W�<t辽{�9K P��m���+X���;�v8��}��=ݺw�����Q:��<�sY������7Y��W p�p���,($444$!1���d�;��-qM�~%��G����lۼ9��� ?�C��
+�.&6�l~2��*7@DU��5�����AC��Yǎ���۶md�L������9�l������~��`�IYYYBQ�*%����z��M��O7c̻�����1浊����#TE��U��V�/�/
+<�+���'O��B���K�a�淮�(.�(����/��˯�(
+���
+
+ �R�����={���@~aA��=
+ �����ǵ�^G��=EJJʱ�LEUPQU������5 @��>>�(ТifJ ��l�E�%���'�'���i�.'''/'G�����!�����]�ܻ�)��l��W�
+
+ڲeKdDdtlLvv��E�����ҍ���aÆ��{utL��i@$��~������ԩ%E�C����o���n3z���$ �0n���'L{�Mg(p_?�n'&mx_��]�̣q<�1�M���1���ES͡�^צ�f�
+DEGUVV�."4߈`����Q�۫N����cySRt�+>!1<<,4,��קm��K�.m]ia
+�$S�S,�$B�ކQ`eE���_�Xt��v�����.��r�t]w:R7��"�����Y��~B��E�� 99���b�cc� ������̌�#N�3�Q��Fq!!���I�(���.]����u�ޝ�Z�l��[o�dg�]�z����~���O>���9bx���7�,ZU��[o�5pР��w������~��g�f��Yf�yJ[8����Ϝ��'膎�����]oTM{��'�����q�g�1v�6n\��GE�.նe��\�n]߾}��:"�j��ga ���H��TET���9��{�ni��m�HLL<�rP�"7//$44�h��C����(� ?3�H~~~hXx�v���åa��@4��2W!DA@ҐN���t:β�2"*�(w�.���? 44�%��(���$�ر���WTDDD$$&���m��ן�������M7��117�rˍ��b��7�߰r��-���Oc�#�w�>|��ؠ�`�r����<��G����pF��=���gΜ)�$)]��G�͘���O=u�r�������^Zm�Y�?�8Ųe�]=?�1oi��D�1�RQa��t�*�'@)
+��N�����I�&�P���ZXXx-,�������С���2���b�hjb�&i��W_��e����Դ�����F�4i
+$% I��r�D "DT=��́I���$��t:�����)-)��Y���r����;t����EGE��L������d��=���B��۶n5r��ݺO�krlT��-[���{���Q#������q�nZ�b������������������2���r�,!6&&��~�c^��
+c�hƻ��**Л�;4��)�2sƻ�<���_
+�0�#�kyx2���@E�@J�(@R�3c��b�$IJ]7��'�>�]�щ���ýqB��4A-��(��(�l���
+�������z�6m۶i�����v�Kz~�T��գs����[��#">x���w�}�����#̬d���s���믿>sJ�c�v�a����6�p�x֓O<��;�����_j�W��:ր@�ˁ$�<��bz~nnXX���)''箻�F���I���ڽ���|}�Ͷx��ſ,)+��h�o��2��Of����[������o{ڴ�ݻ��8���Z�NA�PgE?�1o�}�1��̳�:�N@�� N&Pt����i��˿ �\�T�CX�6�M����^�PQU2lآŋ��_��>8y�3�0q�DB�pr/s�n�5j�����3�.�w8�0ƼJeE��?@�X<k�7�(�ܱ�]�v�!�]A~���n�����{�)/�t�����Fq�@�cH��g�qV�cѵk�)`h���S���b�X���~���>�𬯔R���5�;U% �?q�g�1��)b���
+�c���c�1��� �c�1�㬀1�c�1���L��"��p�6���g�}��V�ߺy��k��UX�/TU�'�x��eeeΚu�Q��[��P �Ξ]PPX�@���3�\�*�`����t ��Z6o>z̘����kײe�Ozt��i���u<ݛo�E��Z�ЬI�q������x^c̋h>�h;��.�aB���t���}���5k��AQ�6̊���<z��ǎkҬY�M�h��iO<��E(�+ڵKKM��CCץq���,**z�O���si�����&5z���U�`��?��#'����������]7`@b���w6?�ե�Xu#D`����.�g�1v�q_c̛���E�/_�r츱6[��(����D�@t���KXx�{�؍G�.s�
+�f�Uq�������P5��u��麫{�no��v߾}ϣ��s#�( ��g�y�W��&�o/���hǎ>V�!C�VTT
+!��4��]ꥋOx_�Z���cǍS4������.Di�昈X�WT��?w�0�����oK���ϭ�=���c����z��v��WI�pǃh�c���I���!"y�^����r�QQQQ���>�v[\.���0�㬀1�@�{�����<�7���KO?�/�Q���Ѽ"" 8ۼ,�z=��Z���or��̒ÿ�"���~���S�N"PTm�5�1��\}���:�۱>�3�g����I��`/� t�@�uK���맾�2���.��$�$Ī1.��"!"�3�NZZ*
+�����&�|�QNI�yWMs4���a�V�Y�f�-M����1�ex�1c̫ICN�?�>�x]�iZ˖-gd���}��U5�6홀�ܭ���ն��_~Ym�r�����&$:T��"�s2�_ʕ���������ڬU{g?ډ�j�*PUKIh�~��g�).,<���/��1�Yc��;D�iZ�S����Ϩ��'f����$���oM��Ų���O�g���$���
+��N��t��Y�GM8CUWv��=��I
+,��+�e��M]���|�!c�]<��1��6=�Ϧ���PN5��s��3g�i.��.U�G�>*I���9�Ҥ���4�CNLk�kU½f-
+�ޫׇ|�;1��+`�����S�ڤk�Z�E��Ѝٟn%r����'��1cf~A�g��Y��������##5U�M�]^f�����t�c�����鯿����{U�/�Dw�҉���z҆�{�H>��C��2�8+`�1�`��<�|P��u� �uX���4�s�H��Hi�����X,��_}��{�&)�R�
+����6�7�/�y��z�?aB^^�o����o$%% M��Шg6�gR<��B(��?��1��#�c������]���ZcyP"�0aB�����*��_���(�W�]5�ڵ�Y�.�G�7���S��DFFN�8q�k3j��r�WM��88q��>��o���+c��q_c��x����~�u-cm[y�ӥ��G�
+UӇݭ��ҋ/VW��n�z����@�y_�a���5U���Z�n=a��o�w�h��eR�7��t����ӧO�>;w>{���oݺU��T-����$H><3##.>���1�8+`����8��u۶ZEU�D��̟�{�)I ���٬y��o�h�j.qs�z�A!����++U'%D��r�'�7�x�֭�M���g Pt�`q�.茧�ҥ�͛>�l�#�=QYi�K��^NJ�Ҥys���>'�1�
+c�njO�̛������D���5k��x�4��r�J�!��i�()'Ś-�5�hew����V�(J�F��9���_BBBՏ�;ּe+P-����'onoLD�J/��?wN�|��W��e�fEQ��T�v@M�5s_;�Xg�qV�c�ٺ��{�������
+��.ڵ��]s�2�.
+��Km���wAaA��9,,,';�"�}������W5KU?��O��a�~\���es��5C�D�\�H)"<���R�3���.r�۴a�s�zn�[oI:1`͜~��ǎ����c�0��9��
+#>>�����D�s�UR�Q����ճ{��s�/��bn~�Rc_�U�{�\�K���X|��*?BD8�ѿ�f�5.���ؾq㩷������ݻ���&E���O��Nunj1�-x
+"�X�r�A�9����!����s'%�R+/�n�v��KD��&IHЮ}�n��
+�2��f�=���/��
+�� IDAT���5�k5��.��Rʲ����;�^���j�{u��Gv8 �Fq����ru����k�nضe��;�<�U��
+c^��
+c
+�4��G�KlE����ڽ����F?�S���?�����Dž%�I{�,\�~4s��4@��j��9����u������S����8i��3p����X�����BJ�YTm�ϳ&bkW�6�j� An~��ŋ�Ν+T
+�3��%;A @͍�O9 H�h��2cƌΝ:I���dBDdd���뷢^y啩6o�B���.f�qV�c�k���ӧO���%�����[��
+-DE� щ
+p�\��$
+$��#G\{�����?�5�Y��� @E�k0U�R'���tgU�\?�K�A �jA���ub$ @@�������I�����.TM{�'��G�9o��^g�5o�y�h|B�����b�g�1v907����,�
+sV��bE#$$����͛4^�ha�Clw\|b�j-�r�=5�U2�g������ם=��Z��֧B����H�j{|�{` �Ǎ������nݺ��
+B�{Y��k|�p{\||jjj�-81`�5<��1�j��"�����#f�&6� ]N�0!99���V��<��3bOLvu_��'lYZZ�9���rj�[�}z�5��"�$1t�7�|S�C��С�{�A��9��TѼy�$��4�#�g�1���g5DC���s��O/�嘩��rN��{v��z)�t�[�x�)_�~�Dsݡˡ�i�f��u� c�0��9��N=�B���9�����u���֬�8�~։��_Dfo .g\l��g}��f��|>R�jC$���Q#3��ѳ��^���_��ߴq"I��)��������ӫw�?��]-����<�1�Ux^c̛�����y/��z � ���Td�˯�ұ}�+ڴ��������'������]�ug^�����OO@V�XH���??|�������% 0�`Jʼ����ܿ�e���/\bPRVZ��v��N��SW=�<y�?�|������2~�c��G:2Ƽ$%��bc�1�Yc�1�c��y�1�c�qV�c�1�㬀1�c�1�Yc�1�c���c�1�g�1�c�1�
+c�1�c�0�c�1�8+`�1�c�qV�c�1�㬀1�c�1�Yc�1�c���c�1�g�1�c�1�
+c�1�c�0�c�1�8+`�1�c�qV�c�1�㬀1�c�1�Yc�1�c���c�1�g�1�c�1�
+c�1�c�0�c�1�8+`�1�c�qV�c�1�㬀1�c�1�Yc�1�c���c�1�g�1�N)3ˁ1�g�!������`���I��c�qV����N�u.��ˊ+�������ʢ����1�Y;����9s�r90V_�nݲ}�.�=������pQ0�8+`�%��3g����`��s��W�Y�E�Ϊ��V�����[XPPYYy�N4a�Ĩ�HD�2g�qV�NKʎ;SSS�(����d HNNv:�\�t�('';//�������VV���]��!εjժ={����s�3�8+`g��(�(w�L.
+���@r2 ������O\�tlee�J����Q1�b#��E-����������2���㬀1�Y;3D�����<z�K��:JIND���g\�t
+�Q|��j�X|�����X����/�\�m���DGEq�3�8+`g�
+�@��z���4���Ci(�X�v��rq���Qll������������KVM��Fx�0�8+`g�B��e˖�������t����{�L��������k�"���
+��͛??��@ Z������g�qV�j�k
+l�����h�~b��_V���ODd���ݜ���(/����8r���<,,<((����p8^z�%CJ��!���g�,�@���!i��9v��˄�w��q"Z�v� ;3��^��[ZZR���?��Gs�P #�9+`�qV�Ψ�
+և�q��\&���
+�78].!0�u�X��˄�YHhhBb���а0C7��e�Q�æ��.X��������`.m�g�Y H"�H�z�_\&�����BD�tA�cYf�c��(�BQԠ�`_?_Ð����;������W��V?'������1�Y;[V PJ�ѱD2��p����X;�ׯ"���.)�0�������Ւf����Y�{���[�'��$����㬀�� � ��{�H_�_}UQQ�%��9!)�����kI@�~��\2��әy4#7;��ϥ!�HQ�:����K�J����p�
+c���A�����v����۹s'�c��СC�4�0�/��
+�����\8�:��b��^i�WV����?��;>�*{������Lz����T�b�����*͊�]�gCD�+��EQQT,����:���{�$�g��DŽ$�N
+H9��N&��v�{�8-f3�D�T�f�;w���ʖy��gv�DJ�[���B��v��x Q|�t*f��U�02uKVv��Ȑ�N��m�8���4j�? �T����T��&CmmYI ��C�P*z��JLO�W50'�q�
+B� w��zW���?i�F�E �����"B����������+���+eYNHH��V<<<������h���664��~����?t�����4��@��甒���9B���Apr�������htH�{�������@߯����9߾c���EE�������ֵ�X����߬[�÷�t������^C��B�"��:`�xPP !�Yr;+�$��e��
+"
+d��}�I����
+����_� ~�9����A�h�:�N�m��P��ϛ6^5u�Ec�l�駬��N�������:)Y]��8�
+4"� �0+@]iŌ�2~ӝ ��c�_p�1D�#;;���<U�%��Pk0��cb���n�7����֠�����ظ��':���p��t)�|$U^ j@l�8�@�@�!�Yr7+p%�s��iC�7m2�"��$9��8�Q�%����u"�]�f��w+���kjj��:�x�䖕98��꺬��K��
+�6FaV���
+��]w% �� �Q������}�-��.%&&�7��.�5_a�r�
+���~���ܤO��LLH0�L�&Onw�����ߪ�K5�7�������9�Tj�J��DaV��:�puB�x#&ˑ��J�����"����o�@��ɤ��.??��z���8p�YM���o�,�~P�-����J��E�1�¬ut������)�Bî�N6�
+�+�/��P�v��E DQ�m-����BAp:���E�]�,oټ��������lw� _}�
+��8P��
+��
+E��KFaV�.����xMi!��m���K���*�5�~n1�1Pu"~�~�������*٪$Iڳg7F uc���Ͼ��n!N�t:zd���Һ�V7�RQ��f!�
+Pך[��
+qN����K��ܹ�PGjjj�F�H�d����A�mۆ�B�b2����s��W��lŲe��~�ۯ�n5́��322$B����U�quj�*� BuI��V}5KH�eWV���p8֬Ys�u�a�jWnn��� �,��m�Z�R���6�J��p!7yxx̘}J[Qh}��ϣ����p���xs�P�b��V��
+B]��m���>]�
+�w���� !�nVຢ�k��G�U��l�|��+ԍ�� x���ӣ���0�� �t� �>��L�tz�
+B���BD�Y˛
+���1�i2Z��|c�P�������OI�
+m�l�պ�0V����־��;�>X�| |�p���b
+"�f�k��ȬU��$��������>r��Bm�gdp��1�� �M�N�'��X,.ԑ���%K��9�w�}_QY ������>��~�%2���1�!�
+��1c�^?Bd�-�{(0��՟|���2Bedf}l�YA̿c`6[���0\�]���W._�!�Kf���ŋd��D�Ps୯���$sƹ��/�!�Y�@��1��*ќ1ݠ!Q1�a��%��1�Z),(}D�U�C��*�
+�ݞ����B튌�|~�B�����?2��hu<_�B��՛��SAAA^�fȍ�@��������x����o�È!�RyYY���X��ɼ����;0b�]a��̽��yyy����*�?�Aۦ�P�z`�_���axB��� �*��dho��X�u����T�7�.eLƠ!�d��ݲ,����N
+}���qꭗ^z�h���}�cਃ��kM)B:H����1h�.�x��J`��2
+�\�6�Ƽ�����W^]�x1�
+!�]�v!$�
+
+�Av��A�� �q�9g`-��@JZj~^^t�~7�����U
+�}����q%��#�w�-J4@F���:��hz�SlW�¬��8S;�t�u!���Qw�U���t|��g�?����C���ן��\�6i:�Z�`� ��N8��֭{~�"�j���{��ow2�$IO>��ĘH)PB�!s�m`��i~PƊ�����A�N��خ!�5�A��P���*��~���3��Af�����~ĸ!�����RJ���\��r ��t�x��nɔ��v�\�����b�'8�5!jB�2K�[��jn�*[�mP��A�¬�E�T)Ҧҿ�&C%�r�$��QSi��*�}��0���$��^�t:1tHN��q��Tnk,���VWWc�P<<�?v�����JKBd��R!j�ZB�KX�W��p���b6�gs2�9��{M����Z^
+�Z-"?v�رc�^z)F]��
+8cݚ�l6��[�]���ZfN�(��8�p�����!�0+@n�pꩭI8T}xo}N&?��PS7yT��D�4��j����ߏ�C������g�ۏ=:f��r_yY٪?R�B��b�`��r� B@)�*��T�$�rs��Mդ�$��p01q�Ν=t�KKO���ߛ�i�7��_m]]w�b�{c�!���RcJ.����#��V�Y�r��wV����L�W'�kl���j̈ �z�֣=X�SFiD6Tn*���:ܜq���}{<o/��-����m�l�M����)�~�.����gRSSz0���S����w����`�ץ/����d<���������#U�[M�l��G��)u��
+����h��z��H�����6/vk�{�˖UZ�;_W�y{�ަm>�3������{ty'aaax�CaV�ܻm��
+Э�-
+��ѣ���C�=}�Vkw��Rp����EcS~�'�g~_�ɺ*�hmV�u7Gz)x�@rr��B��d���Ox��^�}N�;'jw�ܙYpoúI^��N���uEϸ>O
+��UJP�,������?�XĶ�,[��$9ݲ~���f��t;�f�w2�����2�ƽij�����zi�:�/u/�?����Zu�����F��T�t�
+�y[����:�LG�4w�߭P��G�g�C�!�v�-igE���/;}fv���8�)l̯�[�=WX$�����v'��Wκ̜g����+{�ӷm���
+U�6쿮�_>kc���Z�z*Z��_�/�r�Ɇ2&�ɔ6���W���k�_=��S~��H˾���&�[0�[���1�!紇�wۡ�.����yt�w�s�qQ�ɫ�ի?~��ǂ��OO���bw}�tFL���J!v\gI����ꎻ�폄V��ͽ��v]Du;0���7�|�Ye�Yf��b�Le�����D��RJi^AA�lí�wU�kpT��K�~��W[��N*�P�������b�)��U���Њ^wF�<��j�(�S��9�t�V��hcG|<�\E=:=Mʛ>ό~}��Ô���|Em���VQQ!
+ݽ�p`�{{{�����^�w������7FaV��s� P
+��PB�6�#��mܰ�tlX|EsӺ��DN ���B����{�F����S!��]0ɜ�-�+):(��f��l�1-��huCm��'�Ƹ�H�kch.������h7�>zӢ�fD��a���x�U>�*�5��ۊ�m��5�W���ռ�jj�|_�wۭ���!�q5}�������q}f\j�(��UZ����-9����'��<;�J�^w���Ml����a7���+<|=�(˷���[����mN �<ŗ&W_F}��kQ��}��"�0+@�{��R�ӻ�(��{�������ԥ'_�E~�/�ɘ�Z��8���5�E+QP ���'r�2�u٥�K[���Ш�����7��f�όE(z��~}NYv���ef��Մ�G�^��NtT��s��6�����ڌ+��۪_��p��l�J�z"�1KϷ%�Y����ȷD�l]��d7}�1��f�<��;YwZ���`�7�ZM�P��Wy��$�x�������Z�&^*r�ׇ�d��~���$""��C1=�yLhw.)>z�9Y�S��)���Dt�����z����~��|z�a��֥��<¬��Y!=��SB$��?���o��
+�Z\�4�(�~�^�����in�r�F����MNO^L�f��l�#2>�{\��o�՟d�e�k�d_��NxDD`@@Uw*��9�:eJ_m%���R'����)
+�^ _��#|�����n�����W���
+��3ڤ�5�c��a�_�R���/˟����Χ�1�Ir�h.���6lR���#M��F�������/��ƽ�N�ғ��xY�s4�@^�J^��u ��E��7���'8ڌ��[�k�^��U7N�]�|�Ouo<��\�7F�߰�1��I��c,''眎����w�ol��pf������7��'���i��.�n�观����:�ۅ{\�{�QK�'��������7&vaN�;=^r���-��:R$��{���$%p�ua�����yp�͙=�[��A������^���,��������3���o;t[��,�{���ē�����+]��Kx����>�nc��y
+� 0�ͽ9�9�&��to�MfnД(�~��`o�[��.�o�kf�7�-s�Bo�l�$������{3oo���d�s,�f�tk�h���K>{(��渐O�ٳf}����f�wϙ�R��vKf/=\��![
+L�[
+��V�nc�Ҧ7�v�O���q�A�J6��Mas�����\N�=9B5�D�n3⬆CM�gD�:��?�M�y;�<���Ԃn��e7=9�c��q����{����?��ǚ�f�5s���G�s����`�h��W=���83�Sx���m����l��kՆ>�x^ot^=��G�_��Fݛy���#�
+й|�j�U����0kg�;��F1k��#C"�X���j�`���l�N3d?�SG��'��}�U�EVi�+m��7��f��7��0:e�*��k�nT�
+Ҩ^�����t��>ӧO�p�}�B�~�Ɓ�{�}��>�?E����|[�>��?�am{#��܄.^=�(CnX��r��w}X2�!�+�)dQ�5��_�u~��l9ZK���wO�{��U��E�j���9�������t�=���~�TUU�u30 =|ȃ>؝GDV~�#04�� �3˛��75�S~�y���y��
+mʴz���>�j2a���]t�8w7[�����8$=�A���E�d�O���|�1��-/��Ln�������䲑⓳;�<¬��"#箁�z�B��|ϕ?6H�zyL��C&IN�3?s(�q���gHSB�~+����{3oo��}v7�F�u�EŸ��8�C�����2��h������p��s���������Uj��U����w:���g�����V�4fp��H{f�ׄyQk���)�B IDAT��Kn��E�ssQW��V�Q������.N�lv���_Ț�0v��r�����ᄈ�0[,]>�����oٲ�[�pw�j%�O|��%N>��//|��U4��Պ�g���]ov�����fl����Ѫ�N�餣�>YZ��==����� �@i��o��_�%lW� 8$$�ϧ's�(<��{�u�%cbU�@��������=48��!~=*s�f��ls�<! $F�}pPIJq����hQ:���?C"ϛ���p���Y�f?����������t2�Y6��jwl��9憎QׯTj��O?����N��+�fN���S���H�u���ܼ`�//��
+R�t4��/jE/7zwȻ�E.�S��y���a�
+آ�PhJZ�1��n���u_��
+�y;m8��������I���ؽ�7��F�=�� #�{��:�6���ת >j���en=%��Һ9�i�<�Ul}|t������eUXF���qd<������AE ƹ�^������X��|PYY��ҥF�iy�ee)))��T�
+6nܸ�v4��j}��WW����d����9g�QJ.�<�o�1v�X2ꍣG�.~�={�ʌ��h3�-N)�K�-7���+��n�µ��]L��M'����S����i��)������PR�� �MO�[�Wi����-]l6���/���S�nR����mɰX��胷���muw��y���s��`��Sn���D�y�Y������3f�r:��>�39��?���/��1D�I�����쬰�������f�����ںu��a��ƌ=uڴ��8m{���n_��_�__[k��l�P(�\y���7��>���r��WYl6J�(�����[nY�x����!�Y�!��y�?����a�;�$�Brsr0�輱r��\sM���x��%/��r�2���ۯ�~�z��iӞz��N�s�m���������������^{��ו���h~ݲ�_��n�@��`��P(>��� ?�,�;�Z��G�1z�|�����P(�?���+[>71��k?�l��_��>��k��d!YYY[�mu�JTYQ���1������^�Z)�`1����� �0+@}&2*��?��u���:~�Ā3��E�-���N��X,gt6���#����p�
+����zQ�nݺg�������?o2�C�
+�d9S�M��l��狗,�����o-��5���R ���ß��aAaV��̰a�7n�0b�0J�A���+a
+�d�����qw����ګ��{���Z�.99C��N����1�]��9�f�Z�lY^^�ܹs�}�}��7�r�K��>y������O����\�nii=yu%@�F�ͷ܂�E}"%%像>n���8���[�C!������������,�ih��RW> ���Kלُ?���}ޕ��������Ѹq���K�,�;����/�8��
+g졇^���~�M_����䔔�.
+��а��jp56���GDD\u���wߐ��o�C�jjjZ-�R���?Ə�qF��p8��jJBbb�.�>[���n�!�z��ּ���Ν[ZR���sfΈ�-q(!�woIq�o��~7�6�uذ�q�v�ڵr�ʕ+V�{q^n.��m�&���l��Ï<�k=<����e�@��B��))˗�:r��#�/_~��**+�.\�姟��AF��w�ޔ�Զ)����{��5B�s8�1����_w���͞sWV^�+LMK�������h�Z��
+���ӧO���ٸic�[���6X~)�:^�Pmst~ӛ236��7�k�U'����Z~�2J#
+�m=��M����)�~Qh;}�)���&m��ߋ���4TZ]��j =�wsA如�
+���m�r����7#�����>���;v��uÍ7����k��u���!(�� @8D�����3�@ڿ�8x���ߟ7o^[P��.�$��
+(!�u�=���>�(!�z���l߾��s݁����lٲ���M&��+���`���oڸi˖-O>�DhH��K�J�����O�Z\]�UJ�J�������d��0t��+�d]�V4gW��%��x�Cz�D���m)�*�إ�T��ټ��+>L/r?%8�<p��q��eJP__���p
+Z����>�Ȫޟ8�2??_Ƙ$K8p�=�hTׯ�{~Quu5���c�?^SW��p�DJ�����BB���dY~g�r��� Q c�?��j�r������|�lٲ��k�Y�uu*�fٲ��[��d6;v�6���fo+�������C'j����E���+�ow�y��t�ñJ��C{�
+grލ�x������Ԋ�qÆG}��K/�袋\ߧ��M�>����c���'�����;�P���t��F�b��\�.��@ii���ߺZy��wp0Z�����
+!�3X�uhӦM��şr�Ze0̝���u_v2�O֤���9��[o�U�T�ر�_~
+�뮻w����=��;���:�����5�����C�*�p�5��6�UT��kEavl���RN}�v� ��e�Yf��b��U(���rgQ�tc~E����@gĄ� ��*b����ZΫ���1�^je'��(���@��."���h�Y�5�Z����ǎ}��g� N�rՄ���%%&͘9Q����j�UWM�j����W�x�`�� ���K�>�Ѓ���x�A���
F�E aDBw�������~��1�f�o8�G�?�$�����(��mǎ����.kݏ�,˹��o����I��z�-�BV�\i2��/_�������/"<��︹
+;�j�>�ymD��������C�#���� ����V7Զ(7'��|m�v[��{��k)�^�z_E��G�D^՝mn9#��wsFO�`t6]'s�6%PR*\�®]�c��W�Tf�i�����,Y���s��sG�=t�0(**�hԮ$����R����rg-�I����cG�E�o붭����H諯�v���w�BaV�:��O��EJ[�Z��j���by�� ))i��=������J``����h��W^1�� n@܊�+��
+y��J����u}٦��e��JJ���*�����AJ���_�S���8
+Uf��Մ�GǶ��M��mF��JK���<ڽmnwޱ��ͻ"9�e����~�;�k���.]�]�j�G�F��c�����3~��/��b_|��ٳ&L�����/_�RJ���d�T*U��������㌓.�@HJJʎ;�N������6�Yfԍ��������̙��CaV�z+--����o��̀����ݻwO�<�V�eˬV+���=�J v�����k_{�Ր^Ԕ0Krwgi�k�lk�گ�k9u��V��=.����O2��2��5
+k2�{�GY;^i�m��3�[�m9���l�e;�E����3:蛜���g�UTU~��7�=�茙3Ap�
+��GFEEEFf��2��_�x��m����pcC���^NeY��{K��U(r�6ddg3֍FM�}��Ӧ��`�B��^y��7�
+"��<?'@�0��ܕ��-�V���o۱����h6����M�~,**����������O�P���9@�;�'C�6"`���Dz�mN����g[�b0���3c��̴:��]��;T*缣Z��(4�`0lټ%%%u��a���~'�̘9�駟���Ϸ��1sƌ��[���(�:uj�ڡ��-|��W�js�+++��N��J��k�0�{W
+B�_���O>��¬��֭[��gJ t\̡�T��<���[o��˯�J�ʢ@�:����v83gμ�;z�%_^1���:dVes�n����U�vPY�&�ң)�P�p&���j�-3.Ы���idೇ2��1w��J9��)�L��x���J{�ժ;�Yoi�<'.������V�7ܩu��e�l6�t�Z���i4j�=wߣ�yJ������������xO�>m�� �~�ӦM[�b���gll����q�(��Ꚛ����:XTT�לs��P�}�v�J�r�����sױD�9��Z��aa�}x@)ݳgOVVV\\�#���צ���":�H�ԯLm]]݈\-$Yn��������̌Q샄�����t�����T�{�`�����ĥfۓ3���ЃQ�|���ˆ��x��r�uW�Pvܲ���w�_'�{�sk3��|�M7=��_<��3�֩���RJ�J%���WTVjkc�:]IIq�~111�
+���/fee������4I����y�����}�������ϟ?g��I�&��
+��`��ǍNg�KE���U*��p!�ܽt`PKo/[V[W�f�9NI�U��0���$%���� �W���;������|ܮz�~at��C�R/2�A^O���x�j���G�SB�~+>���r�r86����55����V �$�����@Ƙ�ns=O����v��N�W~����{�cƌ�+Ϲ�)9�v��s�-�ph��vʗ�+��?���j�RJ{v�%$�����ywB��=uuu~����7��s��1�1k>Y3`��3�Dz��z�#�;-
+@���xN��$���xy{�gH���ΨW�C�=���_�}���Gz)�K�k�N<Z&M�9�B�ӏ3�9s�B�����3I"��-C�{����C���B9�NM �S*lr������ҒҦwS=�����?�3{�N�ð#�0+@ݰx����*%��#j?o��������v{zSS���9�p�im���e��go;eoV=;.tv��I��O��v��nw�8qB��j-N��gf�ر��k��8_���&>�3pp�΄���/�J����|��Ej�P�(��������/O���b��}� t��d����E�� ��fϹ���BH(r��\��ܼ����`��7�~;77�¬���t>��2c��7!��O?�l00���O8 ��ŵ����A��������s�blQ�!a2[���As������'1�DaV�ܲq�Ƭ�잕r(!9yy+V��0�� G��þ�(��o�XPP��E�s������鋴PNv�ٝ����EaV���h�bW�B=<�]����$:�Kl� ?v��`p5/�%[-��{� �0`�������bB�U���馛o�#�0+@]X�������T���Ȍ���0��,/w�^��crr���{��͛7n܈{�\>�8�^�� !�
+�w�iG���NJHye�o��� !�Y�Pbb��|
+�=(!�N���/RtV"��,����s��@(RRR;���4($?��A�/����l�]u�`�@�n' ������TS]�Iݡ�ZM���꣏l6�*�f��$���+6��O�MJ����/cT�Y��<x�D����DQDz27���Ip�� !� VUU����+h�X�9��� ��yz*��"\���+UBaA��
+pW��9���:t�PaaQ}}��a'�P"4�ぷ}���
+��D�ج999����S�T^��J��Rڜ!��$�WV?��3��B��v<xp��]���SSB�S�/_��Ega��d2�����:�.3#c���iii�����5���4v�LF9�N�TUY�/>1!���G�ш�(���I��'��j4jOO��#�����"t:� �M�Ds��ZNMLf��矷X,���9
+
+����om��D����y�v�]EJ(��L\�� 6�=55����Z�����Uw�1�����Ъ5#G]����zB���UJ�N�F��/��߿�B�]8�����1٬=��]J����+7�xC��1^t���+�ؘ���K�d�XLfseE��dR�T�������`L���2+++--)�h5��A��S�����Z�6����mv��a���v�$I�s
+���zh�z}ll��l1�M����6���p�l6�!�U
+Iv8Zmg]CCUUUTT�s�$KV�y��A%%%C����1�-�)I)�PO�������C��J]#d��l��������������#9%�dI��$IN�S�$I��,�x{�5Q���UUU��
+
+�����,I�$IM��N�� �5��t��i�h��m[��I��!�
+�y��7�&�d{
+�>\&%�)IK^zi�g���k*�P��p�5?�Ja���f�F������ &D���+++����h4�AA�������o䨋T*���ӓb��""�O.�דZ&˒,gge������}{�\~��Z�U
+>�������d2�F�ѨR���RWgD�ѹ���.:::22�董C����Z��������$Y�$C�!';������j�����
+eDd����!�ɩ�@Hh����)/p�$Y�$geE���2th��}Q�Q~~�~~��̜NguuuA~~}}���4[,L�G�����3�l�q�_;wVVVU64����С]�v]y啸�B� �����+Vh����8��-���#G��8��%���lȐ!���=r��q�N�9c@����T*dY���T*������E�s��J/=:3#��V���˘L���J���l:OOA�"#����eY&���f���)//�hkڼ���~�馛pǝCjkj&M�$�Ҁ�����z)� ��Rk0d�g��$����9��S�e�8%�P2bĈ�ǎ�Tj�^�9���Z�W!BPHHqqal\�,3J�J������2M�嵵�55�7�tSRRRRr��+��_;w���ѣ�I���w_VF�B���:�v�!�1��{��z���������1o�R����բ�h8�J�"66�����ycj`����=rD��_~�Æ����֜�%��vJ)�$&6.3#�����9p�ND$Y>v�����,��b���s�[�*�R����8h`G�J�>������tJ:��3�jvR[[GN��$�vGzz��}�J�K�2~�eC��j��,5�p`�FOMI1��p��9B��*
+�Z�?&��Ȉ��"��I�@8���tj4��1�C��"##bcc�1#;;�`0(���ӧ���K�6n<|`�s�}���\��7F���_�i�w�}�&B��H~^�gk??}�)�w��g�}��Fgι��S�V����QWo��SJ�v��lV�T�S���ep�Ȳ����b�Z
+
+�0��K��ҭ6��
+1!��t쏏�e9 ��m!���733�R�jJ�l� '��ݫR����:Nb ?/o����;�xy{7�<��� �[�/7��yy��^�^
+Q�8p���v�@)�\!*.=:%9�f�5��@zzzRbRhX�S)U!a��I'�E�eBimm��c�3�Ң��w%�3f�X�t��#T*UXx�>0c֝��9/,~A�$��l���������oڴi�_u�:!�Y:̜=�b���Y�_�V��ʫe�emt6d!!��6���Ǐ���KKIj�;RS�s��Uj��1cTj������6�
+���e*+*NV��(����$�0&Bm6�����G�����%�:���2��f��u8���XEye�~�~~�C�
+�|�cO<�vFt���J��!�HH+))!��Pk0���z�t�Q55����J��A @����� ��:�T*ETttB�q�p"�bVV� q��<�Q[S�p8�v'g�"3v����"��6t�0�B!��,�I�� 999���R�o�=w�SR\��3O���Bj�k�\�vڴ�aa���o�y�I�yyk>��,BlWp���5 I��iR]S��'/Z����=+P���Y�q�F���Դ��}�j�F�R���k5�����ؘ���͞��
+�V����)�j�(���)"�"�;^ZZVR\,
+���GfFfuu����F�Ug�MOK���*++���&O:q�DL\LMuMvV6��
+��F��Xl�Ņ�}ذaڄ�'DQ0��fKTt�(�V�96v@P`PqIIU�l9 IDATE���_Pp�(*�NgYiidd������PZZ������o��#��JKJCBBL&S^n�0d�PƤ����ʪ��¢�C�P*�TW����m߾���|��I��}��/?��S��}�݈a��|�����fMJL,))����a���_g0PQh�ox��?X�
+w0B���PMM��+�)�ˌ�����hh(F��(�EEEZ����q�9�2c�r8j�89t�`��Qy9����)<<�Ç;z�XFz�R�t8�>���1�����h�S(T�5U#G�P(�ǏWk�ǎ���wr->����j��?>---))���>/'O��A�p��O�gQq16b�V�A0·�^WW�?&V��Դ�Æ�����3��v����� ����!!���Q���
+
+
+J��G��T)�J��RScbcu:]Rb�$I�f�i�!(f4�233cbb�P������o�����[o�����U����9˗/���k�u�����Mݒ=z�o�����
+cƌ��*��c��<Y�!�Y:�|��Wy�=�'F����ٶm+F�]dYBl6��ˋ1N)�ΙB���:p����B��ɤ����P�p8DQLNNE���������$'���}|�����j
+
+cbc��� ��� ((dY�������L� ����kί�F���( �8p |}}\������͕e�j���*�ns����&�����2���.�8�s�9���eɵ���̨h������p-˒J�>p ^�$��:z�X�V���2��ѣ/=ڵ1�����%��a�ө��JKJ]}�Lf�ɃV(����3u�TOOOܷaV��C������p�3�P��]��7l�p뭷b���B�XDD���L8~\�R{xh=<==<���{xx�My�!!��z���y�A9gJ��b���������T���
+��
+<���G����D!(0H����J8g�T��A��z&ˇ����]s>��t�Y
+������z��]�ѣ�">��㓕�5r�H�XNn���� ,<����_ZR���7t�p~�o,����(922��?�DBB��*�N߿O�'�9�e�9W�����U�C�k=<�ƌ��� �1W�@)���۞]�`�ڵ�1���A��������v���b��&M3v,�Y�0+@�3g����p�V�AT����tʔ)ލ}t t�q�T*"##BCCc����곲�MƆ�����P�F;`��Ç�T��UTT(J�B�9wu��j*++333JeI�BT(U*�J��(�J�F�R��������}|}***�����}"�"uz=gl�����ŏ5���gԨQ�[�'z�n�ȑ�ɆZCyyYAA�R�T��:�^�W
+°a�������v+%!���C�eB� N��f�:%)5-E�T�� �B!
+� �
+�BQ��6,3#�b1���8�J��yzy{{h���ظ�cG��1�1p��o�]��8|İ��F��BBCg�y�O�����j��Rj2:��J ~��W�SƔ!�
+�y��>p�R��Z PF�32~���{�)� � 6����z���K�TS]UXP$3Y��j��:����PXP8z�hJ��h���3MZ����&xy��s�eY���S�;���t�����ZY�}��|}}���|�}T[S[Q^^\T��j������Ԕ���H�����QƘ>�>>���f��*�+2�ҕ*ehX��t��b���
+d�SJv)=-����LLxx8!D�dYfN���p8��d���6���p:��$y���
+�eY�媪���d����с�A�����V�90`��ٳ�s����n���eo�L�ɓ'�t�M!��W��>WTX������_Ϝ5���@���;t��/.�}���`'��2u��IIKw@�s�J����&�?���o�eҤIaa�]�\#EY�f���t:�Z���oYY�$I�AAj����gȯ[-_��:C��h�d�L� Я��zǎ���uiii������W�1��
+�PB!f�������`�Z�CB����f4��+��{pP��?��@�Ʈ���#�s`L挻��v��b�X*++�F�B����
+
+<h���_Ӷ���ݻ7�� Yf�qqz�nϞ=���6�ퟷܬ����&N���G���K�~~�¬�1E���^-���I�S����ӦO�}��0I�n��fI�ܹ�5�ͮ��}v�u
+}|��'If�KV��������Įìo�4�,7n\� c����#?��szzƸ��,X�p�s�^wmrR����������݊f!tr:�g۠��â�s[ee�-��m��Ȳ<mڴ���N��3�U�T���&$$����*�rɒ%�cbp�"�YB!�B�E1!�BaV�B!�¬!�B!�YB!�B��B!�f!�B!�
+B!�B� �B!�0+@!�BaV�B!�¬!�B!�YB!�B��B!�f!�B!�
+B!�B� �B!�0+@!�BaV�B!�¬!�B!�YB!�B��B!�f!�B!�
+B!�B� �B!�0+@!�BaV�B!�¬!�B!�YB!�B��B!�f!�B!�
+B!�B� �B!�0+@!�BaV�B!�¬!�B!�YB!�B��B!��9J��,��B!��Y��?)�+@!�B�B�YB!�B� �B!�0+@!�BaV�B!��p���Z�� p�XcO�@9�c�(c��9�_�I��mW����#�B���ْ0L�2!�T&@'��(J�����E����8p �p ��@ a�� �! P�R.*��p �B�yw�x��`����O8N��4�����C���O�z�[��^3����#4=Y�̨��Y[d6+$�O�m��RJeB��8�(qe�ʉ�-�7�����gB��K"d"Dt#T!SF�j'�&N�(S�ۉɛ�fw.�;������{:�+Ui]��v��Q;9��芃�d�u̔wن��Ҫ�\]=x⯷O*��VvѦ�W&V��g�%��t�0��~I������j��'?M�1�Z���pu���e�����7��v8{�?O�˜����9e~F���3���#�T]^�e߿�{0���FXH��@����"a�)�x���թL�[t��_?�Bu��?�H�xfN
+�~��-��4K�("��Ñ�3��ύXuz�4]*{t������u��wu�:���*�!f�W�^�sݳ���8�E��+w�Ԋ�$��0��փ��N�&p� �T&��c�� ��RF(��4��2�� ?���qF����)H"�2u*�ġt*��DTZ 0�ݪV$���SGU�l�1m�����x矮�4��������u2���.#W�}��j�h��kn���_���5�K�UIW�Zw���O'�B�~9A���k����Q����������7Ǫ��Q�m��'{F��\���QΖ�f��K��v�#3K|E���?l����თ�3mg��?/ф�����xh>����ʴ��|{���?å�y�$\j�Ck���[���8��t%w��l�ꎏ4,�w���fPݍU�G���g��'8���aV�P�!*�쫦���0��_I�&���EE6Bsԥ��6���;1���˥�fT��W�r��Z3a٪؋���L 6��I�λo;��D��S�Z��z�Ϊ���R�@8'x��:�)p`@)�d 2�hS2��_(F�hz��
+���s�J�H��ۻ��(�t��9�t�����B aI$(Q$2��dq�m�s���;�{}�}F�3� +�T�A�"";H�� �����Zι?:�t�N��Q��G~�ӧ��;�T���� �4���l1��>u�]���P�h�=P|����*�F�-.��[�;T���bJ����ރF@�ň!+o-����W��u]u�Iz�K�����*�?+�n�ox����φ���_��bc~��*��G����s��v��o�;����懽��������ڎ7
+NtZ����v�ܗ�����ҿL*>[hJ���}�q�8�D��\6��L��!����a��2�Fm���J��w�R����>xd�;���|So�L�.{������7��h�a"�?a��������<���;��/�T�DSl�)^:��V8;��}�Gz�u���~w��j�1F�s�zyVF�0�~s��!�6(��wH��`��6�P:�S�$>o�=��"����?N�No)]�U��Ҙ:hS����\���z�n�f��z3��H��@�:<v�Bӣ�P5u��q�cՍ��"��}~��.�O\u�1}T���J�m�~�����U9���
+Z���#�^�oK"�YB=D��s,�p�����1����~��OfN����̓��"R:���&v�p�SV�ϺQ1�?m���G���Y�^�yUծ�2ο-aU|����ç[�\2�4�Q����s8a�r`(c�qJ�qh�E��NHp�@�3� �!�I��("��D2(5��I���܃,3��?�3j�Oym�uiO,���
+��0��&uy�X9�CV�P��}3?z��������xzx��RJ��CύH�2+ݍ�)�^�Ҝ;��E���R��>W��N# �%LDsXH�� �js�N���O��` ��/�
+���ҁMm�*b}�0����sRln��)YS_-�5��o�X��Ylۡ�#'~���k�=4�xӬ;�[hM=܌ܴ��u������/γ���_9^�ท�m���� ����5}�)Y�\���GL����P�ѩ?�Rz���W�9��;��ލC{@=eC��G[nw~渏2�ޟ2��`yj����z��'��F�s��T;<ۘ[~�Q[��Np[l
+����.{��o!����t����x;�B�{K>���'m������yr�W����z���������������5��X�+{�8�{T�=*�-��{��T����h��J{��$��?\�Ƕsg�NijC��� r]�S�o���H�&P\���ֱ:�:fgL0M�q�90NLF'ܤ�O ���apN�4uND] ��f�I�[c~����6)'�]�H��=n�ٷE����y3��.w#���w=ne�f�w��]�I-���}k��+Q>�w�n�ٔ���W�,�T��*�^�d54����~�UH�L���u{����FV�uU
+���o5:�q��R��>�!�W�j�����{��� ����z��$ѝ7�NkP����xn���xr�S���F�9���Il��}��I�-�=m_�Q�h����V5,�8�7N�����qHީN����6��H!jQ_vr_l������k#*R�����g�?+���o��X�~l��7�?����y�U��;}��2��R�&ŗ�i[f��:�WN�i_�+��+��Q���Ǐ�O>+@���I�����^���c
+�
+�vf9lm�]1�N=Pgmw����w��?�
+I�D�GG�.Z-�NE�q
+����F���@L�Q���p\��.@9���8��-�9�D8!$ʨ��>���┛#��v��i�br��!5��i�cer�<[��m@��
+�~q�͕�j.�>^{Q�C�j$D7jfR����Ijr��%n�.6sT��l���֡XU�{����Q+b���f�X)P�+�NoDd��>9����ыV�����9�����wo���e�������o�����'v���E�/<9�mzJc����l��h�v�[��
+D*���Ul�Ġ����Z��ܼn�U��BcϕY�"0�-%+w��
+F�r6@
+�����.�d���ZX��VoG=��#�Y��q�/��z�C��ZB}
+ �X��w$x��fӅ��4V����i�k����~V��}[z�����e�ե�H�*�M��0f��#n��q+���Ҏ*��+����_��G��~��Lyl�+X�Z�?Re>��D�ڍ��5�k�^���*��3���8�pQ��j�-����,fR�C�@0% p�)� \��UK9�@�� ��I��FE��ā�jH�"�E]�pBLId�J�����q�q��]eJ���#}&�P����,�
+a���J�{� r�C���o�����k?�7�S�ϕ�]f��=���:Q��^��w��Ҭ
+�-�z�;���)p�����t�Bl��,��>��Z#n�k#�pGg.z������0��;J ..~�;�p�\�Ͷ���ԝ;i��W����_ŷo�-6G4{�P�ڨҎ�g}F��ఌ�^��7];�����;��5��|�燎L�R�o|�B.��fa�N���8��c\i�Sp0��H��OCl�9B�ܨ�o�8�m��E�D���Mͮ��lu^!�X���ʣ�1��I��L�[\����}j�QM]�X]b1]Y&dmo8���}n�uO-I>�A�wz�5Τ�X
+�_ШC�PwY�wfh9�:�^7h�Q-gș�os(��3��_p�̗��|��Sr�?���W��:��O������Y=>� �pQXZ�v�j�4Q7D�L���I����W��8�2F9��)h�EU��n���&���D��������gUU��� C�z%C�A%m{����"
+&�l��Ҝk��n�g��J��ċՖ�v��x�V{��%��S��]K�]����p5}٢�I�?(k3斓7
+���ܔ�2�}�huM��y
+�P�w��/M�d��`��Mc�����TR�Ζg�Ӧ���2�!�Fb=2���ywm֩f��:��tևCTWSdJ���L:�����A���b����G�S�68!��A ުܽ��J�L��f_�V?��.��r���ju��k���H�qN�0ۑ
+#Nh�7@��-�RT̓��M�9+�����vp"�Ќݲ5E��ܙ����:%D�-鰫i���2�R����$�X��>���7}�O���9��IJ5u�cu -��o�����:��MHl�P����0�U���Gu� ��d:bϤ�����>� x��,,K��vC7��;��>^���Kd����_ML�������7^�p��VY��O���ٓw��k��RR�G���L
+��B5A4�3�̤��M�J�Qљ.e�u�r�9��R�95Mt�3�$�D�x�2a�
+�0$��(���y�
+ ~͓�΅Źg�1?{p�G
+�<<fʗ� �p�Ѝ�aU�w��K�;���_姆D ���/��h���H�ޓ��}�9��go����UK>���+mB��w|\�j�o$p����,������w�4uU�G�����f�~a���;M������������| s
++&�hٚ�91S�L>Pt監���h�"l�46i����Ҕ2pcQ���9 �>���g�\:*w��i��<�����㜀\SП/��xu�[���w8#�hE���}�ȯ�������u�GU�:�����\=�0H�
+���~sm����=9^��7
+B����e�6'�����bz@F�r�ʈ�c�����^J���qҘ��N�^iN�uxl��afV���?@>_u�+.�䒵9��Ʃw� 8B|\�X���Vaу�=t��?�0ʨ���e�2'9!*��_���CT:8}�P'�%�!�S�9a���Z
+]R`&�Z���d&F E��4�!�W���*3.��@ c����i�@�a��h�-�fu4ǹZ$I(�c ������s��7�0�����[^��O�X!�.��YB���f�ݾ���}����?*&�x��8�9�S_?ݳ�.�3k�aV�YB������o�a�uV����c��n1V!�
+B!�F,��IDATBϬg�#�B!�K�YB!�B� �B!�0+@!�B���`�\�!�B��|V�B!�f!�B!�
+B!�B� �B!�0+@!�BaV�B!�¬!�B!�YB!�B��B!�f!�B!�
+B!�B� �B!�~9�lPOHMIEND�B`�
\ No newline at end of file
Added: trunk/src/site/fr/resources/logo.jpg
===================================================================
--- trunk/src/site/fr/resources/logo.jpg (rev 0)
+++ trunk/src/site/fr/resources/logo.jpg 2012-04-24 07:45:57 UTC (rev 3301)
@@ -0,0 +1,174 @@
+����JFIF,,��UExifMM*bj(1r2~�i��,,GIMP 2.6.112012:04:23 17:10:16�0210�0100����Ƞ�"*(2HH����JFIF��C
+
+ $.' ",#(7),01444'9=82<.342��C
+
+2!!22222222222222222222222222222222222222222222222222��b�"��
+���}!1AQa"q2���#B��R��$3br�
+%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������
+���w!1AQaq"2�B���� #3R�br�
+$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������?��(��
+*���o��+�HE+������@Q@Q@P�5kmjɮ�[tk4������MOt�:u�ܟr�V�('�W���&}+VҮ��,�|�9�J:�k��p��TQETw-����vF���f�ew�c崂H'�e��FV� 袠Y� tP���� 袊(����x�K�>'Ю�������r�#���c��5�.��K�#��O֚�݀�r�8�FE{�u�xz�W�#ʺ�>?�{���~r��O��:�r�z�cN�(�6
+(��9�7���
+5ٲAk%q�#�W�Lxw�.���`���Np{��~�����2��a<��w�ż��ڙc��W�L�����P���N���4I�smo�{�k��W�1�b�����qר�Z l}EGo<w6�O��O�#"��T�#��Km,l2��H�����+g������ٞ["Oދq�U<��{-|�o-އ�\j��#T�ڠ�xC!�#"�sP�gV,K�a�M����T�P�(��A#c
+O�J�
+$�|���ݱY:v��%���KY4ۄI��ѿ�=�Etg(QEQE�q���R��I��&L�}���σ�%��\ռ-
+�s[���"�����O��������%'������v��>#��-O�-e��/F_�?�U9��m�JxogZUo�t>䢣�U��)��ȁ�Ќԕ��Sd�"������Ǡ��[/5ʼn���.��N$c�==;����W��MN��'a��`��Aj����ⷀ��&�c�h2�%�����'���= �>��C��-{ė��������]TB3��y��4�}=�V�Y�i��LI�8�O}��?��:����!🅬tXȶɆ���Ē��&��+��i�Ӽc��#ڳI�l}����5�������z��7J����ui���gv_��
+������=3࿌m ��<(nC�\f{#���}~�ǽ{��f���`���4��/Q�����so"���E}���H�>�u6M�wm�}(8�jҲ��V�����w�4���dQ@>�^�I�^k�"� �TW#}ͺ��,�>����=C�ڊ\�-�`�2����'ץ{�/��_�vscPԔ��<�F?�A��W�|2��'�u��d�簹��Ч]��2}x�@\�4veʝ���W���A��jqɰ�6��{���:W!��OV�5]cO�NV��7��J��c'�c^���Ze�7T�N�)��s�O�@�2G�4r:*�� .p6��㹬z(��u1�Y�i�3)�0�*q�����q��`���A�ç�;������Vf��!I&��&ܡ�'��'�d3�(ɵ�~$|&�!���Zaa
+%����x�|�{^Y�__�o�px��y�2���rfF?8>���!���o�$�巄�O6g�܍��G�#�O��G@X�N�-�]6���A%��bH�wf�|(�V�$Լp���n� �At���W��^=�s�-ߋ/�]ЌgP#��F
+%�xs������^3OxF��~�7�m�s��s���|���ľ4�Яg������}��ېO8��k�KXllഷ@�A����`ʾ'�ω�|7�Mzi'�]�?�T���&���5[]oH���}��K"b:qҀ.�EUMOQ��4˝F�A��fI���s���mo��G�nm[]�
+�2��L��#'�����]�k�b�flEr#�}�A��������-j��
+��G� ^.��kU��W�
+b>��+�q�
+.�w.u-4�=d�F����]���i$���� oNc����x���*�ա�֮ѩ�q��D~����p+��_]�z^�ec%�G��z��[a7��HcZ�ƈ��a~�G#�GOʛvg��Q$D�!��pj����SB|�&�0CMh5�eo�R ,E�yl��Ҁ2�¶�Q��ػ`��,��xH��L��7}�Vhuِ�� �"h��Ш�-zX�ۀ7�����5��Y�7�ι�k��ڤ;.�IAU��C��#�W��k�>�%�����WΉ~a����^z��Uk]6�M6,v��-ku����������쵨.d[�$�nn`�)a��<��˟l�}Euq^[β4s)���pS��;q_$�Y��%ky �l���v`���h��W�|J��0�:]/�zu����J\Obc�<� �f�x��S���?5���>x�Ⱥ��W���be�,z62���G��מ©���W����Oe����{寇�b��đ��ʰ9�1`�Y��Y��62Y^�cϷ�G�����*C
+��Y����m{C���-������!#n�s�澅�,�����Ms^�M��.�n��Vȋ��t��Z_\���p�2x��E�������kڍ�ު�&�k��1,8��e����Hx��R��K��^�G�a��k}�o
+�[Y��<�bUrX�8$�����oN���{�n|is�@�2E
+���Uev�x�OYx���i��k��}��Gx������wW[�|=����14�3W��F,�X�$��c�v�<M�=z�P�ֹ������3�>�
+9�$דN�c��:���Kk���-�r�-I%�ue����R�2�#Im淖��c��3������;�u��h�Q>��G��T�*x�F0iE���W�dc ����=�73�x\����+9$F�)��suK�_���o'���\��O!v��Mex{�N���s�GR��ڼ21�s�H�$��c�{�|-��f�Ə��&�w|ǯ&?j�J�?�^ �.�&��V�=��*����mf�<���)���ϊ+{{O���;}��bA��*��Mh|G�C�K]
+t[�関�m��GF��^(������S�ּ%����O|�����%���Z�����Xc��i�n*p�2GҹT�y�.6VC�%e�YD?���G��og�Ě��s��k,~\#
+�����h�|%�?�sY�kZ5���kl�n#���~��;�vZ��3�/�:�A��<Ij��HT��1C����]��/j�ѯ�5Y-�K�Ĉmܰ�\s�+;���|\�S�<�M_ K��u�l�^����_{u��8���n%���"^YX�1�z�]}s�Ю�5�7H�h���2�bbW;���=k���(��(��(��(��(��(��(��(��(����� http://ns.adobe.com/xap/1.0/<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
+<x:xmpmeta xmlns:x='adobe:ns:meta/'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
+
+ <rdf:Description xmlns:dc='http://purl.org/dc/elements/1.1/'>
+ <dc:format>image/jpeg</dc:format>
+ </rdf:Description>
+
+ <rdf:Description xmlns:xmp='http://ns.adobe.com/xap/1.0/'>
+ <xmp:CreatorTool>Adobe Photoshop CS3 Windows</xmp:CreatorTool>
+ <xmp:CreateDate>2009-03-20T10:33:12+01:00</xmp:CreateDate>
+ <xmp:ModifyDate>2009-03-20T14:19:12+01:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2009-03-20T14:19:12+01:00</xmp:MetadataDate>
+ </rdf:Description>
+
+ <rdf:Description xmlns:xmpMM='http://ns.adobe.com/xap/1.0/mm/'>
+ <xmpMM:DocumentID rdf:resource='uuid:CCD698213215DE118592F5600E92839D' />
+ <xmpMM:InstanceID>uuid:943D38B45115DE118592F5600E92839D</xmpMM:InstanceID>
+ </rdf:Description>
+
+ <rdf:Description xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ <tiff:Orientation>1</tiff:Orientation>
+ <tiff:XResolution>3000000/10000</tiff:XResolution>
+ <tiff:YResolution>3000000/10000</tiff:YResolution>
+ <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
+ <tiff:NativeDigest>256,257,258,259,262,274,277,284,530,531,282,283,296,301,318,319,529,532,306,270,271,272,305,315,33432;8DE34FC8B48E8E13702E96080E2271E8</tiff:NativeDigest>
+ </rdf:Description>
+
+ <rdf:Description xmlns:exif='http://ns.adobe.com/exif/1.0/'>
+ <exif:PixelXDimension>2068</exif:PixelXDimension>
+ <exif:PixelYDimension>1884</exif:PixelYDimension>
+ <exif:ColorSpace>-1</exif:ColorSpace>
+ <exif:NativeDigest>36864,40960,40961,37121,37122,40962,40963,37510,40964,36867,36868,33434,33437,34850,34852,34855,34856,37377,37378,37379,37380,37381,37382,37383,37384,37385,37386,37396,41483,41484,41486,41487,41488,41492,41493,41495,41728,41729,41730,41985,41986,41987,41988,41989,41990,41991,41992,41993,41994,41995,41996,42016,0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,23,24,25,26,27,28,30;A7501620BE8867B24456E33E6A849896</exif:NativeDigest>
+ </rdf:Description>
+
+ <rdf:Description xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'>
+ <photoshop:ColorMode>4</photoshop:ColorMode>
+ <photoshop:ICCProfile>U.S. Web Coated (SWOP) v2</photoshop:ICCProfile>
+ <photoshop:History></photoshop:History>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+<?xpacket end='r'?>
+��C��C����"��
+��Q
+!1A�Qa�9Rq����"$2SYx�����&()4�VXv���������� ��9!1AQaq����"�����B 23Rb��?��N�!�:t�:t���ӧHC�N�!�:t�q�����������Sn5��Vu���~�e�Pf�)K�H|�>�Te�R�s��P�gV1�'*Np��_*7x��^C��jb���ڻY�O+jt�F;k�jV2��t�ME�U�������f�'<�+�{F�iR
+�����F��L��fJ���l�Hz^f'�
+���#P�m����e�H�������]:t�t�Ӥ!ӧN��N�:B:t�t�Ӥ!ӧN��?_��;xsf��=/t� z4{ƙ�{��[���_B��=-}-YL�.ÇȷZbj[ي�tKr+�Ot�B�F�,����~?���;
+s�;�����1�7����>���a���[n�N��/�y����O���[�H����L��8"$�� v��@�?u��_��@`HE��KÙ`Kr,P���?O���ΝDL:t���ӧHC�N�!o�A��?fni�J��Uѵ�ҕ�Y[��W���@ǰ�fl]rZ�q��-����kK����Ҹ�?9��.��Ne_{��|���1��f=���>�@�;��Å���br�L�Y������2��.6��~�-G"A+ɞyP"�'>VNm.�W�����3�9�_eӒC���Fr�8��2wU��{�v���V��g�2x�����25ssfm2�5\E�y�N�hJʠ3I >Diq�S�LݵY9cm%ٔ���
+��VF���� ��N�)��KƤ��J�&\��������Y�&�u-�����tΣ�I6��K�0K��5�V�@r���q��>��Y������:t�GO&��Y��88
+�}��A����zp��e������ORU����!D�CݶMi���2i;��������2E�~?�َ����5���T�fDl�/2�����K�*���Z���^1
+��ř�e��y�&C�Ĉ�`Ò˨~3KD�vb�(��5/ ]�Ҷ�V1��
+#�!�;Ҕ4Zm�4:;h��{�6%m�jr0��d&�f��A�P�X
+�r�ݭr�m��v����;MӸVR�ۥA*I)w@�Y��k�3)��*5RO܇��[�V��HmiÐ�e���SN'.��{k���������~?�����R,SP����R]���^q�2��Ùii>�Z���Xdz��y���>��߀s����k��R��3)� ����&9aj�r�g����U� Jr����{vKޫהV^�Z�H�j>[�Ɂ>k1�"���ҦZR��2�W�^�_��
+VU�Ha���$��7��<"K���k���>w�N�:��t�Ӥ#�~�yǟ���O��]T��4������e'V�;��G~jK@�a��P�X2a��$C��p��le�՚�R������8�s���y���O��|�6
+�8Y�����ϔ�O���8�.�g��g��Ϝ�<�����}�S�9�8eHy5�v'$�r�*�a�1 ����3q�$^:?�4�+g�V���1ej�%�S>R1�4���"��]2��L��j�t���fsf��?��~�nH|����lpA�%3o�V��է64��ŇA
+v_NdljU_z,���+7<z��ӿ�&p���&�[�&��/�,8��Xl����`P���.K���zj݂�2.��Tl&ڲΐ��XǏ����X��:☍�2���IEED�y������iPI:A�ke�w���p��v�����$�C�5r9)P��F�D�9(��$�zt����ڇN�:B:t��þ�r;Ǿok�?>�S)�p��K���
+�\�����ӗG�;�uDA�%*�r �[�S/+��N�N��^�$�1mZnm{v�%×�/Gz�C-�D�'/6�*9{IH��d���m�g��'�s�{�=A��۷şg�5v��qG^C�H>XY��湰��:VVc����Ȁ�XJ���ea���g�6�/Pl=�^J���~�Q��ͪV���q3��d��ce2�5NFqԭ)8���Yǽ����ٖ��7�������U��}�S�1 X� D��F=Y�� "�ũ')S(jK1I���@J��-�C,�ڮW̹w�]��xIMB*�&j�_6��X�QW*a&T�)L�O�ě$8'�o�ZpNj\�u�n�ݺ#Yl;
+B�-��o�T�J���ʝ}����ȬC}�Ɇ�j�%^��1���T�G�"���ք�ق������!}������;p�vS-�3�E�����9
+B��/���k�I��t��=F�Y��ہ��:t��O=b�s�6��G��*��mFa�Q�8a5���U��1�r!#�{N'|�A�h^a�����V93��GqB����j+(
+s�\2�k��%���x���dW�)��[j���'[x�u���W�\��vT��2���G.�a�������s�9�v�V���~=iO�5�NCq�
+h����a�W,���$u�!�N9N�*�#Iy�`��d\�i(um��Yg�Ȭ��eFj�pڹ���%�O��|��Oa�T�gϸ&'EG��v#�d�&��\�����v?u"qŰo�\C +��FRT*�B��\�7}���ĭYvl�!Q#.$�������XQ�SE��k ��
+�\����K� ����MZ�U�Ed�T�v6�~d��L=f�I�)�5�Y$���ˢ���J��>s�@����f^\v%�/�� ��3�9����x����6R��e�����?T�=1[r�Rb=����kb�63p3�P����fǪuݒ��ඇ\�.�^�6�R�f�[#֜1)�&Κ����6ii$#z�]�H�B�)��6(��J�����%i
+J�]*J�)P"�(1!��<>D�Yө�eM�QO6d����sdϔ�.l��S)%�*BҠ
+T��pc�R��J��8�R�� JR�x�R�c�1�|���?|�t�є:t���ӧHG�g�X����u\?����nj�����N1��ϵ��>1������3��~X��9͏
+ǜg����I�:v�֤s��
+>���*��kr�i��b�tr���h/�Lx��c�[��f#���p�v��� �)���2�;#�L��ȓR�%�-S��R]jJ�BJ��Qa`�ջc�����LG&��Rp���V8�Χ�T�2�k�U�D��Lŭ2��i�#yL�?̬
+�h�[�[���^�zF���,vc�vz�,B$Ϯf��!�졤������*�����^k�B�?%���6����Ӵ�߮k��Q>)7�J+
+=P)2��?J�2Z�dempτ%
+�c�Ì7F���)N:���-YR�qyʔ��U��yR���J�|�9�s������*�����
+�Y:��� �W'��+��8~�ף��}+��Y��8Q�Y���
+�bj�)Of�z^f����F�ҥ"l�N3�UJ�g-f\����Y 2g$��Ϫ6]�h�t��?1ɡ���IU>�4&�U\��trd�����P����R§����o�ӧN��v�:t�����~�����n���9�i6���x��k�Տ
+�Cx4��.|�2���m�)!���2P�%2ө�1��B(��n���_r��\Յ�<���@I!-��~�,v@ �s
+�@r0�%�8�[y.!+RR���>���c�3�c����>�����H�un�{qs�vq��\.��n٢�ò!^tM��9:��,�Xb1���k�;����n��(Y-�(s�Lvg�O��~���[�`��0.������0�V��>Eq�o�5~@�勔�؏jv�m��V3�f��M��r,gSc��zcN9&Qe�3�OU�z5x)��rnw��|6��kk6�֧ %q�|���ת��j�_Հ�.�er`������jX�c5������#��� ��:t�h��P�'��f.���]�;Lļ�8��~�7�v���3���ʾ��=���3�t��4.���T�Ve�'.<10B_�-�c����a>��aj��*ώ�b��6~�=�A�8Rf�ǒJ�3�?�MIk�������|�^<��3J�+�1�C,h�H�a�8DR$ě*)��5���(��8J���N1�'�g=p\���w��iMx��EX���{�k��&Y����ҒN��Q 1�U���Ō߄���s����?5�l��n/������].��r(��O��I�+��˖��g��;�j��}�5� ��cG����1��D�Еf�5l�@xS��b�Q�77cICDGW�AU��Kuh��Q��]w��,81�0�-��z
+�X�@�8�Y9���b2e�!�Kbs[S!�]�L��3����8��������:�C҇��o/�i?��T�s�� �V*�J�V�x�M2�j�9BJɒ֊��?60��8z܁�Dl6R$f�
+�����b���42N�����r�ia}�R�%�vZl��N�%�|��<���m6�Ywʓsn/Q�T�X̌&���uuj�MT�ӓ�Umd��|����%Kܖ���t��ю�:t�:t���|���?���#]Ϊ�i=�9�[��r �\�䔉1���p[o[L����)ˌMB�Χm���K[.�y��8����7���֨��=8q��\��+Z)�˖�
+��^U(V�� ��\*d� f�W�pу�إB,�H0*�FD6TY$$��H��"�Ͻ|"��q�����u>��:����㇓��&:�B6��݈1�p���Ǎ�Z%,ǰ��2�PUh3da,�b��B\D�XRp�l�T�y�T�����g��u��K�"Ѹ��:P�����e�Q܅�l0D�u� n�+*�eUڝaU���{��GҭW���>����<�a"
+F�Qa����%٩!d�b1+E��`�n��W\]r�$X
+���"(��,��G��c`g����������|��^u��X]1�����!>��5��e�!1VhZ%h���A��.�T�a&l�Q%m�D���o#��/m�w��#�fj�^'],}/��:���@�h�#��۔����S��q�ZI�I�CQ/a|�j�Q�H�^)����V�]��)��b�Z��i��i��a�1�Z�����
+;q�Cqܙ/�bYèRҬ{_X��8l�4P��:�*�e��M��HYf�����?�N�d�iS�� �Mdp��&孱c͓9�zB1���.p���&å�u#dka�(۶��+{����@�v��l�y������W��
+sO��8i먭����X��w}Ş�1�����h�κSt��GsW�k���S�]���'$bפ1��1���u?co=�]P����tK����Jn��v]�g�U��#���j�Y�-���M��m']��5��ξ��ٺ&қQ�Z��ߌɖ����A�ٵ�9�/N���r{�۾aݽ�����K^دz��:�]�mz��o�[NT.��Ô�1��E�*����M���L$R@u��zD���MK��'l;+�д'"���+���hb�Ƶ]�z�P��/��FKc+�_�F�X�N=d0����W�mB����*��/�lg��v͚��k;?h�KP5j�%۸LUJW"^y��͚��u�G؊Y�ȶ@��]�~'u �;=rZ�ú�0#nX7�eY3�[�h��˫�"����ױ�6�*��P.��,��8B�gʢ�^#ĆQ�%IυaX��?<g�������9�g�xǎ�J~�B�+N���t�(�>�b{��/������iu�s��՝}@����J�Z�V�AG��0��eYDhq�oZה{n-J�=k}��� ����9S�60=g�4�����[��ڳsLI%=6Y�`�Q����;T��f�4[�0�l��dX�ƖӇw�:t��Dǃr�U��a�n�2�[�C��R����JlM}a��;,�n�i�~NZJ��(^Q���3F�Gj�
+U�A�����ī�J��2F��1�A�5�&*$�i#����R�̎�i
+����/��<������+އ��D�ҳr��wʟ�y��-�H��*�)��*Z#~�������%�f��~�~3�%���Y%��1E��8?.��x����~���?����|����Y��%y����kj_!��! ��b��m��
+KZ���.���Rc�ςn?�0B�X��LT{�k�듺3^\�[��.��]&ݹ5����ǪMj�.+��̣��%&VjΈ�>~�j�p�V�p�b�>�ݾ8��K�@8���"� �g�[,�"��l��v!�1v���\)�%�0\X�F �a��
+h�֠��;�!) ���^nunY�ӧN��!ӧN��N�:B`/s~x��ۼ.������*�}���Q�0����1�A�Xp�J�JsEa$,��d�� �ٞr4Se�Ϝ��������uV7�w�"���5q�U[H�
+J�=&WߑL̔iܽ�օ�L�F��D��"�ތUV�w�H��-�{�}"X��}ϴ����
+�t0_s_�!��g��u�F�l#��3����W�u�M��D���1�Ei�'������zے��9�+��h���f��w��r�KɈ�<x�#��v�A#h�A�]�_m��r�0@<Z&V)�H��g��B�����1�5�[���
+�e��M�ȧ���\�"8z����6��C,�J��bArx��5)�7.W��H=�m��k�w�N�:�ZrR�ڀ�5�y{E��^���g��"������O�kr��b(|����T�hV��b�"�r+ߩ(\@�&ϕ����ּ���Bn�v�&Eob��V_ܴk�=�e5Z"L��(�m��K]XOH1E�W�W5�9�Ʈ>�0i�N�����-Zӕ*���4��nR��.�3�Z���D���C��^�P�rR�.R�W���z�O�v��K-�1�|D��+���v����KU�e&�.VfdOWF�����_��QS*[��Ӳq�p����V�{�\�4�O����
+�lЦ#�~l"��,@sf�33I�*!Myx֪�D-�`�0�Cj��bɂ���iҗ���Ŕ~#��c��8Qh���f���' �̟}ԺI��6$�}�}���LyxLBAұ�F >TyПO�N0�q���ۋ��g9�����#ӗ������[_[�1�&���+��:�����kva�B��N�Y�R��Iz��m�_�]�o����X��l3�� S���{�0���f�V5����+�E���%��[��IX�썏�/�T�ϰCU���[��(",����U@h(n�T
+Ӓ&s��D�2���
+�?.l�ĉ�x���&B��
+'��n� �>����&��(i.��Լ}��88��l�٬姥�)��2 �a��Մ��'�?!�=�31d��[RmÆ�t���wS��3~_���8c�6U���c�a��,���.w�@����a�ijv;p���X�_!:C�É*�i ����/�����ԟ��t?�~g �3Ndp�s&k��ݱ�k�iǗ�8��m�a
+�S�Jr�������+�*��l����G�� 0_bBs�)�[��2�1���όg8��k
+Ի0}|��k��u��S쟽��˽HKU2�f6��MN��q����x,[�喿<+�!j//�J�(�,�HY
+��ݧF�l�wan�l
+�+�.���c�Y�F2����E̋22��9�Nm��H�X��V�q�W�J��t��<���4k�<c��9������Ϝy��HOu'�V�����V���|im����'Aqe��dE]�P�u�㓛7Y����\��>�YK�%CV��3��:�1Qe,�Ž�7~�ӧU�:�>�}Ʃ��x;��(g
+l7YF��4��;)����!�h��ٕj��ـV�ws���T=K��eBN��w�����Lޥ~���%�2Z�V��%Ŏ'�7��z���6��/�L�}���r��* �УԨ�<�3(U ��+&�p;Hr�'�*��m��ߣ�ƿk��cݭ{*�d/j�^����iik|��m����l$&#�Zɒ/2Q�o
+����ZJS�ۏ���������/�w`��d�۞hوB��F�{��x�ö�x\���b*�@�8H���)�x�~��~N>x�3��v<�_;��<�����;����B�I9>�TY��~M��QH̟`Յ�����\�'�=P��Z��EF��K�{��b䞝~P#�l�DYkFEX��C�>�B�
+�-��-�I�'Dy��B}�">̘θ˨Z�W�cht�Ӥ!ӧ_�c���[m�Vj�p�,V[%��0�k��&d����Pq#�I�L��؇w�Iy�ZZ��A���;kp0�u��!�?�|�\}���v�������G�<�d�cVVLDPc#���V�D�st�&��c�>s�Ҭ�J�s��T��Y�~�ʳ��?\�?>���?rc]�y���y�cMU��x7��-B��P�w�� :R�Ŏ�H�[���i�@t�u����b�ﶏ�'�X�Ha��h�Eή��|��8�q�8��/�?g\{h�2����������?��Eb��I�t��NJ28E�,1��WĎ�ɛ�c��f����JBS%J&[N��]hzC������\�K�KX
+�?]�3���旟Ǎ;�����[���S��ߛ�7�/4�,uLɫ'���~�U"�f=��˺�
+��L�TR1�X\���=u�
+\�3�Z>��ڕ^e����w��jl�� ��t����V�y
+�FH!%/�dY��j�lʞ:�pu�R���b�ǐ:z[�6Ap�G����1�=�Úi���aL�I�y� s�ɟ��IΙ�c*Xp���H��-:�g�<��0iuF�F��,71qS��-���2A:�~7�ϊX�0zF����G�ڱVr���ו��o�0*uj�P��-\��� \.j��Ùe�A����,P���@��%�k�]������G���C$=a��}�U�0#R}���8��+ϵIXQfȳ�چ���^OK��)�س���̿�#]�n���}$���W��)?Y���9>i�J�ni�Fٓ�ʺ�&����CX���� ��
+�4�pe�u�~r�D��0���P�1��/_A�Z�a�o�M��CT,�-Q[.��*�J���9��� ��N4!�s�I�R�H�h3�;�٬(��#�M31�r��<+QQ"��v�"YV��%�p'2��G�wy�����
+����,هe�f&�%�d�%J�-�_2Z�e���u"�e���z�qb~��O8o\]�݆�kswpK��A��TWb�W܊XZ�n!I��]b1{A2�0(a#�nT�' �=>��v�N�ͭM�2�5 �h�"�"���ث�a��_Wh��M���m�W*�rؒJ$���]��C�Et���&�刘Mk�q��Ybqכb��T�,Zp�i����fU��8�W2�b�!1PI��H�Е2��G�ű���8n��ErA!�k�eE�ˌKyfB;4L��Ҕ�F��)�}�Ԃ�������i��mĵ��3X�����y��m:����]����у,�<�Dj�V��8O�!&a��� �0���`�h�q��k��g_!��q��{`���E������7v���Z�@���m�0���o����4��OZ떐��z�F�����`j��Y���5�k�,t�f�<E#U,��kC#��:$��#A?e����-4���ֶz y�
+)�������ho2%R
+��w��U�3o�ۏ�6'���|���iwEm�`�F��Ɍ��� ؔCms0b�Z����qg����r����?�Gz�\���&�z��N�]���:�b]�~�G^�lseN=1�LA1?�X�fQ�Jo/G������og�<�j��+�@�!�j��5�O����&��� ����yz�7 7a�]L$�y��,%��,���-ΉO�2�Oǫި;�~dr`���c�b�*�3�FH���Io��F�V��h0��j�6�
+�O"-dg�6QpR�[�Z�����e)�9�=n`���
+�n��-L���_Jze9��LHVJ�O���{&�=e�X��t�DCO����]��Q?Mj�Da��������#صƩv"��M��G!/
+!
+��j��K��hE�M���TRS��N1�c�1�c�1��1��1����1���/q�ws�n�NOX��*�*N).�C,��IU�NE$���$�V2��>�yq�b�x�X��y�m�6�*?�v�����d�S�Ǿ>���'�p�w�ޑ��������������G�.�����Y�1��qF<���yŗ>���gv���I3wg� Π�W2dI���P���GdIK������z�J@����Z��
+�H��q�?����x���b�~scpK��_�ڈ�1p�����v�=��kӲ��!m���e��w�e�
+9/�bGT�qV��8��]O�N<j>N��ɱ���Lr�MS��B
+d��fk6GM#}��`�Z�r
+��jkd+�-�g�T�����$�����=��N�V-�C��2F������)Y�HJru�\暹��y
+�6u;Vvt���"�3
+���#�։�*�U
+��mJS��Z��������AƏ�)t�R.@�DA��� F�
+�E�1���F|y��N|~�
+�V3������7�?����2kO�R��nŝ���j��;���N�"Kw${Q�Y����1e��tkr�%`�*.`Dn�&;�P���g4���絖K���G�V[���%YBU�(J��>��s(NU�
+V��U�/���p:��O����Ϋ���߿���V�8q:�d�GaN0�DŽ�����b6J���{�q1s,�F�~�2�c���c=n5�r���li{۔�h�}Z���S��8ɧ�l
+�k�7fǩPj�T㬱g�eN˝>X���I9��0�����w���^����x�7U������F&���+�����[��Կ8�[jS��e,.�Z|�ƭ�1p�;
+u�:�iw�INq�^M/=�m+��m���IX��-���q���w0�<:�LRlv"t:�V%-��F�M��Uŭ����r��v�Ak���ھ��k�J�-������hQ��;RA�������HV*:�j��c.!�Q��&���1�*e=��7�j갺���uI�
+L��b�����l��W+ڸx�(h���J�T���}��o���]�8��t�n�#����߲x������%˥��y�ź�h��� ��0~saGO ����4!Bc�w�?�u�k�p��L����ͤ��P��+s����*U���U4��$"�>&\�!�8�Me�Z?���FW��{˛��П��5���s�=���dF\������&���4N��M�`̝K(��T� =�2$��G��Ȕ�F��
+�Ob'&Y�����>�w,�m�����C�+�(6'nb�iA��om�f���)�& �P�h�µ0Q؊� U5�u�`2�c-�?wh�Q͟��8�\</�`Z5o\����Ỹ���n��=^��w%j�sl�S�efg�.*'�a���eM���J_p�Jf3� ��p�K/�4yǷ�tLGd!�GjL�B�~+:ӲY9��u�:���m6��=r[���ǯ���'՞:�(�ޮ�g�N�aO4���˷�j�m�>��B�s�k�lN�]�&l��I3?fV5�b�fphX�A�d�*I`p�<�xө�c�C��i�$���m0;zI5��ڍt�w��<v-U{�G�z%>���]1�i�
+"B���eQ̏���܈�uN��a}@?HJ����4�
+:��B[6 U:c�p��/څ���t�B�)�<�����Rh�g�2Ҝ��M�/K߹�I�R�7[�T�]�`G�,�@�
+Ţ"GZ�F���"590�@j匕d���������E_�o���zD?���6�������?���S�;�v��r���9e]g����sJ���k��fe��i" 8�[�zƹ3��Y�G 9���c�$� 1p��@���?{�z���j����0�8���!�^�2>}�^����X�*����R�'������)�=����u�&
+}�> uNr���')�q�g���g\g��8Ϝg��ϟ=b��j��!
+��o'���6ʬ��h�5¦[UA$��u�.Ŋ�Ƞ�Fj����S�Jh�D�RP����d��������a�D�-oX�i£�}S�J�l��<�;uF��$
+�s��Jr\�#o��"E�N]�A����4��Gx�'M6�-��Ώ��]<���J_�ؖ�g��<~���_�Q��,��D�X��%Wu���������o�GF�HM^S�ꪶk�����,�m�1-*��}�%~���ݽ���Zg�����T��1��|�H��O'r~�_ebJ��V (6��ܽ�����`�����`�<=���� nq�z��D��e8�j�Vp�)�#*�3�������Ϫ�͋�����0ܿ8�Z��GM����{yM��;�=��Ŷ�:ѕ"h���QRB��K�CN�t�'-:�((��L)�M��wo����G�V���z4���m��h�6GAd�Oc�� ��6Ӯ���e�q�c\���[g��?���wxhNG��>2��UCھ�6�b
+q��u�Z$�l�1A�i,܁�D<ۮ8˭�ì6�2���ϙ���3�|Mٖm�uQ��"�*r�nHq�(9�s� �Jw�қ��{g]�����ɴ��Ы��ʇr��;6���B����/������w��nk�d1L�@��s�wW��ړ�����5��~:����
+$��&[}.�R��ke3�5����
+�VO28w��TͧG��������G�9h��j��N�D,/
+brÎS�2��o��R}�{��;�qg����5N�W�E9_��p�c�{r���P����6"�%�
+��
+l��Ge�b,[,ʭF�����
+ۧ�5/�]��H`9�F�
+ryo^%?�N�V-���O
+6�p��;ۉ<�&�٥���$�1c��з^��g>�$��.8�I�ȎRd\8Ϲ;��bT�t��c��vp�e�[�t�4�6�K���6���a����S��7hPC�� �Vۓ#ˊ8�S�>:[�?�rv���?�꿤�~�3�RI%�����V��($�֒�Z�M� Y�5�UA�k�s˹��+4UDP�Ȯ,f#*s�ܒ�e����o�������y��w�.��M�q���ڶ��|���ݏg�&J溷BpR�ۆ4̇�%R����6�m<���:���4W0�)���[����+�F����(��"(�b���
++MF�v#E��l0�m6�c�W��� -�8��f�+G5Yz�`�{���Z��lĚm*�Y���Q�4��z�O�G1YfQ��m�&�Ν|�86
+OR+)�|&E`R��r0�9U;��X��"n��V�������^,V�T٪H`���V�f��}�x��kL՚��Ͱ
+���ݿyX��{$�H2`�br�@<=J��8�T`2�`�t�祔6pقZS���w��6Ѳ��'��lGٓͮ����Z�_�Q7��7Q��H�����9�Oȉn���ah�[�_P(����}"�;\��ozEx_����������V}!}�7��e��75�:�m�h�l_�!7�ߕ-��[2�W��i�R���օ�|���iixT��t�#@POǻ4n�$�&ѭ_s���h���Ri4p�#q�/B&n�m��Kmɼ7a�T���nW��.�I���a2�(��D���������Su;�����:Y6�zۖ���V[$C-�y�kQBQ>vYg3&&"dJ�Me���X�Ө�������K�ȳX���wr�8����dB�ܬ\�r�v<������1eGy
+m�$G~��_e�)Hq�P��Fr��)�q����/c��҃�.umʎӻ����Ψ�zeV$�xw*���Ԯ{
+�bV���XڎtM%p%�"E��p��1J{uޝN�f�X3����R{�j=��ӏ�;�oj�,xǸ(t�����z�p8|u.��4��宱j��b�ɧ��J�$A���X$�bXb��� R+����5Z�J�:0z�Z���YW��Bo�}X��JZ�X�c����(N<ub�N���8 �n0Z+��������ן���GR�ڧ�Wu~/U��Z�,�o�\����C��O�6���j��#�c�0R.̫�j�:CF3(�H�v;/6�KKhK�_t��y��Sq'��i�����~�ܮ�[Ñw]e�^��_U����[�ls�&��3&|[.��DhJGTI6�gɓ�n�m0�ӎ���jB�!iJҤ�*J��%IV3�%IϜe*�s�c8�g�|㯗N��s8s�{��F����$w7m��;Pk����Jl����g_l'e���uUZ5ɨt;w�|�i2r>�s�T0�*}~�Nۧ���I���Ͳg�Iߴn��k{q
+���k3օ5{�����:��3�@��xˑZW��5zt$�ki�߾0O6~V�xt�Ө����
\ No newline at end of file
Deleted: trunk/src/site/fr/resources/pollen.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/CreerSondage.jpg
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/CreerSondage2.jpg
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/DC_Pollen.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/DC_PreventRules.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/DET_PollState.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/Depouiller.jpg
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/Depouiller_1a.jpg
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/UC_Gestiondesvotes.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/Voter.jpg
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/business/DC_BusinessDTOs.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/business/DC_DBUtil.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/business/DC_ServicePoll.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/business/DC_ServiceResults.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/business/DC_ServiceUser.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/business/DC_ServiceVote.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/business/DS_Conception_CreerSondage.jpg
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/composants.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/packages.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/pollen_logo.jpg
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/schema-architecture.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/ui/DC_UIOs.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/ui/chart.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/ui/dateTimeField.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/ui/feedBack.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/ui/topCount.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/ui/topCreation.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/ui/topIndex.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/ui/topVote.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/votecounting/DC_ServiceExport.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/votecounting/DC_ServiceExportImpl.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/votecounting/DC_ServiceExportXML.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/votecounting/DC_ServiceVoteCounting.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/votecounting/DC_ServiceVoteCountingImpl.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/votecounting/DC_VoteCountingDTOs.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/schemas/votecounting/Seq-executeVoteCounting.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/tutoriel/Capture-1.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/tutoriel/Capture-2.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/tutoriel/Capture-3.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/tutoriel/Capture-4.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/tutoriel/Capture-5.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/tutoriel/Capture-6.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/tutoriel/Capture.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/tutoriel/Creation-links.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/tutoriel/Creation-step1.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/tutoriel/Creation-step2.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/tutoriel/Creation-step3.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/tutoriel/Creation-step4.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/tutoriel/Results.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/resources/tutoriel/Vote.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/fr/rst/analyse.rst
===================================================================
--- trunk/src/site/fr/rst/analyse.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/fr/rst/analyse.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,383 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Analyse
-=======
-
-:Author: Erwan NEMA <nemawan(a)hotmail.com>
-:Author: Nolwenn Rannou <rannou(a)codelutin.com>
-:Revision: $Revision$
-:Date: $Date$
-
-Les besoins
-~~~~~~~~~~~
-
-Le projet Pollen vise à mettre en place une application de vote libre en mode Web enrichie
-en fonctionnalités par rapport à ce qui existe déjà sur le marché.
-Le principe est le suivant. Un utilisateur crée un sondage puis il envoie le lien aux participants du sondage. Ensuite il peut suivre l'évolution du sondage en ligne. Les participants votent en saisissant leur nom et leur choix.
-
-La création d'un vote doit être simple mais doit permettre les opérations suivantes :
-
-- définir des listes de votants
-- choisir d'autres types de votes (pourcentage, Condorcet...)
-- permettre à chaque votant d'ajouter de nouveaux choix de vote
-- voter anonymement si on utilise une liste de votants restreinte
-- relancer les personnes n'ayant pas encore voté (si liste de votants restreinte)
-- définir des dates de début et de fin de vote
-- définir le nombre de votes possibles par personne (1 choix ou N choix parmi les propositions)
-- pouvoir ajouter un commentaire global ou à son vote
-- définir avant le vote le poids des votants (si liste de votants restreinte)
-- rendre graphiquement le résultat des votes
-- exporter un vote dans un format standard (vote, liste de votant, résultat de votes) pour des échanges avec d'autres outils de vote.
-
-Les concepts généraux
-~~~~~~~~~~~~~~~~~~~~~
-
-Ce paragraphe présente les différents concepts manipulés dans l’application de vote.
-Le tableau représente le dictionnaire de données de notre application.
-
-- Sondage (Poll) : Un sondage est une enquête effectuée auprès de participants (votants).
- Le sondage peut porter sur une question avec multi propositions, sur un choix de date.
-- Règles de fin de sondage (PreventRule) : Gestion des règles de terminaison de sondage (quotas de votants, date avant rappel, ...).
-- Sondage Libre (FreePoll) : Le sondage est accessible à n’importe quel votant.
-- Sondage restreint (RestrictedPoll) : Le sondage n’est accessible qu’aux personnes de la liste restreinte.
-- Sondage groupe (GroupPoll) : Le sondage est accessible à plusieurs liste restreintes.
-- Vote : Réponse d’un votant à la question formulée, cette réponse est enregistrée afin d’être exploitée,
- l’identité du votant est connue.
-- Vote anonyme (AnonymousVote) : Réponse à la question formulée sans connaître l’identité du votant.
-- Type de dépouillement (VoteCounting) : Exploitation des résultats du sondage, le dépouillement peut être effectué de manière normale (comptabilisation des réponses),
- dans le cas de choix multiple, selon la méthode Condorcet (un ordre de préférence est attribué à chaque réponse) où selon la méthode Condorcet en attribuant un pourcentage à chaque réponse.
-- Type de vote (ChoiceType) : Définit la formulation de la question et donc la réponse à apporter
- (oui/non, choix d’une heure, réponse sous forme de texte, image,….).
-- Utilisateur (User) : Personne gérant le sondage, cette personne peut être identifiée ou non.
-- Votant (VotingPerson) : Personne votant à un sondage.
-- Créateur du sondage (PollAccount) : Personne déjà identifiée ou pas créant un sondage.
-- Liste de votants prédéfinie (PersonList) : Liste de votants prédéfinie créée par un utilisateur et sauve-gardée dans le système, cette liste peut servir de base à la mise en place d’une liste de votants restreinte.
-- Liste de votants (VotingList) : Liste des votants participants au sondage.
-- Type de liste de votant (ListType)
-- Liste de votants libre (FreeVotingList) : Liste de votants, les votants peuvent ne pas être préalablement enregistrés dans le système.
-- Liste de votants restreinte (RestrictedVotingList) : Liste de votants restreinte, tous les votants sont connus et seront identifiés à partir de cette liste.
-- Groupe de votants (VotingGroup) : Liste de votants restreinte pouvant faire l’objet d’une pondération globale lors d’un dépouillement (ex : groupe des développeurs).
-- Commentaire globale (Comment) : Commentaire sur le sondage.
-- Commentaire local (Vote.comment) : Commentaire sur un vote.
-
-Les types de dépouillements
-+++++++++++++++++++++++++++
-
-Dans un premier temps, nous allons implémenter les types de dépouillements les plus usuels.
-
-- Le vote simple ou libre : c'est le vote uninominal, chaque réponse recueille un suffrage,
- la somme des suffrages par réponse représente les résultats du sondage.
-- Le vote condorcet : le votant classe ses choix par ordre de préférence (ex a>b>c),
- on compare chaque choix aux autres votes en notant les duels gagnés ou perdus,
- le résultat de cette comparaison représente les résultats du sondage.
-- Le vote pondéré par note : chaque choix est noté (en fonction d'un barème),
- le cumul des notes par réponse représente les résultats du sondage.
-
-La pondération
-++++++++++++++
-
-Chaque votant peut ne pas avoir le même poids lors d'un vote, cette pondération aura donc des conséquences
-lors du dépouillement des résultats. La pondération sur chaque votant est possible dans le cas d'une liste restreinte.
-De même un groupe de votant pourra lui aussi être pondéré lors de la participation de plusieurs listes à un sondage.
-
-Le vote anonyme
-+++++++++++++++
-
-L'application permet de voter anonymement dans le cas des sondages basés sur une liste restreinte de votant.
-L'anonymat est assuré pour la totalité des votants de la liste.
-Dans ce cas, le vote sera comptabilisé pour le votant, mais l'application ne liera pas le vote au votant.
-Le fait de fournir son identité dans le cas d'un vote anonyme (seul moyen de savoir si le votant a déjà participé au sondage) est gênant pour le votant.
-Donc dans le cas du vote anonyme, le votant s'identifiera grâce à un numéro d'anonymat.
-Le votant ne connaît pas le fonctionnement interne de l'application pour la gestion des votes anonymes,
-cette approche le confortera concernant la prise en compte de son anonymat dans le sondage.
-
-Les fonctionnalités (cas d'utilisation)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Le diagramme de cas d'utilisation au format UML 2.0 de l'application permet de présenter de manière simple et concise les différents acteurs de l'application ainsi que ses fonctionnalités.
-Pour rappel, le stéréotype <<includes>> précise une décomposition du use case avec une prise en compte obligatoire du cas d'utilisation inclus, le stéréotype <<extends>> précise une extension optionnel de fonctionnalité, le stéréotype <<generalize>> fait référence à la notion d'héritage.
-
-Les acteurs du système sont au nombre de 3 :
-
-- L'administrateur gère les utilisateurs et est habilité à modérer un sondage.
-- L'utilisateur peut gérer un sondage et voter.
-- Le votant peut voter.
-
-.. image:: schemas/UC_Gestiondesvotes.png
- :alt: Les fonctionnalités
-
-Les cas d'utilisations « créer un sondage », « voter » et « dépouiller un sondage » seront explicités dans les paragraphes suivants.
-
-Créer un sondage
-++++++++++++++++
-
-Le scénario détaillé de la création d'un sondage.
-
-Acteur :
-
-l'utilisateur.
-
-Pré-conditions :
-
-Scénario de base :
-
-1. L'utilisateur choisit de créer un sondage.
-2. L'utilisateur choisit le type de sondage libre.
-3. L'utilisateur renseigne le titre du sondage.
-4. L'utilisateur renseigne une description pour le sondage.
-5. L'utilisateur saisit son nom.
-6. L'utilisateur saisit le date de fin de sondage.
-7. L'utilisateur choisit le type de vote options textuelles.
-8. L'utilisateur saisit les différentes options.
-9. L'utilisateur choisit sondage à choix unique.
-10. L'utilisateur valide la création.
-11. Deux URLs sont automatiquement générées par l'application :
- Une URL pour administrer le sondage.
- Une URL pour voter.
-12. L'utilisateur est invité à sauvegarder les URLs.
-13. Un email est automatiquement envoyé par l'application à l'administrateur chargé de modérer les sondages.
-
-Variations ::
-
- 1a. L'utilisateur s'authentifie.
- 1a1. Si le user est black listé, la connexion est impossible, un message d'erreur apparaît.
- 2a. L'utilisateur choisit un sondage de type restreint.
- 2a1. L'utilisateur choisit une liste prédéfinie.
- - L'utilisateur peut pondérer chaque votant de la liste pour le sondage.
- 2a2. L'utilisateur choisit plusieurs listes prédéfinies (groupes).
- - L'utilisateur peut pondérer chaque votant de chaque groupe
- - L'utilisateur peut pondérer chaque groupe
- 2a3. L'utilisateur choisit de créer une liste restreinte en saisissant le nom et l'adresse email des votants.
- L'utilisateur spécifie si un choix peut être ajouté par un des votants.
- L'utilisateur spécifie s'il s'agit d'un sondage anonyme.
- 5a. Si l'utilisateur est black listé, la création est impossible, un message d'erreur apparaît.
- 7a. L'utilisateur choisit le type de vote options de date.
- 7b. L'utilisateur choisit le type de vote options d'image.
- 9a. L'utilisateur peut choisir un sondage à choix multiple si le nombre d'options >2
- L'utilisateur choisit le type de dépouillement.
- 10a. Si l'utilisateur s'est authentifier ou a saisi son email : le système demande si l'utilisateur souhaite recevoir un email lors de chaque vote.
- 11a. Si l'utilisateur a saisi son email, un email contenant les 2 URLs du sondage est automatiquement envoyé au créateur du sondage.
- 11b. Si l'utilisateur est authentifié, un mail contenant les 2 URLs du sondage est automatiquement envoyé lors de la création du sondage.
- 11c. Dans le cas d'un sondage sur liste restreinte, un email contenant l'URL pour voter et l'identifiant de vote du votant est automatiquement envoyé à tous les votants du sondage.
- 12a. L'utilisateur non authentifié ne sauvegarde pas les URLs : l'utilisateur ne peut pas accéder au sondage.
- 13a. Si le sondage est invalidé par l'administrateur : le sondage sera supprimé, les URLs ne seront plus accessibles.
- Si l'utilisateur a saisi des informations d'authentification ou possède un compte, celui ci est black listé.
-
-Extensions ::
-
- 5a. L'utilisateur saisit son nom et son email.
- 5a1. voir variation 5a.
- 10a. L'utilisateur peut saisir un commentaire avant de valider le sondage.
-
-Une illustration des actions reprenant le scénario de base et ses variations est fournie par le diagramme d'activité suivant :
-
-
-.. image:: schemas/CreerSondage.jpg
- :alt: Créer Sondage partie 1
-
-.. image:: schemas/CreerSondage2.jpg
- :alt: Créer Sondage partie 2
-
-
-Voter
-+++++
-
-Acteur :
-
-Le votant
-
-Pré-conditions :
-
-Le votant connaît l'URL du sondage.
-Le sondage est accessible.
-
-Scénario de base :
-
-1. Le votant se connecte au sondage à partir d'une URL.
-2. Le votant saisit son ou ses choix.
-3. Le votant saisit son identifiant de vote.
-4. Le votant valide son vote.
-
-Variations ::
-
- 2a. Si le sondage est restreint et si cette option est autorisé sur le sondage en cours, le votant peut ajouter un choix de vote, le créateur du sondage et tous les participants sont alertés par email de la modification du sondage.
- 4a. Si le votant n'a pas saisi un identifiant de vote valide: un message d'erreur apparaît, le vote n'est pas comptabilisé.
- 4b. Si le votant est black listé par le créateur du vote, il n'est pas autorisé à voter : un message apparaît, le vote n'est pas enregistré.
-
-Extensions ::
-
- 3a. L'utilisateur saisit son identifiant de vote + son email.
- 3b. Le votant saisit un commentaire sur son vote.
- 4a. L'utilisateur reçoit un email de confirmation de vote.
- 4b. Le créateur du sondage reçoit un email concernant le vote du votant.
- 4c. Le votant peut modifier son vote.
-
-.. image:: schemas/Voter.jpg
- :alt: Voter
-
-Dépouiller les résultats
-++++++++++++++++++++++++
-
-Acteur
-
-L'utilisateur
-
-Pré-conditions
-
-Le sondage est terminé.
-
-Scénario de base :
-
-1. L'utilisateur se connecte au sondage par l'intermédiaire de l'URL
-2. L'utilisateur choisit de dépouiller les résultats
-3. L'application exécute l'algorithme de calcul des résultats du sondage
-4. Les résultats (votants, réponses) du sondage sont affichés
-
-Variations ::
-
- 1a. L'utilisateur s'authentifie dans l'application et choisit le sondage dans une liste de ces sondages
- 1a1. voir 1b
- 1b. Si le sondage a déjà été dépouillé, les résultats sont affichés.
- 2a. Le sondage est automatiquement dépouillé lorsque la date de fin de sondage est atteinte.
- 4a. Dans le cas d'un sondage avec une liste de votants anonymes: les informations concernant les votants ne sont pas affichées.
-
-Extensions ::
-
- 4a. Les résultats peuvent être exportés au format XML.
-
-La chronologie des interactions entre les différentes entités définies dès l'étape d'analyse est présentée dans le diagramme de séquence d'analyse suivant :
-
-.. image:: schemas/Depouiller.jpg
- :alt: Scénario de base
-
-.. image:: schemas/Depouiller_1a.jpg
- :alt: Variation 1a
-
-Exigences non fonctionnelles
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-L'application ne doit pas seulement prendre en compte les exigences formulées dans le cahier des charges par la maîtrise d'ouvrage. Un certain nombre de contraintes doivent être obligatoirement étudiées.
-Ces exigences sont les suivantes :
-
-- Le système doit assurer la mise à disposition et la sauvegarde des informations manipulées: l'utilisation d'un SGBD permettra de gérer ces besoins concernant les données.
-- L'application ne sera pas fortement liée à un SGBD du marché : l'utilisation d'une couche de persistance s'impose.
-- L'application doit assurer une ergonomie et une facilité d'utilisation au moins équivalente aux produits concurrents sur le marché.
-- L'application doit être totalement orientée service, toute la logique métier sera donc facilement découplée de la couche de présentation.
-- Le système doit assurer aux utilisateurs une sécurité totale dans le cadre des transactions effectuées vers et à partir du serveur ainsi que dans l'utilisation même du logiciel.
- Ceci implique la mise en place d'une politique de gestion de droits adéquats au niveau de l'application.
-
-Les classes métiers
-~~~~~~~~~~~~~~~~~~~
-
-Le processus d'analyse fournit le diagramme de classe cohérent de la partie données de l'application. Ce diagramme servira de base pour l'implantation du schéma de base de données.
-
-.. image:: schemas/DC_Pollen.png
- :alt: Diagramme de classes d'analyse
-
-**Classes et commentaire associé** :
-
-- PollType, Type de sondage.
-- ChoiceType, Type de choix.
-- VoteCounting, Type de dépouillement.
-- UserAccount, Utilisateur enregistré dans l'application.
-- PollAccount, Compte pour un sondage englobe la notion de votant et de créateur d'une sondage.
-- PersonList, Liste prédéfinie de comptes.
-- VotingList, Liste de votants.
-- PersonToList, Votants d'une liste.
-- Vote, Vote.
-- Choice, Choix de vote.
-- VoteToChoice, Valeur des choix lors d'un ordre de préférence pour un sondage multichoix.
-
-**Classe Result** (Résultat du sondage) :
-
-Attribut :
-
-- byGroup, Indique que le résultat a été dépouillé par groupe.
-
-**Classe Poll** (Sondage) :
-
-Attributs :
-
-- pollId, Identifiant unique du sondage.
-- beginChoiceDate, Date d'ouverture à l'ajout de choix.
-- maxChoiceNb, Nombre de choix maximum pour le votant.
-- choiceAddAllowed, Autorise l'ajout de choix au sondage.
-- closed, Indique que le sondage est terminé.
-- anonymous, Sondage avec votants et votes anonymes.
-- anonymousVoteAllowed, vote anonyme autorisé.
-- publicResults, Indique si les résultats du sondage sont publics.
-- continuousResults, Indique si les résultats du sondage sont visibles en continue lors du vote.
-
-**Classe PreventRule** (Règles de notification) :
-
-Des règles de notification sont associées aux sondages. Elles sont utilisées pour exécuter des
-actions (affichage d'un message, envoi d'un email...) en fonction de certains critères.
-
-Attributs :
-
-- method, Action à déclencher.
-- scope, Contexte dans lequel l'action peut se déclencher.
-- sensibility, Valeur provoquant le déclenchement de l'action.
-- active, Indique si la règle est actuellement active
-- oneTime, Indique si l'action doit se déclencher une seule fois (la règle est désactivée après sa première exécution).
-- repeated, Indique si l'action peut se déclencher de manière répétitive (une action de sensibilité 2 est déclenché pour les valeurs 2, 4, 6, 8...).
-
-.. image:: schemas/DC_PreventRules.png
- :alt: Cycle de vie d'un sondage
-
-La classe PreventRuleManager permet de gérer des règles de notification. Lorsque la méthode
-*execute()* est appelée, la méthode définie par la règle est exécutée à condition que sa
-sensibilité et sa portée soient valides.
-
-Exemple : affichage d'un message tous les 100 votes ::
-
- // Définition d'une règle : portée "vote", sensibilité 100, répétitive
- PreventRuleDTO preventRule = new PreventRuleDTO("vote", 100, true,
- PreventRuleManager.PRINT_ACTION);
- PreventRuleManager manager = new PreventRuleManager(preventRule);
-
- // On lance l'exécution en précisant une portée et une sensibilité
- // Le manager se charge de vérifier si l'action doit être effectuée
- // en fonction de la règle et des paramètres
- manager.execute("vote",100,"un message"); // affiche "un message"
- manager.execute("vote",200,"autre message"); // affiche "autre message"
-
- // Exemples n'exécutant rien
- manager.execute("scope",100); // "scope" n'est pas la bonne portée
- manager.execute("vote",50); // 50 n'est pas la bonne sensibilité
-
-Les notifications sont utilisées dans Pollen pour envoyer un message de confirmation à la
-création d'un compte, pour prévenir le créateur d'un sondage lorsque des votes ont lieu ou
-pour relancer les personnes qui n'ont pas encore voté...
-
-Cycle de vie d'un sondage
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Initialement un sondage ne possédait que deux états : ouvert et fermé, auxquels s'ajoutait
-une notion de date de début et de date de fin. Une fois qu'il a été rendu possible d'ajouter
-des choix à un sondage en cours, il est devenu nécessaire d'ajouter une date de début
-d'ajout de choix ainsi que les états définis dans le diagramme suivant.
-
-.. image:: schemas/DET_PollState.png
- :alt: Cycle de vie d'un sondage
Deleted: trunk/src/site/fr/rst/architecture.rst
===================================================================
--- trunk/src/site/fr/rst/architecture.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/fr/rst/architecture.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,98 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Architecture de l'application Pollen
-====================================
-
-:Author: Florian DESBOIS <florian.desbois(a)gmail.com>
-:Revision: $Revision$
-:Date: $Date$
-
-.. image:: schemas/schema-architecture.png
- :alt: Architecture global
-
-Composants
-----------
-
-Présentation
-~~~~~~~~~~~~
-
-L'application est composé de trois composants globaux distincts :
-
-- Presentation / IHM : Couche de présentation de l'application
-- Business : Couche de persistance de l'application
-- VoteCounting : Module séparé permettant la gestion des dépouillements
-
-.. image:: schemas/composants.png
- :alt: Composants de l'application
-
-Composant IHM (pollen-ui)
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Il permet l'affichage des données à l'utilisateur. C'est la vue de notre application.
-Cette partie sera faites en utilisant le framework Tapestry de Apache.
-
-Composant Business (pollen-business)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Le Composant Business est composé de 3 composants différents :
-
-- ServicesImpl : Composant qui implémente l'ensemble des services de l'application
-- DAO : Couche de manipulation des entités persistantes (Creation/Modification/Suppression)
-- Persistence : Composant regroupant toutes les entités persistantes.
-
-Le Composant Business propose 6 différentes interfaces/services disponibles pour la couche de présentation :
-
-- ServiceAuth : Service d'authentification à l'application (valable pour les utilisateurs ayant un compte)
-- ServiceManagerUser : Service permettant la manipulation des utilisateurs (personnes ayant un compte)
-- ServiceList : Service permettant la manipulation des listes de votants (groupes, favoris, ...)
-- ServicePoll : Service de gestion des sondages (poll) : Création/Modification/Suppression/Modération...
-- ServiceVote : Service de gestion des votes : Fonctionnalités accessible pour un votant.
-- ServiceResults : Service de gestion des résultats.
-- ServiceComment : Service de gestion des commentaires.
-
-Composant VoteCounting (pollen-votecounting)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Le Composant VoteCounting est composé de 2 composants différents :
-
-- VoteCountingExport : Composant permettant l'export de résultats et de sondages sous un format de fichier quelconque (ici XML par défaut)
-- VoteCountingExecuter : Composant permettant la gestion des différents algorithmes de dépouillement
-
-Le Composant VoteCounting propose 2 différentes interfaces/services correspond respectivement à chaque composant présenté ci-dessus :
-
-- ServicePollExport : Service de gestion des exports d'un sondage et de ses résultats sous un format Standard
-- ServiceVoteCounting : Service de gestion des dépouillements.
-
-
-Modules Maven
--------------
-
-3 Modules sont créés pour géré ces différents composants :
-
-- UI : Couche présentation (Framework Tapestry)
-- Business : Couche métier de l'application et persistance (Utilisation de ToPIA-Persistence)
-- VoteCounting : Module séparé de gestion des dépouillements
-
-
-
Deleted: trunk/src/site/fr/rst/assentiment.rst
===================================================================
--- trunk/src/site/fr/rst/assentiment.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/fr/rst/assentiment.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,34 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Dépouillement par assentiment
------------------------------
-
-La consultation par assentiment se déroule en seul tour. Chaque personne
-sélectionne autant de choix qu'elle le désire : aucun, un, plusieurs, tous, mais
-jamais deux fois le même. Le choix vainqueur est celui qui a le plus de voix.
-
-Cette méthode est simple et pratique. Dans Pollen, il est possible de limiter le
-nombre de choix, cela permet de varier entre le scrutin uninominal à un tour et
-le scrutin par assentiment, cela invite également les électeurs à voter
-sincèrement.
Deleted: trunk/src/site/fr/rst/business.rst
===================================================================
--- trunk/src/site/fr/rst/business.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/fr/rst/business.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,79 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-business
-========
-
-:Author:
-:Revision: $Revision$
-:Date: $Date$
-
-DTO
----
-
-Le package dto assure la communication entre le client Web et la partie persistance de l'application.
-Pour des soucis de découplage et de maintenabilité, le client ne manipule pas directement les objets de la base de données et utilise donc une représentation simplifiée des entités présentes au niveau de la couche persistance.
-
-Le modèle de classe de dtos mis en place dans le module Pollen-Business est le suivant :
-
-.. image:: schemas/business/DC_businessDTOs.png
- :alt: DTO du module Pollen-business
-
-
-Ce modèle est centré sur la notion de sondage, par ce fait, en un seul appel distant (dans le cadre d'une architecture répartie) toutes les informations associées au sondage seront récupérées.
-De plus, toujours pour prendre en compte une éventuelle évolution vers une architecture totalement distribuée, chaque dto réalise l'interface serializable permettant de sérialiser l'objet dto créé pour un transfert distant (cet aspect n'apparait pas sur le diagramme).
-
-Services
---------
-
-Dans notre architecture orientée service, les services sont une façade donnant accés à la gestion de la persistance au client, il propose un certain nombre d'opérations en cachant leur implémentation au client . Pour ce faire il s'appuie sur le pattern DTO pour échanger des informations avec celui-ci.
-
-Ce modèle présente le service fourni dans le cadre de la gestion d'un sondage.
-
-.. image:: schemas/business/DC_ServicePoll.png
- :alt: Services du composant Poll
-
-Il est nécessaire de transformer les dtos échangés avec le client en entité pour persister les données et d'effectuer l'opération inverse pour fournir des données au client. Ces opérations sont prises en compte spécifiquement pour le sondage par la classe DataPollConverter.
-
-De plus on remarque que dans le cadre de la gestion d'un sondage , le service peut faire appel à d'autre service tel que le service de gestion de choix, le service de gestion de commentaire.
-
-Créer un sondage
-~~~~~~~~~~~~~~~~
-
-Le diagramme de séquence montre les échanges de message entre les classes du composant Pollen-Business lors de la création d'un service.
-
-.. image:: schemas/business/DS_Conception_CreerSondage.jpg
- :alt: Diagramme de séquences : Création d'un sondage
-
-
-Persistance
------------
-
-Dans le cadre de l'utilisation de l'Api Topia-Persitence, nous devons gérer un contexte global chargeant les propriétés de connexion JDBC à la base de données et fournissant des sous contextes utilisés dans le cadre de transaction vers la base de données.
-Le contexte global de persistance pour l'application est géré sous forme de singleton, les classes manipulant ces concepts sont les suivantes :
-
-.. image:: schemas/business/DC_DBUtil.png
- :alt: Classes Utilitaires pour la connexion à la base de données
-
-La classe ContextUtil permet également de charger les tables de référentiels (type de dépouillement, type de sondage, type de liste, type de choix) ne possédant pas pour l'instant d'IHM, à partir du fichier de properties pollenconfig.properties.
-
Deleted: trunk/src/site/fr/rst/condorcet.rst
===================================================================
--- trunk/src/site/fr/rst/condorcet.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/fr/rst/condorcet.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,43 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Méthode de vote Condorcet
--------------------------
-
-La méthode Condorcet est une méthode créée par le marquis de Condorcet au XVIIIe
-siècle et qui a pour but de trouver le meilleur compromis entre tous les votants
-ou sondés.
-
-D'après cette méthode, l'unique vainqueur, s'il existe, est le choix qui comparé
-à tous les autres choix un à un s'avèrerait être le plus apprécié.
-
-Cette méthode a été créée pour améliorer la méthode uninominale à un tour qui
-peut très bien ne pas représenter les désirs des électeurs.
-
-L'inconvénient de cette méthode est qu'il est possible qu'aucun vainqueur ne
-puisse être désigné (c'est le paradoxe de Condorcet). Dans ce cas, il faut
-utiliser une autre méthode de résolution des conflits.
-
-(Source : Wikipedia_ )
-
-.. _Wikipedia: http://fr.wikipedia.org/wiki/M%C3%A9thode_Condorcet#Utilisation_du_vote_de_…
\ No newline at end of file
Modified: trunk/src/site/fr/rst/depouillement.rst
===================================================================
--- trunk/src/site/fr/rst/depouillement.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/fr/rst/depouillement.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -22,18 +22,62 @@
.. * #L%
.. -
Les méthodes de dépouillement de Pollen
----------------------------------------
+=======================================
Pollen permet différentes méthodes de dépouillement pour les consultations.
Chaque méthode a ses avantages et ses inconvénients.
- * Méthode Condorcet_
- * Méthode par pourcentage_
- * Méthode par assentiment_
- * Méthode par nombre_
+Méthode Condorcet
+-----------------
-.. _Condorcet: condorcet.html
-.. _pourcentage: pourcentage.html
-.. _assentiment: assentiment.html
-.. _nombre: nombre.html
+La méthode Condorcet est une méthode créée par le marquis de Condorcet au XVIIIe
+siècle et qui a pour but de trouver le meilleur compromis entre tous les votants
+ou sondés.
+D'après cette méthode, l'unique vainqueur, s'il existe, est le choix qui comparé
+à tous les autres choix un à un s'avèrerait être le plus apprécié.
+
+Cette méthode a été créée pour améliorer la méthode uninominale à un tour qui
+peut très bien ne pas représenter les désirs des électeurs.
+
+L'inconvénient de cette méthode est qu'il est possible qu'aucun vainqueur ne
+puisse être désigné (c'est le paradoxe de Condorcet). Dans ce cas, il faut
+utiliser une autre méthode de résolution des conflits.
+
+(Source : Wikipedia_ )
+
+.. _Wikipedia: http://fr.wikipedia.org/wiki/M%C3%A9thode_Condorcet#Utilisation_du_vote_de_…
+
+Méthode par pourcentage
+-----------------------
+
+Chaque électeur a 100 points à répartir entre les différents choix (d'où le
+pourcentage). Le choix qui a le plus de points est déclaré vainqueur.
+
+Ce dépouillement a pour principal avantage d'inciter le vote sincère, mais peut
+se révéler complexe en cas de nombreux choix.
+
+Méthode par assentiment
+-----------------------
+
+La consultation par assentiment se déroule en seul tour. Chaque personne
+sélectionne autant de choix qu'elle le désire : aucun, un, plusieurs, tous, mais
+jamais deux fois le même. Le choix vainqueur est celui qui a le plus de voix.
+
+Cette méthode est simple et pratique. Dans Pollen, il est possible de limiter le
+nombre de choix, cela permet de varier entre le scrutin uninominal à un tour et
+le scrutin par assentiment, cela invite également les électeurs à voter
+sincèrement.
+Méthode par nombre
+------------------
+
+La consultation par nombre se déroule en seul tour. Chaque personne
+attribue un nombre à chaque choix. On peut aussi décider de ne pas
+s'exprimer à propos d'un choix et laisser le champ de saisie vide.
+
+Le dépouillement indique pour chaque choix:
+ - le nombre total de votes
+ - le nombre de votes blanc
+ - la somme des nombres parmi les votes non blanc
+ - la moyenne des nombres parmi les votes non blanc
+
Deleted: trunk/src/site/fr/rst/developer.rst
===================================================================
--- trunk/src/site/fr/rst/developer.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/fr/rst/developer.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,42 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Documentation développeur
-=========================
-
-Vous trouverez ici toute la documentation développeur sur Pollen et ses
-différents modules.
-
-Vous pouvez trouver de la documentation sur :
-
-- `Analyse des besoins et de l'existant`_
-- Architecture_
-- `Module de depouillement votecounting`_
-- `Module metier business`_
-- `Module de presentation ui`_
-
-.. _Analyse des besoins et de l'existant: analysis.html
-.. _Architecture: architecture.html
-.. _Module de depouillement votecounting: votecounting.html
-.. _Module metier business: business.html
-.. _Module de presentation ui: ui.html
\ No newline at end of file
Deleted: trunk/src/site/fr/rst/historique.rst
===================================================================
--- trunk/src/site/fr/rst/historique.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/fr/rst/historique.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,44 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Pourquoi Pollen est Pollen ?
-----------------------------
-
-Historiquement, CodeLutin_ et Libre-Entreprise_ utilisaient, pour
-leurs consultations et votes internes, le logiciel Glasnost_. Cependant ce
-dernier était trop complexe à utiliser et à été abandonné.
-
-Après avoir cherché parmi les solutions existantes, il s'est avéré que ces
-dernières étaient, ou trop simples, ou trop complexes, ou propriétaires. La
-société Code Lutin_ a donc pris en charge le développement d'une nouvelle
-application, sous licence GPL, permettant de réaliser simplement des
-consultations simples ou complexes pour les différentes organisations dont elle
-fait partie et ses besoins internes. Pollen était né.
-
-Pollen sert actuellement pour les besoins internes de Code Lutin_ : vote pour les
-noms de projet, logos, décisions d'entreprise, ..., pour Libre-Entreprise_ :
-votes des membres pour les différentes décisions du groupement.
-
-.. _CodeLutin: http://www.codelutin.com
-.. _Libre-Entreprise: http://www.libre-entreprise.org
-.. _Glasnost: http://glasnost.entrouvert.org
\ No newline at end of file
Modified: trunk/src/site/fr/rst/index.rst
===================================================================
--- trunk/src/site/fr/rst/index.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/fr/rst/index.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -22,11 +22,8 @@
.. * #L%
.. -
Bienvenue sur le site de Pollen
-===============================
+-------------------------------
-Pollen, qu'est-ce que c'est ?
------------------------------
-
Pollen est une application de consultation web. Elle est destinée aux petites entités
qui veulent un moyen simple de gérer des consultations tout en restant maître de leurs
données.
@@ -36,20 +33,35 @@
consultation/sondage/vote là où il n'y en a pas. De ce fait aucune réflexion sur
la sécurité des votes a été conduite, car ce n'est pas notre but.
-Pourquoi Pollen est super ?
----------------------------
+Pas besoin de créer de compte utilisateur...
+--------------------------------------------
- Pollen permet de créer des consultations sur des textes, dates ou images.
-- Vous pouvez utiliser un dépouillement classique ou Condorcet
+- Vous pouvez utiliser plusieurs `modes de dépouillement`_
- Vous pouvez voter anonymement.
+- Vous pouvez modifier vos votes (même anonyme).
+- Vous pouvez recevoir des e-mails de notification et de rappel.
+- Vous pouvez ajouter des commentaires à une consultation.
+- Vous pouvez restreindre une consultation à une ou plusieurs listes de personnes
+ (par exemple, une liste par entreprise ou département). .
+
+Mais cela vous offre d'autres possibilités...
+---------------------------------------------
+
+- Vous pouvez retrouver les consultations que vous avez créé ou celles
+ auxquelles vous avez participé.
- Vous pouvez importer des listes de votants depuis des fichiers de CSV ou des
annuaires LDAP.
- Vous pouvez importer/exporter des consultations.
+
+Mais encore...
+--------------
+
- Vous pouvez installer Pollen sur votre propre serveur pour garder le contrôle
de vos données (consultation confidentielle par exemple).
-- Pollen est basé sur les services pour pouvoir être intégré partout.
- Pollen est libre, vous pouvez le modifier, l'améliorer ou l'adapter a vos besoins.
-- Pollen est super beau.
-.. image:: pollen.png
- :alt: Pollen screenshot
+.. image:: home.png
+ :alt: Page d'accueil de Pollen
+
+.. _mode de dépouillement: depouillement.html
Deleted: trunk/src/site/fr/rst/nombre.rst
===================================================================
--- trunk/src/site/fr/rst/nombre.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/fr/rst/nombre.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,36 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Dépouillement par nombre
-------------------------
-
-La consultation par nombre se déroule en seul tour. Chaque personne
-attribue un nombre à chaque choix. On peut aussi décider de ne pas
-s'exprimer à propos d'un choix et laisser le champ de saisie vide.
-
-Le dépouillement indique pour chaque choix:
- - le nombre total de votes
- - le nombre de votes blanc
- - la somme des nombres parmi les votes non blanc
- - la moyenne des nombres parmi les votes non blanc
-
Deleted: trunk/src/site/fr/rst/pourcentage.rst
===================================================================
--- trunk/src/site/fr/rst/pourcentage.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/fr/rst/pourcentage.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,31 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Vote par pourcentage ou vote par estimation moyenne
----------------------------------------------------
-
-Chaque électeur a 100 points à répartir entre les différents choix (d'où le
-pourcentage). Le choix qui a le plus de points est déclaré vainqueur.
-
-Ce dépouillement a pour principal avantage d'inciter le vote sincère, mais peut
-se révéler complexe en cas de nombreux choix.
Deleted: trunk/src/site/fr/rst/tutoriel.rst
===================================================================
--- trunk/src/site/fr/rst/tutoriel.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/fr/rst/tutoriel.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,102 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Tutoriel
-========
-
-:Author: Nolwenn Rannou <rannou(a)codelutin.com>
-:Revision: $Revision$
-:Date: $Date$
-
-Nous allons voir à travers un exemple comment créer un sondage avec Pollen. Les trois étapes nécessaires sont les suivantes : la création, le vote et la visualisation des résultats.
-
-Création
---------
-
-La première étape consiste à fournir les informations générales à propos du sondage et de son créateur. Tous les champs ne sont pas obligatoires. Le type de sondage est défini par l'un des termes suivants :
-
-- **Free** : accessible à tout le monde
-- **Restricted** : accessible uniquement à une liste de votants
-- **Group** : accessible à plusieurs listes de votants
-
-Le type de dépouillement correspond à un l'un des suivants :
-
-- **Normal** : sélection de 1 ou n choix parmis les choix possibles(Vote par assentiment)
-- **Percentage** : attribution d'un pourcentage à chaque choix
-- **Condorcet** : classement des choix par ordre de préférence (cf `Condorcet`_ )
-- **Nombre** : attribution d'un nombre à chaque choix
-
-.. _Condorcet: http://fr.wikipedia.org/wiki/M%C3%A9thode_Condorcet
-
-.. image:: tutoriel/Capture.png
- :alt: Création : étape 1
-
-La deuxième étape permet de spécifier des options pour le sondage. Les icônes en forme de point d'interrogation permettent d'afficher des aides :
-
-- Sondage anonyme : les votants ainsi que leurs votes sont anonymes
-- Autoriser le vote anonyme : les votants peuvent être anonymes
-- Résultats continus : les résultats du sondage sont affichés en continu au moment du vote
-- Résultats publics : les résultats du sondage sont consultables par tout le monde
-- Autoriser l'ajout de choix : il est possible d'ajouter des choix au sondage à partir de la date donnée
-- Limiter le nombre de choix par vote : le nombre de choix que l'utilisateur peut sélectionner est limité
-- Recevoir des emails de notification : un email est envoyé tous les N votes pour prevenir le créateur
-- Envoyer des emails de rappel : un email de rappel est envoyé aux votants qui n'ont pas encore voté N heures avant la fin du sondage
-
-.. image:: tutoriel/Capture-1.png
- :alt: Création : étape 2
-
-La troisième étape ne concerne que les votes restreints ou par groupe. Si vous êtes connecté vous pouvez utiliser des listes prédéfinies pour remplir les groupes de votants (le sondage sélectionné apparaît en gris). Sinon il faut saisir leurs noms et emails. Il est aussi possible de donner un poids à chaque votant ainsi qu'aux groupes.
-
-.. image:: tutoriel/Capture-2.png
- :alt: Création : étape 3
-
-La quatrième étape sert à indiquer les choix du sondage. Les choix peuvent être de type texte, date ou image. On peut préciser également une description par choix.
-
-.. image:: tutoriel/Capture-3.png
- :alt: Création : étape 4
-
-Une fois le sondage créé, une page indique deux adresses. La première est l'adresse de vote à envoyer aux votants (automatique si des emails ont été rensignés). La seconde est l'adresse de modification du sondage qui doit rester privé (elle permet aussi de clore le sondage).
-
-.. image:: tutoriel/Capture-4.png
- :alt: Création : liens
-
-Vote
-----
-
-La page de vote contient un rappel des informations du sondage ainsi qu'une représentation des votes de chaque votant. Le créateur du sondage ainsi que le votant concerné peuvent modifier un vote. Si le sondage est public, il est possible de voir les résultats. De plus, l'actualité du sondage peut être suivie par flux Atom et on peut poster des commentaires.
-
-.. image:: tutoriel/Capture-5.png
- :alt: Vote
-
-Résultats
----------
-
-La page de résultats permet de visualiser les résultats du sondage sous la forme d'un diagramme. Elle rappel les informations du sondage et indique le vainqueur. Plusieurs affichage sont disponibles : cammembert, cammenbert 3D et anneau.
-
-.. image:: tutoriel/Capture-6.png
- :alt: Résultats
-
-Autres fonctionnalités
-----------------------
-
-Un utilisateur identifié a accès à d'autres fonctionnalités. Il peut notamment voir la liste des sondages qu'il a créé ou auxquels il a participé. Il peut aussi créer des listes de votants manuellement ou à partir d'un fichier CSV ou d'une url LDAP. Un administrateur peut quant à lui gérer l'ensemble des sondages et des utilisateurs.
Deleted: trunk/src/site/fr/rst/ui.rst
===================================================================
--- trunk/src/site/fr/rst/ui.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/fr/rst/ui.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,244 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-UI
-==
-
-:Author: Nolwenn Rannou <rannou(a)codelutin.com>
-:Revision: $Revision$
-:Date: $Date$
-
-L'interface web de l'application a été créée grâce au framework Tapestry de la fondation Apache.
-Tapestry est un framework de développement pour applications Web J2EE dont l'architecture est à base de composants.
-
-Il présente de nombreux avantages :
-
-- peu de configuration grâce aux annotations
-- fortement orienté objet : abstraction des notions de sessions, requêtes, cookies...
-- séparation complète du code métier Java et de la présentation en XHTML
-- feedback avancé : messages d'erreurs pertinents et complets
-- rechargement à chaud : pas besoin de recompiler le code
-- développement de composants facilité
-
-Data
-----
-
-Le package data contient les éléments du modèle de l'architecture de l'UI.
-
-UIO
-~~~
-
-Les UIO (User Interface Objects) sont l'équivalent des DTO du business côté UI. Les attributs des UIO sont privés et possèdent des accesseurs et des modifieurs, car le framework Tapestry manipule les objets via ces derniers.
-L'interface graphique manipule directement les DTO mais il y a deux UIO qui héritent du DTO ChoiceDTO : DateChoiceUIO et ImageChoiceUIO. Ils sont utiles lors de la création des choix des sondages de type date ou image.
-
-.. image:: schemas/ui/DC_UIOs.png
- :alt: Diagramme de classe des UIOs
-
-Lien
-~~~~
-
-La classe Lien représente un lien hypertext : elle possède un attribut name, qui est la chaîne de caractère sous laquelle sera affiché le lien, et un attribut address, qui est l'adresse sur laquelle pointe le lien.
-
-EvenOdd
-~~~~~~~
-
-La classe EvenOdd permet d'attribuer une classe aux lignes d'un tableau ou aux éléments d'une liste, pour les afficher en changeant les couleurs une ligne sur deux.
-
-PollStep
-~~~~~~~~
-
-L'énumération PollStep représente les étapes du formulaire de création/modification de sondage.
-
-Composants
-----------
-
-Border
-~~~~~~
-
-Le composant Border est un composant présent sur toutes les pages de l'application : il s'agit du menu, de la barre d'adresse et du pied de page.
-Il prend en paramètres un Array de Liens, qui servira à créer la barre d'adresse, et un type de page (Creation, Index, Vote ou VoteCounting) qui détermine le logo et les couleurs de la page.
-
-.. image:: schemas/ui/topIndex.png
- :alt: Border Index
-
-.. image:: schemas/ui/topCreation.png
- :alt: Border Création
-
-.. image:: schemas/ui/topCount.png
- :alt: Border VoteCounting
-
-.. image:: schemas/ui/topVote.png
- :alt: Border Vote
-
-LoginComponent
-~~~~~~~~~~~~~~
-
-Ce composant est un formulaire de connexion qui est affiché quand l'utilisateur essaye d'accéder à une page pour laquelle il doit être identifié.
-
-DateTimeField
-~~~~~~~~~~~~~
-
-Ce composant est un type de champ de formulaire permettant de sélectionner une date et une heure.
-
-.. image:: schemas/ui/dateTimeField.png
- :alt: Composant DateTimeField
-
-FeedBack
-~~~~~~~~
-
-Le composant FeedBack gère l'affichage des messages à destination de l'utilisateur. Ces messages ont une apparence différente selon leur signification. Par exemple un message d'erreur ressortira plus qu'un message d'information. Le composant permet donc d'afficher ces types de messages lors du rendu de la page. Il est possible d'afficher plusieurs messages de types différents en même temps. Ceux-ci ne seront affichés qu'une seule fois et aussitôt supprimés. Ce composant se comporte un peu comme le composant Tapestry Error qui affiche les erreurs de validation des formulaires.
-
-.. image:: schemas/ui/feedBack.png
- :alt: Composant FeedBack
-
-Pour personnaliser l'apparence des messages, il faut définir les classes *fb-error* et *fb-info* dans le CSS. Dans le template il suffit de placer la balise du composant ::
-
- <t:feedback t:id="feedback"/>
-
-Dans la classe, après avoir déclaré le composant, il est possible d'ajouter des messages ::
-
- @Component(id = "feedback") private FeedBack feedback;
-
- feedback.addInfo("message d'info");
- feedback.addError("message d'erreur");
-
-Image
-~~~~~
-
-Le composant Image sert à afficher une image dynamique, telle qu'une image téléchargée sur le serveur grâce à un formulaire. À priori, on ne connaît pas le nom du fichier correspondant à l'image, on ne peut donc pas utiliser d'asset pour l'afficher de la manière suivante ::
-
- <img src="${asset:context:img}/image.png" />
-
-Le composant crée une élément HTML de type image en l'associant à un flux de type ImageStreamResponse ::
-
- <t:image src="/img/image.png" />
-
-Chart
-~~~~~
-
-Le composant Chart affiche un diagramme de type camembert (PieChart). Pour cela il utilise la librairie JFreeChart et convertit le résultat en une image facilement intégrable dans une page Web ::
-
- <t:chart width="210" height="190" values="choice" title="title" type="1"/>
-
-Le paramètre *values* correspond à une liste de chaînes représentant les labels et leur valeurs respectives (exemple : {"val1", "20", "val2", "10"}). Le paramètre *type* est le type de représentation du diagramme (1:PIE, 2:PIE3D, 3:RING).
-
-.. image:: schemas/ui/chart.png
- :alt: Composant Chart
-
-Pages
------
-
-Les pages sont à la fois la vue et le contrôleur de l'architecture. Cependant chaque page est représentée par trois fichiers :
-
-- un template .tml (la vue) qui contient le code HTML et les composants Tapestry
-- une classe Java (le contrôleur) qui initialise les composants et les données traîtées, qui définit les actions associées aux composants et qui utilise la classe BusinessServices du package services pour appeler les services du business.
-- un fichier .properties (ou plusieurs pour l'internationalisation) qui contient les messages affichés sur la page.
-
-Création d'un sondage
-~~~~~~~~~~~~~~~~~~~~~
-
-La page de création de sondage permet de créer un sondage en renseignant :
-
-- le titre du sondage (obligatoire)
-- la description du sondage
-- une date de début et une date de fin
-- le nom du créateur (obligatoire)
-- l'anonymat du sondage
-- la possibilité pour les utilisateurs d'ajouter des choix
-- l'envoi d'email au créateur en cas de vote ou de commentaires
-- le type de choix (texte, image ou date)
-- les différents choix et leur description
-
-L'application ne gère pas encore la date de début et la date de fin, ni l'envoi d'email, ni la possibilité d'ajouter des choix.
-Lorsque les choix sont des images, les fichiers sont envoyés sur le serveur. En revanche, l'endroit où elles sont enregistrées reste à configurer.
-Si la création du sondage réussit en base, alors une page de confirmation est affichée et fournit à l'utilisateur deux liens : un pour voter, qu'il pourra envoyer aux personnes qu'il souhaite voir voter, et l'autre pour modifier ou clore le sondage.
-
-Modification d'un sondage
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Les champs pouvant être modifiés sont les suivants :
-
-- le titre
-- la description du sondage
-- le nom du créateur
-- les dates (même si à terme, il faudra déterminer des conditions)
-- l'envoi d'email
-- l'ajout de choix
-- la description des choix
-
-Cette page prend en argument l'identifiant Topia haché en MD5 du sondage concaténé à l'identifiant Topia haché du créateur.
-C'est également sur cette page qu'il pourra clore le sondage pour pouvoir le dépouiller.
-
-Vote
-~~~~
-
-Cette page permet à un utilisateur de voter à un sondage. Il doit renseigner son nom et cocher ou non une pou plusieurs cases.
-Cette page permet aussi d'ajouter des commentaires au sondage.
-Cette page prend en argument l'identifiant Topia haché en MD5 du sondage.
-
-Les votes portant sur des images nécessitent de pouvoir télécharger ces images sur le serveur. Le composant Tapestry Upload permet de faire ceci simplement en le plaçant dans un formulaire et en enregistrant le fichier ainsi soumis (UploadedFile) dans un répertoire du serveur. De plus il est possible de limiter la taille des fichiers dans la classe AppModule (méthode *contributeApplicationDefaults()*) ::
-
- configuration.add(UploadSymbols.FILESIZE_MAX, "500000");
- configuration.add(UploadSymbols.REQUESTSIZE_MAX, "5000000");
-
-La miniature correspondant à l'image est créée une fois pour toutes lors de sa soumission afin de ne pas surcharger le serveur en redimensionnant les images à chaque fois qu'un client les consulte.
-Par contre il n'est pas aussi aisé d'afficher ces images par la suite à cause du fonctionnement de Tapestry. Un composant Image à donc été créé pour remplir cette fonction.
-
-Résultats
-~~~~~~~~~
-
-La page de résultats utilise le composant Chart pour afficher les résultats d'un sondage. Ces derniers sont récupérés grâce au service ServiceResults.
-
-Sondages d'un utilisateur
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Si l'utilisateur qui crée un sondage est enregistré et connecté à son compte, le sondage est relié à son compte dans la base de données. Il pourra alors ultérieurement consulter la liste des sondages qu'il a créé. Ceci lui permet de pouvoir récupérer les URL des pages de vote ou de modification s'il les a perdues.
-
-Listes de votants
-~~~~~~~~~~~~~~~~~
-
-Les listes de votants peuvent être créées à la main en renseignant les informations de chaque votant mais il est aussi possible d'importer une liste de votants à partir d'un fichier CSV. La lecture d'un fichier CSV est réalisée grâce à la librairie Java OpenCSV qui permet de définir une stratégie de mapping pour convertir directement les champs en objets.
-
-L'utilisateur identifié peut gérer des listes de votants. Lorsqu'il créera un sondage restreint, il pourra utiliser ses listes de votants prédéfinies plutôt que de saisir manuellement la liste de votants pour le sondage.
-
-Services
---------
-
-Tapestry est livré avec de nombreux services qui font partie intégrante du framework, mais il est aussi possible de définir ses propres services. Dans la classe AppModule, qui contient le peu de configuration nécessaire au fonctionnement de Tapestry, on peut lier ses services en complétant la méthode *bind(ServiceBinder binder)* ::
-
- binder.bind(ServicePoll.class, ServicePollImpl.class);
-
-Une fois que Tapestry connaît l'interface et l'implémentation du service, on peut l'injecter dans les pages de l'application et l'utiliser normalement ::
-
- @Inject
- private ServicePoll servicePoll;
-
-Configuration
-~~~~~~~~~~~~~
-
-En plus des services métiers définis dans le module pollen-business, un service propre à Pollen-UI permet d'accéder à la configuration de l'application (serveur de mails, répertoire des images...). Ce service lit la configuration dans un fichier *properties* lors de son instanciation.
-
-BackgroundWorker
-~~~~~~~~~~~~~~~~
-
-Un autre service, BackgroundWorker, permet d'effectuer des tâches en arrière-plan. Ce service est utile pour envoyer des emails à intervalle de temps régulier.
Deleted: trunk/src/site/fr/rst/user.rst
===================================================================
--- trunk/src/site/fr/rst/user.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/fr/rst/user.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,33 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Documentation utilisateur
-=========================
-
-Vous trouverez ici toute le documentation utilisateur disponible pour Pollen.
-
-Vous pouvez trouver un `guide d installation`_ et un tutoriel_ pour apprendre à
-créer un sondage, voter et dépouiller les résultats à la fin.
-
-.. _guide d installation: install.html
-.. _tutoriel: tutoriel.html
\ No newline at end of file
Deleted: trunk/src/site/fr/rst/votecounting.rst
===================================================================
--- trunk/src/site/fr/rst/votecounting.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/fr/rst/votecounting.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,176 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-VoteCounting
-============
-
-:Author: Nolwenn Rannou <rannou(a)codelutin.com>
-:Revision: $Revision$
-:Date: $Date$
-
-Cette partie décrit l'implémentation du module VoteCounting.
-
-2 Interfaces existent :
-
-- ServiceVoteCounting : Service de gestion des dépouillements.
-- ServicePollExport : Service de gestion des exports d'un sondage et de ses résultats sous un format Standard,
-
-ServiceVoteCounting
--------------------
-
-DTOVoteCounting
-~~~~~~~~~~~~~~~
-
-Les DTOVoteCounting (Data Transfert Object) permettent d'utiliser convenablement les interfaces proposés par le module VoteCounting.
-
-Il y a deux DTO racines importants :
-
-- PollDTO : Correspond à un sondage et tous les éléments importants pour le dépouillement.
-- VoteCountingResultDTO : Le résultat du dépouillement organisé suivant les choix possibles du sondage.
-
-PollExportDTO a été ajouté dans le cas d'un Import, il contient un PollDTO et plusieurs VoteCountingResultDTO.
-
-Deux énumérations sont également disponibles et permettent la normalisation des types :
-
-- PollType : Type de sondage (Groupe, Libre, Restreint, ...)
-- VoteCountingType : Type de dépouillement (Condorcet, Pourcentage, ...)
-
-A noté que le VoteCountingType sert de référence pour le dépouillement d'un sondage.
-
-.. image:: schemas/votecounting/DC_VoteCountingDTOs.png
- :alt: DTO du module VoteCounting
-
-**PollDTO**
-
-Il est composé de PollChoiceDTO qui sont les choix du sondage, et de CommentDTO qui sont les commentaires du sondage.
-
-Il est composé de VotingGroupDTO. Ce dernier correspond à un groupe de votant dans le cas d'un sondage de type groupe. Il existera un et un seul groupe si le sondage est d'un autre type et aura des valeurs nulles à ses paramètres (weight et idGroup).
-
-Chaque VotingGroupDTO est composé de VotingPersonDTO correspondant aux votants liés au sondage (personnes ayant votées). Le votingID sera égal à "anonymous" dans le cas d'un sondage anonyme.
-
-Chaque VotingPersonDTO est composé de VoteToChoiceDTO correspondant aux votes du votant (pour chaque choix, une valeur).
-
-A noté qu'il n'est pas nécessaire de connaître l'ensemble des choix à l'avance au niveau du sondage. Le dépouillement se chargera de réorganiser les résultats suivant les choix possibles.
-
-**VoteCountingResultDTO**
-
-Les résultats sont donc répartis suivant les choix possibles du sondage. Un ResultDTOV est donc composé de ChoiceDTOV correpondant à ces choix.
-
-Nous avons donc pour un sondage donné :
-
-- le résultat global (VoteCountingResultDTO.choiceResult)
-- le résultat par choix (ChoiceDTO.value)
-
-Operations
-~~~~~~~~~~
-
-- executeVoteCounting(poll : PollDTO) : VoteCountingResultDTO
-
-Cette opération permet l'exécution du dépouillement d'un sondage.
-
-- executeGroupCounting(poll : PollDTO) : VoteCountingResultDTO
-
-Cette opération permet l'exécution du dépouillement d'un sondage en fonction des groupes.
-
-
-Implémentation
-~~~~~~~~~~~~~~
-
-Le Pattern Strategy est utilisé pour gérer le dépouillement. Une classe Context permet de définir quel type de stratégie employé.
-La stratégie est définie dès le départ via l'attribut typeVoteCounting du PollDTO.
-
-Ici les stratégies sont représentés par l'interface Method qui sera implémenté par :
-
-- CondorcetMethod : Dépouillement selon la méthode Condorcet
-- StandardMethod : Dépouillement simple
-- PercentageMethod : Dépouillement selon une pondération des choix
-
-Chaque méthode implémente l'opération "executeMethod(choices)" qui sera appelé dans la classe Context par l'opération "execute()".
-Ainsi le contexte doit connaître l'ensemble des choix et des votes pour chaque choix et par groupe.
-
-A l'appel du ServiceVoteCounting, un nouveau contexte sera créé et le PollDTO sera parcouru pour créer les choix, groupes et votes nécessaires au dépouillement qui sera executé.
-
-.. image:: schemas/votecounting/DC_ServiceVoteCountingImpl.png
- :alt: Diagramme d'implémentation du service VoteCounting
-
-Execution
-~~~~~~~~~
-
-- Appel à executeVoteCounting
-- Création du contexte dépendant de PollDTO.typeVoteCounting
-- Parcours des PollChoiceDTO : Ajout des choix au contexte
-- Parcours des VotingGroupDTO : Pour chaque groupe -> VoteCounting.routeGroup(VotingGroupDTO) (avec ajout du groupe au contexte Context.addGroup(idGroup, weight))
-- Parcours des VotingPersonDTO : Pour chaque personne -> VoteCounting.routePerson(VotingPersonDTO)
-- Parcours du Vote : Pour chaque choix -> ajout au contexte via Context.getChoice(idChoice).getGroup(VoteCounting.currentIdGroup).addVote(value, weight)
-- Execution de la méthode de dépouillement -> Context.execute()
-- Création du VoteCountingResultDTO qui contient l'ensemble des choix avec leurs résultats
-
-.. image:: schemas/votecounting/Seq-executeVoteCounting.png
- :alt: Diagramme de séquence de l'exécution d'un dépouillement simple (sans détails de l'algorithme)
-
-Dépouillement Condorcet
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Avec un système de vote classique, le vainqueur est le candidat qui possède le plus grand nombre de voix. Avec la méthode de dépouillement Condorcet ce n'est pas forcément le cas. Le vainqueur est celui qui, comparé à chaque autre candidat, est toujours préféré.
-Dans certaines situations un tel vainqueur n'existe pas, c'est ce que l'on appelle le paradoxe de Condorcet (A>B>C>A). L'algorithme choisi dans Pollen consiste à choisir le candidat qui a gagné le plus de confrontations. En cas d'ex aequo un vote doit être refait avec le groupe de tête.
-Le déroulement du vote par Condorcet est le suivant :
-
-1. Les votants classent les candidats par ordre de préférence
-2. Pour chaque vote, on compare les classements des candidats par paires et on compte le nombre de victoires de chaque candidat
-3. Le gagnant est celui qui possède le plus grand nombre de victoires
-
-Dans Pollen, l'implémentation du vote par Condorcet comporte en plus la notion de groupes de votants. En cas de dépouillement par groupes, l'algorithme est appliqué au sein de chaque groupe. Ensuite l'algorithme est appliqué une seconde fois sur les résultats des groupes.
-Lorsque les votants participent à un vote, il leur est possible de classer deux choix à égalité. Il n'est pas nécessaire de classer tous les choix, ceux qui ne sont pas classés seront considérés comme derniers à égalité.
-
-
-ServicePollExport
------------------
-
-Operations
-~~~~~~~~~~
-
-- executeExport(export : PollExportDTO) : String
-
-C'est l'opération principale qui permet l'export du sondage, l'objet passé en paramètre contien l'objet poll qui n'est que le sondage, et une liste des résultats à exporter ces résultat sont obtenus par les différents types de dépouillement. Cette méthode retourne le nom du fichier exporté.
-
-- executeImport(path : String) : PollExportDTO
-
-Cette opération importe le sondage et ces résultats qui sont dans le fichier dont le chemin est passé en paramètre, donc reconstruit l'objet PollExportDTO, qui est retourné par cette opération.
-
-
-Implémentation de l'export
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Une simple implémentation a été faite pour cette partie, il s'avère que l'utilisation du pattern Visitor est significative pour l'implémentation de ce module vu qu'il fonctionne de la même manière que Visitor, cependant pour mettre cette possibilité en œuvre il va falloir ajouter des métodes aux classes DTOs ce qui viole leur sémantique, donc on a procédé comme montrer dans le schéma suivant.
-
-.. image:: schemas/votecounting/DC_ServiceExportImpl.png
- :alt: Diagramme d'implémentation du service PollExport
-
-
-Résultat d'un export
-~~~~~~~~~~~~~~~~~~~~
-
-Pour concevoir le module d'export d'un sondage géré par l'application Pollen, il a fallu qu'on spécifie le résultat souhaité, pour ce faire on est parti sur une modélisation UML afin d'extraire l'architecture en arborescence de notre export, voir le diagramme de classe suivant :
-
-.. image:: schemas/votecounting/DC_ServiceExportXML.png
- :alt: Diagramme de classe de l'export d'un sondage et ces résultats
Added: trunk/src/site/resources/home.png
===================================================================
--- trunk/src/site/resources/home.png (rev 0)
+++ trunk/src/site/resources/home.png 2012-04-24 07:45:57 UTC (rev 3301)
@@ -0,0 +1,365 @@
+�PNG
+
+
+IHDR��,���sRGB���bKGD������� pHYs��tIME�'��`� IDATx���w|������� �M,��`�y��V��ڮ�E��]����Ջ(�{�"M �'����e���c61��,!�
+<�O>�2;3���gΞ9#�
+"""""�
+X�"""""�"""""b�'"""""�"""""b�'""""����U@DDDԲ���ܒrk]���2�
+5F�GUU��Qc��j�U�,��VZ�����k�7!s�I�����~�qB���t9j?S��!�m��s���yh�ɓ���q�3��^�?��:N������**�;tK8r�g���!L�DDDD�ۊ�����������7����j��&�ƚ٩��P��hnn�;þ�cT�{�
+�@@�����kpm�i��,�x�g.YU1��G�[��=�KB���3���!r��w�x�:���q�Q�lMU d�Y�z���ZW�7�7�5�Na��~�n(נ���/�[P\�D�f����n���V��*���?|f�6�;>���#'mtWt����=�I����'�w᪙ߣ���0��x��9I����oxgiu�5��
+͖�s�-�����m���}Vg�>�����պ"����S��}F��߲Z��ȕ (�*������@EEEEEEyyyYYYeeeyy���:�z��z� Bhx�WM�9J�|k��3�?y�������X+7��Ž'�%����.x���L�DDDD���j'�k�K�8c]iY�u:��ٖ�cy=HO����&�M�J�ʈ�f�N����H�5��k>:k�}Cn�^Z���ͽgb~uՊq���~�]�*���� ���w�Uκ���/����b������_X�I��>��o����m�<ʎ�-D\������ϟ��q���f����@i��ᅲ5l�����L���uu� 9jY������1����o�~
+Lt�����n�����k��Wu��2TUxt�sIG���aG���l���������v��йmJ���o��+��J���l�%H�&��ee��uH�j�ju<o��g��L�<Y}���W�ۂR'��u�����[�y���uR��9K���⳪A��_>s����]�o���t�]�>7fa���p���<�c�Ȥ�GE�֦ȫ�u��Y��nտ�u3tĽ�*__��V)�f�����W��ߘmE
+��1NHC����eA�u��_զ:`�@��m��<��.�^�y��#jvޏ�J���h�f߮�?;���|=�����q�DDDD--�W9l[�ڧ����^u�1Z�lj`C���OWe�d�O�~��և�sQ����/>X���~Yq����^-*���'�������?�����+ɔ�\R�vX�x����;s��~��?���ŗ~�l��߮�B���I�z[�?EZ��c�S�npW��gGޫ��u��/��߭��V��|��O^sp��Ð�oڭ�
+�J��mE��Q�1Ac��ڶm�1�ǂ1""���`�
+E��������? �,F0�@ ��1���?\�@��ٻݗ?��|*�?�.��+CD
+㼦}�����;�o�&��ЮC��vA��Թ8
+��\3�~�_�����>2w�w!o�K^�pX/L���+��n�8kJ5)+)ܟn'f�UN��|q���.����׆���Q��Y�q�U)R$�]
+�f�Fګ`�'�{��n���썓9s� ������m�{Z��TK��L�ѠcB� ����8��j��Z�������)[TŠA��Θ( �����_G��0�jG�@ ����]nJ�n�]�dL��i�v��gf��)��e&R��(�)�����߸���|~�~I�I������}5����C�懊���G������ӤbcE�B�P����܌����m�U���3�Ϊ��GE�V�Ue��v�j8�G\UJ��O�6����������Cgz&������R��@�1&2�� c�;Տ�8��q�@@~��P0�������+s�^���y%(���"ZQ��!���GNz���_9�ҏ���?�.��:�]���}딴����I:h����m�)7)Σ�Iq�sR��7UU�$LS<���Nyg�Wg�{����������+S���w��7��ޛ�v�[s:���伽S��XV宠d�OE�{'���9�mfff��,X�� ]<8���GE�V�U�����nn#����2yƪ�)�L��x�=Ҙj���q�(�Cn�7n���M0h�A
+9��V�&����tz�����rI�_<����̞0����ۤ�};��������v)ɾ �gDŽ�,+#%��j��Mwrҝ��]�v�6{�����*A�\�O���7���գ��Ԍ����{.z��k�j*}��Ċn�,?=��k����=?�_�]�����sz_�AC�, �L�s�6g�d��·>*Ҷ"��=|���f"���,z�#Ny��uA
+��<ꎏ<ǝ�;є���G�.������U��IL�����;ۏ�v�ɵڴ�s۩U��y�wz������a��[�?3�Q���N��Q�{e�w�;����嗯���k.X��8�����H
+]r�7�g�ٶlX���o�
+�NU���.��?�ڪ���V���&gؤ�/=��S7^}i���eH�<h���.���5y�\���??|��n{�FoǁW���ŝ"e˪��~��"o�?�FXU�{G�=}�;�evg�uhu�w?����j7i�|����.?'��`R��x��'�ɲ�sߺ��[����<��V��_z�UW*�C�Ձv ��@ X]p�@ P]]�{����F�`��g����n������PU�q.���i%
+3ø'�8o:)�c��>���瀡��MT������[z�����/��ʈ�����G��.�������v�CDDDD�����_aeż�:�9��hw�?w7I%%M�{l;9���IDDD���[KIK5���&"��>ӧψ&�ϙ�8~|�g�%�_�8� ̎~�ӯ�3f�_��9z��������ԭkfʷ�����f{ҋ��ǎ������-Z�̽���Ӯ�vU}��SSn�G�g.j�~]�U&��+{�~�,�DDDL��%c�w�h��$،�č�����K�|��{�7lY[�$R��9j��z+
+�
+4ۓ���\Vo�d��Nz��}��R�������7�8��{�;l��S��� ��m""�]��7imZU��3~�Wf��ˮ,���NN���|�iOM��+śq���3tؕ%���{����S�~�����.��s�����x`�����*��<��|2|�w��+�z|�Ǟ�<�<��=�'�*h��{��G�/"""b��vN[�`�"�eAvl�
+oQ�ÏXj���\�5{���0iR�>�}��,h�g���h7�q��!dv�RPKĊ.����Řu��Luȁ�.�H����ۖ�7�s�Ҧ��טƞ�) HNI�6}��{W�9�W��(9y�>"""��Y�x���7�+]��S*7�4����O)\�m�hDC���{v�o�>�w\�v풒�\��Ï�ӷ�Hi8���m���q��MvоCq#)�������SZ��N�w�!3�1��N����o��;����bC.�"bo�ݳk�gΰ=6��&#���E�@~s��(�?R${�����G\z�m/7w��aH���{��M%.�Ò�1�ݩ�aH[�]^�c8�~
+�dE^<�����I��ߜ��Ï�b�em���ƪ}�k��-^���.8�v<r R���|��?���d�����&WU����:Y�?��#�Ӫg@�E���c� ��GL���>8�������q�WP�*�~�Qsq���`X/D�����KqbFS�W���:/�&���W��nϫ��}�~}S�*��nHs��f����Zm�M�a*��]<�o �D8D�7�}��:vj��SǗ_��$����3.�`���>���Ꝥ���|�٢������,�
+'�D�vh�g>�
+��3#��F�N8�e|�����q�p��a2�ꃶ퐷���x�zrg��0�*r=D��W"�
+r� ���8Q������"�k��{㤻��~8�ͺ��1�>.�<�8���ۣ�YXP���#�#�������hw[���D���~���F���=������Ex�0��V�u6nW��wa�k7m�ۜ��?��f�6Z1ڶk�Jlr�>?�[��y,��i�ۿ^�iSQiI�_%���&ٟK�~���~Y_����G�I���cݲI����מxbL�8���L�ދk���=��<�K�i2>����������r~~�ߋ_����S���`�w-F�i��I<��>�)���?��P��Gb�[X�{�Q����X��Ñoa�|����s`mc\�x`�bl%ޙ�����7�����x�)���E�զ�:cV���Ho4�zK�%�ob`���y�Ҩ]e����}��eG����k
+���x�f��S
+g����������J���Q��>�}�G���9�k�Đ1�:�
+���k/���f|7���!1��+/��M31%7/�7�oƣR�x�}��ȉ�9'����Rl��GL��m�#H�[b��ni��b��'�G�6�a��x������_�{>x��GD1&�Z�,����%�q!��Vϻ��� E )蛋e����s��#>�~�|�t�����8����ݽ#���[�_�#�yE��;�W�6��J�ٴ(��6WV���M�,������ݬ�:N��=����g�U������c���S��z����/X���O^�|���j������=������ �vv�ñc��a5?V��~(JW�ICz�Rz[�-D��̤�-;��X�
+/Gy>��.�B�T#1A ������
+��/G"M�|[�����0�=<����}p�(��`�'���x-��T�ˇn����U��N� x-g�7`�]z�k�ԯ�������%~\y< Ho4E��+E�/��z�vW��[c��J��%�T����:��ѣ&�5�P��j>���u��S 9e~��b�Z�6I���
+��1e�\<�L�{�Y#��#���^�
+w����,������lH�O �C��V#���m}�;"�+��E�w_�ڷ�-Ju=t</�����$����pX2J"�!_�ҳ��(wĒ
+;ws^��7>�p�#��ÿƫ�F~�Y;��RDx�n��+�l�w��8�y��/,��A}��
+���͚5����Cn��1o�5w��%K�a�s#mzӦ������㋯V&�&l�0�F��j��w�5�mܐ�����U
+��cW���RĠ
+�����x�{>
+>ө�qD ��A ����f��W�(�a����4,��ġ{�ؼ17�������
+�����:�*ٹ�k\b�t��7��+1�,�MF����m��X�1&����9�OƄ ˚a[�w\���)���;�����'���>ӧOߩۭ�N:�`�֥���'��S���m����گ�j۶M(�ѣ�������zL���cYu� �������Ǖ�@��/��<v8dEC�m���:��U�^��{��<r=,�r��Cp�7����L{��㟈�Zu4@w��9�Z�꽸�X������{�����>�-�o��/��0��o4>o}���
��A��L�#қW3�%HT��36�N=�"�?��cƍ���q#j�d�źlX�ǟ�2�M��J�����_���[">�m�G_�F����ƽ=7BV�<�G����ط���p �ܭ[VQI���f�?r�+ �feRjZA37���ٻ���<���'�z��N�m�R�c�P�썥/��cX�&W_��ȟ&�im�>�i�J�����g��
+벶�����z��
+ӧ��ر�M7�l�q�7���l�ص�r��?��ҥm��6��݈m����Ə�[Z�JJ�q�Dq�,d�V�/f�ȇ>~vT�r�x""jޤ��d��Q�X�-�و��f)�G�4%��� '۵���%]:u<����u�9;Udee7�XQ�F��ĔTKĊ�q�o��v��~��/j`Ū�~��eֶ�{Vf�C���G\���z��Ph���c�}3=����Q�q���<�];�l���7�#p��ߛ��^|����3O?�KK��5WR�ƨ�qލȸɭ0�e\Љ�`�ߥ����ק��wd�� 58t+95
+
+Eu�?7ڰXQU�pɒ�<��ֶv�P���
+�f��=���>w>.�[(������m~Z�����Dz��nw��u{��/>��_=�'DD�l�`���đ?�ɹ��,1Ъz=���.n�j����m�-��ݰ�_W�Bb|a~�-~}�I#�,I��+�
+=o�##�
+"""�]0�SÌj��IE���S�$��Ϝ�g��G5��32��~��Oc�|���'��kf]z��F9c$�?����@��=�~�u����>@�c�uk����ͼi��A+�o��k2⭘�܍�O�ۿo�ȥ�I�?m3|�m"��IPF���
+��I��}{��:��eK6����������CBBB��Y���Μ��ٞDw��Iޓ�*�P��ӟԳ�p���A������s������F'�m���I�x@DD�K�U�M�q�F=V��e^����f���'*w4��j�֭O>9��:�M?V�u�wDRb��qdNۆ����&�UV���SOk
+�
+D{���?��Ǚ}�e�Nzr5X��wh�.�e��Ob�ޫxh�2x�/""""�]I}���$k!���۬""�����������������韈������������韈������������韈��������������%�z��k��2e������q����ֶ�_f[��z���~��*�?�0x�������9bĈ����f�YYY��v[AAA��?��<��]I�.]rss��f�ԩu;v���o�����ի�m��Ij�ޮ]�{[�q�
+�"�e���[o
+:����գG�g��cǎ������f�=�Vm��\=��#�G����;o�����ƌ3y�1��_��o���kkqqqj#���k�9���?��ú��sz�r�~�����ku����,E��DoĈ�e�v~ʔ)u��nk�
+>�{�^�jUqq�]w�5o1cư��?�]z�����������
+4��͒%K}��u��8���ٹ����ԩS�#��~�(-^��1�SO
+D���U
+>�]v�%�\��SO�{�cǎ���c#'"""�
+�3g��ٳ��m�>����x≞={�
+���L\�~����{챭�>|ʔ)Æ
+6lX��q��t�ҥK��H)�_&�=tw���
+��y��ֿ@��EBB���Ï<��c�=v�ȑl�DDD��Oa?��c��<��o����}QQ�ۃ>p��#�8����>��'�ԦإK�����\sM�J�Y&�ѣGo1$f�qGє��e�w�VK]u���y�ȑ#Ǎ7jԨ<pG��Z�������?����j�s"""b��h����,�[�n_|�
+7�P�=������
+�]�v���;�9��_F��_k{�p[��Gu�vmw��S�N-(((((())��碮���?���]t�05�48>������v
+�����韈������������韈������w'3�Og%Q�?DDDDD���1��?1��?1��?1��?1�1��?1��?1��?1��?1��?�?1��?��V�Z�J "b�'"���_�J "b�'"��ŋ�O��z "b�'"�]ߚ��7��z "b�'"�]ܼ�����iί�
+""�""��͘9KD~��'V�?�▯X�SYQ���DDL�DD���9s���裏�6��v=V�Z�b�X"*�z�a� IDAT�-cm�zDUYDD����|�����BD����""
+�=sV�� @UU�3Y'DDL�DD�k�<e2,K��s���X'DDL�DD�k��`�e�
+��,]��uBD��ODD����*�����uBD��ODD��+W�߈����O?���BD�+�?DD���)P����}zϜ9�5�`0��Ķ9�6�.�B̜>=�^� K�.g����.-.���B�9$%%%#+��CDL�DD�&|�X��`�"���X3����ܰn��i ��t�������j��Z"���q�D����~V����̙�m+F��*���3~���U�P(�LM��ڍ�T������}>_���k�1lZD��OD�x�?�(+ag(,, �1�\�N�BIJ���hY��6φ֭-D!����9�mۜ�ܜ��:��Y�U��W�i�?Q�y}����o�C�[�z��(T�ks�F�B,_��e����w�dv�P(��"j�V���k�ݛ��8���EDL�DD����<�,�ɭ�XU�d��L�6NRa ��`�����{Ϟ7\�N���k�k$��[m�W�2""�"�~ٲ�E����XM� �P�����W]��C2���o����%'�����ם���v�:t���)/>!��3U��?�IJL��x�Uф>��3D�I췡�w�\��c�(��+�hAeiӦ�؞���{3lk[}��h��¶m60"b�'"j$UU��E���8���T&M�"�%�c4;/@F� ) �e�]�l�4��aR��N�2yܛo�%;PZR�f�J�(���;�u�?Q�9�`��?n����d��t�{�/�Ӷg
+_�����`[VuUUK)KJr2Tm��ƛoi���Y]�f����KK�!"���m=�W������v� �����z�JVH�X�~=TXH����^g���5f̘�R�6�Z TD
+
+���Ͷ�P0D "PMHL��|lZD��OD�C���Ĩ��|VH�()-@��,�:ʗ����5|�*��C-�,m۷WU�ڶ=���ͳ�ʊ��٩�[i�+�-+--a�""�"�xٲm(*�Y�fk�U��~�2�Z���ܝ6�gB!X�reK����@6n,����a��II�:�~���[�eɦ�⊚""�"����}w���i��NvЛc߰,�M:ru����}��I Y�����֭[�"����
+@,�z������fއ�ĔdU��
+��ƈ�韈�����t�²�/���U��>��+w��qLF���ߛ \��@�,�7�E'>!��s���ꪳ�>��w#33KD�;�5���?�*/[�P@E������vL�ͦ�����5�K������~晖R�6mZ�D��O��ʚyDPc��O#"�"���ӿ(�ӫ�j9�46����$O�͇��V����U�JJZ�5����T ��o�8N�}�m�KD� �,��Dl0��?Q�ٞ�SE�PB���Ϛi�j5 �i��>S�O�4'-%`�+[���Z��BŽ�
+d�
+64�&V._�z���5�m}#DU�8��-����������0%�@d�yC�1��F���7P@�^If�[��-A���P���?��E*)1Aq/K1�u�=����˲�(/���1���x�/"b�'"j$'
+gUq'�Q�8Nh��լ�Fx��W@DU�[R�p�roX�"�
+��{�E*�U+��
+U��
+**+g͚�T��m�AՈ���x��?��^���c�?1�5Zx�OU@��(UD�w ��>��k��T'��F�7���yU-(((**j�?;�f`:g��'�����&�~Ƕm˲�@���^�����5�VAD�(�:7�͌�����������kz�>N0�������~�W0_��Nv����\���`Ybۋ-��Bu��Q��C��&�� ��x<c��T[i߱�X�N�
+
+��\��`��P0�^l�c�<�1"b�'"j<����� ��Ol�۳+"�w�g{���-@R��ڈ�xM2�ږ翯���JKMq�X�����]�FU-�.���&��n�Nyqqq��~qI@:�u�"b�'"ڱ�-���YU�d�~��p�����
+
+XE�s�Qwx<r:��yr���g�Џ>�$�˕��㸽�%��C����1���~���Z���s�����%K"��uNn��Z�䦥g��e�������ЩS��m���(q"jaT��C��vjZZJʦ�
+(,���;�|��WXKQ�:i2TX�.�2�Yq��U`�"�����˞�����A;tȹ}e�{>�����srr\ϗ�}�p���c<���p����b��c{<���lQD���OD-.�����{+U��8��m���W_-n ��ƈ�{����!?�o{H�YP@ �gʔ�1^���l���J�!��i������#�m��}7q�?ddf�3��a�]v��'�q�~?����-��������m��ԁ����4� ""����ر��(}��c���Y���j۲���/Wff&�f��PK>�je� @��_x~�
��AD/Zd{��.�0'77)9yϽ�������W�ÖCDL�DD����p���bY�~��""7�t���~�ㄧ�T� 5����nZfY���7�~�E��ʮi#��G��6������u�5��������MRR�a�""�"�f{ٲ�p`���Wk��!�{o'(�x�
+VT����D-$ح��Y���$�/�XWX�Ǽ��\4����V�gC���V��3[+���˙ӧ׳�SN?��A�����r�ƶy�1�5�qj�{Y��
+����u{�t�M���B!��P��똣��!�/F�4�j�����>�?=5EP8n��Z��KMrO=��ˮ�b����ĉ�mo�����O7�^�S�{O;����
+�����Ǎc]�o�ܹ�}�{��N��wGHU����b~����@ PE~ܟ������eTa̯���V�W�L�:u��%999^/����韈��x��W8�՞ ��8X��j����uU���KE���3f�/i`��gm�,/DD1i�1^��69u爪���Hz�935��>�M����&|�լ��3Ӈ�s[1�5c����3�C��:ɸ�qQ��Yf��㴘��ך������hb����ˑ�e��
+6n����?�r�23�T��r����%Y>�%Ea����U�=n��y���傋.f�!"�"�f��z����g_�W'ﱧ{)���>5�iV�uBp/�v4��4���?�f�$U�؞�>���?����x�1u⿈��i�Q�ض�'Gճ���fժ~4����l��韈��9n��ȳzv=F��Z�q��*+/g�E�iS�X�;��J���h��
+[�o&�t��֭���'YRw�����8or�B!Z�����Ϗ��'},�v�|�1���?�u�3U
+��{�,�^�W_�����Blۭ��][E��v�m��N���9�\@�c�1�j��
+��IXx(%�1F�e���[�a�k�Y��w����`�h������ w��po?[��D�}��O;���A��w�y���Yg[�3�'(���gtI4���mJ�K([e�JgϚu@߾�Y���$��oFuy0�����A�}�Ie��T�������w�7�lܸѲ�7�xCD��u��]��%���}�D���|���l5�GUMrJ�=
+E0v1�Ԍ`ԿGA"*��� K�zT���j� �;��LMI�qܓ���nq]���&�:nY,k����%��4qbbbR|bbbRRBbBBRRbR�������CD-�D9KD�&}��a����H��;����{9�=̘:�_7�^��f��*��g�m!)%��Pc����P��m�9c���DУ{�9�:�����٫���SEVB\aR�lu��=�M+�+�~��ݻϙ�3�����OD-�{]��ֽ���#�Ij��P��}��XcuUUVVUT���G����
+���q�7</^�$f˘���6��H�6"��
+���Ο?o�\6"b�'"���_�J��?�*�ۜ~����<��֮]�֞6<��m~�� �$=��
+){!u��Խ���^���Ͻآ��|�7��f3��j�w�m:[7�C:8'��ި9��#�qMDD�*^�KD-/��� ��6��Hƹ�ּ�xPHa��I��4�0֝���ضl��;�U��w��jy�|�
+�զ���&h%&�6��WU;��veI�dm���BD,���1c�<�,������TU� ƨe�V�D����<S�,�����ٳ��K������h�����������S\����+�yĂZ"��qֆu��=��X��M%%��.F��H�* 6�Y���G5�V����X"ӦM�ѷ7�����l�~f���C���opOi�r���[?'�]_݈�����x��� �}�p��������� ���[���"�FeDE
+Kj+\��B�5�{N���Fkf�
+8NLy,� cD�X�O?��V�.]�EDL�DD;Kx�*���6�hEĔ��;��=�����f��~��w��~} �:
+bAP�E."���.���>
+����A�����p�1�l�"�������*DTѷoߊh�����+}��("b�'"�Y���D,��e��i��f� �������XRR\QQ��4��IJ����,iN��,���-��CR5"���F>8����r�I���8������v"�8"�����MK�U��#��;TџWs�k��N�;�*D��_��fI����m�To;Q�R��u�B���jժz2�ܡ�>������韈����v��v'rD���5L;��P0�.�d�ʲM�v�
+\��/�
+�iV��(F?Q�С���W3�M��1*��X q>@T`{��^}u=yc����S��������"���G�nih���X����UUa)�^v�%�y���ϖe����"����?K��>��fv�7�8QU2#=+|9�%}�ɯ���#�������J���oA���W
+��zԨ�*,�{�ݪʪݹ?��UU�!;�U�b[�?9*Kھ}G
+��U
+}L�^�O�R�(���n��VqD��OD�W,���N �
+u�m�1��SQ��z_|�ݹ�Λ_s���VDĂ�6on,�(z=n���P��~��+|s��������u�D��OD��1��859�D��4���T�@n���@ �{���
+JKK�D��k&���,l|B���i�?�`��1B���WzR�=��������I8���v5Ʋ,�GW��^�u�P@E�������ݳ�.\�5M7�S��q��rK�69)�&�˦ʀ������vlqoh��?���6�4����!IDL�DD;Q\|�1�
+������s�SP�W2����g�-X�����8�D����s�?9�*Z�D9|GsTZ���؞{F�������/�ȣ������v�p��D?���s �����U�N�����i�d�LR)����Vؔ�����H���"_���4�������#"�"���e˲�4'Q��p>�x��yT�b���;��
+k��_W4�E�@�1�h�Ƙ*lBb"��PA5ZϹ�{����
+�s?)�l��_�GDL�DD5Nm�w'���B��r���/Hg͜9k֬ݭ���A�I�*D,�?�l��7.!0,�j��-���c-��UC�{��
+�.Z�}e�{� �Mee^x�>"b�'"jn�Np�W������.NE��|���[���Ȟ"P(T,����[U��ի�E�SS۹>kv̝M�n��pP����L��B�@�S6tY��_Ѻ��{D-���h""2��wx��.��* ��Ŷm7��~M�5UJrJŸ�
+'}U�p�X�ؖ%�ũq'�Q�|��g˖.�ܥ�nRu>�OUEܙ-�~�����X+�>{�_P(P@
+=�%���zC/��VU�m�@a�_%ԙI!�4�I�y�?Q�INN�e��y,UX�
++)e��Z?���5+-�5S7z�>�f�~����{������nRuq>�����kEn߾����i���tDŦ��
+DD���VƟ�����ZQU��3fVUU'$��0$"�"�fb���**W/��A�Nx���C���p/��n9�[EE�믿��ӣ���w��KMK *����P���V�̌7Ϋj���??/��
+p�P����o�E�0$���������U5F5�@U��w"��&�-#ޟ��7�z�nRu"�����m
+_d!7��X+r������U�*5
+%��DWq5,[�� ���!1�5�` �@�p�K{�@^3f������Pmҫ~jԈ%"k�mӦMx�'u?�i�����.m��_�D��OD�L|>_8��\�����^
+P]U=����^N�|�r�<�$=5-�۩S���n�ڏ�UF�1E�%���G"�P၏DD-ŪU+;v�d{���;B�s@fF���kw��}���T@��ΛcO;��X+�%K�����i������T�P�D�j��(��Z���Pw��F���O֯[����&��sωe�Ȏ���<���������&��"nó��a]̃��Z"��Q�r��N�;�^_��2W��UffAA��P��`019�QX��?Up���رg��-((h���5�����&\�rU���xHQ�¾"ja�Q�}�������>��c�Cz�ީ�'k(�#�߭|Q5����@||��6�G57��l��_�㑈Z��Q���0'7��������)a����X{w��In�ᆧ�yֲD��EUMII)1f�YUY���f�v�_��v��]��U�V<*��a�?�0nTm��ܚ{��������C|��Gf͜YR\��+|bԨA���V8�7z�D$&&����Xn-��8۶h�{@D��:e
+I"jao���'��emaaN۶�W��g���n�*��,��U+���J���x��ʝP���/p�mڴ�OHh�j�8���>�IJ,�j���mՐP�@3RӖ.]������ו��UVVXM|wc�*2h�����G%� ��'��(|�֦^+��+b����aٶ㘧�x����=t��w����k�=�S�?���?����(
+m�j�y��wǽ��yL�`{������"G:pÆ����1�dggk���I��@'M��N4"ji�|�"������t���$\5�@U����Z��2�������Ͽ���,�Y�t�C?�z�jG�1���z�����9�.8�7Ə�$��@xT����{n���6��Y;uj)
+f�!f��
+m�3
+�%��i�<0���`�?�0"Um�/��(�~��wc�țJK_�
+7\q��P}䡇-KT
+�N]:?��s|��G}t�}�&&$�qǝ��rʉ'�|��s�����c��+*?��ü��@Pս��[�0F�^�C�(-.Z�nm�����j>,jj*��6�$���* �����T<^�Έs"�/��"�X�2��;�o_U}k�g�3���M������"�l뀾}�|kl0�TUU}7q��/�4�K,�ޫk�'��������=v��šP��f������1���?�'�`0UA������ "�A��'���B!kg歲��X+��i�rrr�jzFFjZ�\(��xVղ,�Ľ�����$''�t�)}z����9���ks����]_�Yb�o��vm0�:vT��UM��ŽWt||<�J"b�'"�Y�1nk�0���9�[�Z�?�쳤�DUcY�Q���5k�ս_�����ȋ�=w��'L��è'����S��7�̘1��K[UE䬳����-�����X����(\��<*��韈hgi���N(< M���Bu�>}b���%%ŷ�r���v�{}�C���������U�"3~�v�y�7n���O�<�y�;t�� r�UW�>ߟ3�@Վ�^x�-��<l��I�[(��+W� IDAT��Dz�NJDL�DD;MrJJzFf8|5%`{�Î8"v
+����,����ܥ�����{���ɓ%|�8���w�q���
+:��/�����������ks�G�^�t9�?��u?W07~����[\����4��`'�p'r��W�$���W�Q�s����'M���^[c�Ed�ݺuC��K�q,'
+|˭�N�0!!1�^z��W<��1��ީs�'{�����W�=�x�I�p@4��u���m���N��KE���
+<xƌ-��$&&~ؠ�?Lo�+���w�G"jY8�?�<����.��b۶�t����~������b��'���1���2�q,�>k�Y������O��/����N?�#�����*w��(�ӵk��O;m������ij�?a�W_��ilTa��ɇ� -��,Z�p����v���O�s�������HDL�DD;]JJJU ؤ��*"˖,n}�s��?.����>�499I6_��3�ϸ�����ȇњI-K��3��<>T£v�,�jTM(w�a\p~�����jWXXPЮS' G�\G�ٙ�-���1����Zݱ�~) FU`�Y�ha�Νy0Q��q�D�"�w�}Pm�����.�;�T��ۼ��� )�)[�!@���ճGYy��T䛯��=��:��*""��r�s/�|��R22�9���?�X\T���O�`aۗS��$l,*~���ZVk��y�l��jE�[��g&�����OD-����E2Ƥ���Cn���}��Q]�`A^��;��n���Tc���WUu�1�w���sܱn��ѽ��ŋ� ��e�UAx�8jB�8dꌙ�X���Un�u�������Ԗ�fn�����=��H����wL�x쪊
+�D��Z拗e}�N�����8k2dH^�u��8gN��y�X[vָ�5!1���'|�ᇨ9�����SSս �;>]Ó�
+�O��/,۲}��3g�3W��EP�w�С-�͌z�߽�ww�I�ڈ��T ?�k��$"�"�fuȀ��&m�?�CE``����1cb��?L�\^^v���w��Q�����gf6ɦ��$�T� M���Q�����<��)�z���HQT�Uz$$B �o�ݝ����cv�Z �~���N1���>3��<�<����\NRʰ�p�4<)`�ĉ��Y�wo��M�����l�+��� k�"��?.�yͪU�5�s���۶!+���J�� �߷/8$�o@�����{���,�:�[]8�s��7���IK��O���h���Vg�� �,����z��E��|+��OJ~s�Ԃ��m�7�eܸOG����-��fĩE�'$U��}����ٻgϨ��L� j1�SY@@ͦ��jՒo=���k�}��{�L�B����R�K��߱sG]�^6l�m&�=f���vl�:d��1]I)`��]cnj{{ƌ���{�^�1L�i��C��t��e�ܹ�99�%>�Ѓaa��%����y�
+{j
+�iGO�)����S߸��nݼI�w�艹���Hd�ƘQ#���n盎1vQ�Q���KArRR���Q�<��+ת�Z��;����]s�ν�����[n�9-5u���aaa&���;��{��G\w]�?Ԑ�����7�o@�z�#�I�����r����v"B�j�IMIyxʔ�Q�4@"��
+"����=�O������y��"���������1��%?���&�0��YӣZ]���
+�7�[o��ͷފ����1v ��إ�M۶n����_iBH)���}P��a��p����EEEu��.�kȐ!w�uז�ۃB��)RR�Z�hѫO���%�;�1c�U�ܕR"�?��C����[�����v����D�}�&�M4M�,��D�(J��������G��9t��*I,--���/�kFU�Fߠ�����_̚5|����4u���z$�w�}�ܯ�����dp�?c�R�f�����0{����E�(TO�6I9n���!C����q/.�k��Y�3IB��Θ�d�ϯ���.]��˧����{��o��g��!~Z�x�'����M�:����`�>����<sx�4��~�������(^:a��_~Zr�ر������������c�����4M@D��Jܻ�]�|g1�.
+�����\ӿ�;�L/(($�+{_ �D(Ă~3ftݣ�7*�i��Ȕ)�����V��m�ocn��YQQ�m'%�a�h"@�Ԕ�{���7��Д)���[�nV�`�� ���i�@��ݧ����ׯ߀����U�~I)+**��I�VB�ƨ{�^��Ń�-.kQ� H�lw�u�V�1N��1֨����7n�lM�iEaZ�pA}�D��B�ᄏccǎ���=�ēs��Q�(//���323�7kZRR��/�q� M/�a������8�m��6m�~���(�� &�ۧ�
+�:e���o{Z�|j��M����K�4.��}��ǎy*KH[�n�v���1��1�/D|�Uo�7��7�u��u���_-*.��Ԓ��ȔG�N}���^u�U_|�a�>>>���?��4��C��q8=}�̙Ͽ�|hX���w�.I)�{҇���͵j<�8k֬˚7?}�~nn�{�+���#����r�m��5CD:v�*8�����/�[)����c¿��Wj��!Q�lO>�ly��u7��i����ED��7�rKDx�~7v,���ԥ��x �n���������>��cǎVt�?-ȅ��У{�W^���M��r�?��Ѓ!�r�.D2x0J]7ݺ���}n�3u��uӭ����5�_*6a�ԧ�]l!99����ۊ1v �Q���K�mCUE!�1�=�a���ӛ�ŝ�6L~�i��~��W�6)A�����`"��&��Ǐ�q�]|����E
+)-)))u а�C�ִY���`�G��� Dt������k�����ر�<��OK~�u��DТ�e֢�(/?o劕�SQQa���v�Z��*u���c���E���1BQT��n�)�!)�z�}�-Y���,**z��'�sr&�y�o"�D�B|��7oϘq�]�F��!**�4��>�5���^~���� Om�,{���O?ݩS��c_~�Վ];W�Y[TTh?~�5������W�����<v��~د�=�w���Lӌ��>�.��C�u��mڴINN�H���_�lt��nʶm�&%%�����q�?c�RSZR��N�힀��)W,[6`���d�?�`���W����Y�����aĈа������-���𰼂��Z�3���Ξ|�����{V"z���۷oo���(��g�?�����)�+ʣ#"&O��ו�}||�B�A�q�M�ڴi�������o?��u]?O_���6o��<~�]3���h�JT%R� �$"Ӭ(/�ˈ����c��=v�ًp��,=?%Rq�I9�hb���{ӄ�����fI �999��O�q��)�<R����oպu�Ν����ʚ<y2
+��+/������� TJ)
+Ŗy�ء�T��ID�a����i���v�ݳ���?����_����|����������v�ȬϿ�iZy�㢻fbbc�
+
+�P(�����wc���=c��_~�e������� rhHz��~�ᓾLw�nj� ���_��{��%b�'��_���9s�c�Իf�q���g�j�AD)�H������"���G�J۾m ��(v__�p!��_ lٲ��nGk����=ȭ�SRRZ�ju]3˗-��/8c��[���5������c
+��;��f-{{�̍4eʔ��
+
+��#G�tVT̞3��{ �5����#%�Y�����B����i����'�K @2���ܬ,��O���{w��l�s��<��v�
+�}]3C�CE9�â��@�z�#�JK�^c�]�x�O�إcԨE���i(?}�%T5�����aS�L8p���z��p4m�|��h5���
+<�O�>?���A>�g����JV�G!Z�hq��WU���Q
+�i���W����B���c��u��?���rͼ�ګ�(�V��?&"���}�x��c)����t(6Z�6ᖈMݵsǎ.]�@A~��wM
+
+�3�[D�~>>�SS�##�}���}1� �<������@�ʙF+�4��;�HNJڸi����|5��>�ٗ_��;5%�E˖�����ɉ��(��ݳ��kMiJ]�;�1v1�?��KD�N�<��Ѕ��T�m����������W�p�\BAk���
+�c�>���k֬����ϳ�HxT��I^���u�U(DD@����(���[nپm[#�f��~��k�Ѽ�"R��ܹ��ݻ��c�]t��c�RP\T�?� ���_�t���ߝ1c�]wu���0t�I�w��9�~��~��7��F�h��+W��I ��>=���;vlڼ�1?^^�z��E �~�۟�v��z�1N��1v�3.���#Ho�<�$��j{��'��=G�lD�ªAxf�Q��ŋ/�2�z�E���X�����?"
+U�t�$Dl�E4����t�\ѣ�}�1N��1v���x��m��,���(BA�Xa�g$ �x��/�2������|{���9���Y>o����,DD�s+$,-+���|�c��c��q�\�nj �C˶=�V�g:Ӕ-/k��EwM���*�៤,u8
+
+�>��#�>�8�h�7�.��x��t�Meee|2�8�3������+���F�"��s�mIII�G��袿��EY0��(��AQտ���VDcƌ���G��̧V����SO>ɷ!c��?c�]Ǐ�6m �G�""��,]���/��xKFJ���j�m#4H�G �y�~[XX�xJF��_~]�y�S����ǟ��_�����x�PmH���"D�@0�����Ү�����`��a�zk�5��A�TU���F�6V�֭����5PT��G囑1��1�ίիW�\���������e�*�N�S9�ya-�@�%�$?gn�&O��p`���������[c�f�-]z$�@=v#B���_���[�%c��c�<0`�5%}�T@�_�w��`����[�Έ�i�uBS*@����X�~�R`�?& B�iwM����q�ަzV;�z�l$(�vc��c��c��w�OW4�ձ��R* ���������]�y�K��
+̞����m�;_��ܠ��9�ycoӰ��c�?^V��`_��G�P\�x� ���`c^��1�N���,(4�Z���c����Y�(J]����5y�d�߯��n�:�0l6[�-bcc���=I�3Q�95�BD�̲��E@ e��C�iʸ�8]KJ�N"Re�!D��鷖v��g_~u�KE���/����|��+^D(ARYi���/ߡ��ƌ��c���<b�(�϶O� DĀ��z�BQt�nzTt��]��-]�v���[�������j<�[�����Y�3�ش1�I\dD�ٔ��vEQ|||�����㢢��|}�- H:�q�(MSv�ܹ����ݺ��5�k�C$(F���oO�X#�r0�..7l����T������ u�\�fm�k���&��u�P�p>����p��fgoڸQUU��pPP|BBxx�iRJD�$X��O�&��K@��jn^�ᴴ�"�`��|||t�0�i���l�"y5 ��;ev?�N]��i�����j����,.)�R*ֻ*�SPU���@����KyvL����q��={� !���n���ҥ˶l�ڳg�Oc��c�~L�<Y��P-���KR��"�uC������5";~<0 ���W���%%-�v��А��ж�ڕWT��deenܰAӴ�����Ȩ����@�Ё�w枪
+J �R�|J���I���-/+�OhJR��*��r9M����GDMUQa
+86�D�4�����������v��]JRR����4��s��������ǎ����.�����m���U���;uLOO/�����V��[�)(8����B^0Rʨ�h��O���@"UQ��8�XFߧ�1N��1V�{、�UU����+�T&DÔS�M{����>I��u�ؑ�l������4�fh������M]���=����n
+��������5
+7�"P�fFFƱ�GiXxx���FEG���H)���:u�H����2��0���r��v�MS���8�N]�M�0��u]�4��
+ ��g�u�W�����ݮ��%�Ҍ���yy�����t:��˝N'D�����%u�hf��r���!�"D����ンw�-�^�kf����jՕ����|뭷���c���e�]Lb�4��Ϸ������+777""��]m��+;v�0p�"P��~_��c�Na�����ƚs��gUUu]���*))���,++
+���
+
+v�]���9�����1�M��4MJ32���iݺ��m��\}����.X�H� ���yp"�$�����Q�ر��Q֯�զ$o�#"B�����99Ǐs�݈��zYY���""_��͚}0��o��)**Z��o�֮ݓ�XQ^���]^^�(�U0u���S^^N ��@��s��g�#զV8|�2�'��_�R`�]n��_�l�f
+��0�#���v��������cѢEp�UW��d�l����o�6m�J)���{>��c�G��j�겖-�233���CCBz^ye�f͂��獄�%%%eG۶m���=�v��ū�U��Tn_���$I)�$ܟ��D(��4�����'C$�H���""�[�l�4����v�x�Ii)�ӧO��G{��u�M7O�0!4$$!.^JCQ5Ee�R���
+�����_\�q��"���r�ali |�2�!n�g�]�Ngxd����g�����{ӦM�{�>�7{���[���вe" ��P�n�����'6GK��Ŋ�������HO�u#,<,..>�i���D���U�=�y,��>���ȑ�䤤�j�Z-�z��{��n��f�ʫ��������m���b����aЩJ������Lܷ/'+k�
+���B��_?x���sc唦�|?o�[��'9%���x��=Q1����edd$$$�6�y�ZC�UU�����;�1��������C��]\.�g����O@�fw��u���9�#��DcF]�'&�@ ��#����_�b��M������<xp�^=cc�
+��(����]Q^��QӦ����ׯ]gJYI�M���_VV�z�J������1
+�}�e����+_W3ޒg�$���:��ѡc'i� ��a���ߘj�f噲�6w�-S�M���_�͞}�-���8��)��ؾ����%w8��
+�nX�~�a�V�cF�Qm�i�2t��v��e�q�g��s�o߾�C�P��О���쬷�~����AA�?E4m�|��-��+��$*�(ߵc�im۵0p@�N��@h�P������__O�{����A+�/�>�ŚM`n~��u�TMmѪ�w�3 b@��I\\�ѣּJ'Tg<�h���)��V����4i҄�B�G}4"*��?�<Jkd�58z^����f,_������dɒo�jŊ{�c�����WXлW�{���v9�gU�K���m�N�`�Ī�B���LOO盗1��1���UW]�(*���ZNY D|�3����]A�3��$٦m���\B�s��������|���z
+x�T}�M�p:���l>6�kLIԣg/��mX�^��[
+�*W�Ci�w��n�� �I��[�C1Mٺug��������Q��H:��������TM��o_�pW
+������JLL��5��5����}�����ѥKW���%��/6k~٤�'����O�4h��'j IDATw,�i���,��ƏW�Zs*�Rجys�}��c��c�V^x�Gy\�i~ND��v��mGjּ9��}kEh�r0u�ʕ!!!lڈ�Ќ�D"99u���>>��������ظq���)S�7#�$k0�U9"���WU5���\D�4����a9���t4�0�СÇ��ݻ�}�N�f��� ���p�����9��B�Dd%X��K�V�H?r�s�n���l�Ʀi����V�$<$dͪ�Vu��c ]��y���7�C!V,[��K/!���'���� ��?��s��Q�<���R���ͼy�?����矱�ߙ1������!!(�6c�;|3�8�3��Y��S��"Mg�q@�(�����⒳��c}�
+�����}y^^��!C�������Ç�X/���_�����G^{����;��Mb�2�y�f�))+�����BA�-���e�AD�� �Ex��ؿ_w�{w�.*,�H?|�u�vA�{w�jߡc�H�ӵ��˗
+t��v��恧����~����7���a�����M��$*I����{��������U����6GYًϿ0x�В��_Y���@aa��ip8��I��̝�'��5�Y j6��ߝѮ}��
+����OS�=�bC\0�p�"��c����k�
+dJS���rHH@��]?tȦ��*����TRR�c�v@�{�5>6��"���ﶭ[
+
+
+����ӷ�
+�N?�_TLtVVvBB<�l~Y�͛麹}�+�/����Թ3�A$� +7��tQtt������y����
+J;��u˖>}����m��2��C�N{��i[RRܥkWI��{�fegEDD^3p���pyǎ�v��?p�)�m[����Q��m�������qu����ַmٚv��l~��W[�m��"�~�ߟ~��ٳ�rs�{�)!!!˗�fx+s�RGpp���Ϟ=������7k~Ӹq�>�mڴ����v�Q�Q~>�ݻu����Eլ������$P(8rĈu����k$x�O�X�%��||QX�`5hK.���ɇ�}オy}VV��I�P(/��ҡԔ����}�����n�+#�X@@@dd�@LLLt8�z]�����99}�\i��_֎��ml5L=$$�C����kW��O�O:p`���V���l���ۯ�
+"=��?qFFFv��Q�8z8%�0�k
+:��~(%%00������v� ������R&4m֦M�
+��EEG�i{��˖���AU�ԃK�v�����wϒR>���[�A�i�n=������W��e��z�0z�h�����ҭ��R�|ȳ`���M�v�ٳ� �_{�t��{饓��;�t��|��\�D���IO���;�1��1�N'<"����Q��S!@``@A~~-��]�&)B>th�.]�5������C<T[���Z��{����?���#��5[HE�~����MLܗu�8"�EDt��i��5C�5M��v�_�6&&��vm"y��BiJ)MU��E�5���!�P�SA���������*]7H�T"p��
+�����"
+��u�v1���M�l>��Q��X���XZZ*��`R�?�}�ᅲRV�C<`��iS��٫�8���ԫ����>hu�B���o������>:U��i{���i@���?Y�3D��Y��c��q��X#�~������az��l,A��҇�Lywƌ3���,ݴYSEUL��f��:@��8L�h߾��M��t ����@�̞@�7nlٲ��*]�vq�o�������Z]�KJ[6oj{�� �Қ%�;�V!D�gA�0�N��(>�~�{�TUJOT�*"�٩TU�Ʌ�|}JJK�(08��eͣ��HJ)��$�֟�( �����U�Vݻ]��^��3��^�v�4M[�bŢE�s�����
+��nG���Q#G���ۻQܰn�7�;��/OU������E(��*�FNn���5c�Ῐ��1�UTT�����$$l�>?V�k�"��^RTx�7deeM�< �r�ĉ�2ͦEDF���EGǨ�0�r�5��q����/ki��b���-\�����)�r�����䃭Z�kg�Νc�#���Z���{C9TT8�߯�J```l�8����`" @RRUu�����bㆍQ11%E��e�~������!*22:&���م<u��_4��6|�S�?6l�H)�i�Æ
+{��WBCC��B#"�Ø<i�WsfW�)>|�����Oc�49U��%$d���Z
+�֗h�V\X��l|w3���3����zː�5�4� g5����w��e��]�ka��۶
+
+u�:rrs�sW@@@tLLHHpdtJ�{�=��_ѽ���W6l�G����%(`��mM����!ԓ�]n���ܷwO��=��B�$�z�'�����/������Y��˖�"�Ns�������$4m����F����DE\ӿqII��#9��[7o��/����Թ�u������Z��㬬 ���ޜ�������CQ��c�ee�۷�^��Ԋ
+g��9%�?p��y�4��I���BQU���nC��g�N��w7c������1����G���'%��Ѿ0/?0(�4���ʚ<y2
+�ګ/���[_���覙��������WQ^$��&��={�I�����>�{�Li�Y���k�# @��"99�XF��*���4���`_�� ����GD_h�4+�!�QQQ�c�� � ��9��w������V5�i�f!�����պ<��)��l��^W�
+��?"#"�cc���/Z�o�>�0�b��o��hUӀH��=��O�5$(�_,.,:b���|�дr�1��,�q1H�@ M�o�c�7�|�����Y5���]7��gM��ῌ��m���F�{�U4��z��L�j7��訊���%?�V<��������Qu���c���s&'���4<<,4,��ק}��K�.�СCIA!
+�$���m6�$B�Y�Q`Ey���_��݈����.��0���<]7t]7��vI�������f�� !�E��'dgg�4�����&���G3�ӏ����&Mb�ą���$ell���u�ۣgO"jۺ���ovV��իw���ͷ������Q#G��ٳi��M�|��[o<xԶ�q�qA����3_|����v�:��n���ǟ�w�U����� �i "4ƫ�sݨ����O|��w|�3�8�3ƘǦ�,�AQ��Zޫ�q�m�u������t�#B�V�N�D�0t��$!!AUD��y�Pڑ#�wl���M�L>(T����q4����HJ �D�����~$///4,�C�a���4=S�#Z�]Y��"� iJ��v��n���������\N�����BC�P������a�"
+��3�;�ooYyyDDDBӦ!!��;t�姟222���5E3L!@tL�M��zӭ�:��M�7�X��E�>��Ә�Ȟ=z�5"&&6(8��;z��=��{�\��'���3��$�n��)���險<��S�)������lo�o���5������l�u�_�w:c���#��c�Q )/w6��_�PJS��^���5i�$����^�
+K @��f+*,8t(����鬰�|l�ڴy�Ԕ�~���骨HII���
+
+jߤy�ˀ�$ �����I��
+�w40��<" ����#G�sr�K���~����ܜ����N�;��i�QQ'�����%?-ٽwOFƱ����mی=�{������?�}����?p�
+��ᄁ��q�n���eRʯ����?|?�;U�N�I���i6�!"��
+"��Ĥ9�w:c��p�?c����;��rl�9���@��̘��#�=zꗂ@|��MO�Zn��&l!P�4�R(
+��oO�.���|$I��0L)e���+5�::�?<Tn�N^�@EQE�B��0M"��K��?<�4��ڷo=�ݽkٯ��ڗ�܋/�ޫk������#">x���w�s�����#��ǎm��|��ܹsO��oۦ�&4�rp�)x$�c�3�|≷�~��w�XC���Xcat�.$��s\%�4�rr���N��������ʼn�D;tx�7j��r�c^RZ� �,�l�_�y�ǟ̚�魷������'���ԩ�{�8�v���^<MDBU���|�3���3��<���������nݺ9EG"y鷰X��ʳx�����L��/o�u�EU��Ç/Z���{����<��C�'N8}���'�����e�3�n�a���|�3��K���c�AEy��?@�ټs�_4iwn�֡C>�u���7��[�|}������^>}�~vVVL�8�H� �a�g�q�g��?ս{��/���듟��'�^�Y��o�y����J)eii���IE �3����c��/)eyy9�b����c�1���E�c�1���c�1��%�g�d�5���xCQU�P�u��g�9��lz�Zi-�U�UU��'�������g�<q���ѣ�(�Og���/�Q �����h�Kb��)ii@t>�
+Dhݲ��1c*�se˖��:�֥ˠA�긻���&����͛�7��}����c
+O��[���ݦi
+q懟�ϟ���\��L��aa��Ȍ�G+��رc�[����M�:����Ery��)�5~h�4/������O���Y_|.MS�4 <Ϩ n=r�w�W�`��?<������g��w�8�i�f�7?�]7�� D`��a�.�{�1v�q�?c� �A�Mܾ��cǍu8�ETTD$"��0�<6`��?ӅnZ�p�oT5�@E��'���Ҧ3/F�B�ܺ~�}��G���z�o߾�P��� �( ��g�5���k/ܚMg�����}��C�
++/�B"Z��h�y:Ԇ˃�������q����3z���(��l��qE��ع����6_�_]���wv%�-N���1N��1�h���[={_)Mӓ��z.�λ;&M������%@$@����n�!**j�����n�7]ױ�=�b�q�g��F����30�����ś_~�姟���H[��������4\�*_<��V���:;3�*9��5@d]V�7Tqz��(��b͚Ș�k���u�Lo��+�c��c�p�G���5���#�n�_�~��/�(��C!B$ ��o�I����H���
+j'55�R�C��G�g��s�NI�9_�V/0 PUeæ->>>3g�<Su�[�d���ƣ~c��4��������F4Mkݺ���ڼ�o߾��Ն��������F��h������';�7��K���l-5X���T�d��?�?��M�w�U�~�Q'�ʫ���f{h�#O��E'ߔ��\d�q�g��SC���}3�y�O?���J@X5:�j�%���}sڿm�V��
+���z�$��ڦ��� ��p�>��Q}\ g{�P呝����D�$ �9�Ͷu�nW\q��!c�]��1��-i��g����PN��k��3��ךz��'>>6�\I���*I���5�a����4=]v����R�3,
+�٧χ|��0�3n�g�]��q�R���v���5[h�LÜ��"7��8��|����g���{j[ō [�<<2RS��d�R��QZ/Ge�]֯OKK{�����ݫ�|�$z�UU���z0�lj�=̧�1��1�.(gEŁ����ϝF��ݾ�����X�=��|D �c'�
+.���f�%�߯_�={E���H�B�%%�
+��i�ふlٲ�UW��0!77��_}�7��U���;Z�;h�y� !��x��,c��?��KSNVV���UM�1�&N�0��O�sr�v� %C�Z����G 5�ڵ듙���<�k<��5��Ըl"##'N��w�k�a���<��V>�:Jć}��_~���k���1�ؽ��{s�έe�v���u��H?zT� ���i�%��_z���*�N�0�����|ئi�*�k�Ƨ��ڶm;a��o����^X��1�_�S��z��W_}��;v<s�lٲE�>��� I�6bDFzz\|�Y?c�q�g����[�n�Uz" D ���c�=�4Iqu��-Z���&���֔2'�7r���BqB偈4��ij��~�M7mٲU�4�:kީ5ѳą;���[��l���g�y쉊
+矲�g�(R4[�-u�˳5�0�8�3�X��67Y�[����X�^"����kj�KZ8Nڿ��u�d�T��2%@�-.X�9r�e�jEi��*��s���?O�����뗐�P��cǎ�l�T��j�G�:��r�DT�
+��o�I��4�ʫ��c�fEQ�_����.k��s�<r�1��1���Z�]��Z%֊�H��A�y��XF�Ϊ9�� K#.�����*� �F@��ʼ{_�zu�T�V�\�Z�w���?,\P���s昦�Q��+'�$B��C����j���R���6mX��?���曒�:�YÀ0��1Q�}�c��?c��2�#�4����#�_�="̙{Cq�D��_ H�g���_y����\�ƺ�X�&�z9��_}U��Qe=�F�2�C �80B�`�ƍ'_B��x�߯���c��7+B��Z����O�c
+���a�]�2�ZE�H�R��={a���ZY�v���;�Z j6IB�;��]��KW�����S^x�Uk6<תob]�������;vZ�f-a�Z�l>5��r�@`��B롍�w�ԩ�_�cn�q�������_�9��?c�1��Xc'MS���g��ȔԹC��{n��������a�q�\P\��g�
iG3�MtP*;�[����a�3���{���իV� �O����\�j�[���a�BE(5FMP��4�X�Z�z�IT�j���-^�xΜ9B�����
+$�\X���b�����lӧO�ڥ�$YO�I����رc�^�W\qE���-[�Rm>��|c��c��L�6mڴi~�D�q\�r[�S/�@T4"U-K��$Q �5��k��U�F�p�̏f~t֝F�a�yTYg���P-���6���gYbU��V���y��{��o��'yb����Bմ���W�z�҈8zԨ���ޯ�-[f=���h><ʗ1��1�.&���?�����]l5�W� �����e�f�-�u���ߪa�����{jLcd͇q���ׯ;s�r��Z�Zau�B$"!����Eq��n76&6��{{��T�����x�q���������SRRZ�j��X����c�5�Z$�j���ӥr� 2�� ����*�z���YdUoO�t�9�O����)g���f��g��c "kI4rذ�����{�
+ީS' �����j��D˖-M�m>�F�1N��1v)�7��`J�I��ݻv̚�iC�U1t����ܻg���
+Q&`�ܸn��ŋN���k� Z��\
+�@�v�6�_'�������c��
+�Z���muT "S�۶i�n͚��ig`Z�@d=}DSw���8��Gi֪���zg�!)��7�0*���^�{�������yy�5kJ���ɳR�k����s�U��粨6v��������c� �c��K�V�=O]�z ����?*2�W_�ܱ������}RJ��_���fx��Ǯ����1�_�_�' ��?,$��1bxLL��x09������쿎e�p:�_�����:�N:��Ju�eh���kV���빈�(H���|�3�wId�5l���Sc�1��1�c�1V7��1�c�1N��1�c�1N��1�c�1N��1�c�1N��1�c�1N��1�c�1N��1�c�1N��1�c�1N��1�c�1N��1�c�q�g�1�c�q�g�1�c�q�g�1�c�q�g�1�c�q�g�1�c�q�g�1�c�q�g�1�c�q�g�1�c�q�g�1�c�q�g1q IDAT�1�c��?c�1�c��?c�1�c��?c�1�c��?c�1�c��?c�1�c��?c�1�c��?c�1�c��?c�1�c��?c�1�c��?c��?G��\�1�8��ƈc
+c�k�����s90�����o��g�c����W�ݷ�ˁ5*�.�z�����?{�.��˖-l۾�ˁ5���>��EQ�(c��H)gϞ�r��(�����켼�k�pQ�3*/s��������WTT��M�81*2��c��(Bپ}GJJ
+cu���IIIn��K��
+egg��斗�U��;JKs��
+���ǾV�\�g���p.v�� QX^�Ό\��݁�$@(..����4ة8JK]NMU�#�b��FFE)�Z�(--)��}=���.w���fAD�P���m�ѣ\��QrR2 ¬�>��`�RP�M��v����g����@������r�����������<�_t���=ǥ�X�JE@!Ě�k
+]�a'"���&Q115����������vMufx��3�8�3��6T�-[ƽ��c�KM=�ƞ�{�L؉������k]3D���T�;�~����|�h""2�K�1��U�u������~1��-�������{7�v�ee9�Y�G�������ז].�˯�lJi=N�������<�^xξ)i���N��˄�s���{��q"Z�v� ;=��Y��[RR\���?��G��P #�9�3�8�3�>���G~��� c�f��
+n]c���+Vp���
+Mh�,.>>4,�4��c�i�}�))),�k*���'(8�K�1�� H"�H�|��\&����V""�lAƱc�֣�NAQ!���AA��~��)�e�����_���(����D~�v.j���M�� K$�
+
+f}:����s�~�z ��k:R�LӜ;�k.VK��z���{���
+��vUH
+
+��e�q�g�s��t�#��Q>>�*�/������K���BR&&�ѝl>�� ?���/�dX
+n�;�hzNVV��KS��(u���ɓ�]n]�?K���pN��1N����ڹ�۷oǎ\2���C��$��nh1������q��l6�i�Ng��YQ�C]�������S���Z�*�`���dqh{P\R�cj�-�c���_���T�������9����cg�`J�5�bl_ZNt����s�""� ;3� ?���QXP�y�$��ٴ�l��g�5��D��
+�y u")��?c��?����j�'2#�]�,��S�ѣ\8��^r�A�)���"�,��L�ܹs'����?<<JKK��JKJ!,,<,�N�rΜ9s���n��
+�@�@�HL�O�2g�q�g�s�����饥nÜ�أ\8������tY�O��-[����( 0�Y�ˢ��C��#���5<a�_�06m������ϛ�~���7XTT�����("D�^�P*i�������c��� �Hz�U��۶W\�n��={�|�m�?x�/�Z@#�����pة��큁�~����)�\�`����k
+�ֽ���LJ>ͦ�͛�_P��Y���"��1��yU��EV
+@Ə�
+L��r�D�E�Xm���"bP�����{!�PPX�aW�Ys�\%��cƍ���i٪U�֭���u����ӦI�.�6| � @""2�˓1���L�V�'��N��Q���JKK��;#C7�����=b{��D@���\D�l����q�]�����}��{�}�23�DO������@�MS�y�_��V����ퟬʀOdtx�^@������y\D����ݻ�K� ����b���6��Ͽ��E���w��g��;��~�\sҗ%''���R����
+v���U�4 |||}||�0c�����+�mM�����4��t������E���\��z��V7�4�������\J����l��M�n���S��o��(/�W���aP�M'$�l�j�c��?���s�X����$��f��HV����6�c��z�j�BQU_rV�y�q�ݭ'�v�&c'e��<~��=��p���ڹs��_@?�k
+�j�� �HӴ������.�s��2�#�t9��z�_P�]S?��yyYc��a�F�q�_����Aq�ak�RbgEJ�x�B"�x�U�3����<��$��VY�w�q���?���V�jԯ�6���D���2�g�X����S���/)-%�����6�r��~�����Ñ�����2�ͷ������|s�ܹ5^�i�Ƥ�$���f�Ԙ����_���;��E���O�{""b�Us6�q�ݟ~���#��;�C�YwO�5Ɖ�Yd����\���}�WQ�
+gvO�I���;� �(ņrQ�*��~z��� v�U��bCA���Ҥ�!$�i�����=�3�'�'$!(���x�s8��3;;�����á�j1�P+�IS�����7��{� ���O^;��kH����!��
+\��������>����۷�p�d�j2�w_H��4�=#���`��~��'�+Ԇ�� x�g�0�]��e';&Q����@��WAB�h���!��?�E8guo�s $f���lsI3~�
+�&edd���ث��7�.*d��U�W��������{:�g�F�
+�6�L0��a�c��F���@��
+kP+`��wص�=���<��>�.�KMK�{ư��r��pz4��f��B����]�pa+�������%��P;f[5�?ˉ����!��Q�0��݂��� !��u��H駟}��B�����f����c`��2331�P����/]��=c�9Y���W8�գ@ˁ7�z���~~���!��Q-�R�1��.˜1c�^���e��|�1����ψf�V�.W�UN�3�� �.Ԥ�����sIRk���c�f��b����Wob.a�"�0�Gu�� T��v}B�����0<�����C���r� ��r�yu!���[�`��&�����=\�����ύTEoRo}�^?�*������ً���(U.+��|2���[�A���{�m��4�j�ܹSQ���ҩ��`�^|y��W^y�l� \�-��*���YMU d�?���1�B��x��1B����cι�/ l��?�(S�k���`��6��v�� ��ķt4\ť0�0ƙ8�s��^���Y���]�`��&/�ҹz��ٳ秵�(!�.ٺ�Ӧ�D�?h����6�J�(`��F��~� 1���43$!�9�Q�ܟ�uuI_|���������!غ�/w�vj��ԜTuN0� �� '��+W�8>�j���{ѻﶰ�,�O?�̘H)PB@R�l�6yX�!�fl��:���@���j�����J�7���=��{��x;(�TQ�v�Ϙo��t���QJ !����.�� @)]�3�>��;1�>�-���ۻ75-Ml�RC��%T��D��mc�^�z�Ԅ�E{� �0�G���EZ�o&�PB)gL����bkVF��k�9��(Ȋ��ە.�����l�%B��^��g��ݙ����R�:���?��j�����!
+I��V�z��!�����k~B������� 6�%+�|*ݚ}�V��,+��J셥��A�董G��ꪫ0��e.+;�3֦U�Vkvv66Ǣ�z�7�O��V���fB�Tg�S}Y҃�+O����?G�ZJt5�X���̞�o�^�=t����j�xN����Ã��C�WXP���OԢЦ��_�d�ǔOװm� ���$�
+/�>Ro�-���k��#PT-�<j�n�w�A
+�i��j�d�oH�8��;��qMn��u[IÏ`AE������=���RUI���DE����3�߱A-
+�wlߎ��.s)���{v�Gm��[�-��hs�θw����K]��v
+���
+r
+[���S �~�5f�a3�#��p<1C~�-)�&����Ą%
+!����<��SsAT�-��ޒ��^w]K=�;� ���3����2���fRL����[7nǯ�4j�N����u�EEv��+n���F��U�?ϔ-�*�K�ßF
+��5�� ����fԞ�y"�k��+�dQu�2o9R�t���ؽ͝���~\��o� ����HM�$Y�l-[�\��B*��������߇�|��0�v��?��`Q�=Z�]��d�X��~u�.�$,,���J�4�!8�۞uMUҵ�!����J���Wʇ?�gOOin�;�0�G�z�/j*@���(�Ç�8q�w��.m�N����J*���X�U�Yڙ�H]��N�f�nIIm�� !��/��9s�y�����oQ�+�r�#��4^�ŝ+s�?��� �/u�|��`b�ֿ-�6�-Z��4��6Y���J�UM����
+
+�d(�|S�{�3�MW��h��VU��������C|u��j���2I�k��5۔9K��}�5���鄛w7�0u�f0�X�K!�,�lB(mv�ϖB�oV��p ���9�����f���vY�{ ����?ͨ�5�����vf��M��?��=���*�9�6^��2w+;�E��Z�SL/�]�w���k��Xr�j��m���S�am�l�_5���OO��c��'��7���蟭�^���s���ݢ�����0�yp<����o����ؚ�3��0��ɝł�:l���q.3.
+������g��?���"]k�
+lN�g�@'ń��ը������V��m~����mL������5"��6��(��h�f��q���O�4�זw��ӌ��xb"S�(���I)����4��`G��*��ܙ�s���^��r��7ݟ�)~~-}��Q���uo��<n�Ro��16�ѯ��[`��B
+5�X\k>O�~s��,��&��MQQ�H(���������{E�>?t����;�u��uh�Rqɳ�Ӱ�v)�.�S�Su �u�3�
+K��!����EJ�|cJ���|���֮Ys!_T��۬^��B�ڱ�@u͌���eM��{���z�#���a��R���zOQm����"ohu�u����.@G���;:iWֶ�]�&��I��}|r&�zf�
+>�U]j��}ы����}o����5���~���.���A$5���_����ܟ���*�mP�@����<`���q#~�ih��6uK��I@3�mx�������a�Hz�u��5�Ӌ���i���b,c�t��W(����P��ݻ���u����g�`��g���bLf
+#-�W~Ym%
+���}����i��`����'���D�ÛA/�Z��A��69�4�v�����r����;�<"<���1�롍��2����ce�3OEU�Ƴ |��<5����Xh;Y�at�#���D���e�kW�����e�o��#��o����Yam�ԔDDDv��d[��#2��Tm8�J[�ߒ"<<���q�-e�X�F��2�� i�
+�"�����w�uW�'��P9:����,O=�!���e�rp������T���y��Ŀ��g�Q��GD��u�^��ѣFuT2(��/�b�+Y�����z�:�I���b�Tq�$JG�MnܦTջU4�B�U��qa��y�O�]w�u�֬S��֒��룻D_�4Y��zz�V�t�ov]E��z@~��R=~dk�RQ��Tyn�z��>��]�K#g@V���<�$��i����F��r�\�_`��:u�S��푁�t�~u����)�Ε�Θ�K��ѣ�[�}[��J<��ꮿfx��{����rf����C��I��@A��^���l�}'�_)�y&���7�V����&S�L�3�9I�i�2u���yABJ�cZ�X�پZ�n��8~��'T���dH��C�B՛�IWO���M��6��A��S2r�O��?�|�V��<��[���HG��)Q�z�f�@{z{�4п��^Y�/S�Bo�l�9vY���¶�d[�Q:PTh�����1����~u[k�ӦN�h4�����>X���ز-�M�Q�~u���(�Mr�/�q�J)I�n�.�Ś/�����:�"4}@MtM�ΛQUۻcR��c}��6���`����"��@��>�����/��
+e��p�7y���KڅF��W�x�5����1ZZ}@7�ϋZ���F�~Y�9��+
+M���
+^�F��R9����ա��~¯�Z�=�W�/��h�ꞯEv�3��ʝ.�6�����Q�j��r�����_g��G��9���
+5���i�o^ѭ�o�3:0ͨ�Ǝ;���{��#��;����{zy>��s�?UĄ�9�g/�/O?�H��(�͙�p���|�!�s;?,쵭�~dS�UTxu��mּo�νM���}��5?�+));�kZ@6�o��~����������� ��h��"�+L��><���FͣC���^�|��ń�g)�A%VF���8wO�ՎП����Yv6H�yup��iYI���9��ڐ8_M��bT��gJ;��9VO�`��Z߂L3�������֏����?�:,%5�g�h5�.[֥K������l-��ԑS3�n�Q>ۧ���ǢVx�AM�U/z�����<uS�'X��*88����<4s��f;g��,$�Æ
+�
+?����7����x�s<���W|�^,����}]�7���?���I8�гg�N���F����J �bvjA����yO�?��M���P}�kI�/
+�$��������������R���XK�tz��͛��9�͍����F�Y��'N�@�WS��ȷkO��F�l���*`��=~{%nw�:����|Y/z�r��Bޟ9�O~��]nn���oW~�Q��qI��sF��Ѹu��4B�A:j�i�=4}��~lGƹ���Tz�N���KAqq�;o�m�X{������*}��:th��ݛ[�n�����K���b��P��s���\w���}�!C�At^>�ॗv�ޭ0^���8���@/�;���k����b^!�0�G����?'M�����g�\/>�ԫ���y�.�����'3�"³3�'�7��eiI�ƍ������p4h��1qqq��j��ӹॗ�]�����p8@�R��~��^:l(f/�('�������A E�{xxL�����`� �0�G��r�n�馽�m��/3p����P]K/��曻t�2s�̅/�]w2/�������cnjy��g[�Ν�Z��/|:#�Ӎ��.ro���˯���N���_�t銍����~��5�J��_��KJk�4z�f�'�b�KIRr���J��;g��%K�6�X��_~�믿�8v��7���F2226n�����h��cƢ��_�駟��l�?�C�F���"��~�u�����}��1��sl��F�n�|���l���b���I(�������344�d�Iw��ʕ+��;����_�o6�{����vF�cwTL�8_�p!~ԁ�~��r��9-��O?���_�-!��Q����w��5����4]pW��?����O�n�fO�:����ܹs�G�V�\����Y�.Nm�6d� w�=�����[�hQff�3�������=����7vĵ�W����u:N?�t������E�1�-��u����>Y^{�&�q>���fB�M��?�VYY��?��paYU0������~Ya�^��O�2{��V�%�����o>��q��rrr.\8c��aî�|F��#�f=����]�k�\��GI��/Λ
+!�a%���~���3""↑#�?�P���O�C����l�R����Æ
+�|F�C���o����x��/?�|��;/�O�n�?�G<������hnn;�����Tu�;�7��l�~e�Z���A�q�ڼ�x�dP[�Zw�������֦�X����l�>8SOաM IDAT-N</�4S\�T�Y`�?����=cƌ���5߭�:yR\�h�3�@ y�������[�F�a����7�[��;�.]�tɒ!C��<}�]l�������G���߷�� !�RBHU�9)9y��%����ۿ��ŋ�ϘYT\�DH�(�Ι������ݻ�O�h�3�����'�8O�{πJ�?��lz1��9�������<�@��k�,��f(,���(/�F~��������k�ˮ����� �����N��E
+�w�q�N�zFf��zx"%��t�t��oD��;vHLL;v�S�֮[�k� ���l�)=ZVUl��s=��iԀ�gؽu��v�F��-�ژ[�d2�$�5����s&��4�u]�J&��_߾p�]�����ܳsǎ�n��K�.7�|���[�$�Ԅ @8D~�D�3s��(4}9ݷ��~��c�aV�v�z��.Yn�SB�+*�5��O.�<ʴ{���=ʢ� ?�>�c14�(�VBV�������hS�t�t�.�;�Kyw����e�u��|�Q,x�tټy����0��ڰaC�g*�X,��,�ۧ7̘>}��OED�?��S�V}��-TJ]���*[���⤬c�f,!�����]5t(�
+�+++<4����b�ׯ��z��V��cjjZII)cL@hKOP��|���w�}���?�6j��̞]VQ)6Y�8������/Λy� ,�����&�/Q��\|���%��Ty��%�� ��P�^Q�{y���"7^M}�~[�d�����ͻ�[@]�-�F��&��DžYAhC� �b}m�O�><Qx�vu��q�u��?��Eyo�b����)���O=u뭷������p��m�Ӧ�ߣG�ʊ
+/o�E����������lM�2�@Z���z����H+vHXB.1{���暚�B��5k��������>%%e��1��z�3�M��ǿ��֮u���OZd�ٖ.}��W^��Fm����z��bs�L��l�O�>sӦ?/P��Q|�1y�k�,Z)L�@����U~�C0�b#���iI��^p�?G�2��?���D�]KO(�<�>���_�&b����4/{Axx"�C��?�ĭ[�nϞ�z����iƌ�+W~���yJJʽ����;Uj��-[~�������c�n|dV�^�Z�UT��:)&tp���Z%҆1�ĭ ��Ǖ#�i�f�l���̢��_/
+SbC�{z�E�~���$���n/3�����#��G�|�嗂 �uC�*����&OA���ou�
+�n��)�Z�r棏��'������ۏ<�phh(�9j���3�lB5L"�;���������пȲ��4pH�3�ּS�'��/��S��$i��O��nd�U���y�V��U����
+��e��e
+X>_�>��61��n���#o���_Թ�[��I�����$����%��¦-[���h&Q����3f�ժw�}g��`�ҥ�X�x�ĉw����MJLzo�{ݻwoM��v�y�W�]��<tF�����{7�m�5�
+j5�������GzF�f�z�ĎJ�G�ر3�kW�Fc�Z�x�͛7/\�pѢw�oߑ��Dq�o�����i�#��tRk�E%%�
+f8�e���1�Q�lܴq��?�;� ��o����B��tNuĿ�/��`up��;�8�QW
+�G6uS��~���t�,���>�vI:�*a����_ii{�/��3��T�짞2UV��6*���no�⫯�7j����w��������@ff槟|z��#��x#�u�[�tI�Ґg�� 4������1��F�P�+�v�F�(h�V
+l��غT,O�]�v
+6웯��?e�}ÇW�-~���,}睷)��
+c��nB��l~��r���� ���[�l=z4f;j
+��1w���h+
+�q��?�4u��z�@z�X��&�g��:�-[��o? P�۽e��@�?"���|�лn���k��m)��`�E��N)%%����o"te��c�Ν;���Z���-���LVf=��;�߱}�W_�x��CΣ�C��}&oO�@;�<�̆�s4��T��M���^C6Y�wvQ|�vQc����w���ĤɓApw��GFEEEF����������b��C�q��^Ua"Bk�������搐����|tN?�Y�v�$cmE��Ǝr�"��gK����'f(|�����b�h�ϦY���)%&�����G�u�& 4ΓNB�X��4�:/?�\�Yx�1���FWcn�7w� ��Z�y����?�pw.��1C��"��Q���[o�*�DB�h�&@�0�S����IA>^�,5%uӖ��EEf��w�^������/����ȍ�#��ܦUʪj>hՍ_Th��R�Ψ=Wt��oX������F�9o�1�(
+=z�0�L~ݐ�|�o�>���~g��4yҳ�>��W_me�IӦMS���JF���VB����|�u��tj?��Ӆ۾Z��jŊ�ݺ��"!/�_��g�/P�HD�0�~e�'�<�Nuy�Q>�#�9�!�⼇ιװi��m���C�:�pU�8R�}����۬;ۗ2�M�"<u�Ɠa�:��7���JI=)!�ee/�0��;&|�jUJF�7z�\��$I�'O��{:{>h(��c�<п��=��3�0��+���MF~͗C�Z�r�e�s2?��Z����MQ��j4z��͎
+��������!+����?�����L�c�6���w̘1K�,�0x���zyyVϩāRZV؎��T������FDD�a�L��͛7z�F����3�8��D��/N��fkk�AJ�]�222���.Ўs�W�X9�5w�ƣ|��j1��j�+$ȯ�?{{@Ek��ө��'k��r��
+���Թ���e�Kט�
+
+����$dE�^���YX`@zZ�(v@}��W���M�}�c�6M�V�uO����M6ɻ��u�z��A9�u/�"m�ZǏ���O_qŐ�m�
++r��H)U��PYQYT\l*/g�y�yyg�t����R�g˿�����֭�О���z��_���~�W��+%%e�ܹS�L1��/��,?����r�uMQW�^��h���w��?l��~��'B��i~�{'���{�k҇�%�:������������)m�ퟻ\ʫ˕/���Vv����4�^Kzw��G
+3� ��x:�N������WT�օ�.Y���%E
+����7���sefOo��}��C��7�VL�ը�?0�q�~>�^�
+��$I��1��b5��t: !:�.::***dYѨ5�A��1���n.q:�;v��6�R�(����>������Huj.��t:[�0^�q�Cu��z_r�Vk�ڶ�n�Ӷ�8�.] Ǔ?���}�����¿[�7�nT}^����O����_�_yT|��9�QiF�t����[�|M��8�9��W���ϻu�v�g��J���16��������Dy�F����j�]�|�E
+*5�9�J�Ӆ3�9s�
+L)MIIe�|�U,d�>t���]�~�@h��e8pBhzzz~^~ͳ��\L��M�2�h4b�#�0�GMX�`A~q�����������3��bǦgÍ�;|ɶ.܁����g���U������w:�cǎ ����$-#}˖-��rf��Y��Y�\�g�$ŕ�� ���ܼ3��[<�|�j�Pc�Lx�������߈�=%a��)�#t��d��ʹNg����¦L���w�%_�@���8� d�ά��8����>}�!��?���r�g�S
+c��7���_~1�L�����9 gΜ)//��Z!���rƌ���],V۾���#:�h~�駱z���ճv�ڌ�'��PBNef.Y��]A8t�P��F)�a͚��l�^�^r����:�}����v?~�!��?�5��>�,=�.zoqrr2�$��#3A�9Za2���w��vǓO=��|�0BHUUՙ3g!�Q�ppJ�� 0�B��j��}&�|�1PB�{��03�E_��X�U椤�1�-���_]��Ӗ-���uB��Ν������%%��������Ä��Abb�}$
+�[(!G����o���DE�ל�y�+�P*$'�h��t͜�����A�}i��V��Vg,`�@U��A�+�!$���������h��Ea�'�8<T!��/k�,���kI��eYy��W1W�E�ggg�߿�X±�'O��*�� гu�ԓ�?9!DĒ����3�����8���>�F�JU�5�5@BNNΚ5k�hu�؟���8p ''����)9 !���:��Oj�� �6��ԩS��j���5/oo�ZM)�� ��2PX\�̳s�`!�0����߿��5t %$!���ŋ1c�E�Y,f�Z��h4����ڹ3%%�d2�\2c���[uG]gc/�9wIrIqY���Ąo�N'�� �������R��i=<<���a4Q��0�Fug{u��5��:��m6��E�BNv��f���-/7K8�7+3�)9EQ�� �I�
+����p�8q����z��������c����^��?```@����^o ���UWV�Q�+�^�w�^<^���f�e�Y�Z�����$�@_y���o��k��^t����T�ؘ��3�ݺu�e�n�Y���"�Ţ�hDQŘB)UVP��������l6���gLL��nw8��t:�NIr:N�S�e�9����t������V��b����;�vI���.c�w"E�$������$**
+�Z'"+��f�ֽG^^^���b�V[QaQ��dB������Ko0��zB�{�h�Ym�e��N��f�B�}|d�̘"˲$I�,�\.Y�eEa�������DQ���JJJ�
+�����eV�U�eY�k�FOcDHH���$��h�`���6n�88B�������vҩ����I q���W^Y��W�CGDA���$�N�֨��j��t�@�GHH0!BEEEAA��S�t:]`P��f-)*����?`�F��<<(!�#""��V q��2E��dFFhX�F�k�u�_��i�zmpPP��}K���Μ�X,`6��f�F�i2�v��ɧ�Z��:�ʊ�������Ç�LZ�&*:2*:R�Y�M�S'OUT����CBC�NgVV�Z�����!�D� B $4��߯^�?Ι�(��*.*vIR���쉊�������U�r�JKK���*++].��fc�2�_���S���Y��m۷�WUi�����;v\��x�B�_^���/Y�D���q��o�����.�����^�zB�w�q�����=�sƀ���G�V)�R\\�V��#»t�"�"�1�9�4(=-��\���˘B���F�r8FA�"#srr�t��E!�$����������������?�]gQ^V6b�Y��u�իwO�AŰа���r�)=5��츟�_��}=<�\Q8�K� %���;z�F���4r�s�&�fgfGDD�r�LNl\��0J�F������2�-E�����ee巏����I�K�,uIҶ��w��y�����I<�PFZ�J�����~�,�|0�>���J��^��yJ��)=����.��ݦ��8�j�*66�����yu��t?|萧��u�ӷ������J��N'��R���VQQA��G"��9|��
+��(��b
+
+s�T���R�*��V�+++����\j)�g�{��D\.�h4r�ݯ���W��=* �SJMMݳgO���^�z
+~u�^��:���5���֧_���V�ξ'��s�В�b���?��)<22"7'��p@8�9w�\:��kLא���Ȉ���{'M:y��dR��cǎ}�W֭]{p���>���O���;��\w/֭]������D�t ����r�Wn�"�{���/1��ŀs�7xh�Z�K��~~�9��=�-�R��a�Z5�쒩�~C�v�UBș3g�Z-�T+�LMI�;��wy !�K��(J@@�{� B���ozz���B&!�p8�%;�pl������˫��
+def���{<v����w����p��K��9;3��`������R�"����~k\r:J9�*Q5pР�d��Q]9������C��8��F� M:~�=L(-//?r�hZJJt���ɓ�~����
+4MXx�̇gN��ޓ'O���%Y���p����
+_�n��m�Zx6���u>���gs8�엯ת_}�����mt1D�!!��m��9��|B��)�8�z*�F�4x�F���7++��p���AqQ��n\������Ɍ)�P�ñ7~o�~��|}} ��$��8Sy�$�������c��������{���r�cO=���Y��x�T��c �aaayyy�A�M�ӧN{��Qee���{�
+A @kZ���Qt�7�F��p�s�����qR��n�yu}U*/+�$��tqF!
+c����u����Q�T�((�r<11!!�ԩS���4~Ϟ�=�w&��9����B�J˾Y�b̘�aa�� &\3bDVf��}�G�K���\|��� Ǔ�<�%���l�g��ϟ����<��j�EEE'3N�u�0h�JN������t����_��eef���8Γ'O��=�k��ʊJJ�V�J���TJ�Ȩ�#G������燅��9#
+��`HOK/--�ѳG��*L�)���^N�4��ǎ�����Ҳ�'���P�3#:��fs�9�#9�}��1� G���`*7Y����(Q�vkll����3yy%E���~A����r�\����Q�Ⱦ��*??/008--=***+3�f�FFE��凄�X,��ә�C��s����B�KJ�����R���4�?���`�����^;b��o^~��9�>�����?�����/>w���p؏'&����x�a�0HOO����0��(TUV=:k�G˖�F�ԉ���-^���-���~4}����P�y��������aW�s��z��!I�V�N��>`@���]�)}߾}>����֨%������cII�:��[�n�1�JS^Vҿ?�J}��Q�N{��a_ߡg���Wr��v��a�RRR�?^YQ ��2�v���%S��=s����G�3����VTTt��E!�DJ�>��Ù�C߽{w�����ӧO��TVVFEG�t:�����=3h��F]�_�r�DLl��h<��(�rZj��j�٫��` @90�ْ����Ԕ�>�{��
+�s�D///w�?����/����}�]���5�}>|���o�u�8�@�B@@����)�*�*������5���uV�V���ΦSc<1�lӦ=�i�F�y�OQq8�^^�qJ g8p�T*�⒁��=������[-���M�ʰ����`I�DQLJJEq���=z�����e��x��xc�N���Ή��
+'@80�AAA�(rt�.���e���""#
+�K(��iujB�1__����N�>�(��n�j5��!9%�������e����3WU]}�p��,,,4""\Qd�2�ң�=�68gL���������hE�5��}�,�t�A��:�NG)e���A��N̉'���BC�d��h4���Ǣ�X�
+Sz��R�8��{o���xl��ub���o��p��%��(�;�įY���;���G�Ac�.�+��Q�Fk0�
+�^��!�s���j� ),,���v��ۣGwΙZ�"�8Δ���=��F�8�{���~;={��ڵ�CK��Q
+����0J8g�V ��A�������~�xt.F�1=#������7<"����}���GEE<x���'##�����S�O�����C �YYY�y�~�~�{��gǢb�q��/GFF��KH(�Y�i��ڵ��у�)
+�k����p��.�{�C���!�
+�s�(�'N|���W�X����MIDAT���r�AE^���iӦ��o�z�W#F�<dY�0�G�ۤɓ�+�jQ��~�������ۣF�����j�*22"44�1�(���2#��\���u�~��A�
+�G���"�J�R�9��8uz]qqqzz�@�"+\T�*�F����:�Z���4Zm�^}���{zz���%?���i���u��}Ϟx0����π��\2<=����gL1��
+����*�F�6==�<ՂЧO������J��N�@��0(�B��r9v�,�HIV�բ(��R�� ��J�A��t���IOK�٬y�y�$i4Z�����۠�s�c��>ү_?�x@@��Ç��~��`�~}����-V
+�t⦅�������d�j��R�YR��;�����].C�0�G��/������ ���J�2����~�/��?��'BAA��L�7���˲\VZ����0E�����
+���ܔ��3h� J��l�����-z��{yy�(�,�d��$I�\.�b6���+�������������ӽG�����3�g�z���gXX(�HN���T��{I�2��������80��QTX����֨C��d�v����<0 �1N)��rjJjiiIט���pB�,+��\��)I.I2�-���pH��r�dY����ѣ��(�����$OR����c�YzN�2E;cFy�i��?�]��b����Ǐ
+����{!7'7==��o��|�}&*�gρ�^zy!S�.�����l�ѣ�=~�~�s��h�RS��������:�;F���U�=���j5�-.�K�����Ȳ�ըI�������ۗe��Tf1[@V�1��@����-[��1��RRR�Ν{Ӎ7��ׯ�}�PB!V�����\Ue�ۃCBJKJz��c�XJ�K��38(�?��}��v�_�BHu��S8��y��?@ ��l���f�Y�RUVT�����������߯&-�YY�w�N<vLQXl\���q]�����_wL�4��f��O>���W^��v"�F������|�駢���5�\���3v,�7�ey �,��WS=vw�v���{*`��8O��6E��T�1����9�(��ҽp�Кw���:th�c�S:r���_~IMM:l���??��n�����I{��/~���+B�#�P'�r�.���s~v��V�Z�f�9((���Mqq�
+�_l�EQ�1c�DFF��L�����4666!!��7��h�.���!��B!�B��Y�B!�F�!�B!��B!�B�#�B!�0�G!�Ba�B!���!�B!��?B!�B��B!�F�!�Ba�B!���!�B!��?B!�B��B!�F�!�B!��B!�B�#�B!�0�G!�Ba�B!���!�B!��B!�B�#�B!�0�G!�Ba�B!���!�B!��?B!�B��B!�F�!�B!��B!�B�#�B!��?B!�B��B!�F�!�B!��B!�B�#�B!�0�G!�Ba�B!��b��$�Y!�B]�xö�B!�.�#�B!��?B!�B��B!�F�!�B!��B!�B�4�!T�s�(T�{�U��N��jI%(�!��N��IS[�2�L�B��.c�._�5�t��jsx�� �D��W)��bo��Uok��~�v�ڜ��~�������vm��P�- T.������뉓�٥����U^E��LT9�j&ٴY8��gD\%*@9aLa��ᙗ�Sp:��sp�Uy�[�'���ݻhZ��x�ۿ��n��O��D�Sp�.N�����KbɼzͯCSJ�\[�����m��Q0p������#��[֏�c��/���5?�~Ez�F�5���cb���̶~�\��o�7��Ҏ[��
+���
+vO�H�붾�
+��.�tz�[��/ќs��w�'_��~6����ܽ�(��%�h��w@y�ꉆ��6M���E��v�[����Go�����HW�7r��_��?�͝s��6�B��.vT���;�!NS̖Uw�K�sw�.荚�S�>�=~E�l�(�%s@v@B���D�yش��x�*��/�.��UX�w:��*�R�N9'�KE8c�"�NE�9(�pE�eu��KҘ��-�|�H���7G� i�-\�����h/�c���oK��s����ff�����a�^�b�^�W^Mn\���r�5�?��!z�C�\5��������/[y���/FC9\����W��}��Jˉ[?Xu��앃=ks�
+��Ѧ�yp�3-�W�my�(WݢY~`�ۿy��eã��|ECn�5?�������L�ߟۮ�}]�=cP:�<Ԝz\Uq��/Vܵ&|��q��>�N:���˵{�OTn;n_:i ��?B���4>'o}z���E���jZ�1���:�QW�9qxNS��f
+]��U�� hL=G�v{�2Z6|Ѳ�+�/OO6Ux����&�wf+C��b��0��ש�R�a���ۄ
+#��_��&E��,^>T��̥)�.�)��J��+��A � �u858%�Έ�b��B�Zo �q���w
+�=�p�����ziU��տ]q�B���_��߮���6dBkWW�"ⱝ�~�ǶI���Vߟ!;���o�����y� �Bi��[�v�_�!� K��sMR����<���6�HCA�wLĐ?�wi�ˁ��s���W����k�
+�g�N3����m��ۿ��*�+W��>�"���y��f��-�a�>��J����.C~�'?�0MNQ�m��X��<��� �l�<g��E��oY���}�G l\:��_�?8ig�A\>+�����A�C�s�V .�����W'��X��5������
+��vk�Yc��s *��#��_kͮ(�����t�:�ѯU]Ѱ@�\���1�6���WYԆ�m��v�Ol�4/?���~��\�����Y�+�}�l��{����eTts�N�}�j�/kaJS�5���;�]�O�B��.J�L ��ޫ�l��{W��_|�>�۷������ɸ��
+�`�W.�d���e�he�<�����|���7�ߔs���uzV���ZPI����)� c�S$JE��j�B���b�2�q���0ET\"#8UdAa���(k5�^TM��jIe���:��r>�ê�~�}?��?|3N.�3��Uc#�^�Ujm&L�����Dž��J�63A;x\yY���؟f^YA��,�"�6t[�*<*w࠳�aElR��g�ݕ�#|�WY"�ۭE�6��_�P8���HRY�@m�O
+�ܾQ&%��N`�uS����z���]�]�zW���<c�\ ���6.����_�!��Ko��*��k�n�?7�/o�������o���ll����-��\E�U�Je:5舥��83`M�?�[D��������U`��X���#2I���rt�^+���jΈ���ٳ�������c��]�4��g75?�����ٽ>�+�3k��i�Ӟ����V��Y�e�L��6y���K��`MnA���jbg����9�j�*�Y��?�K�m���L
+�y��6��nU��{⺮BzR���:RހՉzW������ǎ��X2�_��Q�FUe�&;�j'��
+sF9�q"I�Mow ���Q�Q���
+�Ș�dQv�
+��PQ�h$��ꡳ�NQ�4h�â2Dd�8<e�~�yd�韭O�:�"PG��o�����
+�`k���O���|Դ�BB-KTL��r���n�mFQ*z��z�pݺ���^��]M�F�:Y2�͕��� !I����:�h����=����w�>��WnB /�^Aނ�*[�v,"`��QG�Zš�Sg��i;�Sg�N�jG���X��T,�H��V�)b���ɽw������p��<����N��=�~g�w���쟱�EtM)�$����w��V�v�Q]�z�!�cRP���#��EwO����Q
+c���Ŷ/_��L��3(���}��G���VLO�29���$f���اS+,Bܒ���*8!u儖0͑�@ۦL8� Z��J�=ř�iޭ���Ѯu�Fe�Ϊ����[��h�tBP��;s��ŎB�,��?BPW �5���a���?�K����0S�N~����k��z�&������_���ܓ$Ye@�pWD�@���� �8N7캲�(�\"qW��p�6e�3ǒ\����'S�x�y����(�T�eɕ$O����d Hb�5�m�G��0�Ǡ�k�ap^ɩ� 19�v���a
+hg�A����v)>Tjơ0��e��/?+3˛U�tۿT]���
+'��Ucs�W�ȳ^�ѴV��P�'�0Q��.�Q=�ѐ�M�����'� EՍ���Vz�����C�^zϮ�O���s����,�"IͭH��,����a#�����q��5�����l�~�4;��
+�;���gV�[�`o��:;���Q��!��a�# =���r�J�Upr39칭!=�4?�TN���BX�3F]�����K���^�~�W�g�M�g�0s^@�@hA�=Y����kBX�#t�:]���N*�R+n2#-��F�
+���RX���6�v��,5��Cَ�vӌ�.�=�q�aY�
+^�rS���:����oIb��}�cj:@�纔
+�'�
+� �����R�YEN$þ�(�b��.���;��a�M����>C�ԘA���C`j�MS
+��Bv�.ǡZ��7v��V7�o���N�aWoL�%�w���w����+�F�~^u�p%�T��Iog\�j�P�*�l̈��+�����x��OOV��l���`�i��g�\������$(<8\���I�4�읳�����Nά�� �����Is�g=#p������p~iƔ���3oX5���wX@�\�p�N��֦�%e�G���W;-
+@��$E�H�4/����Ί��� �
+uO�f�a�(/� ��ꭷUo��E���U7lMY�. -�u���E6�?��\�`����w�|x �ܶ�-��1W�
+C�����������V���"�ۇ7`ۿ�W_�)e�~�x*�錙��M�,IO%tK�,�4U�g��iD���������|�s��d�|�p �':���d2fKfďi+J�(mj*������AI)��BI��uȮ�V��{���6���s�������P��-�ҳ��W�\s�]�����Y����Z^[?XnVֽ>�l��7w����)��wJM&��n<�z̈́�P�F�����K��/�1������g�F�T2��l,��j.ɻ���^�
+<��M�:�|���T�t*�Up�q�_^��Lt�+�3Zv`@zl�W*!�����_�)�ڣon��<~O��
+�L�J�ѷ�
+�f�Q�㣡���B1�w��Lt����̹Ժk�~�lO���(���&����2�D��<Ǩs�KLN��zdü�m_0ڪ�[}��A�W��dâ�_����A����1�r��-������5����#t |��^��p��{�z����b�k7W�$٫D��Y�8��{�\#��<��9�9W�Vզ�k��x�$Yt�����*�d���f@l[���,���#�/��Hll$[����>� ���s%�QLK$�R�
+���]�ù�9�X�qIe~�cv[
+0p�҅��ݽ莢���*�����*��o��{^'Iu���ǵkW}â�D �N������%����8_���ԟG'���[�o���5��z�&ěf,x�p��F��8k��o<��q��r���zVeV�훣���]?�����u���1��w�%&�Z���4��E߉�ﯽ�3��$���-[��������jKF��$8?�u��=�8��d_A&^�o� ����N�W>�ȑ9{��|̱��
+F�Ȇ.�YH"�{�.o[8�l��v���1e�Ц�
+��@j���Ӛ�k�.AӼ���n�~p�<>���k^�_���7��딉�1�f�v�J����������9�2���ֺJ����� � `�$ua"���y�M��m�p��J ��� �plU"�x�b3O"�O<QR-bSꋒGa�{��z�4���A�]U�)��HGlWE7$Q�c�X4 ��/�|q� '�������w����>�\����u����ZE�K�*��?Bߣ�?q��z�7Ov�WQ�!-�%�ш �bsN]O0L�0TU�=OP��!ܲT ,��y���
+��q��ڶ����>����fj!SQ\ߧ��e��ah�'2Fs�ŊI?B��y���|]�����D���G]�|�2&x���(e�r��y�� P�(�$�x}��ܰr��Ö���M�[7o\�O�P��?��G��B!��ů��?!�B}]`��B!�V�!�B!��B!�B���_c�1X!�B]���?B!�BX�#�B!���G!�Ba��B!���!�B!��?B!�B��B!�V�!�B���Cf��{_IEND�B`�
\ No newline at end of file
Added: trunk/src/site/resources/logo.jpg
===================================================================
--- trunk/src/site/resources/logo.jpg (rev 0)
+++ trunk/src/site/resources/logo.jpg 2012-04-24 07:45:57 UTC (rev 3301)
@@ -0,0 +1,174 @@
+����JFIF,,��UExifMM*bj(1r2~�i��,,GIMP 2.6.112012:04:23 17:10:16�0210�0100����Ƞ�"*(2HH����JFIF��C
+
+ $.' ",#(7),01444'9=82<.342��C
+
+2!!22222222222222222222222222222222222222222222222222��b�"��
+���}!1AQa"q2���#B��R��$3br�
+%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz���������������������������������������������������������������������������
+���w!1AQaq"2�B���� #3R�br�
+$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������?��(��
+*���o��+�HE+������@Q@Q@P�5kmjɮ�[tk4������MOt�:u�ܟr�V�('�W���&}+VҮ��,�|�9�J:�k��p��TQETw-����vF���f�ew�c崂H'�e��FV� 袠Y� tP���� 袊(����x�K�>'Ю�������r�#���c��5�.��K�#��O֚�݀�r�8�FE{�u�xz�W�#ʺ�>?�{���~r��O��:�r�z�cN�(�6
+(��9�7���
+5ٲAk%q�#�W�Lxw�.���`���Np{��~�����2��a<��w�ż��ڙc��W�L�����P���N���4I�smo�{�k��W�1�b�����qר�Z l}EGo<w6�O��O�#"��T�#��Km,l2��H�����+g������ٞ["Oދq�U<��{-|�o-އ�\j��#T�ڠ�xC!�#"�sP�gV,K�a�M����T�P�(��A#c
+O�J�
+$�|���ݱY:v��%���KY4ۄI��ѿ�=�Etg(QEQE�q���R��I��&L�}���σ�%��\ռ-
+�s[���"�����O��������%'������v��>#��-O�-e��/F_�?�U9��m�JxogZUo�t>䢣�U��)��ȁ�Ќԕ��Sd�"������Ǡ��[/5ʼn���.��N$c�==;����W��MN��'a��`��Aj����ⷀ��&�c�h2�%�����'���= �>��C��-{ė��������]TB3��y��4�}=�V�Y�i��LI�8�O}��?��:����!🅬tXȶɆ���Ē��&��+��i�Ӽc��#ڳI�l}����5�������z��7J����ui���gv_��
+������=3࿌m ��<(nC�\f{#���}~�ǽ{��f���`���4��/Q�����so"���E}���H�>�u6M�wm�}(8�jҲ��V�����w�4���dQ@>�^�I�^k�"� �TW#}ͺ��,�>����=C�ڊ\�-�`�2����'ץ{�/��_�vscPԔ��<�F?�A��W�|2��'�u��d�簹��Ч]��2}x�@\�4veʝ���W���A��jqɰ�6��{���:W!��OV�5]cO�NV��7��J��c'�c^���Ze�7T�N�)��s�O�@�2G�4r:*�� .p6��㹬z(��u1�Y�i�3)�0�*q�����q��`���A�ç�;������Vf��!I&��&ܡ�'��'�d3�(ɵ�~$|&�!���Zaa
+%����x�|�{^Y�__�o�px��y�2���rfF?8>���!���o�$�巄�O6g�܍��G�#�O��G@X�N�-�]6���A%��bH�wf�|(�V�$Լp���n� �At���W��^=�s�-ߋ/�]ЌgP#��F
+%�xs������^3OxF��~�7�m�s��s���|���ľ4�Яg������}��ېO8��k�KXllഷ@�A����`ʾ'�ω�|7�Mzi'�]�?�T���&���5[]oH���}��K"b:qҀ.�EUMOQ��4˝F�A��fI���s���mo��G�nm[]�
+�2��L��#'�����]�k�b�flEr#�}�A��������-j��
+��G� ^.��kU��W�
+b>��+�q�
+.�w.u-4�=d�F����]���i$���� oNc����x���*�ա�֮ѩ�q��D~����p+��_]�z^�ec%�G��z��[a7��HcZ�ƈ��a~�G#�GOʛvg��Q$D�!��pj����SB|�&�0CMh5�eo�R ,E�yl��Ҁ2�¶�Q��ػ`��,��xH��L��7}�Vhuِ�� �"h��Ш�-zX�ۀ7�����5��Y�7�ι�k��ڤ;.�IAU��C��#�W��k�>�%�����WΉ~a����^z��Uk]6�M6,v��-ku����������쵨.d[�$�nn`�)a��<��˟l�}Euq^[β4s)���pS��;q_$�Y��%ky �l���v`���h��W�|J��0�:]/�zu����J\Obc�<� �f�x��S���?5���>x�Ⱥ��W���be�,z62���G��מ©���W����Oe����{寇�b��đ��ʰ9�1`�Y��Y��62Y^�cϷ�G�����*C
+��Y����m{C���-������!#n�s�澅�,�����Ms^�M��.�n��Vȋ��t��Z_\���p�2x��E�������kڍ�ު�&�k��1,8��e����Hx��R��K��^�G�a��k}�o
+�[Y��<�bUrX�8$�����oN���{�n|is�@�2E
+���Uev�x�OYx���i��k��}��Gx������wW[�|=����14�3W��F,�X�$��c�v�<M�=z�P�ֹ������3�>�
+9�$דN�c��:���Kk���-�r�-I%�ue����R�2�#Im淖��c��3������;�u��h�Q>��G��T�*x�F0iE���W�dc ����=�73�x\����+9$F�)��suK�_���o'���\��O!v��Mex{�N���s�GR��ڼ21�s�H�$��c�{�|-��f�Ə��&�w|ǯ&?j�J�?�^ �.�&��V�=��*����mf�<���)���ϊ+{{O���;}��bA��*��Mh|G�C�K]
+t[�関�m��GF��^(������S�ּ%����O|�����%���Z�����Xc��i�n*p�2GҹT�y�.6VC�%e�YD?���G��og�Ě��s��k,~\#
+�����h�|%�?�sY�kZ5���kl�n#���~��;�vZ��3�/�:�A��<Ij��HT��1C����]��/j�ѯ�5Y-�K�Ĉmܰ�\s�+;���|\�S�<�M_ K��u�l�^����_{u��8���n%���"^YX�1�z�]}s�Ю�5�7H�h���2�bbW;���=k���(��(��(��(��(��(��(��(��(����� http://ns.adobe.com/xap/1.0/<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
+<x:xmpmeta xmlns:x='adobe:ns:meta/'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
+
+ <rdf:Description xmlns:dc='http://purl.org/dc/elements/1.1/'>
+ <dc:format>image/jpeg</dc:format>
+ </rdf:Description>
+
+ <rdf:Description xmlns:xmp='http://ns.adobe.com/xap/1.0/'>
+ <xmp:CreatorTool>Adobe Photoshop CS3 Windows</xmp:CreatorTool>
+ <xmp:CreateDate>2009-03-20T10:33:12+01:00</xmp:CreateDate>
+ <xmp:ModifyDate>2009-03-20T14:19:12+01:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2009-03-20T14:19:12+01:00</xmp:MetadataDate>
+ </rdf:Description>
+
+ <rdf:Description xmlns:xmpMM='http://ns.adobe.com/xap/1.0/mm/'>
+ <xmpMM:DocumentID rdf:resource='uuid:CCD698213215DE118592F5600E92839D' />
+ <xmpMM:InstanceID>uuid:943D38B45115DE118592F5600E92839D</xmpMM:InstanceID>
+ </rdf:Description>
+
+ <rdf:Description xmlns:tiff='http://ns.adobe.com/tiff/1.0/'>
+ <tiff:Orientation>1</tiff:Orientation>
+ <tiff:XResolution>3000000/10000</tiff:XResolution>
+ <tiff:YResolution>3000000/10000</tiff:YResolution>
+ <tiff:ResolutionUnit>2</tiff:ResolutionUnit>
+ <tiff:NativeDigest>256,257,258,259,262,274,277,284,530,531,282,283,296,301,318,319,529,532,306,270,271,272,305,315,33432;8DE34FC8B48E8E13702E96080E2271E8</tiff:NativeDigest>
+ </rdf:Description>
+
+ <rdf:Description xmlns:exif='http://ns.adobe.com/exif/1.0/'>
+ <exif:PixelXDimension>2068</exif:PixelXDimension>
+ <exif:PixelYDimension>1884</exif:PixelYDimension>
+ <exif:ColorSpace>-1</exif:ColorSpace>
+ <exif:NativeDigest>36864,40960,40961,37121,37122,40962,40963,37510,40964,36867,36868,33434,33437,34850,34852,34855,34856,37377,37378,37379,37380,37381,37382,37383,37384,37385,37386,37396,41483,41484,41486,41487,41488,41492,41493,41495,41728,41729,41730,41985,41986,41987,41988,41989,41990,41991,41992,41993,41994,41995,41996,42016,0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,23,24,25,26,27,28,30;A7501620BE8867B24456E33E6A849896</exif:NativeDigest>
+ </rdf:Description>
+
+ <rdf:Description xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'>
+ <photoshop:ColorMode>4</photoshop:ColorMode>
+ <photoshop:ICCProfile>U.S. Web Coated (SWOP) v2</photoshop:ICCProfile>
+ <photoshop:History></photoshop:History>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+<?xpacket end='r'?>
+��C��C����"��
+��Q
+!1A�Qa�9Rq����"$2SYx�����&()4�VXv���������� ��9!1AQaq����"�����B 23Rb��?��N�!�:t�:t���ӧHC�N�!�:t�q�����������Sn5��Vu���~�e�Pf�)K�H|�>�Te�R�s��P�gV1�'*Np��_*7x��^C��jb���ڻY�O+jt�F;k�jV2��t�ME�U�������f�'<�+�{F�iR
+�����F��L��fJ���l�Hz^f'�
+���#P�m����e�H�������]:t�t�Ӥ!ӧN��N�:B:t�t�Ӥ!ӧN��?_��;xsf��=/t� z4{ƙ�{��[���_B��=-}-YL�.ÇȷZbj[ي�tKr+�Ot�B�F�,����~?���;
+s�;�����1�7����>���a���[n�N��/�y����O���[�H����L��8"$�� v��@�?u��_��@`HE��KÙ`Kr,P���?O���ΝDL:t���ӧHC�N�!o�A��?fni�J��Uѵ�ҕ�Y[��W���@ǰ�fl]rZ�q��-����kK����Ҹ�?9��.��Ne_{��|���1��f=���>�@�;��Å���br�L�Y������2��.6��~�-G"A+ɞyP"�'>VNm.�W�����3�9�_eӒC���Fr�8��2wU��{�v���V��g�2x�����25ssfm2�5\E�y�N�hJʠ3I >Diq�S�LݵY9cm%ٔ���
+��VF���� ��N�)��KƤ��J�&\��������Y�&�u-�����tΣ�I6��K�0K��5�V�@r���q��>��Y������:t�GO&��Y��88
+�}��A����zp��e������ORU����!D�CݶMi���2i;��������2E�~?�َ����5���T�fDl�/2�����K�*���Z���^1
+��ř�e��y�&C�Ĉ�`Ò˨~3KD�vb�(��5/ ]�Ҷ�V1��
+#�!�;Ҕ4Zm�4:;h��{�6%m�jr0��d&�f��A�P�X
+�r�ݭr�m��v����;MӸVR�ۥA*I)w@�Y��k�3)��*5RO܇��[�V��HmiÐ�e���SN'.��{k���������~?�����R,SP����R]���^q�2��Ùii>�Z���Xdz��y���>��߀s����k��R��3)� ����&9aj�r�g����U� Jr����{vKޫהV^�Z�H�j>[�Ɂ>k1�"���ҦZR��2�W�^�_��
+VU�Ha���$��7��<"K���k���>w�N�:��t�Ӥ#�~�yǟ���O��]T��4������e'V�;��G~jK@�a��P�X2a��$C��p��le�՚�R������8�s���y���O��|�6
+�8Y�����ϔ�O���8�.�g��g��Ϝ�<�����}�S�9�8eHy5�v'$�r�*�a�1 ����3q�$^:?�4�+g�V���1ej�%�S>R1�4���"��]2��L��j�t���fsf��?��~�nH|����lpA�%3o�V��է64��ŇA
+v_NdljU_z,���+7<z��ӿ�&p���&�[�&��/�,8��Xl����`P���.K���zj݂�2.��Tl&ڲΐ��XǏ����X��:☍�2���IEED�y������iPI:A�ke�w���p��v�����$�C�5r9)P��F�D�9(��$�zt����ڇN�:B:t��þ�r;Ǿok�?>�S)�p��K���
+�\�����ӗG�;�uDA�%*�r �[�S/+��N�N��^�$�1mZnm{v�%×�/Gz�C-�D�'/6�*9{IH��d���m�g��'�s�{�=A��۷şg�5v��qG^C�H>XY��湰��:VVc����Ȁ�XJ���ea���g�6�/Pl=�^J���~�Q��ͪV���q3��d��ce2�5NFqԭ)8���Yǽ����ٖ��7�������U��}�S�1 X� D��F=Y�� "�ũ')S(jK1I���@J��-�C,�ڮW̹w�]��xIMB*�&j�_6��X�QW*a&T�)L�O�ě$8'�o�ZpNj\�u�n�ݺ#Yl;
+B�-��o�T�J���ʝ}����ȬC}�Ɇ�j�%^��1���T�G�"���ք�ق������!}������;p�vS-�3�E�����9
+B��/���k�I��t��=F�Y��ہ��:t��O=b�s�6��G��*��mFa�Q�8a5���U��1�r!#�{N'|�A�h^a�����V93��GqB����j+(
+s�\2�k��%���x���dW�)��[j���'[x�u���W�\��vT��2���G.�a�������s�9�v�V���~=iO�5�NCq�
+h����a�W,���$u�!�N9N�*�#Iy�`��d\�i(um��Yg�Ȭ��eFj�pڹ���%�O��|��Oa�T�gϸ&'EG��v#�d�&��\�����v?u"qŰo�\C +��FRT*�B��\�7}���ĭYvl�!Q#.$�������XQ�SE��k ��
+�\����K� ����MZ�U�Ed�T�v6�~d��L=f�I�)�5�Y$���ˢ���J��>s�@����f^\v%�/�� ��3�9����x����6R��e�����?T�=1[r�Rb=����kb�63p3�P����fǪuݒ��ඇ\�.�^�6�R�f�[#֜1)�&Κ����6ii$#z�]�H�B�)��6(��J�����%i
+J�]*J�)P"�(1!��<>D�Yө�eM�QO6d����sdϔ�.l��S)%�*BҠ
+T��pc�R��J��8�R�� JR�x�R�c�1�|���?|�t�є:t���ӧHG�g�X����u\?����nj�����N1��ϵ��>1������3��~X��9͏
+ǜg����I�:v�֤s��
+>���*��kr�i��b�tr���h/�Lx��c�[��f#���p�v��� �)���2�;#�L��ȓR�%�-S��R]jJ�BJ��Qa`�ջc�����LG&��Rp���V8�Χ�T�2�k�U�D��Lŭ2��i�#yL�?̬
+�h�[�[���^�zF���,vc�vz�,B$Ϯf��!�졤������*�����^k�B�?%���6����Ӵ�߮k��Q>)7�J+
+=P)2��?J�2Z�dempτ%
+�c�Ì7F���)N:���-YR�qyʔ��U��yR���J�|�9�s������*�����
+�Y:��� �W'��+��8~�ף��}+��Y��8Q�Y���
+�bj�)Of�z^f����F�ҥ"l�N3�UJ�g-f\����Y 2g$��Ϫ6]�h�t��?1ɡ���IU>�4&�U\��trd�����P����R§����o�ӧN��v�:t�����~�����n���9�i6���x��k�Տ
+�Cx4��.|�2���m�)!���2P�%2ө�1��B(��n���_r��\Յ�<���@I!-��~�,v@ �s
+�@r0�%�8�[y.!+RR���>���c�3�c����>�����H�un�{qs�vq��\.��n٢�ò!^tM��9:��,�Xb1���k�;����n��(Y-�(s�Lvg�O��~���[�`��0.������0�V��>Eq�o�5~@�勔�؏jv�m��V3�f��M��r,gSc��zcN9&Qe�3�OU�z5x)��rnw��|6��kk6�֧ %q�|���ת��j�_Հ�.�er`������jX�c5������#��� ��:t�h��P�'��f.���]�;Lļ�8��~�7�v���3���ʾ��=���3�t��4.���T�Ve�'.<10B_�-�c����a>��aj��*ώ�b��6~�=�A�8Rf�ǒJ�3�?�MIk�������|�^<��3J�+�1�C,h�H�a�8DR$ě*)��5���(��8J���N1�'�g=p\���w��iMx��EX���{�k��&Y����ҒN��Q 1�U���Ō߄���s����?5�l��n/������].��r(��O��I�+��˖��g��;�j��}�5� ��cG����1��D�Еf�5l�@xS��b�Q�77cICDGW�AU��Kuh��Q��]w��,81�0�-��z
+�X�@�8�Y9���b2e�!�Kbs[S!�]�L��3����8��������:�C҇��o/�i?��T�s�� �V*�J�V�x�M2�j�9BJɒ֊��?60��8z܁�Dl6R$f�
+�����b���42N�����r�ia}�R�%�vZl��N�%�|��<���m6�Ywʓsn/Q�T�X̌&���uuj�MT�ӓ�Umd��|����%Kܖ���t��ю�:t�:t���|���?���#]Ϊ�i=�9�[��r �\�䔉1���p[o[L����)ˌMB�Χm���K[.�y��8����7���֨��=8q��\��+Z)�˖�
+��^U(V�� ��\*d� f�W�pу�إB,�H0*�FD6TY$$��H��"�Ͻ|"��q�����u>��:����㇓��&:�B6��݈1�p���Ǎ�Z%,ǰ��2�PUh3da,�b��B\D�XRp�l�T�y�T�����g��u��K�"Ѹ��:P�����e�Q܅�l0D�u� n�+*�eUڝaU���{��GҭW���>����<�a"
+F�Qa����%٩!d�b1+E��`�n��W\]r�$X
+���"(��,��G��c`g����������|��^u��X]1�����!>��5��e�!1VhZ%h���A��.�T�a&l�Q%m�D���o#��/m�w��#�fj�^'],}/��:���@�h�#��۔����S��q�ZI�I�CQ/a|�j�Q�H�^)����V�]��)��b�Z��i��i��a�1�Z�����
+;q�Cqܙ/�bYèRҬ{_X��8l�4P��:�*�e��M��HYf�����?�N�d�iS�� �Mdp��&孱c͓9�zB1���.p���&å�u#dka�(۶��+{����@�v��l�y������W��
+sO��8i먭����X��w}Ş�1�����h�κSt��GsW�k���S�]���'$bפ1��1���u?co=�]P����tK����Jn��v]�g�U��#���j�Y�-���M��m']��5��ξ��ٺ&қQ�Z��ߌɖ����A�ٵ�9�/N���r{�۾aݽ�����K^دz��:�]�mz��o�[NT.��Ô�1��E�*����M���L$R@u��zD���MK��'l;+�д'"���+���hb�Ƶ]�z�P��/��FKc+�_�F�X�N=d0����W�mB����*��/�lg��v͚��k;?h�KP5j�%۸LUJW"^y��͚��u�G؊Y�ȶ@��]�~'u �;=rZ�ú�0#nX7�eY3�[�h��˫�"����ױ�6�*��P.��,��8B�gʢ�^#ĆQ�%IυaX��?<g�������9�g�xǎ�J~�B�+N���t�(�>�b{��/������iu�s��՝}@����J�Z�V�AG��0��eYDhq�oZה{n-J�=k}��� ����9S�60=g�4�����[��ڳsLI%=6Y�`�Q����;T��f�4[�0�l��dX�ƖӇw�:t��Dǃr�U��a�n�2�[�C��R����JlM}a��;,�n�i�~NZJ��(^Q���3F�Gj�
+U�A�����ī�J��2F��1�A�5�&*$�i#����R�̎�i
+����/��<������+އ��D�ҳr��wʟ�y��-�H��*�)��*Z#~�������%�f��~�~3�%���Y%��1E��8?.��x����~���?����|����Y��%y����kj_!��! ��b��m��
+KZ���.���Rc�ςn?�0B�X��LT{�k�듺3^\�[��.��]&ݹ5����ǪMj�.+��̣��%&VjΈ�>~�j�p�V�p�b�>�ݾ8��K�@8���"� �g�[,�"��l��v!�1v���\)�%�0\X�F �a��
+h�֠��;�!) ���^nunY�ӧN��!ӧN��N�:B`/s~x��ۼ.������*�}���Q�0����1�A�Xp�J�JsEa$,��d�� �ٞr4Se�Ϝ��������uV7�w�"���5q�U[H�
+J�=&WߑL̔iܽ�օ�L�F��D��"�ތUV�w�H��-�{�}"X��}ϴ����
+�t0_s_�!��g��u�F�l#��3����W�u�M��D���1�Ei�'������zے��9�+��h���f��w��r�KɈ�<x�#��v�A#h�A�]�_m��r�0@<Z&V)�H��g��B�����1�5�[���
+�e��M�ȧ���\�"8z����6��C,�J��bArx��5)�7.W��H=�m��k�w�N�:�ZrR�ڀ�5�y{E��^���g��"������O�kr��b(|����T�hV��b�"�r+ߩ(\@�&ϕ����ּ���Bn�v�&Eob��V_ܴk�=�e5Z"L��(�m��K]XOH1E�W�W5�9�Ʈ>�0i�N�����-Zӕ*���4��nR��.�3�Z���D���C��^�P�rR�.R�W���z�O�v��K-�1�|D��+���v����KU�e&�.VfdOWF�����_��QS*[��Ӳq�p����V�{�\�4�O����
+�lЦ#�~l"��,@sf�33I�*!Myx֪�D-�`�0�Cj��bɂ���iҗ���Ŕ~#��c��8Qh���f���' �̟}ԺI��6$�}�}���LyxLBAұ�F >TyПO�N0�q���ۋ��g9�����#ӗ������[_[�1�&���+��:�����kva�B��N�Y�R��Iz��m�_�]�o����X��l3�� S���{�0���f�V5����+�E���%��[��IX�썏�/�T�ϰCU���[��(",����U@h(n�T
+Ӓ&s��D�2���
+�?.l�ĉ�x���&B��
+'��n� �>����&��(i.��Լ}��88��l�٬姥�)��2 �a��Մ��'�?!�=�31d��[RmÆ�t���wS��3~_���8c�6U���c�a��,���.w�@����a�ijv;p���X�_!:C�É*�i ����/�����ԟ��t?�~g �3Ndp�s&k��ݱ�k�iǗ�8��m�a
+�S�Jr�������+�*��l����G�� 0_bBs�)�[��2�1���όg8��k
+Ի0}|��k��u��S쟽��˽HKU2�f6��MN��q����x,[�喿<+�!j//�J�(�,�HY
+��ݧF�l�wan�l
+�+�.���c�Y�F2����E̋22��9�Nm��H�X��V�q�W�J��t��<���4k�<c��9������Ϝy��HOu'�V�����V���|im����'Aqe��dE]�P�u�㓛7Y����\��>�YK�%CV��3��:�1Qe,�Ž�7~�ӧU�:�>�}Ʃ��x;��(g
+l7YF��4��;)����!�h��ٕj��ـV�ws���T=K��eBN��w�����Lޥ~���%�2Z�V��%Ŏ'�7��z���6��/�L�}���r��* �УԨ�<�3(U ��+&�p;Hr�'�*��m��ߣ�ƿk��cݭ{*�d/j�^����iik|��m����l$&#�Zɒ/2Q�o
+����ZJS�ۏ���������/�w`��d�۞hوB��F�{��x�ö�x\���b*�@�8H���)�x�~��~N>x�3��v<�_;��<�����;����B�I9>�TY��~M��QH̟`Յ�����\�'�=P��Z��EF��K�{��b䞝~P#�l�DYkFEX��C�>�B�
+�-��-�I�'Dy��B}�">̘θ˨Z�W�cht�Ӥ!ӧ_�c���[m�Vj�p�,V[%��0�k��&d����Pq#�I�L��؇w�Iy�ZZ��A���;kp0�u��!�?�|�\}���v�������G�<�d�cVVLDPc#���V�D�st�&��c�>s�Ҭ�J�s��T��Y�~�ʳ��?\�?>���?rc]�y���y�cMU��x7��-B��P�w�� :R�Ŏ�H�[���i�@t�u����b�ﶏ�'�X�Ha��h�Eή��|��8�q�8��/�?g\{h�2����������?��Eb��I�t��NJ28E�,1��WĎ�ɛ�c��f����JBS%J&[N��]hzC������\�K�KX
+�?]�3���旟Ǎ;�����[���S��ߛ�7�/4�,uLɫ'���~�U"�f=��˺�
+��L�TR1�X\���=u�
+\�3�Z>��ڕ^e����w��jl�� ��t����V�y
+�FH!%/�dY��j�lʞ:�pu�R���b�ǐ:z[�6Ap�G����1�=�Úi���aL�I�y� s�ɟ��IΙ�c*Xp���H��-:�g�<��0iuF�F��,71qS��-���2A:�~7�ϊX�0zF����G�ڱVr���ו��o�0*uj�P��-\��� \.j��Ùe�A����,P���@��%�k�]������G���C$=a��}�U�0#R}���8��+ϵIXQfȳ�چ���^OK��)�س���̿�#]�n���}$���W��)?Y���9>i�J�ni�Fٓ�ʺ�&����CX���� ��
+�4�pe�u�~r�D��0���P�1��/_A�Z�a�o�M��CT,�-Q[.��*�J���9��� ��N4!�s�I�R�H�h3�;�٬(��#�M31�r��<+QQ"��v�"YV��%�p'2��G�wy�����
+����,هe�f&�%�d�%J�-�_2Z�e���u"�e���z�qb~��O8o\]�݆�kswpK��A��TWb�W܊XZ�n!I��]b1{A2�0(a#�nT�' �=>��v�N�ͭM�2�5 �h�"�"���ث�a��_Wh��M���m�W*�rؒJ$���]��C�Et���&�刘Mk�q��Ybqכb��T�,Zp�i����fU��8�W2�b�!1PI��H�Е2��G�ű���8n��ErA!�k�eE�ˌKyfB;4L��Ҕ�F��)�}�Ԃ�������i��mĵ��3X�����y��m:����]����у,�<�Dj�V��8O�!&a��� �0���`�h�q��k��g_!��q��{`���E������7v���Z�@���m�0���o����4��OZ떐��z�F�����`j��Y���5�k�,t�f�<E#U,��kC#��:$��#A?e����-4���ֶz y�
+)�������ho2%R
+��w��U�3o�ۏ�6'���|���iwEm�`�F��Ɍ��� ؔCms0b�Z����qg����r����?�Gz�\���&�z��N�]���:�b]�~�G^�lseN=1�LA1?�X�fQ�Jo/G������og�<�j��+�@�!�j��5�O����&��� ����yz�7 7a�]L$�y��,%��,���-ΉO�2�Oǫި;�~dr`���c�b�*�3�FH���Io��F�V��h0��j�6�
+�O"-dg�6QpR�[�Z�����e)�9�=n`���
+�n��-L���_Jze9��LHVJ�O���{&�=e�X��t�DCO����]��Q?Mj�Da��������#صƩv"��M��G!/
+!
+��j��K��hE�M���TRS��N1�c�1�c�1��1��1����1���/q�ws�n�NOX��*�*N).�C,��IU�NE$���$�V2��>�yq�b�x�X��y�m�6�*?�v�����d�S�Ǿ>���'�p�w�ޑ��������������G�.�����Y�1��qF<���yŗ>���gv���I3wg� Π�W2dI���P���GdIK������z�J@����Z��
+�H��q�?����x���b�~scpK��_�ڈ�1p�����v�=��kӲ��!m���e��w�e�
+9/�bGT�qV��8��]O�N<j>N��ɱ���Lr�MS��B
+d��fk6GM#}��`�Z�r
+��jkd+�-�g�T�����$�����=��N�V-�C��2F������)Y�HJru�\暹��y
+�6u;Vvt���"�3
+���#�։�*�U
+��mJS��Z��������AƏ�)t�R.@�DA��� F�
+�E�1���F|y��N|~�
+�V3������7�?����2kO�R��nŝ���j��;���N�"Kw${Q�Y����1e��tkr�%`�*.`Dn�&;�P���g4���絖K���G�V[���%YBU�(J��>��s(NU�
+V��U�/���p:��O����Ϋ���߿���V�8q:�d�GaN0�DŽ�����b6J���{�q1s,�F�~�2�c���c=n5�r���li{۔�h�}Z���S��8ɧ�l
+�k�7fǩPj�T㬱g�eN˝>X���I9��0�����w���^����x�7U������F&���+�����[��Կ8�[jS��e,.�Z|�ƭ�1p�;
+u�:�iw�INq�^M/=�m+��m���IX��-���q���w0�<:�LRlv"t:�V%-��F�M��Uŭ����r��v�Ak���ھ��k�J�-������hQ��;RA�������HV*:�j��c.!�Q��&���1�*e=��7�j갺���uI�
+L��b�����l��W+ڸx�(h���J�T���}��o���]�8��t�n�#����߲x������%˥��y�ź�h��� ��0~saGO ����4!Bc�w�?�u�k�p��L����ͤ��P��+s����*U���U4��$"�>&\�!�8�Me�Z?���FW��{˛��П��5���s�=���dF\������&���4N��M�`̝K(��T� =�2$��G��Ȕ�F��
+�Ob'&Y�����>�w,�m�����C�+�(6'nb�iA��om�f���)�& �P�h�µ0Q؊� U5�u�`2�c-�?wh�Q͟��8�\</�`Z5o\����Ỹ���n��=^��w%j�sl�S�efg�.*'�a���eM���J_p�Jf3� ��p�K/�4yǷ�tLGd!�GjL�B�~+:ӲY9��u�:���m6��=r[���ǯ���'՞:�(�ޮ�g�N�aO4���˷�j�m�>��B�s�k�lN�]�&l��I3?fV5�b�fphX�A�d�*I`p�<�xө�c�C��i�$���m0;zI5��ڍt�w��<v-U{�G�z%>���]1�i�
+"B���eQ̏���܈�uN��a}@?HJ����4�
+:��B[6 U:c�p��/څ���t�B�)�<�����Rh�g�2Ҝ��M�/K߹�I�R�7[�T�]�`G�,�@�
+Ţ"GZ�F���"590�@j匕d���������E_�o���zD?���6�������?���S�;�v��r���9e]g����sJ���k��fe��i" 8�[�zƹ3��Y�G 9���c�$� 1p��@���?{�z���j����0�8���!�^�2>}�^����X�*����R�'������)�=����u�&
+}�> uNr���')�q�g���g\g��8Ϝg��ϟ=b��j��!
+��o'���6ʬ��h�5¦[UA$��u�.Ŋ�Ƞ�Fj����S�Jh�D�RP����d��������a�D�-oX�i£�}S�J�l��<�;uF��$
+�s��Jr\�#o��"E�N]�A����4��Gx�'M6�-��Ώ��]<���J_�ؖ�g��<~���_�Q��,��D�X��%Wu���������o�GF�HM^S�ꪶk�����,�m�1-*��}�%~���ݽ���Zg�����T��1��|�H��O'r~�_ebJ��V (6��ܽ�����`�����`�<=���� nq�z��D��e8�j�Vp�)�#*�3�������Ϫ�͋�����0ܿ8�Z��GM����{yM��;�=��Ŷ�:ѕ"h���QRB��K�CN�t�'-:�((��L)�M��wo����G�V���z4���m��h�6GAd�Oc�� ��6Ӯ���e�q�c\���[g��?���wxhNG��>2��UCھ�6�b
+q��u�Z$�l�1A�i,܁�D<ۮ8˭�ì6�2���ϙ���3�|Mٖm�uQ��"�*r�nHq�(9�s� �Jw�қ��{g]�����ɴ��Ы��ʇr��;6���B����/������w��nk�d1L�@��s�wW��ړ�����5��~:����
+$��&[}.�R��ke3�5����
+�VO28w��TͧG��������G�9h��j��N�D,/
+brÎS�2��o��R}�{��;�qg����5N�W�E9_��p�c�{r���P����6"�%�
+��
+l��Ge�b,[,ʭF�����
+ۧ�5/�]��H`9�F�
+ryo^%?�N�V-���O
+6�p��;ۉ<�&�٥���$�1c��з^��g>�$��.8�I�ȎRd\8Ϲ;��bT�t��c��vp�e�[�t�4�6�K���6���a����S��7hPC�� �Vۓ#ˊ8�S�>:[�?�rv���?�꿤�~�3�RI%�����V��($�֒�Z�M� Y�5�UA�k�s˹��+4UDP�Ȯ,f#*s�ܒ�e����o�������y��w�.��M�q���ڶ��|���ݏg�&J溷BpR�ۆ4̇�%R����6�m<���:���4W0�)���[����+�F����(��"(�b���
++MF�v#E��l0�m6�c�W��� -�8��f�+G5Yz�`�{���Z��lĚm*�Y���Q�4��z�O�G1YfQ��m�&�Ν|�86
+OR+)�|&E`R��r0�9U;��X��"n��V�������^,V�T٪H`���V�f��}�x��kL՚��Ͱ
+���ݿyX��{$�H2`�br�@<=J��8�T`2�`�t�祔6pقZS���w��6Ѳ��'��lGٓͮ����Z�_�Q7��7Q��H�����9�Oȉn���ah�[�_P(����}"�;\��ozEx_����������V}!}�7��e��75�:�m�h�l_�!7�ߕ-��[2�W��i�R���օ�|���iixT��t�#@POǻ4n�$�&ѭ_s���h���Ri4p�#q�/B&n�m��Kmɼ7a�T���nW��.�I���a2�(��D���������Su;�����:Y6�zۖ���V[$C-�y�kQBQ>vYg3&&"dJ�Me���X�Ө�������K�ȳX���wr�8����dB�ܬ\�r�v<������1eGy
+m�$G~��_e�)Hq�P��Fr��)�q����/c��҃�.umʎӻ����Ψ�zeV$�xw*���Ԯ{
+�bV���XڎtM%p%�"E��p��1J{uޝN�f�X3����R{�j=��ӏ�;�oj�,xǸ(t�����z�p8|u.��4��宱j��b�ɧ��J�$A���X$�bXb��� R+����5Z�J�:0z�Z���YW��Bo�}X��JZ�X�c����(N<ub�N���8 �n0Z+��������ן���GR�ڧ�Wu~/U��Z�,�o�\����C��O�6���j��#�c�0R.̫�j�:CF3(�H�v;/6�KKhK�_t��y��Sq'��i�����~�ܮ�[Ñw]e�^��_U����[�ls�&��3&|[.��DhJGTI6�gɓ�n�m0�ӎ���jB�!iJҤ�*J��%IV3�%IϜe*�s�c8�g�|㯗N��s8s�{��F����$w7m��;Pk����Jl����g_l'e���uUZ5ɨt;w�|�i2r>�s�T0�*}~�Nۧ���I���Ͳg�Iߴn��k{q
+���k3օ5{�����:��3�@��xˑZW��5zt$�ki�߾0O6~V�xt�Ө����
\ No newline at end of file
Deleted: trunk/src/site/resources/pollen.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/CreerSondage.jpg
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/CreerSondage2.jpg
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/DC_Pollen.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/DC_PreventRules.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/DET_PollState.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/Depouiller.jpg
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/Depouiller_1a.jpg
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/UC_Gestiondesvotes.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/Voter.jpg
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/business/DC_BusinessDTOs.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/business/DC_DBUtil.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/business/DC_ServicePoll.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/business/DC_ServiceResults.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/business/DC_ServiceUser.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/business/DC_ServiceVote.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/business/DS_Conception_CreerSondage.jpg
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/composants.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/packages.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/pollen_logo.jpg
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/schema-architecture.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/ui/DC_UIOs.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/ui/chart.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/ui/dateTimeField.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/ui/feedBack.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/ui/topCount.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/ui/topCreation.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/ui/topIndex.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/ui/topVote.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/votecounting/DC_ServiceExport.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/votecounting/DC_ServiceExportImpl.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/votecounting/DC_ServiceExportXML.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/votecounting/DC_ServiceVoteCounting.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/votecounting/DC_ServiceVoteCountingImpl.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/votecounting/DC_VoteCountingDTOs.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/schemas/votecounting/Seq-executeVoteCounting.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/tutoriel/Capture-1.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/tutoriel/Capture-2.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/tutoriel/Capture-3.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/tutoriel/Capture-4.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/tutoriel/Capture-5.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/tutoriel/Capture-6.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/tutoriel/Capture.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/tutoriel/Creation-links.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/tutoriel/Creation-step1.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/tutoriel/Creation-step2.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/tutoriel/Creation-step3.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/tutoriel/Creation-step4.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/tutoriel/Results.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/resources/tutoriel/Vote.png
===================================================================
(Binary files differ)
Deleted: trunk/src/site/rst/analyse.rst
===================================================================
--- trunk/src/site/rst/analyse.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/rst/analyse.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,389 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Analysis
-========
-
-:Author: Erwan NEMA <nemawan(a)hotmail.com>
-:Author: Nolwenn Rannou <rannou(a)codelutin.com>
-:Revision: $Revision$
-:Date: $Date$
-
-The needs
-~~~~~~~~~
-
-Pollen project is aimed to create a libre poll application with a web interface
-and more functionalities regarding the other similar application already existing.
-The principle is : a user create a poll and then send the link to the voters.
-He can then follow the poll progression online. The voters vote by filling their
-name and their vote.
-
-The poll creation have to be easy but allow the following operations :
-
-- define voters lists
-- chose the vote counting principle (percentage, Condorcet,...)
-- allow every voter to add new choices
-- vote anonymously if we use a restricted list of voters
-- send reminders to people who did not vote (if restricted voters list)
-- define begin and end dates for polls.
-- define the number of votes possible per person (1 choice or N choices amongst the propositions)
-- be able to add a global comment or to his vote.
-- define, before the vote, the weight of each voter (if restricted voters list)
-- represent graphically the poll results
-- export a poll in a standard format (poll, voters lists, poll results) for exchanges with other poll tools.
-
-Global concepts
-~~~~~~~~~~~~~~~
-
-This paragraph presents the different concepts manipulated by the poll application.
-The table represents this application's data table.
-
-- Poll (Poll) : a poll is a survey with is taken by participants (voters). The poll/survey can focus on a question with multi-answers, a date choice.
-- Prevent rule (PreventRule) : management of poll end rules (voters quota, date before reminder, ...).
-- Free poll (FreePoll) : the poll is available for anybody.
-- Restricted poll (RestrictedPoll) : the poll is available only for the restricted list members.
-- Group poll (GroupPoll) : the poll is available for members of more than one restricted list.
-- Vote : answer from a voter to the question, this answer is stored before beeing processed, the voters identity is then known.
-- Anonymous vote (AnonymousVote) : answer from a voter to the question asked without knowing the voter's identity.
-- Vote counting type (VoteCounting) : Poll results utilizing, the vote counting can be done normally(just counting the votes), in the case of multiple choice with Condorcet method (a preference order is attributed to choice), or by attributing a percentage to each choice.
-- Choice type (ChoiceType) : Define the question and so the answer/choice type (yes/no, hour choice, date choice, text, picture,...)
-- User (User) : People managing the poll, this person can be logged in or not.
-- Voter (VotingPerson): People voting in a poll.
-- Poll creator (PollAccount): Person already logged in or not, creating a poll.
-- Voters predefined list (PersonList) : Voters predefined list created by a user and stored in the system. This list can be the base for a voters restricted list.
-- Voters list (VotingList) : List of voters participating in a poll.
-- Voters list type (ListType) :
-- Free voters list : Voters list, voters may not need to have an account on pollen.
-- Restricted voters list (RestrictedVotingList): Voters restricted list, all the voters are known and will be identified from this list.
-- Voting group (VotingGroup): Restricted list of voters that might be globally balanced when counting votes (ex : developers group)
-- Global comment (Comment): Comment on the poll
-- Local comment (Vote.comment): Comment on a vote.
-
-Vote counting types
-+++++++++++++++++++
-
-For first versions, we implement usual vote counting :
-
-- Simple or free vote : this is the vote for a single answer, each answer gets votes, the sum of the votes for each answer represent the poll results.
-- Condorcet vote : the voter sort his choices by preference order (ex a>b>c), we compare each choice to the other votes by counting the won or lost duels, the results of this comparison represents the poll results.
-- Grade balanced vote : each choice is graded (function of a scale), the sum of the grades per answer represents the poll results.
-
-Balancing
-+++++++++
-
-Each voter may not have the same weight in a vote, so this balancing will have
-consequences when counting votes. The balancing of each voter is possible in a
-restricted list.
-It is also possible to balance group of voters when several voters lists participate
-to a poll.
-
-Anonymous vote
-++++++++++++++
-
-The application allows to vote anonymously in case of polls based on restricted
-list of voters. The anonymity is guaranteed for all the voters of the list.
-In this case, the vote will be counted for the voter, but the application will
-not link the voter to the vote.
-Giving its identity when voting anonymously can annoy the voter. So in the case
-of an anonymous vote, the voter will identify himself with a anonymity number.
-The voter does not know how the application works for anonymous votes, this
-approach will reinsure him regarding his anonymity.
-
-Functionalities (Use cases)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The application use case diagram in UML 2.0 format allows to present in a easy
-and concise way the different application actors and functionalities.
-As a reminder, the <<includes>> stereotype precise a use case decomposition with
-a mandatory consideration of included use case, the <<extends>> stereotype
-precise an optional functionality extension, the <<generalize>> stereotype makes
-reference to the inheritance notion.
-
-There are 3 actors in the system :
-
-- The administrator manage users and can moderate polls.
-- The user can manage a poll and vote
-- The voter can vote.
-
-.. image:: schemas/UC_Gestiondesvotes.png
- :alt: Functionalities
-
-The use cases "create a poll" (créer un sondage), "vote" (voter) and "count a
-poll's votes" (dépouiller un sondage) will be explained in the following
-paragraphs.
-
-Create a poll
-+++++++++++++
-
-The detailed scenario of poll creation.
-
-Actor :
-
-the user
-
-Pre-conditions :
-
-Base scenario :
-
-1. The user chose to create a poll.
-2. The user chose the free poll type.
-3. The user fill the poll title.
-4. The user fill the poll description.
-5. The user fill his name.
-6. The user chose a end date for the poll.
-7. The user chose the textual vote option type.
-8. The user fill the different options in.
-9. The user chose a unique choice poll.
-10. The user validate the creation.
-11. 2 URLs are automatically generated by the application :
- One URL to administrate the poll.
- One UTL to vote.
-12. The user is invited to save those URLs.
-13. An email is automatically sent by the application to the administrators
-(who can moderate polls).
-
-Variations ::
-
- 1a. The user authenticate himself.
- 1a1. If the user is black-listed, the connection is impossible, an error message is displayed.
- 2a. The user chose a restricted type poll.
- 2a1. The user chose a predefined list.
- - The user can balance each voter of the list for the poll.
- 2a2. The user chose several predefined lists (groups).
- - The user can balance each voter of each group.
- - The user can balance each group.
- 2a3. The user chose to create a restricted list by filling in voters name and email address.
- The user specifies if choices can be added by voters.
- The user specifies if it is an anonymous poll.
- 5a. If user is blacklisted, creation is not possible, an error message is shown.
- 7a. The user chose to vote for dates.
- 7b. The user chose to vote for images.
- 9a. The user can chose a multiple choice poll is the number of option is more than 2.
- The user chose the vote counting type.
- 10a. If the user is authenticated or filled his email in, the system ask if the user wants to receive an email for each vote.
- 11a. If the user filled in his email, an emails with the 2 poll's URLs is automatically sent to the poll creator.
- 11b. If the user is authenticated, an email with the 2 poll's URLs is automatically sent when the poll is created.
- 11c. In the case of a poll on a restricted list, an email with a link to vote and the voters login is sent to every voter of the poll.
- 12a. The non authenticated user does not save the URLs : the user cannot reach the polls anymore.
- 13a. If the poll is unvalidated by the administrator : the poll is deleted, the URL cannot be reached anymore.
- If the user gave authentication information or is logged, he is blacklisted.
-
-Extensions ::
-
- 5a. The user gives his name and email.
- 5a1. see variation 5a.
- 10a. The user can write a comment before validating the poll.
-
-A figure of the actions based on the base scenario and its variations follows :
-
-
-.. image:: schemas/CreerSondage.jpg
- :alt: Create Poll part 1
-
-.. image:: schemas/CreerSondage2.jpg
- :alt: Create Poll part 2
-
-
-Vote
-++++
-
-Actor :
-
-Voter
-
-Pre-conditions :
-
-The voter knows the poll URL.
-The poll is reachable.
-
-Base scenario :
-
-1. The voter connects to the poll from a URL.
-2. The voter selects his choice(s).
-3. The voter fills in his login.
-4. The voter submits his vote.
-
-Variations ::
-
- 2a. If the poll is restricted and this option is authorised on the current poll, the voter can add a poll choice. The poll creator and all the participants are alerted by email of the poll modification.
- 4a. If the voter did not filled in a valid login : an error message is shown, the vote is not counted.
- 4b. If the voter is black listed by the poll creator, he is not allowed to vote : an error message is shown, the vote is not taken into account.
-
-Extensions ::
-
- 3a. The user fills in his vote login and email address.
- 3b. The voter writes a comment on his vote.
- 4a. The user receive a vote confirmation email.
- 4b. The poll creator receives an email regarding the voter's vote.
- 4c. The voter can modify his vote.
-
-.. image:: schemas/Voter.jpg
- :alt: Vote
-
-Count the votes
-+++++++++++++++
-
-Actor
-
-The user
-
-Pre-conditions
-
-The poll ended.
-
-Base scenario :
-
-1. The user can connect to the poll by the URL.
-2. The user chose to count the votes.
-3. The application runs the vote counting algorithm.
-4. The results (voters, answers) of the poll are displayed.
-
-Variations ::
-
- 1a. The user authenticate in the application and chose the poll from his polls list.
- 1a1. see 1b
- 1b. If the votes have already been counted, the results are displayed.
- 2a. The votes are automatically counted when the poll's end date is reached.
- 4a. In the case of a poll with an anonymous list of voters : the voters informations are not displayed.
-
-Extensions ::
-
- 4a. The result can be exported to XML format.
-
-The interactions chronology between the different entities defined in the analysis
-step is presented in the following sequence diagram :
-
-.. image:: schemas/Depouiller.jpg
- :alt: Base scenario
-
-.. image:: schemas/Depouiller_1a.jpg
- :alt: Variation 1a
-
-Non functional requirements
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The application does not need to only follow the requirements stated in the
-project specifications. Several constraints have to be studied.
-
-Those constraints are :
-
-- The system have to store and restore manipulated informations : a DBMS use will manage those needs.
-- The application will not by strongly linked to any DBMS on the market : the use of a persistence layer is mandatory.
-- The application have to be service oriented, all the business layer will be separated from the presentation layer.
-- The system have to insure full security to the user for transactions done from and to the server and in the software use itself. This implies a proper right management at the application level.
-
-The business classes
-~~~~~~~~~~~~~~~~~~~~
-
-The analysis process gives the data part of the application's coherent class diagram.
-This diagram will be the base for the implementation of the database scheme.
-
-.. image:: schemas/DC_Pollen.png
- :alt: analysis class diagram.
-
-**Classes and associated comment** :
-
-- PollType, Poll type.
-- ChoiceType, Choice type.
-- VoteCounting, Vote count type.
-- UserAccount, User logged in the application.
-- PollAccount, Account for a poll, gather the voter and poll creator notion.
-- PersonList, Predefined list of accounts.
-- VotingList, Voters list.
-- PersonToList, Voters from a list.
-- Vote, Vote.
-- Choice, Vote choice.
-- VoteToChoice, Choice value when using preference order in a multichoice poll.
-
-**Result class** (poll results) :
-
-Attribute :
-
-- byGroup, Indicate that the votes have been counted by groups.
-
-**Poll class** (poll) :
-
-Attributes :
-
-- pollId, unique poll id.
-- beginChoiceDate, Choice adding begin date.
-- maxChoiceNb, Maximum choice number for a voter.
-- choiceAddAllowed, Allow adding choices to poll.
-- closed, Indicate that the poll is closed.
-- anonymous, Poll with anonymous votes and voters.
-- anonymousVoteAllowed, Anonymous vote allowed.
-- publicResults, Indicate wether the poll's results are public or not.
-- continuousResults, Indicate wether the polls results are visible while people are voting.
-
-**PreventRule class** (notification rules) :
-
-Notification rules associated to the polls. They are used to execute actions
-(message displaying, email sending,...) depending on various criteria.
-
-Attributes :
-
-- method, action to launch.
-- scope, context in which the action can be launched.
-- sensibility, value firing the action launch.
-- active, Indicate if the rule is active
-- oneTime, Indicate if the action can be launched only one time (the rule is unactivated after its first launch).
-- repeated, Indicate if the action can be launched repeatedly (an action with sensibility 2 will be launch for values 2, 4, 6, 8, ...).
-
-.. image:: schemas/DC_PreventRules.png
- :alt: Poll's lifecycle.
-
-The PreventRuleMAnager class allows to manage notifications rules. When the
-*execute()* method is called, the method defined by the rule is executed if its
-sensibility and context are valid.
-
-Example : Display a message every 100 votes ::
-
- // Define a rule : context : "vote", sensibility 100, repeatable
- PreventRuleDTO preventRule = new PreventRuleDTO("vote", 100, true,
- PreventRuleManager.PRINT_ACTION);
- PreventRuleManager manager = new PreventRuleManager(preventRule);
-
- // We launch the execution by precising a context and a sensibility
- // The manager verifies if the action have to be executed regarding the rule
- // and the parameters.
- manager.execute("vote",100,"un message"); // display "un message"
- manager.execute("vote",200,"autre message"); // display "autre message"
-
- // Examples doing nothing
- manager.execute("scope",100); // "scope" is not the right context
- manager.execute("vote",50); // 50 is not the right sensibility
-
-Notifications are used in Pollen to send confirmation message when creating an
-account, alert a poll creator when they are new votes or remind people they did
-not vote...
-
-Poll's lifecycle
-~~~~~~~~~~~~~~~~
-
-At the beginning, a poll had only two states : open and closed, to which the
-begin and end dates notion was linked. Once it was possible to add choices to a
-poll, it has been necessary to add a begin and end date for choice adding and
-the states describes in the following figure :
-
-.. image:: schemas/DET_PollState.png
- :alt: Poll's lifecycle
Deleted: trunk/src/site/rst/approval.rst
===================================================================
--- trunk/src/site/rst/approval.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/rst/approval.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,33 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Approval voting
----------------
-
-The approval voting is a one round voting system. Each person select as many
-choices as he/she want : none, one, several, all, but never two times the same.
-The winner is the choice that has the greater number of votes.
-
-This method is simple and easy. In Pollen, it is possible to limit the number of
-choices, this permits to switch from the first-to-post voting (only one choice)
-to approval voting (no limit of choice). This invites voters to vote sincerely.
Deleted: trunk/src/site/rst/architecture.rst
===================================================================
--- trunk/src/site/rst/architecture.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/rst/architecture.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,98 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Pollen architecture
-===================
-
-:Author: Florian DESBOIS <florian.desbois(a)gmail.com>
-:Revision: $Revision$
-:Date: $Date$
-
-.. image:: schemas/schema-architecture.png
- :alt: Global architecture
-
-Components
-----------
-
-Presentation
-~~~~~~~~~~~~
-
-The application is based on three distinct global components :
-
-- pollen-ui : application presentation layer
-- pollen-business : application persistence layer
-- pollen-votecounting : separated module doing vote counting
-
-.. image:: schemas/composants.png
- :alt: Application components
-
-UI Component (pollen-ui)
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-It allows data display to the user. This is our application view.
-This part is made using Tapestry framework from Apache.
-
-Business component (pollen-business)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The business component is coumpounded of three different comonents :
-
-- ServicesImpl : Component that implements all the application services
-- DAO : Persistent entities manipulation layer (Creation/Modification/Deletion)
-- Persistence : Component gathering all the persistent entities.
-
-The business component offers six different interfaces/services to the presentation layer :
-
-- ServiceAuth : Authentication service (for users having an account)
-- ServiceManagerUser : Users management service (for users having an account)
-- ServiceList : Voters list management service (groups, bookmarks,...)
-- ServicePoll : Poll management service : Creation/Modification/Deletion/Moderation...
-- ServiceVote : votes management service (Functionalities available for a voter)
-- ServiceResults : Result management service
-- ServiceComment : Comments management service.
-
-Vote counting component(pollen-votecounting)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The vote counting component is compounded of two different components :
-
-- VoteCountingExport : Component allowing polls and results exports under every file format (XML by default)
-- VoteCountingExecuter : Component allowing the management of the different vote counting algorithms.
-
-Vote counting component offers two different interfaces/services corresponding to the components presented above :
-
-- ServicePollExport : result and poll export service, using a standard format.
-- ServiceVoteCounting : vote counting management service.
-
-
-Maven modules
--------------
-
-3 Modules are created to manage those different components :
-
-- UI : Presentation layer (Tapestry framework)
-- Business : persistence and business layer (Use of ToPIA-Persistence framework)
-- VoteCounting : separated vote counting module
-
-
-
Deleted: trunk/src/site/rst/business.rst
===================================================================
--- trunk/src/site/rst/business.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/rst/business.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,98 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Business
-========
-
-:Author:
-:Revision: $Revision$
-:Date: $Date$
-
-DTO
----
-
-The dto package does the communication between the web client and the persistence
-part of the application.
-For maintainability and uncoupling needs, the client does not manipulate directly
-database objects and so use a simplified representation of the entities located
-in the persistence layer.
-
-The dtos class model put in place in Pollen-Business module is the following :
-
-.. image:: schemas/business/DC_businessDTOs.png
- :alt: Pollen-Business modules's DTO
-
-
-This modeled is based on the poll notion, by this way, in only a distant call
-(in a distributed architecture) all the poll information is restored.
-Moreover, to ake into account a further evolution to a fully distributed
-architecture, each dto does the serializable interface allowing to serialize the
-dto object created for a distant transfer (this aspect is not shown on the diagram).
-
-Services
---------
-
-In our service oriented architecture, the services are a facade giving access to
-the persistence management to the client, it shows a certain number of operations,
-hidding their implementation to the client. To do so, it is based on the DTO
-pattern to exchange info with it.
-
-This model presents the service exposed for poll management.
-
-.. image:: schemas/business/DC_ServicePoll.png
- :alt: Poll component services
-
-It is necessary to transform the dtos exchanged with the client into an entity
-to persist the data and perform the opposite operation to give data to the client.
-Those operations are taken into account specifically for the poll by the
-DataPollConverter class.
-
-Moreover, we can note that managing polls, the service can make calls to other
-services such as choices management service, comments management services, ...
-
-Create a poll
-~~~~~~~~~~~~~
-
-The sequence diagram shows the message exchanges between Pollen-Business
-component classes during a service creation.
-
-.. image:: schemas/business/DS_Conception_CreerSondage.jpg
- :alt: Sequence diagram : poll creation
-
-
-Persistence
------------
-
-Using ToPIA-Persistence API, we have to manage a global context loading the JDBC
-connection to the database properties and creating sub-contexts used for
-transactions to the database.
-
-The global persistence context for the application is managed under a singleton
-form, its classes manipulating those concepts are the following :
-
-.. image:: schemas/business/DC_DBUtil.png
- :alt: Utils classes for the database connection
-
-The contextUtil class also allows to load the referential tables (vote counting
-type, poll type, list type, choice type) that do not have their own UI for the moment
-from the pollenconfig.properties file.
\ No newline at end of file
Deleted: trunk/src/site/rst/condorcet.rst
===================================================================
--- trunk/src/site/rst/condorcet.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/rst/condorcet.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,42 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Condorcet method
-----------------
-
-The Condorcet method has been created by the marquis de Condorcet in XVIIIth
-century and that is aimed to find the best compromise between all the voters.
-
-According to this method, the unique winner, if it exists, is the choice that,
-compared to all the other choices one by one, is the most appreciated.
-
-This method has been created to improve the first past the post method that
-might not represent the wishes of the voters.
-
-The major inconvenient of this method it that it is possible that no winner can
-be designated (this is the Condorcet paradox). In this case, you have to use
-another method to solve conflicts.
-
-(Source : Wikipedia_ )
-
-.. _Wikipedia: http://en.wikipedia.org/wiki/Condorcet_method
\ No newline at end of file
Deleted: trunk/src/site/rst/developer.rst
===================================================================
--- trunk/src/site/rst/developer.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/rst/developer.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,45 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Developer documentation
-=======================
-
-You will find here a lot of developer documentation on Pollen and its different
-modules.
-
-All the diagram and schemes are in French but as all the explanations are
-translated in english you should not have problems to understand how it works.
-
-You can find documentation on :
-
-- `analysis of what was existing and the needs`_
-- architecture_
-- `votecounting module`_
-- `business module`_
-- `UI module`_
-
-.. _analysis of what was existing and the needs: analysis.html
-.. _architecture: architecture.html
-.. _votecounting module: votecounting.html
-.. _business module: business.html
-.. _UI module: ui.html
\ No newline at end of file
Deleted: trunk/src/site/rst/historical.rst
===================================================================
--- trunk/src/site/rst/historical.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/rst/historical.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,43 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Why Pollen is Pollen ?
-----------------------
-
-Back in the time, `Code Lutin`__ and Libre-Entreprise_ were using, for their
-consultations and internal votes, Glasnost_ software. But this one was too
-complex to use and was abandonned.
-
-After lots of search between existing solutions, it have been showed that they
-were, too simple, or too complex, or proprietary. So the `Code Lutin`__ company took
-in charge the development of a new software, under GPL license, allowing to
-realize quickly simple of complex consultations for the different organisations
-it is part of and for its own needs. Pollen was born.
-
-Pollen is actually used for the internal needs of `Code Lutin`__ : vote for new
-projects names, logos, company decisons, ... for Libre-Entreprise_ : vote of the
-members for the different decisions of the group.
-
-__ http://www.codelutin.com
-.. _Libre-Entreprise: http://www.libre-entreprise.org
-.. _Glasnost: http://glasnost.entrouvert.org
\ No newline at end of file
Modified: trunk/src/site/rst/index.rst
===================================================================
--- trunk/src/site/rst/index.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/rst/index.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -34,6 +34,7 @@
--------------------
- Pollen features textual, date or image vote.
+- You can use different `vote counting methods`_
- You can vote anonymously.
- You can import voters lists from CSV files or LDAP.
- You can import/export votes/polls.
@@ -43,5 +44,7 @@
- Pollen is Libre so you can modify it, improve it, adapt it to your needs.
- Pollen as a nice looking.
-.. image:: pollen.png
+.. image:: home.png
:alt: Pollen screenshot
+
+.. _vote counting methods: methods.html
Modified: trunk/src/site/rst/methods.rst
===================================================================
--- trunk/src/site/rst/methods.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/rst/methods.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -22,19 +22,60 @@
.. * #L%
.. -
Pollen's votecounting methods
------------------------------
+=============================
Pollen allows you to chose between several votecounting methods for
consultations.
Each method has its pros and cons.
- * Condorcet_ method
- * Percentage_ method
- * Approval_ method
- * Number_ method
+Condorcet
+---------
+The Condorcet method has been created by the marquis de Condorcet in XVIIIth
+century and that is aimed to find the best compromise between all the voters.
-.. _Condorcet: condorcet.html
-.. _Percentage: percentage.html
-.. _Approval: approval.html
-.. _Number: number.html
+According to this method, the unique winner, if it exists, is the choice that,
+compared to all the other choices one by one, is the most appreciated.
+
+This method has been created to improve the first past the post method that
+might not represent the wishes of the voters.
+
+The major inconvenient of this method it that it is possible that no winner can
+be designated (this is the Condorcet paradox). In this case, you have to use
+another method to solve conflicts.
+
+(Source : Wikipedia_ )
+
+.. _Wikipedia: http://en.wikipedia.org/wiki/Condorcet_method
+
+Percentage
+----------
+
+Each voter has 100 points to distribute between the choices (so the percentage).
+The choice that has the greater number of points is declared winner.
+
+This votecounting method has the main advantage of inciting sincere vote.
+
+Approval
+--------
+
+The approval voting is a one round voting system. Each person select as many
+choices as he/she want : none, one, several, all, but never two times the same.
+The winner is the choice that has the greater number of votes.
+
+This method is simple and easy. In Pollen, it is possible to limit the number of
+choices, this permits to switch from the first-to-post voting (only one choice)
+to approval voting (no limit of choice). This invites voters to vote sincerely.
+
+Number
+------
+
+The consultation is held by many in one round. Each person
+assign a number to each choice. You may also decide not
+speak about choice and leave the textbox empty.
+
+The recount shows for each choice:
+ - The total number of votes
+ - The number of white votes
+ - The sum of votes among non-white
+ - The average number of votes among non-white
Deleted: trunk/src/site/rst/number.rst
===================================================================
--- trunk/src/site/rst/number.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/rst/number.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,36 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Counting by numbers
--------------------
-
-The consultation is held by many in one round. Each person
-assign a number to each choice. You may also decide not
-speak about choice and leave the textbox empty.
-
-The recount shows for each choice:
- - The total number of votes
- - The number of white votes
- - The sum of votes among non-white
- - The average number of votes among non-white
-
Deleted: trunk/src/site/rst/percentage.rst
===================================================================
--- trunk/src/site/rst/percentage.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/rst/percentage.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,30 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Vote by percentage
-------------------
-
-Each voter has 100 points to distribute between the choices (so the percentage).
-The choice that has the greater number of points is declared winner.
-
-This votecounting method has the main advantage of inciting sincere vote.
Deleted: trunk/src/site/rst/tutoriel.rst
===================================================================
--- trunk/src/site/rst/tutoriel.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/rst/tutoriel.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,125 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-Tutorial
-========
-
-:Author: Nolwenn Rannou <rannou(a)codelutin.com>
-:Revision: $Revision$
-:Date: $Date$
-
-We will see through an example, how to create a poll with Pollen. The three
-necessary steps are:
-
-- creation
-- vote
-- results visualization
-
-Creation
---------
-
-The first step is filling in global information about the poll and its creator.
-All the fields are not mandatory. The poll type is defined by one of the
-following terms :
-
-- **Free** : everybody can participate
-- **Restricted** : only a list of voters can participate
-- **Group** : several lists of voters can participate
-
-The vote counting type corresponds to one of the following :
-
-- **Normal** : select 1 or n winners amongst the choices
-- **Percentage** : attribute a percentage to each choice
-- **Condorcet** : Rank the choices by preference order (cf `Condorcet`_ )
-- **Number** : awarding a number to each choice
-
-.. _Condorcet: http://en.wikipedia.org/wiki/Condorcet_method
-
-.. image:: tutoriel/Creation-step1.png
- :alt: Creation : step 1
-
-The second step allows to specify options for the poll. The questionmark shaped
-icons display help on the topic :
-
-- Anonymous poll : Voting persons and their votes are anonymous
-- Allow anonymous vote : Voting persons can be anonymous
-- Continuous results : Poll results are displayed continuously during the vote
-- Public results : Poll results are available for everybody
-- Allow adding choices : You can add choices to the poll
-- Limit the number of choices for each vote : The user can select a limited number of choices
-- Receive notifications emails : An email is sent each n votes to prevent the creator
-- Send reminder emails : An email is sent to remind persons who have not yet voted N hours before poll end
-
-.. image:: tutoriel/Creation-step2.png
- :alt: Creation : step 2
-
-The third step is specific to group or restricted polls. If you are logged in you
-can use predefined list to fill in the groups (the selected poll is shown in grey).
-Otherwise you have to fill in their names and emails. It is also possible to give
-a weight to a group or a voter.
-
-.. image:: tutoriel/Creation-step3.png
- :alt: Creation : step 3
-
-The fourth step is aimed to fill in the choices for the poll. The choices can be
-text, date or pictures. It is possible to fill in a description per choices.
-
-.. image:: tutoriel/Creation-step4.png
- :alt: Creation : step 4
-
-Once the poll is created, a page indicate two links. The first one is the link
-to the vote page (to send to the voter, this is automatic if their email was filled in).
-The second one have to stay private, this is the poll modification link (allows
-to end the poll also).
-
-.. image:: tutoriel/Creation-step5.png
- :alt: Creation : links
-
-Vote
-----
-
-The vote page contains a reminder of the poll informations and a representation
-of each voter's vote. The poll creator and the voter concerned can modify a vote.
-If the poll is public, it is possible to see the results. In addition to that,
-the poll's news can be followed by Atom syndication and it is possible to post
-comments.
-
-.. image:: tutoriel/Vote.png
- :alt: Vote
-
-Results
--------
-
-The results page allows to see a poll's results on a diagram. It shows the poll
-informations and gives the winner. Several displays are available : pie, 3D pie
-and ring pie.
-
-.. image:: tutoriel/Results.png
- :alt: Resultats
-
-Other functionalities
----------------------
-
-A logged in other can access more functionalities. He can see a list of polls he
-created or participated in. He can create voters lists manually or from LDAP url.
-An administrator can manage all the polls and users.
Deleted: trunk/src/site/rst/ui.rst
===================================================================
--- trunk/src/site/rst/ui.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/rst/ui.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,302 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-UI
-==
-
-:Author: Nolwenn Rannou <rannou(a)codelutin.com>
-:Revision: $Revision$
-:Date: $Date$
-
-The application web interface has been created with Tapestry framework from
-Apache foundation. Tapestry is a development framework for Web J2EE applications
-wich architecture is based on components.
-
-It features numerous pros :
-
-- few configuration thanks to annotations.
-- strongly object oriented : abstraction of session, request, cookie,... notions.
-- full separation of business and presentation java code.
-- advanced feedback : error messages pertinent and complete.
-- loading on the fly : no need to compile again the code.
-- easy component development .
-
-Data
-----
-
-The data package contains the UI architecture's model elements.
-
-UIO
-~~~
-
-The UIO (User Interface Objects) are similar to business DTO for UI. The UIO
-attributes are private and have getters and setters, because Tapestry framework
-manipulates the objects via those UIO.
-The UI manipulate directly the DTOs but there are two UIOs that inherits from
-ChoiceDTO : DataChoiceUIO and ImageChoiceUIO. They are useful when creating date
-or picture poll choices.
-
-.. image:: schemas/ui/DC_UIOs.png
- :alt: UIOS class diagram
-
-Link
-~~~~
-
-The link class represents an hypertext link : it has a name attribute, which is
-the string representing the link, and an address attribute, which is the address
-where the link points.
-
-EvenOdd
-~~~~~~~
-
-The EvenOdd classallows to attribute a class to a table lines or to a list elements,
-to display them changing their color on line over two.
-
-PollStep
-~~~~~~~~
-
-The PollStep enumeration represents the steps of the poll creation/modification
-form.
-
-Components
-----------
-
-Border
-~~~~~~
-
-The Border component is a component present on all the pages of the application :
-it is the menu, the address bar and the footer.
-It takes in parameter a Link Array, that will create the address bar, and a page
-type (Creation, Index, Vote or VoteCounting) that determines the logo and the page
-colors.
-
-.. image:: schemas/ui/topIndex.png
- :alt: Border Index
-
-.. image:: schemas/ui/topCreation.png
- :alt: Border Creation
-
-.. image:: schemas/ui/topCount.png
- :alt: Border VoteCounting
-
-.. image:: schemas/ui/topVote.png
- :alt: Border Vote
-
-LoginComponent
-~~~~~~~~~~~~~~
-
-This component is a connexion form that is displayed when the user tries to reach
-a page where he needs to be logged in.
-
-DateTimeField
-~~~~~~~~~~~~~
-
-This component is a form field type allowing to select a date and an hour.
-
-.. image:: schemas/ui/dateTimeField.png
- :alt: DateTimeField component
-
-FeedBack
-~~~~~~~~
-
-The FeedBack component manages the user messages displaying (messages for the user).
-Those messages have a look and feel different depending on their meaning. For exemple
-an error message will be more aggressive than an information message. This component
-allows to display those types of message when rendering the page. It is possible
-to display several messages of different type at the same time. They will be
-displayed only once and then deleted. This component behave quite the smae way than
-the Tapestry Error component that displays form validation error messages.
-
-.. image:: schemas/ui/feedBack.png
- :alt: FeedBack component
-
-To customise the messages appearance, you need to define the classes *fb-error*
-and *fb-info* in the CSS file. In the template, you need to place the component
-tag ::
-
- <t:feedback t:id="feedback"/>
-
-In the classes, after the component declaration, it is possible to add messages ::
-
- @Component(id = "feedback") private FeedBack feedback;
-
- feedback.addInfo("info message");
- feedback.addError("error message");
-
-Image
-~~~~~
-
-The image component goal is to display a picture dynamically, such as picture
-uploaded on the server from a form. On the face of it we do not know the
-picture's file name, so we cannot use asset to display it the follpowing way::
-
- <img src="${asset:context:img}/image.png" />
-
-The component creates an image HTML element associating it with a
-ImageStreamResponse flux ::
-
- <t:image src="/img/image.png" />
-
-Chart
-~~~~~
-
-The Chart component displays a pie chart. To do so, it uses the JFreeChart
-library and convert the results ina picture easily displayable on a web page ::
-
- <t:chart width="210" height="190" values="choice" title="title" type="1"/>
-
-The *values* parameter correspond to a list of strings representing the labels
-and their respective values (example : {"val1", "20", "val2", "10"}). The *type*
-parameter is the diagram representation type (1:PIE, 2:PIE3D, 3:RING).
-
-.. image:: schemas/ui/chart.png
- :alt: Chart component
-
-Pages
------
-
-The pages are at the same time view and controller for the architecture. However
-each page is represented by 3 files :
-
-- a template .tml (the view) that contains HTML code and Tapestry components
-- a Java class (the controler) that initialise the data and components, that
-defines the actions associated to the components and uses the BusinessServices
-class from the services package to call the business services.
-- a .properties files (or several for internationalization) that contains the
-messages displayed on the page.
-
-Poll creation
-~~~~~~~~~~~~~
-
-The poll creation page allows to create a poll by filling in :
-
-- the poll title (mandatory)
-- the poll description
-- begin and end dates
-- the creator name (mandatory)
-- the poll anonymity
-- the possibility for users to add choices
-- the email sending to the creator incase of votes or comments.
-- the type of choices (text, image or date)
-- the different choices and their description
-
-When choices are pictures, the files are sent to the server but the directory
-they are saved in needs to be configured.
-If the poll creation is successful on the database, a confirmation page is
-displayed and gives the user two links : one to vote (that he can send to other
-voters), and the other for poll modification or ending.
-
-Poll modification
-~~~~~~~~~~~~~~~~~
-
-The fields that can be modificated are the following ones :
-
-- the title
-- the poll description
-- the creator's name
-- the dates (with conditions)
-- email sending
-- choice adding
-- choice description
-
-This page take as argument the poll ToPIA id hashed with md5 concatened with the
-hashed poll creator ToPIA id.
-This is also on this page that he will be able to close the poll to count the votes.
-
-Vote
-~~~~
-
-This page allows a user to vote to a poll. He has to fill in his name and vote
-for one or more choices.
-This page allows to add comments to the poll.
-This page take into argument the poll ToPIA id hashed with md5.
-
-The votes on pictures needs to allow pictures uploading on the server. The
-Tapestry Upload component allows to do that easily by placing it into a form and by saving
-the file submitted (UploadedFile) in a servers'directory. Moreover it is possible
-to limit the size of the files in the AppModule class (*contibuteApplicationDefaults()* method)::
-
- configuration.add(UploadSymbols.FILESIZE_MAX, "500000");
- configuration.add(UploadSymbols.REQUESTSIZE_MAX, "5000000");
-
-The thumbnail corresponding to the image is created once and for all when it is
-submitted so that the server is not on his kees because he change the image
-dimensions each time someone displays the page (image a page with 10 2Mb images).
-But it is not so easy to display those images after because of Tapestry's behavior.
-An Image component have then be created to fulfill this need.
-
-Results
-~~~~~~~
-
-A result page use the Chart component to display a poll's results. They are
-restored via the ServiceResult service.
-
-User's polls
-~~~~~~~~~~~~
-
-If the user who creates a poll is registered and logged in, the created poll is
-linked to his account in the database. So he will be able to consult the list of
-the polls he created. This can allow him to get back the different URLs if he
-lost them.
-
-Voters lists
-~~~~~~~~~~~~~~~~~
-
-The voters lists can be created by hand filling in the info for each voter, but
-it is also possible to import a list of voters from a CSV file. The reading of the
-CSV files is done by the use of the JAVA OpenCSV library that allows to define a
-mapping strategy to convert directly the fields into objects.
-
-The logged in user can manage voters lists. When he will create a restricted poll,
-he will be able to use its predefined voters lists instead of manually type in
-the voters list for the poll.
-
-Services
---------
-
-Tapestry is delivered with numerous services that are a part of the framework,
-but it is also possible to define its own services. In the AppModule class, that
-contains the small amount of configuration needed by Tapestry to work, we can link
-its services by completing the *bind(ServiceBinder binder)* method::
-
- binder.bind(ServicePoll.class, ServicePollImpl.class);
-
-Once Tapestry knows the interface and the service implementation, we can inject
-it in the application's pages and use it as usual::
-
- @Inject
- private ServicePoll servicePoll;
-
-Configuration
-~~~~~~~~~~~~~
-
-In addition to the business services defined in the pollen-business module, a
-pollen-ui service allows to reach the application configuration (mail server,
-pictures directory,...). This service reads the configuration in a *properties*
-file when its instanciated.
-
-BackgroundWorker
-~~~~~~~~~~~~~~~~
-
-Another service, BackgroundWorker, allows to do tasks in background.
-This service is useful to send emails at fixed time interval.
Deleted: trunk/src/site/rst/user.rst
===================================================================
--- trunk/src/site/rst/user.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/rst/user.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,34 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-User documentation
-==================
-
-You will find here all the documentation available for Pollen.
-
-You can find an `installation guide`_ and a tutorial_ to understand how to create
-a poll, vote and count votes at the end.
-
-.. _installation guide: install.html
-.. _tutorial: tutoriel.html
-
Deleted: trunk/src/site/rst/votecounting.rst
===================================================================
--- trunk/src/site/rst/votecounting.rst 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/rst/votecounting.rst 2012-04-24 07:45:57 UTC (rev 3301)
@@ -1,213 +0,0 @@
-.. -
-.. * #%L
-.. * Pollen
-.. *
-.. * $Id$
-.. * $HeadURL$
-.. * %%
-.. * Copyright (C) 2009 - 2012 CodeLutin
-.. * %%
-.. * This program is free software: you can redistribute it and/or modify
-.. * it under the terms of the GNU Affero General Public License as published by
-.. * the Free Software Foundation, either version 3 of the License, or
-.. * (at your option) any later version.
-.. *
-.. * This program is distributed in the hope that it will be useful,
-.. * but WITHOUT ANY WARRANTY; without even the implied warranty of
-.. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.. * GNU General Public License for more details.
-.. *
-.. * You should have received a copy of the GNU Affero General Public License
-.. * along with this program. If not, see <http://www.gnu.org/licenses/>.
-.. * #L%
-.. -
-VoteCounting
-============
-
-:Author: Nolwenn Rannou <rannou(a)codelutin.com>
-:Revision: $Revision$
-:Date: $Date$
-
-This part describe the VoteCounting module implementation.
-
-There are 2 interfaces :
-
-- ServiceVoteCounting : Vote couting management service.
-- ServicePollExport : Poll and results export management service.
-
-ServiceVoteCounting
--------------------
-
-DTOVoteCounting
-~~~~~~~~~~~~~~~
-
-The VoteCounting DTOs (Data Transfer Object) allow to use correctly the interfaces
-exposed by the VoteCounting module.
-
-There are two important root DTOs :
-
-- PollDTO : Correspond to a poll and all the important elements for vote counting.
-- VoteCountingResultDTO : The vote counting result organized following the poll's
-choices.
-
-PollExportDTO have been added for exports. It conatines a PollDTO and several
-VoteCountingResultDTOs.
-
-Two enumerations are also available and allows the types normalization :
-
-- PollType : Poll type (Group, Free, Restricted, ...)
-- VoteCountingType : Vote counting type (Condorcet, Percentage, ...)
-
-Please note that the VoteCountingType is used as reference for a poll vote counting.
-
-.. image:: schemas/votecounting/DC_VoteCountingDTOs.png
- :alt: VoteCounting module DTO
-
-**PollDTO**
-
-It is coumpounded of PollChoiceDTO (the poll's choices) and Comment DTO
-(the poll's comments).
-
-It is compounded of VotingGroupDTO. This one correspond to group of voters in
-case of a group typed poll. In case of another type, there will be one and only
-one VotingGroupDTO with null values (weight and idGroup).
-
-Each VotingGroupDTO is compounded of VotingPersonDTO corresponding to voters
-linked to the poll (people who have already voted). The votingID will be
-"anonymous" in case of an anonymous poll.
-
-Each VotingPersonDTO is compounded of VoteToChoiceDTOs corresponding to the
-voter's votes (for each choice a value).
-
-It is not necessary to know all the choices in advance at the poll's level. The
-vote counting will manage the organization of the results regarding the choices.
-
-**VoteCountingResultDTO**
-
-The results are shared out according to the poll's choices. A ResultDTOV is
-compouded of ChoiceDTOVs corresponding to those choices.
-
-So for a poll we have :
-
-- the global result (VoteCountingResultDTO.choiceResult)
-- the result per choice (ChoiceDTO.value)
-
-Operations
-~~~~~~~~~~
-
-- executeVoteCounting(poll : PollDTO) : VoteCountingResultDTO
-
-This operation allows to execute a poll's vote counting.
-
-- executeGroupCounting(poll : PollDTO) : VoteCountingResultDTO
-
-This operation allows the execution of a poll's vote counting functions of groups.
-
-
-Implementation
-~~~~~~~~~~~~~~
-
-The Strategy Pattern is used to manage the vote counting. A Context class allows
-to define which strategy type to use.
-The strategy is defined at the beginning with PollDTO's typeVoteCounting attribute.
-
-Here the strategies are represented by the Method interface that will be implemented
-by :
-
-- CondorcetMethod : Vote counting using the Condorcet criterion.
-- StandardMethod : Normal vote counting.
-- PercentageMethod : Vote counting using choices balancing.
-
-Each method implements the "executeMethod(choices)" operation that will be called
-in the Context class by the "execute()" method.
-So the context needs to know all the choices and the votes by choice and by group.
-
-When calling for ServiceVoteCounting, a new context will be created and the
-PollDTO will be scanned to create the choices, groups and votes needed for the
-vote counting.
-
-.. image:: schemas/votecounting/DC_ServiceVoteCountingImpl.png
- :alt: VoteCounting service implementation diagram.
-
-Execution
-~~~~~~~~~
-
-- Call to executeVoteCounting
-- Context creation depending on PollDTO.typeVoteCounting
-- Scan PollChoiceDTOs : Add the choices to the context.
-- Scan VotingGroupDTOs : For each group -> VoteCounting.routeGroup(VotingGroupDTO)
-(with group adding to the context Context.addGroup(idGroup, weight))
-- Scan VotingPersonDTO : For each people -> VoteCounting.routePerson(VotingPersonDTO)
-- Scan Vote : For each choice -> add it to the context via
-Context.getChoice(idChoice).getGroup(VoteCounting.currentIdGroup).addVote(value, weight)
-- Execute the vote counting method -> Context.execute()
-- Create the VoteCountingResultDTO that contains all the choices with their results.
-
-.. image:: schemas/votecounting/Seq-executeVoteCounting.png
- :alt: Sequence diagram of a normal vote counting (without algorithm details)
-
-Condorcet vote counting
-~~~~~~~~~~~~~~~~~~~~~~~
-
-With a classical vote counting, the winner is the one that has the biggest number
-of voices. With the Condorcet method that is not necessarily the case. The winner
-is the one that, compared to each other candidate, is always prefered.
-In certain situations, such a winner does not exist, this is what we call the
-Condorcet paradox (A>B>C>A). The algorithm chosen in Pollen consit in chosing
-the candidate that won more duels. In case of deuce a vote needs to be done
-between the leading group.
-
-A condorcet vote sequence is the following :
-
-1. The voters sort the candidates by preference order
-2. For each vote, we compare the condidtaes rankings by pairs and we count the
-number of wins of each candidate
-3. The winner is the one that have the greatest number of victories.
-
-In Pollen, the implementation of Condorcet vote has in addition the notion of
-voters groups. In cas of vote counting by groups, the algorithm is applied for
-each groups, and then applied a second time between the results of each group.
-When the voters vote in a poll, they can make two choices equals. It is not
-necessary to sort all the choices, those which are not ranked will be all last.
-
-ServicePollExport
------------------
-
-Operations
-~~~~~~~~~~
-
-- executeExport(export : PollExportDTO) : String
-
-This is the main operation that allows the poll export, the object given in
-parameter contains the poll object and a list of the results to export. Those
-results are obtained by the different vote counting methods. This methods
-returns the name of the exported file.
-
-- executeImport(path : String) : PollExportDTO
-
-This operation imports the poll and its results from the file which path is
-given in parameter, so it builds the PollExportDTO return by this method.
-
-
-Export implementation
-~~~~~~~~~~~~~~~~~~~~~
-
-An easy implementation have been made for this part. Itturns out that the Visitor
-pattern use is significant for this module implementation as it works the same
-way that the Visitor pattern, but to do so, we need to add methods to the DTO
-classes that violates their semantics, so we proceeded as shown in the following
-diagram.
-
-.. image:: schemas/votecounting/DC_ServiceExportImpl.png
- :alt: PollExport service implementation diagram.
-
-
-Export result
-~~~~~~~~~~~~~
-
-To conceive Pollen's poll export module, we needed to specify the wanted result.
-To do so we have done an UML modelisation to extract the tree architecture of our
-export. Have a look to the following class diagram :
-
-.. image:: schemas/votecounting/DC_ServiceExportXML.png
- :alt: Class diagram of a poll and its results export
Modified: trunk/src/site/site_en.xml
===================================================================
--- trunk/src/site/site_en.xml 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/site_en.xml 2012-04-24 07:45:57 UTC (rev 3301)
@@ -26,6 +26,7 @@
<project name="${project.name}">
<bannerLeft>
+ <src alt="Pollen">logo.jpg</src>
<name>${project.name}</name>
<href>index.html</href>
</bannerLeft>
@@ -61,7 +62,7 @@
</fluidoSkin>
</custom>
- <publishDate position="right" format="dd/MM/yyyy"/>
+ <publishDate position="right" format="MM/dd/yyyy"/>
<version position="right" />
<poweredBy>
@@ -78,45 +79,25 @@
<links>
<item name="Libre-Entreprise" href="http://www.libre-entreprise.org/" />
- <item name="[fr" href="fr/index.html" />
- <item name="en]" href="index.html" />
</links>
-
- <menu name ="Documentation">
- <item name="User" href="user.html">
- <item name="Install" href="install.html"/>
- <item name="Tutorial" href="tutoriel.html"/>
- <item name="Votecounting methods" href="methods.html">
- <item name="Percentage" href="percentage.html"/>
- <item name="Condorcet" href="condorcet.html"/>
- <item name="Approval" href="approval.html"/>
- <item name="Number" href="number.html"/>
- </item>
- </item>
-
- <item name="Developer" href="developer.html">
- <item name="Analysis" href="analyse.html"/>
- <item name="Architecture" href="architecture.html"/>
- <item name="Conception">
- <item name="Business" href="business.html"/>
- <item name="VoteCounting" href="votecounting.html"/>
- <item name="UI" href="ui.html"/>
- </item>
- </item>
-
- <item name="History" href="historical.html"/>
+ <menu name="Download">
+ <item name="Download" href="http://www.chorem.org/projects/list_files/pollen"/>
</menu>
-
- <menu name ="Download">
- <item name="Download" href="http://www.chorem.org/projects/list_files/pollen"/>
+ <menu name="Install">
+ <item name="Install" href="install.html"/>
</menu>
<menu name="Demo">
<item name="Demo" href="http://pollen.chorem.org/"/>
</menu>
+ <menu name="Language">
+ <item name="Français" href="fr/index.html" />
+ <item name="English" href="index.html" />
+ </menu>
+
<menu ref="parent"/>
<!-- <menu ref="modules"/> -->
<menu ref="reports"/>
Modified: trunk/src/site/site_fr.xml
===================================================================
--- trunk/src/site/site_fr.xml 2012-04-23 09:42:26 UTC (rev 3300)
+++ trunk/src/site/site_fr.xml 2012-04-24 07:45:57 UTC (rev 3301)
@@ -26,6 +26,7 @@
<project name="${project.name}">
<bannerLeft>
+ <src alt="Pollen">logo.jpg</src>
<name>${project.name}</name>
<href>index.html</href>
</bannerLeft>
@@ -68,42 +69,24 @@
<links>
<item name="Libre-Entreprise" href="http://www.libre-entreprise.org/" />
- <item name="[fr" href="index.html" />
- <item name="en]" href="../index.html" />
</links>
- <menu name ="Documentation">
- <item name="Utilisateur" href="user.html">
- <item name="Installation" href="install.html"/>
- <item name="Tutoriel" href="tutoriel.html"/>
- <item name="Types de dépouillement" href="depouillement.html">
- <item name="Pourcentage" href="pourcentage.html"/>
- <item name="Condorcet" href="condorcet.html"/>
- <item name="Assentiment" href="assentiment.html"/>
- <item name="Nombre" href="nombre.html"/>
- </item>
- </item>
-
- <item name="Développeur" href="developer.html">
- <item name="Analyse" href="analyse.html"/>
- <item name="Architecture" href="architecture.html"/>
- <item name="Conception" href="#">
- <item name="Business" href="business.html"/>
- <item name="VoteCounting" href="votecounting.html"/>
- <item name="UI" href="ui.html"/>
- </item>
- </item>
-
- <item name="Historique" href="historique.html"/>
+ <menu name="Téléchargement">
+ <item name="Téléchargement" href="http://www.chorem.org/projects/list_files/pollen"/>
</menu>
- <menu name ="Téléchargement">
- <item name="Téléchargement" href="http://www.chorem.org/projects/list_files/pollen"/>
+ <menu name="Installation">
+ <item name="Installation" href="install.html"/>
</menu>
<menu name="Demo">
<item name="Demo" href="http://pollen.chorem.org/"/>
</menu>
+
+ <menu name="Language">
+ <item name="Français" href="index.html" />
+ <item name="English" href="../index.html" />
+ </menu>
<menu ref="parent"/>
<!-- <menu ref="modules"/> -->
1
0
r3300 - in trunk/pollen-ui-struts2/src/main: java/org/chorem/pollen/ui/actions java/org/chorem/pollen/ui/actions/user resources/config webapp/WEB-INF/decorators
by fdesbois@users.chorem.org 23 Apr '12
by fdesbois@users.chorem.org 23 Apr '12
23 Apr '12
Author: fdesbois
Date: 2012-04-23 11:42:26 +0200 (Mon, 23 Apr 2012)
New Revision: 3300
Url: http://chorem.org/repositories/revision/pollen/3300
Log:
fixes #529 : redirect on same page after login
Modified:
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/PollenActionSupport.java
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/Login.java
trunk/pollen-ui-struts2/src/main/resources/config/struts-user.xml
trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/decorators/layout-default.jsp
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/PollenActionSupport.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/PollenActionSupport.java 2012-04-23 09:42:14 UTC (rev 3299)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/PollenActionSupport.java 2012-04-23 09:42:26 UTC (rev 3300)
@@ -26,6 +26,7 @@
import com.google.common.collect.Lists;
import com.opensymphony.xwork2.ActionContext;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.struts2.ServletActionContext;
import org.apache.struts2.StrutsStatics;
import org.chorem.pollen.PollenConfiguration;
import org.chorem.pollen.business.persistence.UserAccount;
@@ -219,6 +220,12 @@
}
return result;
}
+
+ public String getCurrentUrl() {
+ HttpServletRequest request = ServletActionContext.getRequest();
+ String result = request.getRequestURL().toString();
+ return result;
+ }
@Override
public void addActionMessage(String message) {
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/Login.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/Login.java 2012-04-23 09:42:14 UTC (rev 3299)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/user/Login.java 2012-04-23 09:42:26 UTC (rev 3300)
@@ -44,6 +44,8 @@
protected String password;
+ protected String redirectUrl;
+
public String getLogin() {
return login;
}
@@ -60,6 +62,14 @@
this.password = password;
}
+ public String getRedirectUrl() {
+ return redirectUrl;
+ }
+
+ public void setRedirectUrl(String redirectUrl) {
+ this.redirectUrl = redirectUrl;
+ }
+
@InputConfig(resultName = "error")
@Override
public String execute() throws Exception {
Modified: trunk/pollen-ui-struts2/src/main/resources/config/struts-user.xml
===================================================================
--- trunk/pollen-ui-struts2/src/main/resources/config/struts-user.xml 2012-04-23 09:42:14 UTC (rev 3299)
+++ trunk/pollen-ui-struts2/src/main/resources/config/struts-user.xml 2012-04-23 09:42:26 UTC (rev 3300)
@@ -35,7 +35,7 @@
<!-- login -->
<action name="login" class="org.chorem.pollen.ui.actions.user.Login">
<result name="error">/WEB-INF/jsp/home.jsp</result>
- <result type="redirectToHome"/>
+ <result type="redirect2"/>
</action>
<!-- register user -->
Modified: trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/decorators/layout-default.jsp
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/decorators/layout-default.jsp 2012-04-23 09:42:14 UTC (rev 3299)
+++ trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/decorators/layout-default.jsp 2012-04-23 09:42:26 UTC (rev 3300)
@@ -135,6 +135,7 @@
<sj:dialog id="lostPasswordDialog" autoOpen="false" modal="true" width="500"/>
<s:form id="connection" method="POST" namespace="/user" action="login">
+ <s:hidden name="redirectUrl" value="%{currentUrl}"/>
<ul class="top_middle${pageLogo}">
<li>
<label for="connection_login">
1
0
r3299 - in trunk/pollen-ui-struts2/src/main/webapp/WEB-INF: decorators jsp/poll
by fdesbois@users.chorem.org 23 Apr '12
by fdesbois@users.chorem.org 23 Apr '12
23 Apr '12
Author: fdesbois
Date: 2012-04-23 11:42:14 +0200 (Mon, 23 Apr 2012)
New Revision: 3299
Url: http://chorem.org/repositories/revision/pollen/3299
Log:
move sj locale in layout
Modified:
trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/decorators/layout-default.jsp
trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/create.jsp
trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/vote.jsp
Modified: trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/decorators/layout-default.jsp
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/decorators/layout-default.jsp 2012-04-23 09:42:04 UTC (rev 3298)
+++ trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/decorators/layout-default.jsp 2012-04-23 09:42:14 UTC (rev 3299)
@@ -21,9 +21,9 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
#L%
--%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8" %>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
<%@ taglib prefix="d" uri="http://www.opensymphony.com/sitemesh/decorator" %>
@@ -38,7 +38,7 @@
<link rel="stylesheet" type="text/css" href="<s:url value='/css/main.css' />"/>
<link rel="stylesheet" type="text/css" href="<s:url value='/css/common.css' />"/>
<link rel="icon" type="image/png" href="<s:url value='/favicon.png' />"/>
- <sj:head jqueryui="true" jquerytheme="%{jqueryTheme}"/>
+ <sj:head locale="%{locale}" jqueryui="true" jquerytheme="%{jqueryTheme}"/>
</head>
<%-- TODO AThimel 24/01/2012 Remove this when refactoring is over --%>
Modified: trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/create.jsp
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/create.jsp 2012-04-23 09:42:04 UTC (rev 3298)
+++ trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/create.jsp 2012-04-23 09:42:14 UTC (rev 3299)
@@ -24,10 +24,7 @@
<%@ page language="java" contentType="text/html" pageEncoding="utf-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
-<html>
-<head>
-<sj:head locale="%{locale}"/>
<link rel="stylesheet" type="text/css" href="<s:url value='/css/pollCreation.css'/>"/>
<link rel="stylesheet" type="text/css" href="<s:url value='/css/tipTip.css'/>"/>
@@ -65,9 +62,6 @@
<script type="text/javascript" src='<s:url value="/js/createPoll.js"/>'></script>
<script type="text/javascript" src='<s:url value="/js/jquery.tipTip.minified.js"/>'></script>
-</head>
-<body>
-
<s:url id='errorImg' value='/img/exclamation.png'/>
<title><s:text name="pollen.title.createPoll"/></title>
@@ -284,6 +278,3 @@
<sj:dialog id="selectPersonListDialog" resizable="true" autoOpen="false"
modal="true" width="500"/>
-
-</body>
-</html>
Modified: trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/vote.jsp
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/vote.jsp 2012-04-23 09:42:04 UTC (rev 3298)
+++ trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/vote.jsp 2012-04-23 09:42:14 UTC (rev 3299)
@@ -26,10 +26,6 @@
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
-<html>
-<head>
-<sj:head locale="%{locale}"/>
-
<title><s:property value="%{poll.title}"/></title>
<link rel="stylesheet" type="text/css"
@@ -106,12 +102,8 @@
});
-
</script>
-</head>
-<body>
-
<h1 class="titleVote"><s:property value="poll.title"/></h1>
<!-- Informations sur le sondage -->
@@ -558,7 +550,4 @@
autoOpen="false" modal="true" width="800"/>
</div>
-</s:if>
-
-</body>
-</html>
\ No newline at end of file
+</s:if>
\ No newline at end of file
1
0
Author: fdesbois
Date: 2012-04-23 11:42:04 +0200 (Mon, 23 Apr 2012)
New Revision: 3298
Url: http://chorem.org/repositories/revision/pollen/3298
Log:
add uriEncoding for embedded tomcat
Modified:
trunk/pollen-ui-struts2/pom.xml
Modified: trunk/pollen-ui-struts2/pom.xml
===================================================================
--- trunk/pollen-ui-struts2/pom.xml 2012-04-18 14:51:21 UTC (rev 3297)
+++ trunk/pollen-ui-struts2/pom.xml 2012-04-23 09:42:04 UTC (rev 3298)
@@ -258,6 +258,7 @@
<systemProperties>
<siteUrl>http://localhost:8080/pollen</siteUrl>
</systemProperties>
+ <uriEncoding>UTF-8</uriEncoding>
</configuration>
</plugin>
1
0
r3297 - in trunk/pollen-ui-struts2/src/main: java/org/chorem/pollen/ui/actions java/org/chorem/pollen/ui/actions/poll resources/i18n webapp/WEB-INF/jsp/poll webapp/css webapp/img
by fdesbois@users.chorem.org 18 Apr '12
by fdesbois@users.chorem.org 18 Apr '12
18 Apr '12
Author: fdesbois
Date: 2012-04-18 16:51:21 +0200 (Wed, 18 Apr 2012)
New Revision: 3297
Url: http://chorem.org/repositories/revision/pollen/3297
Log:
- improve date conversion everywhere -> use DateConverter
- change tooltip image color and use it in result and vote page
Modified:
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/DateConverter.java
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/PollenActionSupport.java
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/AbstractVoteAction.java
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/ResultForPoll.java
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/SavePoll.java
trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties
trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties
trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/create.jsp
trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/createPoll_choices.jsp
trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/displayDateChoice.jsp
trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/result.jsp
trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/vote.jsp
trunk/pollen-ui-struts2/src/main/webapp/css/vote.css
trunk/pollen-ui-struts2/src/main/webapp/img/tooltip.png
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/DateConverter.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/DateConverter.java 2012-04-18 14:51:12 UTC (rev 3296)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/DateConverter.java 2012-04-18 14:51:21 UTC (rev 3297)
@@ -25,25 +25,37 @@
@Override
public Date convertFromString(Map context, String[] values, Class toClass) {
String value = values[0];
+ Date result = convertFromString(value);
+ return result;
+ }
+
+ @Override
+ public String convertToString(Map context, Object o) {
+ Date date = (Date) o;
+ String result = convertToString(date);
+ return result;
+ }
+
+ public static String convertToString(Date date) {
+ String result = DateUtil.formatDate(date, getDatePattern());
+ return result;
+ }
+
+ public static Date convertFromString(String value) {
Date result = null;
- if (StringUtils.isNotBlank(value)) {
+ if (StringUtils.isNotBlank(value)) {
try {
result = DateUtil.parseDate(value, getDatePattern());
} catch (ParseException e) {
- log.error("Error parsing date '" + value + "'", e);
+ if (log.isErrorEnabled()) {
+ log.error("Error parsing date '" + value + "'", e);
+ }
}
}
- return result;
+ return result;
}
- @Override
- public String convertToString(Map context, Object o) {
- Date date = (Date) o;
- String formatedDate = DateUtil.formatDate(date, getDatePattern());
- return formatedDate;
- }
-
- protected String getDatePattern() {
+ private static String getDatePattern() {
Locale locale = ActionContext.getContext().getLocale();
String result = I18n.l_(locale, "pollen.common.datePattern");
return result;
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/PollenActionSupport.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/PollenActionSupport.java 2012-04-18 14:51:12 UTC (rev 3296)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/PollenActionSupport.java 2012-04-18 14:51:21 UTC (rev 3297)
@@ -29,6 +29,7 @@
import org.apache.struts2.StrutsStatics;
import org.chorem.pollen.PollenConfiguration;
import org.chorem.pollen.business.persistence.UserAccount;
+import org.chorem.pollen.common.VoteCountingType;
import org.chorem.pollen.services.DefaultPollenServiceContext;
import org.chorem.pollen.services.PollenService;
import org.chorem.pollen.services.PollenServiceContext;
@@ -42,9 +43,6 @@
import javax.servlet.http.HttpServletRequest;
import java.net.URL;
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
@@ -65,10 +63,6 @@
private static final long serialVersionUID = 1L;
- private static DateFormat dateTimeFormat;
-
- private DateFormat dateFormat;
-
public static PollenApplicationContext getPollenApplicationContext() {
PollenApplicationContext applicationContext =
PollenApplicationContext.get(getActionContext());
@@ -194,53 +188,38 @@
return language;
}
- protected static DateFormat getDateTimeFormat() {
- if (dateTimeFormat == null) {
- dateTimeFormat = new SimpleDateFormat("dd/MM/yyyy hh:mm");
- }
- return dateTimeFormat;
- }
-
- protected DateFormat getDateFormat() {
- if (dateFormat == null) {
- dateFormat = new SimpleDateFormat("dd/MM/yyyy");
- }
- return dateFormat;
- }
-
- protected void setDateFormat(DateFormat dateFormat) {
- this.dateFormat = dateFormat;
- }
-
protected static ActionContext getActionContext() {
return ActionContext.getContext();
}
- public static String getCurrentDateTime() {
- String result = getDateTimeFormat().format(new Date());
- return result;
+ public static Date getCurrentDateTime() {
+ return new Date();
}
- public String formatDate(Date date) {
- String result = getDateFormat().format(date);
- return result;
- }
+ public String getVoteCountingTypeHelp(VoteCountingType voteCountingType) {
+ String result;
+ switch (voteCountingType) {
- public Date parseDate(String date) throws ParseException {
- Date result = getDateFormat().parse(date);
+ default:
+ case NORMAL:
+ result =
+ _("pollen.common.voteCountingTypeHelp.normal");
+ break;
+ case PERCENTAGE:
+ result =
+ _("pollen.common.voteCountingTypeHelp.percentage");
+ break;
+ case CONDORCET:
+ result =
+ _("pollen.common.voteCountingTypeHelp.condorcet");
+ break;
+ case NUMBER:
+ result =
+ _("pollen.common.voteCountingTypeHelp.number");
+ }
return result;
}
- public Date parseDateTime(String date) throws ParseException {
- Date result = getDateTimeFormat().parse(date);
- return result;
- }
-
- public String formatDateTime(Date date) {
- String result = getDateTimeFormat().format(date);
- return result;
- }
-
@Override
public void addActionMessage(String message) {
List<String> messages = getPollenSession().getDynamicData(PollenSession.SESSION_TOKEN_MESSAGES);
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/AbstractVoteAction.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/AbstractVoteAction.java 2012-04-18 14:51:12 UTC (rev 3296)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/AbstractVoteAction.java 2012-04-18 14:51:21 UTC (rev 3297)
@@ -48,7 +48,6 @@
import org.chorem.pollen.services.impl.VoteService;
import org.chorem.pollen.ui.actions.PageSkin;
-import java.text.DateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -79,8 +78,6 @@
private boolean feedFileExisting;
- private String voteCountingTypeHelp;
-
private boolean creatorUser;
private PollAccount pollAccount;
@@ -149,10 +146,6 @@
return feedFileExisting;
}
- public String getVoteCountingTypeHelp() {
- return voteCountingTypeHelp;
- }
-
public PollAccount getPollAccount() {
return pollAccount;
}
@@ -277,10 +270,6 @@
loadPoll();
- setDateFormat(DateFormat.getDateTimeInstance(
- DateFormat.SHORT,
- DateFormat.SHORT, getLocale()));
-
// Current poll account
loadPollAccount();
@@ -301,27 +290,6 @@
PollFeedService pollFeedService = newService(PollFeedService.class);
feedFileExisting = pollFeedService.isFeedExists(poll);
- VoteCountingType voteCountingType = poll.getVoteCountingType();
- switch (voteCountingType) {
-
- case NORMAL:
- voteCountingTypeHelp =
- _("pollen.common.voteCountingTypeHelp.normal");
- break;
- case PERCENTAGE:
- voteCountingTypeHelp =
- _("pollen.common.voteCountingTypeHelp.percentage");
- break;
- case CONDORCET:
- voteCountingTypeHelp =
- _("pollen.common.voteCountingTypeHelp.condorcet");
- break;
- case NUMBER:
- voteCountingTypeHelp =
- _("pollen.common.voteCountingTypeHelp.number");
- break;
- }
-
//TODO Deal the case of the not loggued poll (using the pollAccountId
creatorUser = getPollenUserAccount() != null &&
getPollenUserAccount().equals(poll.getCreator().getUserAccount());
@@ -386,8 +354,8 @@
return text;
}
- public String formatChoiceNameAsDate(Choice choice) {
- return formatDate(new Date(Long.valueOf(choice.getName())));
+ public Date getChoiceAsDate(Choice choice) {
+ return new Date(Long.valueOf(choice.getName()));
}
protected void loadPollAccount() throws PollAccountNotFound {
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/ResultForPoll.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/ResultForPoll.java 2012-04-18 14:51:12 UTC (rev 3296)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/ResultForPoll.java 2012-04-18 14:51:21 UTC (rev 3297)
@@ -44,11 +44,11 @@
import org.chorem.pollen.services.exceptions.PollNotFoundException;
import org.chorem.pollen.services.impl.PollResultsService;
import org.chorem.pollen.services.impl.PollService;
+import org.chorem.pollen.ui.actions.DateConverter;
import org.chorem.pollen.ui.actions.PageSkin;
import org.nuiton.util.StringUtil;
import java.net.URL;
-import java.text.DateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -106,8 +106,9 @@
return results;
}
- public String formatResultNameAsDate(PollResult result) {
- return getDateTimeFormat().format(new Date(Long.valueOf(result.getName())));
+ public Date getResultAsDate(PollResult result) {
+ Date date = new Date(Long.valueOf(result.getName()));
+ return date;
}
public Multimap<String, String> getChoicesResults() {
@@ -169,10 +170,6 @@
byGroup = isGroupPoll();
}
- setDateFormat(DateFormat.getDateTimeInstance(
- DateFormat.SHORT,
- DateFormat.SHORT, getLocale()));
-
String accountId = getAccountId();
if (poll.isPublicResults()) {
userAllowed = true;
@@ -301,7 +298,7 @@
if (isDateType()) {
// mise en forme de la date
Date date = new Date(Long.parseLong(name));
- name = getDateFormat().format(date);
+ name = DateConverter.convertToString(date);
}
choiceValues.add(name);
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/SavePoll.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/SavePoll.java 2012-04-18 14:51:12 UTC (rev 3296)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/SavePoll.java 2012-04-18 14:51:21 UTC (rev 3297)
@@ -51,11 +51,11 @@
import org.chorem.pollen.common.ChoiceType;
import org.chorem.pollen.common.PollType;
import org.chorem.pollen.services.impl.PreventRuleService;
+import org.chorem.pollen.ui.actions.DateConverter;
import org.chorem.pollen.ui.actions.FileUploadAware;
import org.nuiton.util.StringUtil;
import java.io.File;
-import java.text.ParseException;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
@@ -956,13 +956,9 @@
String name) {
createChoice(choice, prefix, name);
if (StringUtils.isNotEmpty(name)) {
- Date date = null;
- try {
- date = parseDateTime(name);
- } catch (ParseException e) {
- if (log.isErrorEnabled()) {
- log.error("Unparseable date " + name, e);
- }
+ Date date = DateConverter.convertFromString(name);
+ if (date == null) {
+ addInformationsError(prefix, _("pollen.error.date.format"));
}
choice.setDate(date);
}
Modified: trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties
===================================================================
--- trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties 2012-04-18 14:51:12 UTC (rev 3296)
+++ trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties 2012-04-18 14:51:21 UTC (rev 3297)
@@ -1,8 +1,10 @@
email=E-mail
pollen.action.addChoice=Add choice
pollen.action.addComment=Add a comment
+pollen.action.addPersonListFromVotingList=Add voters from a favorite list
pollen.action.addPersonToList=Add a voter
pollen.action.addVotingList=Add a group
+pollen.action.addVotingListFromPersonList=Add a group from a favorite list
pollen.action.backToFavoriteLists=Back to favorite lists
pollen.action.cancel=Cancel
pollen.action.clone=Clone poll
@@ -61,7 +63,8 @@
pollen.common.commentText=Comment
pollen.common.comments=Comments about this poll
pollen.common.csvImport=CSV import
-pollen.common.datePattern=MM/dd/yyyy HH\:mm a
+pollen.common.datePattern=MM/dd/yyyy HH\:mm
+pollen.common.datePickerPattern=mm/dd/yy
pollen.common.description=Description
pollen.common.displayType-group=Results by groups
pollen.common.displayType-normal=Results
@@ -138,6 +141,7 @@
pollen.error.choice.empty=%s mandatory
pollen.error.comment.name.empty=Comment name mandatory
pollen.error.comment.text.empty=Comment text mandatory
+pollen.error.date.format=Begin date does not match pattern 12/31/2000 12\:59
pollen.error.email.invalid=The email doesn't have the good format
pollen.error.email.required=You must provide an email
pollen.error.favoriteList.already.used=List name already used
Modified: trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties
===================================================================
--- trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties 2012-04-18 14:51:12 UTC (rev 3296)
+++ trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties 2012-04-18 14:51:21 UTC (rev 3297)
@@ -2,7 +2,6 @@
pollen.action.addChoice=Ajouter un choix
pollen.action.addComment=Ajouter un commentaire
pollen.action.addPersonListFromVotingList=Ajouter des votants à partir d'une liste de votants
-pollen.action.addPersonListToVotingList=Ajouter la liste des votants
pollen.action.addPersonToList=Ajouter un votant
pollen.action.addVotingList=Ajouter un groupe
pollen.action.addVotingListFromPersonList=Ajouter un groupe à partir d'une liste de votants
@@ -67,6 +66,7 @@
pollen.common.comments=Commentaire à propos du sondage
pollen.common.csvImport=Import CSV
pollen.common.datePattern=dd/MM/yyyy HH\:mm
+pollen.common.datePickerPattern=dd/mm/yy
pollen.common.description=Description
pollen.common.displayType-group=Résultats par groupes
pollen.common.displayType-normal=Résultats
@@ -144,6 +144,7 @@
pollen.error.choice.empty=%s obligatoire
pollen.error.comment.name.empty=Nom du commentaire obligatoire
pollen.error.comment.text.empty=Texte du commentaire obligatoire
+pollen.error.date.format=La date doit être au format 31/12/2000 23\:59
pollen.error.email.invalid=Email non valide
pollen.error.email.required=Email obligatoire
pollen.error.favoriteList.already.used=Nom de liste déjà utilisé
Modified: trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/create.jsp
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/create.jsp 2012-04-18 14:51:12 UTC (rev 3296)
+++ trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/create.jsp 2012-04-18 14:51:21 UTC (rev 3297)
@@ -24,11 +24,13 @@
<%@ page language="java" contentType="text/html" pageEncoding="utf-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
-<link rel="stylesheet" type="text/css"
- href="<s:url value='/css/pollCreation.css'/>"/>
-<link rel="stylesheet" type="text/css"
- href="<s:url value='/css/tipTip.css'/>"/>
+<html>
+<head>
+<sj:head locale="%{locale}"/>
+<link rel="stylesheet" type="text/css" href="<s:url value='/css/pollCreation.css'/>"/>
+<link rel="stylesheet" type="text/css" href="<s:url value='/css/tipTip.css'/>"/>
+
<script type="text/javascript">
$(document).data(
@@ -60,11 +62,12 @@
);
</script>
-<script type="text/javascript"
- src='<s:url value="/js/createPoll.js"/>'></script>
-<script type="text/javascript"
- src='<s:url value="/js/jquery.tipTip.minified.js"/>'></script>
+<script type="text/javascript" src='<s:url value="/js/createPoll.js"/>'></script>
+<script type="text/javascript" src='<s:url value="/js/jquery.tipTip.minified.js"/>'></script>
+</head>
+<body>
+
<s:url id='errorImg' value='/img/exclamation.png'/>
<title><s:text name="pollen.title.createPoll"/></title>
@@ -156,11 +159,13 @@
<div id='addChoiceAddAllowedPanel' class="hidden">
<sj:datepicker key="poll.beginChoiceDate"
label="%{getText('pollen.common.beginChoiceDate')}"
- displayFormat="dd/mm/yy" timepicker="true"
+ displayFormat="%{getText('pollen.common.datePickerPattern')}"
+ timepicker="true"
disabled="%{voteStarted}"/>
<sj:datepicker key="poll.endChoiceDate"
label="%{getText('pollen.common.endChoiceDate')}"
- displayFormat="dd/mm/yy" timepicker="true"
+ displayFormat="%{getText('pollen.common.datePickerPattern')}"
+ timepicker="true"
disabled="%{voteStarted}"/>
</div>
<s:checkbox key="limitChoice"
@@ -191,11 +196,13 @@
<fieldset>
<legend><s:text name="pollen.fieldset.poll.general"/></legend>
- <sj:datepicker key="poll.beginDate" displayFormat="dd/mm/yy"
+ <sj:datepicker key="poll.beginDate"
+ displayFormat="%{getText('pollen.common.datePickerPattern')}"
label="%{getText('pollen.common.beginDate')}"
timepicker="true"
disabled="%{voteStarted}"/>
- <sj:datepicker key="poll.endDate" displayFormat="dd/mm/yy"
+ <sj:datepicker key="poll.endDate"
+ displayFormat="%{getText('pollen.common.datePickerPattern')}"
timepicker="true"
label="%{getText('pollen.common.endDate')}"/>
</fieldset>
@@ -277,3 +284,6 @@
<sj:dialog id="selectPersonListDialog" resizable="true" autoOpen="false"
modal="true" width="500"/>
+
+</body>
+</html>
Modified: trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/createPoll_choices.jsp
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/createPoll_choices.jsp 2012-04-18 14:51:12 UTC (rev 3296)
+++ trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/createPoll_choices.jsp 2012-04-18 14:51:21 UTC (rev 3297)
@@ -23,6 +23,7 @@
--%>
<%@ page language="java" contentType="text/html" pageEncoding="utf-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ taglib prefix="sp" uri="/nuiton-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
<fieldset>
<legend><s:text name="pollen.fieldset.poll.choices"/></legend>
@@ -41,6 +42,7 @@
<s:set name="prefix">textChoice_<s:property value="%{#choiceNumber}"/></s:set>
<div id='choicesTEXT_<s:property value="choiceNumber"/>'>
<s:hidden key='%{#prefix}.topiaId' value='%{#choice.topiaId}' label=''/>
+ <sp:fielderror fieldName="%{#prefix}"/>
<div class="fleft choiceName">
<s:label for="%{#prefix}.name" id="choicesTEXT_label_%{#choiceNumber}"
theme="simple" value=''/>
@@ -89,12 +91,14 @@
<div id='choicesDATE_<s:property value="choiceNumber"/>'>
<s:hidden key='%{#prefix}.topiaId' id='%{#prefix}.topiaId'
value='%{#choice.topiaId}' label='' theme="simple" />
+ <sp:fielderror fieldName="%{#prefix}"/>
<div class="fleft choiceName">
<s:label for="%{#prefix}.name" id="choicesDATE_label_%{choiceNumber}"
theme="simple" value=''/>
<sj:datepicker id='%{#prefix}.name' key="%{#prefix}.name" changeMonth="true"
changeYear="true" labelSeparator="" theme="simple" label=""
- timepicker="true" value="%{choice.date}" displayFormat="dd/mm/yy"
+ timepicker="true" value="%{choice.date}"
+ displayFormat="%{getText('pollen.common.datePickerPattern')}"
disabled="%{voteStarted}"/>
-
<s:label for="%{#prefix}.description" key="pollen.common.description"
@@ -138,6 +142,7 @@
<s:set name="prefix">imageChoice_<s:property value="%{#choiceNumber}"/></s:set>
<div id='choicesIMAGE_<s:property value="choiceNumber"/>'>
<s:hidden key='%{#prefix}.topiaId' value='%{#choice.topiaId}' label=''/>
+ <sp:fielderror fieldName="%{#prefix}"/>
<div class="fleft choiceName">
<s:label for="%{#prefix}.name" id="choicesIMAGE_label_%{choiceNumber}"
theme="simple" value=''/>
Modified: trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/displayDateChoice.jsp
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/displayDateChoice.jsp 2012-04-18 14:51:12 UTC (rev 3296)
+++ trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/displayDateChoice.jsp 2012-04-18 14:51:21 UTC (rev 3297)
@@ -36,7 +36,8 @@
theme="simple" value=''/>
<sj:datepicker id='%{#prefix}.name' key="%{#prefix}.name" changeMonth="true"
changeYear="true" labelSeparator="" theme="simple" label=""
- timepicker="true" value="%{choice.date}" displayFormat="dd/mm/yy"/>
+ timepicker="true" value="%{choice.date}"
+ displayFormat="%{getText('pollen.common.datePickerPattern')}"/>
-
<s:label for="%{#prefix}.description" key="pollen.common.description"
theme="simple"/>
Modified: trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/result.jsp
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/result.jsp 2012-04-18 14:51:12 UTC (rev 3296)
+++ trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/result.jsp 2012-04-18 14:51:21 UTC (rev 3297)
@@ -86,8 +86,8 @@
label='%{getText("pollen.common.endDate")}'/>
<s:label value="%{poll.voteCountingType}"
label='%{getText("pollen.common.voteCountingType")}'
- tooltip="%{voteCountingTypeHelp}"
- tooltipIconPath="/img/help.png"/>
+ tooltip="%{getVoteCountingTypeHelp(poll.voteCountingType)}"
+ tooltipIconPath="/img/tooltip.png"/>
</fieldset>
</div>
@@ -100,7 +100,7 @@
<s:property value="name"/>
</s:if>
<s:elseif test="dateType">
- <s:property value="%{formatResultNameAsDate(#result)}"/>
+ <s:property value="%{getResultAsDate(#result)}"/>
</s:elseif>
<s:elseif test="imageType">
<s:url id="imageUrl" namespace="/io" action="getPollChoiceImage"
Modified: trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/vote.jsp
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/vote.jsp 2012-04-18 14:51:12 UTC (rev 3296)
+++ trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/vote.jsp 2012-04-18 14:51:21 UTC (rev 3297)
@@ -26,6 +26,10 @@
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
+<html>
+<head>
+<sj:head locale="%{locale}"/>
+
<title><s:property value="%{poll.title}"/></title>
<link rel="stylesheet" type="text/css"
@@ -105,6 +109,9 @@
</script>
+</head>
+<body>
+
<h1 class="titleVote"><s:property value="poll.title"/></h1>
<!-- Informations sur le sondage -->
@@ -137,7 +144,8 @@
<s:label value="%{poll.endDate}" key='pollen.common.endDate'/>
<s:label value="%{poll.voteCountingType}"
label='%{getText("pollen.common.voteCountingType")}'
- tooltip="%{voteCountingTypeHelp}" tooltipIconPath="/img/help.png"/>
+ tooltip="%{getVoteCountingTypeHelp(poll.voteCountingType)}"
+ tooltipIconPath="/img/tooltip.png"/>
</fieldset>
</div>
@@ -220,13 +228,13 @@
<th class="desc">
<span
title='<s:property value="escapeLineBreak(#choice.description)"/>'>
- <s:property value="%{formatChoiceNameAsDate(#choice)}"/>
+ <s:property value="%{getChoiceAsDate(#choice)}"/>
</span>
</th>
</s:if>
<s:else>
<th>
- <s:property value="%{formatChoiceNameAsDate(#choice)}"/>
+ <s:property value="%{getChoiceAsDate(#choice)}"/>
</th>
</s:else>
</s:if>
@@ -445,7 +453,8 @@
<sj:datepicker key="choice.date"
label="%{getText('pollen.common.choice')}"
changeMonth="true" changeYear="true"
- timepicker="true" displayFormat="dd/mm/yy"
+ timepicker="true"
+ displayFormat="%{getText('pollen.common.datePickerPattern')}"
required="true"/>
</s:elseif>
<s:elseif test="imageType">
@@ -455,7 +464,7 @@
required="true"/>
</s:elseif>
<br/>
- <s:textarea cols="30" key="choice.description"
+ <s:textarea cols="36" key="choice.description"
label="%{getText('pollen.common.description')}"/>
<br/>
<s:submit action="addChoice/%{uriId}" key="pollen.action.addChoice" align="center"/>
@@ -549,4 +558,7 @@
autoOpen="false" modal="true" width="800"/>
</div>
-</s:if>
\ No newline at end of file
+</s:if>
+
+</body>
+</html>
\ No newline at end of file
Modified: trunk/pollen-ui-struts2/src/main/webapp/css/vote.css
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/css/vote.css 2012-04-18 14:51:12 UTC (rev 3296)
+++ trunk/pollen-ui-struts2/src/main/webapp/css/vote.css 2012-04-18 14:51:21 UTC (rev 3297)
@@ -166,7 +166,7 @@
}
#choiceFormDiv form {
- width: 200px;
+ width: 300px;
margin: auto;
margin-top: 20px;
margin-bottom: 20px;
Modified: trunk/pollen-ui-struts2/src/main/webapp/img/tooltip.png
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/img/tooltip.png 2012-04-18 14:51:12 UTC (rev 3296)
+++ trunk/pollen-ui-struts2/src/main/webapp/img/tooltip.png 2012-04-18 14:51:21 UTC (rev 3297)
@@ -1,9 +1,9 @@
�PNG
-IHDR��asRGB���bKGD������� pHYs���+tIME�8Vڳ�IDAT8˥��K�Q���;�4_�Ѳ,J�+$J�fP�(��)�hSA�*�V�-�MB""b�
-+!��,Ê4G�)����Fc�M=��9~�y��(�S�_,RFz�����_�ȵq/�Żd�_������ ���D<��b��|�/1}}x<�w��D��5��s���v
-�Bz;���*Ep�zL����Fv���������ܹF*XLn��L�}'�9�D��&��q��bWU�[�����L���n'O2="��C7I6"r|/іO��6�6$��_��,bm�� ��ᯬD��A��(@wv��茐~����Ռ>gglo �z?�Q�(A��6�˖���w�R�o�
-I
-eǨ��Q�(����؍G�t�c��`�ZP��&0y6����R��茠����4CZ'qG��+#��*(������<�=��|o�i���D�"������/+�sWE�7g����&��C��ߑZ��+�����"Jl�g���x"��
-uY���iVў�D_v2��{�|�maJ*�me�E�����)n��o_y���^<���QT]�?�HE��|B<#t�w=+�?���� yf��mң�<�Bfm�����x���e���\�F�V/[�IEND�B`�
\ No newline at end of file
+IHDR��asRGB���bKGD�C� pHYs���+tIME�
+3��i�IDAT8˥�KH�q��7c�3�I��V:�����"� �e�nU�v-#ܴ��Đ(�2ʂ����LN9�u�Fg����-�^�:�˽�s�Ǹ�r����ׂӖ�S1��Q��e��l*.&PSG�����~c��|zD�{�Jf�2��
+@6��t�3����CGqni^'17����f/bGh��.r�$S1���[qy��z�Kf��ɂӖ����8���*�g��r�<6���0����N�B�X�<��>���2�jl3L`��J������Y��{�p�27�z�
+��V3:����������/�1�+�,�%PJ�D��v���J�ۻa~f���Ɔ
+��4.���\%����P߸Q�Tr��d��˷�da��G)�R�����0M:�_�4nu?�Kd���(�Qb;YJ�()��P �ea���{ԍ��D(����J�����QO|<Jɖ�XV��j����s�cX��W��sd��=�
+5;�Z�5��yb��;s�8��lr8��<M��E�eW��v�jl3ڎ��g=�PJ��a�"JiJJ}�5411!66�Ɏs�����S�o���Ip{.��5��Eb�V�Y�Ow�>b�1v����0��,}K��������Fc�A����a�|%�J�mkԭIEND�B`�
\ No newline at end of file
1
0
r3296 - in trunk/pollen-ui-struts2/src/main: java/org/chorem/pollen/ui/actions/poll resources/i18n
by fdesbois@users.chorem.org 18 Apr '12
by fdesbois@users.chorem.org 18 Apr '12
18 Apr '12
Author: fdesbois
Date: 2012-04-18 16:51:12 +0200 (Wed, 18 Apr 2012)
New Revision: 3296
Url: http://chorem.org/repositories/revision/pollen/3296
Log:
fixes #526 : use isRunning method instead of isClosed
Modified:
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/ResultForPoll.java
trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties
trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/ResultForPoll.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/ResultForPoll.java 2012-04-18 14:51:06 UTC (rev 3295)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/ResultForPoll.java 2012-04-18 14:51:12 UTC (rev 3296)
@@ -186,11 +186,12 @@
if (!userAllowed) {
addActionError(_("pollen.error.userNotAllowed"));
- } else if (!poll.isClosed()) {
- addActionMessage(_("pollen.error.pollNotClosed"));
+
+ } else if (poll.isRunning(serviceContext.getCurrentTime())) {
+ addActionMessage(_("pollen.information.pollRunning"));
loadResults();
+
} else {
-
loadResults();
}
}
Modified: trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties
===================================================================
--- trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties 2012-04-18 14:51:06 UTC (rev 3295)
+++ trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties 2012-04-18 14:51:12 UTC (rev 3296)
@@ -42,6 +42,7 @@
pollen.action.register=Register
pollen.action.send=Send
pollen.action.validate=Submit
+pollen.banner.newVersion=New version\!
pollen.common.aboutPoll=About the poll
pollen.common.addingChoices=Adding choices
pollen.common.administrator=Admin
@@ -169,7 +170,6 @@
pollen.error.poll.votingList.weight.not.valid=The group's weight is not valid (must be greater than 0)
pollen.error.pollAccount.not.found=Poll account not found
pollen.error.pollAccount.votingId.required=Name mandatory
-pollen.error.pollNotClosed=The poll is not closed. Results may change.
pollen.error.pollNotFound=The poll you want to count does not exist.
pollen.error.pollTabErrorFound=Some errors were found on this tab, please fix them to finalize the poll creation.
pollen.error.user.alreadyVoted=Someone has already used the name %s to vote.
@@ -221,6 +221,7 @@
pollen.information.pollClosed=This poll is closed. You can not vote anymore.
pollen.information.pollFinished=This poll is finished. You can not vote anymore.
pollen.information.pollNotStarted=This poll has not started yet.
+pollen.information.pollRunning=The poll is not finished. Results may change.
pollen.information.user.created=User %s created.
pollen.information.user.deleted=User %s deleted.
pollen.information.user.updated=User %s updated.
@@ -272,4 +273,3 @@
pollen.title.selectPersonListToCreateVotingList=Select a favorite list to import in a new voting list
pollen.title.usersList=Users administration
vote.anonymous=Anonymous vote
-pollen.banner.newVersion=New version!
\ No newline at end of file
Modified: trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties
===================================================================
--- trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties 2012-04-18 14:51:06 UTC (rev 3295)
+++ trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties 2012-04-18 14:51:12 UTC (rev 3296)
@@ -47,6 +47,7 @@
pollen.action.register=S'enregistrer
pollen.action.send=Envoyer
pollen.action.validate=Valider
+pollen.banner.newVersion=Nouvelle version \!
pollen.common.aboutPoll=A propos du sondage
pollen.common.addingChoices=Ajout des choix
pollen.common.administrator=Admin
@@ -175,7 +176,6 @@
pollen.error.poll.votingList.weight.not.valid=Poids du groupe votant non valide (doit être une nombre supérieur à 0).
pollen.error.pollAccount.not.found=Membre non trouvé
pollen.error.pollAccount.votingId.required=Nom obliqatoire
-pollen.error.pollNotClosed=Ce sondage n'est pas clos. Les résultats peuvent encore changer.
pollen.error.pollNotFound=Le sondage que vous voulez dépouiller n'existe pas.
pollen.error.pollTabErrorFound=Des erreurs ont été detectées dans cet onglet, veuillez les corriger pour valider la création du sondage.
pollen.error.user.alreadyVoted=Une personne a déjà voté sous le nom %s.
@@ -228,6 +228,7 @@
pollen.information.pollClosed=Ce sondage est clos. Vous ne pouvez plus voter.
pollen.information.pollFinished=Ce sondage est terminé. Vous ne pouvez plus voter.
pollen.information.pollNotStarted=Ce sondage n'a pas encore commencé.
+pollen.information.pollRunning=Ce sondage n'est pas terminé. Les résultats peuvent encore changer.
pollen.information.user.created=L'utilisateur %s a été créé.
pollen.information.user.deleted=L'utilisateur %s a été supprimé.
pollen.information.user.updated=L'utilisateur %s a été mis à jour.
@@ -280,4 +281,3 @@
pollen.title.usersList=Gestion des utilisateurs
title=Création d'un sondage
vote.anonymous=Vote anonyme
-pollen.banner.newVersion=Nouvelle version !
1
0
r3295 - trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll
by fdesbois@users.chorem.org 18 Apr '12
by fdesbois@users.chorem.org 18 Apr '12
18 Apr '12
Author: fdesbois
Date: 2012-04-18 16:51:06 +0200 (Wed, 18 Apr 2012)
New Revision: 3295
Url: http://chorem.org/repositories/revision/pollen/3295
Log:
validation problem on email
Modified:
trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/SavePoll.java
Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/SavePoll.java
===================================================================
--- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/SavePoll.java 2012-04-18 14:51:01 UTC (rev 3294)
+++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/SavePoll.java 2012-04-18 14:51:06 UTC (rev 3295)
@@ -431,7 +431,7 @@
}
String creatorEmail = poll.getCreator().getEmail();
- if (creatorEmail != null && !StringUtil.isEmail(creatorEmail)) {
+ if (StringUtils.isNotBlank(creatorEmail) && !StringUtil.isEmail(creatorEmail)) {
addOptionsError("poll.creator.email",
_("pollen.error.email.invalid"));
1
0
18 Apr '12
Author: fdesbois
Date: 2012-04-18 16:51:01 +0200 (Wed, 18 Apr 2012)
New Revision: 3294
Url: http://chorem.org/repositories/revision/pollen/3294
Log:
improve style for input
Modified:
trunk/pollen-ui-struts2/src/main/webapp/css/pollCreation.css
Modified: trunk/pollen-ui-struts2/src/main/webapp/css/pollCreation.css
===================================================================
--- trunk/pollen-ui-struts2/src/main/webapp/css/pollCreation.css 2012-04-18 10:14:00 UTC (rev 3293)
+++ trunk/pollen-ui-struts2/src/main/webapp/css/pollCreation.css 2012-04-18 14:51:01 UTC (rev 3294)
@@ -142,4 +142,12 @@
.buttons input {
margin-left: 10px;
+}
+
+#tgeneral .wwlbl {
+ width: 160px;
+}
+
+#toptions .wwlbl {
+ width: 260px;
}
\ No newline at end of file
1
0