�����JFIF��XX����������    $.' ",#(7),01444'9=82<.342  2!!22222222222222222222222222222222222222222222222222�����"����4���������������������������� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������,�PG"Z_�4�˷����kjز�Z�,F+��_z�,�© �����zh6�٨�ic�fu������������������������������������#ډb���_�N��?�����������wQ���5-�~�I���8���������������������������������TK<5o�Iv-������������������k�_U_������������������������������~b�M��d��������Ӝ�U�Hh��?]��E�w��Q���k�{��_}qFW7HTՑ��Y��F�����?_�'ϔ��_�Ջt������������������������=||I �����6�έ"�����D���/[�k�9����Y�8������ds|\���Ҿp6�Ҵ���]��.����6���z<�v��@]�i%������������������������$j��~����g��J>��no����pM[me�i$[�����������s�o�ᘨ�˸ nɜG-�ĨU�ycP���3.DB�li�;���������������������hj���x����7Z^�N�h��������N3u{�:j�����x�힞��#M��&��jL P@��_���� P�������������������&��o8��������9������@Sz���6�t7#O�ߋ �����s}Yf�T������lmr����Z)'N��k�۞p�����w\�T���������������ȯ?�8`���O��i{wﭹW�[�r�� ��Q4F�׊������3m&L�=��h3�������z~��#����\�l :�F,j@�� ʱ�wQT����8�"kJO����6�֚l������������������}����R�>ډK���]��y����&����p�}b������;N�1�m�r$����|��7�>e�@���B�TM*-i�H��g�D�)� E�m�|�ؘbҗ�a���Ҿ����������������t4�����o���G��*oCN�rP���Q��@z,|?W[0���������:�n,j���WiE��W������$~/�hp\��?��{(�0���+�Y8rΟ�+����>S-S���������������VN;���}�s?.����� w��9��˟<���Mq4�Wv'������{)0�1mB����V����W[��������8�/<� �%���wT^�5���b��)iM� p�g�N�&ݝ������������VO~��q���u���9��� ����!��J27�����$����O-���! �:���%H��� ـ�������y�ΠM=t{!S�� �oK8�������t<����è��������:a��������[������ա�H���~��w��Qz`�p����o�^ ������Q��n����� �,uu�C��$ ^���,�������8�#��:�6��e�|~�����������!�3��3.�\0�����q��o�4`.|� ����y�Q�`~;�d�ׯ,��O�Zw�������`73�v�܋�<�����Ȏ�� ـ4k��5�K�a�u�=9Yd��$>x�A�&�� j0� ���vF��� Y���|�y��� ~�6�@c��1vOp��������Ig�����4��l�OD�����L����� R���c���j�_�uX�6��3?nk��Wy�f;^*B� ��@���~a�`��Eu�������+�����6�L��.ü>��}y���}_�O�6�͐�:�Yr���G�X��kG������l^w����������~㒶sy���Iu�!���� W ��X��N�7BV��O��!X�2����wvG�R�f�T#�����t�/?���%8�^�W�aT����G�cL�M���I��(J����1~�8�?aT ���]����AS�E��(��*E}� 2������#I/�׍qz��^t�̔���������b�Yz4x����t�){ OH�����+(E��A&�N�������XT��o��"�XC����'���)}�J�z�p� ����~5�}�^����+�6����w��c��Q�|�Lp�d�H��}�(�.|����k��c4^�����"�����Z?ȕ ��a<�������L�!0�39C� �Eu�����C�F�Ew�ç ;�n?�*o���B�8�bʝ���'#Rqf����M}7����]�������s2tcS{�\icTx;�\��7K���P������ʇ Z O-��~�������c>"��?��������P�����E��O�8��@�8��G��Q�g�a�Վ���󁶠��䧘��_%#r�>�����1�z�a���eb��qcP��ѵ��n���#L��� =��׀t� L�7�`�����V����A{�C:�g���e@�����w1 Xp�3�c3�ġ�������p��M"'-�@n4���fG���B3�DJ�8[Jo�ߐ���gK)ƛ��$���� �������8�3�����+���� �����6�ʻ���� ���S�kI�*KZlT _`�������?��K�����QK�d���������B`�s}�>���`������*�>��,*@J�d�oF*�����弝��O}�k��s��]��y�ߘ�������c1G�V���<=�7��7����6��q�PT��tXԀ�!9*4�4Tހ���3XΛex�46�������Y��D ����� ����BdemDa����\�_l,����G�/���֌7���Y�](�xTt^%�GE�����4�}bT����ڹ�����;��Y)���B�Q��u��>J/J ���⮶.�XԄ��j�ݳ������+E��d ���r�5�_D�����1 ���o�� �B�x�΢�#����<��W�����8���R6�@���g�M�.��� dr�D��>(otU��@�x=��~v���2� ӣ�d�oBd�����3�eO�6�㣷����������ݜ�6��6Y��Qz`����S��{���\P��~z m5{J/L��1������<�e�ͅPu���b�]�ϔ��������'�������f�b� Zpw��c`"��i���BD@:)ִ�:�]��h���v�E��w���T�l�������P����"Ju�}��وV ��J��G6��. J/�Qgl߭�e�����@�z�Zev2u����)]կ���������7x�������s�M�-<ɯ�c��r��v�����@��$�ޮ}lk���a����'����>x��O\�Z������Fu>������ck#��&:��`�$��ai�>2Δ����l���oF[h�������lE�ܺ�Π���k:)���`������� $[6�����9�����kOw�\|�����8}������ބ:��񶐕��������I�A1/���=�2[�,�!��.}gN#�u����b���� ~���������݊��}34q�����d�E��L��������c��$���"�[q�U�硬g^��%B ��z���r�p�������J�ru%v\h�����1Y�ne`������ǥ:g����pQM~�^��Xi� ��`S�:V2������9.�P���V������?B�k�� ��������AEvw%�_�9C�Q����wKekP�ؠ�\������;Io d�{ ߞo�c1eP�����\� `����E=���@K<�Y��������eڼ�J����w����{av�F�'�M�@��������������/J��+9p����|]���������Iw &`���8���&�M�hg���[�{�������Xj���%��Ӓ�������������������$��(�����ʹN�������<>�I���RY�����K2�NPlL�ɀ�)��&e��������B+ь����(������������������� � �JTx����_?EZ� }@���� 6�U���뙢ط�z��dWI��n` D����噥�[��uV��"�G&�����Ú����2�g�}&m���������������������?ċ���"����Om#�������������������������� ��{���������������������ON��"S�X���Ne��ysQ���@�������������Fn��Vg�����dX�~nj����������������������]J�<�K]:����FW���b�������62����������=��5f����JKw����bf�X������������������������55��~J �%^�������:�-�QIE��P��v�nZum� z � ~ə ���� ���ة����;�f��\v�������g�8�1��f2�������������������������4;�V���ǔ�)�������������������9���1\������������������������������c��v�/'Ƞ�w������������������$�4�R-��t����������������������������������� e�6�/�ġ �̕Ecy�J���u�B���<�W�ַ~�w[B1L۲�-JS΂�{���΃�������������������������������������������A��20�c#���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@���� 0!1@AP"#2Q`$3V�%45a6�FRUq����� ������^7ׅ,$n��������+��F�`��2X'��0vM��p�L=�������5��8������u�p~���.�`r�����\����O��,ư�0oS ��_�M�����l���4�kv\JSd���x���SW�<��Ae�IX����������$I���w�:S���y���›R��9�Q[���,�5�;�@]�%���u�@ *ro�lbI �� ��+���%m:�͇ZV�����u�̉����θau<�fc�.����{�4Ա� �Q����*�Sm��8\ujqs]{kN���)qO�y�_*dJ�b�7���yQqI&9�ԌK!�M}�R�;�������S�T���1���i[U�ɵz�]��U)V�S6���3$K{��ߊ<�(� E]Զ[ǼENg�����'�\?#)Dkf��J���o��v���'�%ƞ�&K�u��!��b�35LX�Ϸ��63$K�a�;�9>,R��W��3�3� d�JeTYE.Mϧ��-�o�j3+y��y^�c�������VO�9NV\nd�1 ��!͕_)a�v;����թ�M�lWR1��)El��P;��yوÏ�u 3�k�5Pr6<�⒲l�!˞*��u־�n�!�l:����UNW ��%��Chx8vL'��X�@��*��)���̮��ˍ��� ����D-M�+J�U�kvK����+�x8��cY������?�Ԡ��~3mo��|�u@[XeY�C�\Kp�x8�oC�C�&����N�~3-H���� ��MX�s�u<`���~"WL��$8ξ��3���a�)|:@�m�\���^�`�@ҷ)�5p+��6���p�%i)P M���ngc�����#0Aruz���RL+xSS?���ʮ}()#�t��mˇ!��0}}y����<�e� �-ή�Ԩ��X������ MF���ԙ~l L.3���}�V뽺�v������멬��Nl�)�2����^�Iq��a��M��qG��T�����c3#������3U�Ǎ���}��לS�|qa��ڃ�+���-��2�f����/��bz��ڐ�� �ݼ[2�ç����k�X�2�* �Z�d���J�G����M*9W���s{��w���T��x��y,�in�O�v��]���n����P�$��JB@=4�OTI�n��e�22a\����q�d���%�$��(���:���: /*�K[PR�fr\nڙdN���F�n�$�4��[�� U�zƶ����� �mʋ���,�ao�u 3�z� �x��Kn����\[��VFmbE;�_U��&V�Gg�]L�۪&#n%�$ɯ��dG���D�TI=�%+AB�Ru#��b4�1�»x�cs�YzڙJG��f��Il���d�eF'T� iA��T���uC�$����Y��H?����[!G`}���ͪ� �纤Hv\������j�Ex�K���!���OiƸ�Yj�+u-<���'q����uN�*�r\��+�]���<�wOZ.fp�ێ��,-*)V?j-kÊ#�`�r��dV����(�ݽBk�����G�ƛk�QmUڗe��Z���f}|����8�8��a���i��3'J�����~G_�^���d�8w������ R�`(�~�.��u���l�s+g�bv���W���lGc}��u���afE~1�Ue������Z�0�8�=e�� f@/�jqEKQQ�J���oN��J���W5~M>$6�Lt�;$ʳ{���^��6�{����v6���ķܰg�V�cnn �~z�x�«�,2�u�?cE+Ș�H؎�%�Za�)���X>uW�Tz�Nyo����s���FQƤ��$��*�&�LLXL)�1�" L��eO��ɟ�9=���:t��Z���c��Ž���Y?�ӭV�wv�~,Y��r�ۗ�|�y��GaF�����C�����.�+� ���v1���fήJ�����]�S��T��B��n5sW}y�$��~z�'�c ��8 ��� ,! �p��VN�S��N�N�q��y8z˱�A��4��*��'������2n<�s���^ǧ˭P�Jޮɏ�U�G�L�J�*#��<�V��t7�8����TĜ>��i}K%,���)[��z�21z ?�N�i�n1?T�I�R#��m-�����������������1����lA�`��fT5+��ܐ�c�q՝��ʐ��,���3�f2U�եmab��#ŠdQ�y>\��)�SLY����w#��.���ʑ�f��� ,"+�w�~�N�'�c�O�3F�������N<���)j��&��,-� �љ���֊�_�zS���TǦ����w�>��?�������n��U仆�V���e�����0���$�C�d���rP �m�׈e�Xm�Vu� �L��.�bֹ��� �[Դaզ���*��\y�8�Է:�Ez\�0�Kq�C b��̘��cө���Q��=0Y��s�N��S.����3.���O�o:���#���v7�[#߫ ��5�܎�L���Er4���9n��COWlG�^��0k�%<���ZB���aB_���������'=��{i�v�l�$�uC���mƎҝ{�c㱼�y]���W�i ��ߧc��m�H� m�"�"�����;Y�ߝ�Z�Ǔ�����:S#��|}�y�,/k�Ld� TA�(�AI$+I3��;Y*���Z��}|��ӧO��d�v��..#:n��f>�>���ȶI�TX��� 8��y����"d�R�|�)0���=���n4��6ⲑ�+��r<�O�܂~zh�z����7ܓ�HH�Ga롏���nCo�>������a ���~]���R���̲c?�6(�q�;5%� |�uj�~z8R�=X��I�V=�|{v�Gj\gc��q����z�؋%M�ߍ����1y��#��@f^���^�>N������#x#۹��6�Y~�?�dfPO��{��P�4��V��u1E1J �*|���%����JN��`eWu�zk M6���q t[�� ��g�G���v��WIG��u_ft����5�j�"�Y�:T��ɐ���*�;� e5���4����q$C��2d�}���� _S�L#m�Yp��O�.�C�;��c����Hi#֩%+) �Ӎ��ƲV���SYź��g |���tj��3�8���r|���V��1#;.SQ�A[���S������#���`n�+���$��$�I �P\[�@�s��(�ED�z���P��])8�G#��0B��[ى��X�II�q<��9�~[Z멜�Z�⊔IWU&A>�P~�#��dp<�?����7���c��'~���5 ��+$���lx@�M�dm��n<=e�dyX��?{�|Aef ,|n3�<~z�ƃ�uۧ�����P��Y,�ӥQ�*g�#먙R�\���;T��i,��[9Qi歉����c>]9�� ��"�c��P�� �Md?٥��If�ت�u��k��/����F��9�c*9��Ǎ:�ØF���z�n*�@|I�ށ9����N3{'��[�'ͬ�Ҳ4��#}��!�V� Fu��,�,mTIk���v C�7v���B�6k�T9��1�*l� '~��ƞF��lU��'�M ����][ΩũJ_�{�i�I�n��$����L�� j��O�dx�����kza۪��#�E��Cl����x˘�o�����V���ɞ�ljr��)�/,�߬h�L��#��^��L�ф�,íMƁe�̩�NB�L�����iL����q�}��(��q��6IçJ$�W�E$��:������=#����(�K�B����zђ <��K(�N�۫K�w��^O{!����)��H���>x�������lx�?>Պ�+�>�W���,Ly!_�D���Ō�l���Q�!�[ �S����J��1��Ɛ�Y}��b,+�Lo�x�ɓ)����=�y�oh�@�꥟/��I��ѭ=��P�y9��� �ۍYӘ�e+�p�Jnϱ?V\SO%�(�t� ���=?MR�[Ș�����d�/ ��n�l��B�7j� ��!�;ӥ�/�[-���A�>��dN�sLj ��,ɪv��=1c�.SQ�O3�U���ƀ�ܽ�E����������̻��9G�ϷD�7(�}��Ävӌ\��y�_0[w ���<΍>����a_��[0+�L��F.�޺��f�>oN�T����q;���y\��bՃ��y�jH�<|q-eɏ�_?_9+P���Hp$�����[ux�K w�Mw��N�ی'$Y2�=��q���KB��P��~�������Yul:�[<����F1�2�O���5=d����]Y�sw:���Ϯ���E��j,_Q��X��z`H1,#II ��d�wr��P˂@�ZJV����y$�\y�{}��^~���[:N����ߌ�U�������O��d�����ؾe��${p>G��3c���Ė�lʌ�� ת��[��`ϱ�-W����dg�I��ig2��� ��}s ��ؤ(%#sS@���~���3�X�nRG�~\jc3�v��ӍL��M[JB�T��s3}��j�Nʖ��W����;7���ç?=X�F=-�=����q�ߚ���#���='�c��7���ڑW�I(O+=:uxq�������������e2�zi+�kuG�R��������0�&e�n���iT^J����~\jy���p'dtG��s����O��3����9* �b#Ɋ�� p������[Bws�T�>d4�ۧs���nv�n���U���_�~,�v����ƜJ1��s�� �QIz���)�(lv8M���U=�;����56��G���s#�K���MP�=��LvyGd��}�VwWBF�'�à �?MH�U�g2�� ����!�p�7Q��j��ڴ����=��j�u��� Jn�A s���uM������e��Ɔ�Ҕ�!)�'��8Ϣ�ٔ���ޝ(��Vp���צ֖d=�IC�J�Ǡ{q������kԭ�߸���i��@K����u�|�p=..�*+����x�����z[Aqġ#s2a�Ɗ���RR�)*HRsi�~�a &f��M��P����-K�L@��Z��Xy�'x�{}��Zm+���:�)�) IJ�-i�u���� ���ܒH��'��L(7�y�GӜq���� j��� 6ߌg1�g�o���,kر���tY�?W,���p���e���f�OQS��!K�۟cҒA�|ս�j�>��=⬒��˧L[�� �߿2JaB~R��u�:��Q�] �0H~���]�7��Ƽ�I���(�}��cq '�ήET���q�?f�ab���ӥvr� �)o��-Q��_'����ᴎo��K������;��V���o��%���~OK ����*��b�f:���-ťIR��`B�5!RB@���ï�� �u �̯e\�_U�_������� g�ES��3��������QT��a�����x����U<~�c?�*�#]�MW,[8O�a�x��]�1bC|踤�P��lw5V%�)�{t�<��d��5���0i�XSU��m:��Z�┵�i�"��1�^B�-��P�hJ��&)O��*�D��c�W��vM��)����}���P��ܗ-q����\mmζZ-l@�}��a��E�6��F�@��&Sg@���ݚ�M����� ȹ 4����#p�\H����dYDo�H���"��\��..R�B�H�z_�/5˘����6��KhJR��P�mƶi�m���3��,#c�co��q�a)*P�t����R�m�k�7x�D�E�\Y�閣_X�<���~�)���c[[�BP����6�Yq���S��0����%_����;��Àv�~�| VS؇ ��'O0��F0��\���U�-�d@�����7�SJ*z��3n��y��P����O����������m�~�P�3|Y��ʉr#�C�<�G~�.,! ���bqx���h~0=��!ǫ�jy����l��O,�[B��~��|9��ٱ����Xly�#�i�B��g%�S��������tˋ���e���ې��\[d�t)��.+u�|1 ������#�~Oj����hS�%��i.�~X���I�H�m��0n���c�1uE�q��cF�RF�o���7� �O�ꮧ� ���ۛ{��ʛi5�rw?׌#Qn�TW��~?y$��m\�\o����%W� ?=>S�N@�� �Ʈ���R����N�)�r"C�:��:����� �����#��qb��Y�. �6[��2K����2u�Ǧ�HYR��Q�MV��� �G�$��Q+.>�����nNH��q�^��� ����q��mM��V��D�+�-�#*�U�̒ ���p욳��u:�������IB���m����PV@O���r[b= �� ��1U�E��_Nm�yKbN�O���U�}�the�`�|6֮P>�\2�P�V���I�D�i�P�O;�9�r�mAHG�W�S]��J*�_�G��+kP�2����Ka�Z���H�'K�x�W�MZ%�O�YD�Rc+o��?�q��Ghm��d�S�oh�\�D�|:W������UA�Qc yT�q��������~^�H��/��#p�CZ���T�I�1�ӏT����4��"�ČZ�����}��`w�#�*,ʹ�� ��0�i��課�Om�*�da��^gJ݅{���l�e9uF#T�ֲ��̲�ٞC"�q���ߍ ոޑ�o#�XZTp����@ o�8��(jd��xw�]�,f���`~��|,s��^����f�1���t��|��m�򸄭/ctr��5s��7�9Q�4�H1꠲BB@�l9@���C�����+�wp�xu�£Yc�9��?`@#�o�mH�s2��)�=��2�.�l����jg�9$�Y�S�%*L������R�Y������7Z���,*=�䷘$�������arm�o�ϰ���UW.|�r�uf����IGw�t����Zwo��~5 ��YյhO+=8fF�)�W�7�L9lM�̘·Y���֘YLf�큹�pRF���99.A �"wz��=E\Z���'a� 2��Ǚ�#;�'}�G���*��l��^"q��+2FQ� hj��kŦ��${���ޮ-�T�٭cf�|�3#~�RJ����t��$b�(R��(����r���dx� >U b�&9,>���%E\� Ά�e�$��'�q't��*�א���ެ�b��-|d���SB�O�O��$�R+�H�)�܎�K��1m`;�J�2�Y~9��O�g8=vqD`K[�F)k�[���1m޼c��n���]s�k�z$@��)!I �x՝"v��9=�ZA=`Ɠi �:�E��)`�7��vI��}d�YI�_ �o�:ob���o ���3Q��&D&�2=�� �Ά��;>�h����y.*ⅥS������Ӭ�+q&����j|UƧ�����}���J0��WW< ۋS�)jQR�j���Ư��rN)�Gű�4Ѷ(�S)Ǣ�8��i��W52���No˓� ۍ%�5brOn�L�;�n��\G����=�^U�dI���8$�&���h��'���+�(������cȁ߫k�l��S^���cƗjԌE�ꭔ��gF���Ȓ��@���}O���*;e�v�WV���YJ\�]X'5��ղ�k�F��b 6R�o՜m��i N�i�����>J����?��lPm�U��}>_Z&�KK��q�r��I�D�Չ~�q�3fL�:S�e>���E���-G���{L�6p�e,8��������QI��h��a�Xa��U�A'���ʂ���s�+טIjP�-��y�8ۈZ?J$��W�P� ��R�s�]��|�l(�ԓ��sƊi��o(��S0���Y� 8�T97.�����WiL��c�~�dxc�E|�2!�X�K�Ƙਫ਼�$((�6�~|d9u+�qd�^3�89��Y�6L�.I�����?���iI�q���9�)O/뚅����O���X��X�V��ZF[�یgQ�L��K1���RҖr@v�#��X�l��F���Нy�S�8�7�kF!A��sM���^rkp�jP�DyS$N���q���nxҍ!U�f�!eh�i�2�m����`�Y�I�9r�6� �TF���C}/�y�^���Η���5d�'��9A-��J��>{�_l+�`��A���[�'��յ�ϛ#w:݅�%��X�}�&�PSt�Q�"�-��\縵�/����$Ɨh�Xb�*�y��BS����;W�ջ_mc�����vt?2}1�;qS�d�d~u:2k5�2�R�~�z+|HE!)�Ǟl��7`��0�<�,�2*���Hl-��x�^����'_TV�gZA�'j� ^�2Ϊ��N7t�����?w�� �x1��f��Iz�C-Ȗ��K�^q�;���-W�DvT�7��8�Z�������� hK�(P:��Q- �8�n�Z���܃e貾�<�1�YT<�,�����"�6{�/ �?�͟��|1�:�#g��W�>$����d��J��d�B���=��jf[��%rE^��il:��B���x���Sּ�1հ��,�=��*�7 fcG��#q� �eh?��2�7�����,�!7x��6�n�LC�4x��},Geǝ�tC.��vS �F�43��zz\��;QYC,6����~;RYS/6���|2���5���v��T��i����������mlv��������&� �nRh^ejR�LG�f���? �ۉҬܦƩ��|��Ȱ����>3����!v��i�ʯ�>�v��オ�X3e���_1z�Kȗ\<������!�8���V��]��?b�k41�Re��T�q��mz��TiOʦ�Z��Xq���L������q"+���2ۨ��8}�&N7XU7Ap�d�X��~�׿��&4e�o�F��� �H�����O���č�c�� 懴�6���͉��+)��v;j��ݷ�� �UV�� i��� j���Y9GdÒJ1��詞�����V?h��l�����l�cGs�ځ�������y�Ac������\V3�? �� ܙg�>qH�S,�E�W�[�㺨�uch�⍸�O�}���a��>�q�6�n6�����N6�q��������N� ���! 1AQaq�0@����"2BRb�#Pr���3C`��Scst���$4D���%Td���� ?�����N����a��3��m���C���w��������xA�m�q�m����m������$����4n淿t'��C"w��zU=D�\R+w�p+Y�T�&�պ@��ƃ��3ޯ?�Aﶂ��aŘ���@-�����Q�=���9D��ռ�ѻ@��M�V��P��܅�G5�f�Y<�u=,EC)�<�Fy'�"�&�չ�X~f��l�KԆV��?�� �W�N����=(� �;���{�r����ٌ�Y���h{�١������jW����P���Tc�����X�K�r��}���w�R��%��?���E��m�� �Y�q|����\lEE4����r���}�lsI�Y������f�$�=�d�yO����p�����yBj8jU�o�/�S��?�U��*������ˍ�0�������u�q�m [�?f����a�� )Q�>����6#������� ?����0UQ����,IX���(6ڵ[�DI�MNލ�c&���υ�j\��X�R|,4��� j������T�hA�e��^���d���b<����n�� �즇�=!���3�^�`j�h�ȓr��jẕ�c�,ٞX����-����a�ﶔ���#�$��]w�O��Ӫ�1y%��L�Y<�wg#�ǝ�̗`�x�xa�t�w��»1���o7o5��>�m뭛C���Uƃߜ}�C���y1Xνm�F8�jI���]����H���ۺиE@I�i;r�8ӭ�����V�F�Շ| ��&?�3|x�B�MuS�Ge�=Ӕ�#BE5G������Y!z��_e��q�р/W>|-�Ci߇�t�1ޯќd�R3�u��g�=0 5��[?�#͏��q�cf���H��{ ?u�=?�?ǯ���}Z��z���hmΔ�BFTW�����<�q��(v� ��!��z���iW]*�J�V�z��gX֧A�q�&��/w���u�gYӘa���; �i=����g:��?2�dž6�ى�k�4�>�Pxs����}������G�9���3 ���)gG�R<>r h�$��'nc�h�P��Bj��J�ҧH� -��N1���N��?��~��}-q!=��_2hc�M��l�vY%UE�@|�v����M2�.Y[|y�"Eï��K�ZF,�ɯ?,q�?v�M 80jx�"�;�9vk�����+ ֧�� �ȺU��?�%�vcV��mA�6��Qg^M�����A}�3�nl� QRN�l8�kkn�'�����(��M�7m9و�q���%ޟ���*h$Zk"��$�9��: �?U8�Sl��,,|ɒ��xH(ѷ����Gn�/Q�4�P��G�%��Ա8�N��!� �&�7�;���eKM7�4��9R/%����l�c>�x;������>��C�:�����t��h?aKX�bhe�ᜋ^�$�Iհ �hr7%F$�E��Fd���t��5���+�(M6�t����Ü�UU|zW�=a�Ts�Tg������dqP�Q����b'�m���1{|Y����X�N��b �P~��F^F:����k6�"�j!�� �I�r�`��1&�-$�Bevk:y���#y�w��I0��x��=D�4��tU���P�ZH��ڠ底taP��6����b>�xa�����Q�#� WeF��ŮNj�p�J* mQ�N�����*I�-*�ȩ�F�g�3 �5��V�ʊ�ɮ�a��5F���O@{���NX��?����H�]3��1�Ri_u��������ѕ�� ����0��� F��~��:60�p�͈�S��qX#a�5>���`�o&+�<2�D����: �������ڝ�$�nP���*)�N�|y�Ej�F�5ټ�e���ihy�Z �>���k�bH�a�v��h�-#���!�Po=@k̆IEN��@��}Ll?j�O������߭�ʞ���Q|A07x���wt!xf���I2?Z��<ץ�T���cU�j��]���陎Ltl �}5�ϓ��$�,��O�mˊ�;�@O��jE��j(�ا,��LX���LO���Ц�90�O �.����a��nA���7������j4 ��W��_ٓ���zW�jcB������y՗+EM�)d���N�g6�y1_x��p�$Lv�:��9�"z��p���ʙ$��^��JԼ*�ϭ����o���=x�Lj�6�J��u82�A�H�3$�ٕ@�=Vv�]�'�qEz�;I˼��)��=��ɯ���x �/�W(V���p�����$ �m�������u�����񶤑Oqˎ�T����r��㠚x�sr�GC��byp�G��1ߠ�w e�8�$⿄����/�M{*}��W�]˷.�CK\�ުx���/$�WP�w���r� |i���&�}�{�X� �>��$-��l���?-z���g����lΆ���(F���h�vS*���b���߲ڡn,|)mrH[���a�3�ר�[1��3o_�U�3�TC�$��(�=�)0�kgP���� ��u�^=��4 �WYCҸ:��vQ�ר�X�à��tk�m,�t*��^�,�}D*�� �"(�I��9R����>`�`��[~Q]�#af��i6l��8���6�:,s�s�N6�j"�A4���IuQ��6E,�GnH��zS�HO�uk�5$�I�4��ؤ�Q9�@��C����wp��BGv[]�u�Ov����0I4���\��y�����Q�Ѹ��~>Z��8�T��a��q�ޣ;z��a���/��S��I:�ܫ_�|������>=Z����8:�S��U�I�J��"IY���8%b8���H��:�QO�6�;7�I�S��J��ҌAά3��>c���E+&jf$eC+�z�;��V����� �r���ʺ������my�e���aQ�f&��6�ND���.:��NT�vm�<- u���ǝ\MvZY�N�NT��-A�>jr!S��n�O 1�3�Ns�%�3D@���`������ܟ 1�^c<���� �a�ɽ�̲�Xë#�w�|y�cW�=�9I*H8�p�^(4���՗�k��arOcW�tO�\�ƍR��8����'�K���I�Q�����?5�>[�}��yU�ײ -h��=��% q�ThG�2�)���"ו3]�!kB��*p�FDl�A���,�eEi�H�f�Ps�����5�H:�Փ~�H�0Dت�D�I����h�F3�������c��2���E��9�H��5�zԑ�ʚ�i�X�=:m�xg�hd(�v����׊�9iS��O��d@0ڽ���:�p�5�h-��t�&���X�q�ӕ,��ie�|���7A�2���O%P��E��htj��Y1��w�Ѓ!����  ���� ࢽ��My�7�\�a�@�ţ�J ��4�Ȼ�F�@o�̒?4�wx��)��]�P��~�����u�����5�����7X ��9��^ܩ�U;Iꭆ 5 �������eK2�7(�{|��Y׎ �V��\"���Z�1� Z�����}��(�Ǝ"�1S���_�vE30>���p;� ΝD��%x�W�?W?v����o�^V�i�d��r[��/&>�~`�9Wh��y�;���R���� ;;ɮT��?����r$�g1�K����A��C��c��K��l:�'��3 c�ﳯ*"t8�~l��)���m��+U,z��`(��>yJ�?����h>��]��v��ЍG*�{`��;y]��I�T� ;c��NU�fo¾h���/$���|NS���1�S�"�H��V���T���4��uhǜ�]�v;���5�͠x��'C\�SBpl���h}�N����� A�Bx���%��ޭ�l��/����T��w�ʽ]D�=����K���ž�r㻠l4�S�O?=�k �M:� ��c�C�a�#ha���)�ѐxc�s���gP�iG���{+���x���Q���I= �� z��ԫ+ �8"�k�ñ�j=|����c ��y��CF��/���*9ж�h{ �?4�o� ��k�m�Q�N�x��;�Y��4膚�a�w?�6�>�e]�����Q�r�:����g�,i"�����ԩA��*M�<�G��b�if��l^M��5�� �Ҩ�{����6J��ZJ�����P�*�����Y���ݛu�_4�9�I8�7���������,^ToR���m4�H��?�N�S�ѕw��/S��甍�@�9H�S�T��t�ƻ���ʒU��*{Xs�@����f������֒Li�K{H�w^���������Ϥm�tq���s� ���ք��f:��o~s��g�r��ט� �S�ѱC�e]�x���a��) ���(b-$(�j>�7q�B?ӕ�F��hV25r[7 Y� }L�R��}����*sg+��x�r�2�U=�*'WS��ZDW]�WǞ�<��叓���{�$�9Ou4��y�90-�1�'*D`�c�^o?(�9��u���ݐ��'PI&� f�Jݮ�������:wS����jfP1F:X �H�9dԯ����˝[�_54 �}*;@�ܨ�� ð�yn�T���?�ןd�#���4rG�ͨ��H�1�|-#���Mr�S3��G�3�����)�.᧏3v�z֑��r����$G"�`j �1t��x0<Ɔ�Wh6�y�6��,œ�Ga��gA����y��b��)���h�D��ß�_�m��ü �gG;��e�v��ݝ�nQ� ��C����-�*��o���y�a��M��I�>�<���]obD��"�:���G�A��-\%LT�8���c�)��+y76���o�Q�#*{�(F�⽕�y����=���rW�\p���۩�c���A���^e6��K������ʐ�cVf5$�'->���ՉN"���F�"�UQ@�f��Gb~��#�&�M=��8�ט�JNu9��D��[̤�s�o�~������� G��9T�tW^g5y$b��Y'��س�Ǵ�=��U-2 #�MC�t(�i� �lj�@Q 5�̣i�*�O����s�x�K�f��}\��M{E�V�{�υ��Ƈ�����);�H����I��fe�Lȣr�2��>��W��I�Ȃ6������i��k�� �5�YOxȺ����>��Y�f5'��|��H+��98pj�n�.O�y�������jY��~��i�w'������l�;�s�2��Y��:'lg�ꥴ)o#'Sa�a�K��Z� �m��}�`169�n���"���x��I ��*+� }F<��cГ���F�P�������ֹ*�PqX�x۩��,� ��N�� �4<-����%����:��7����W���u�`����� $�?�I��&����o��o��`v�>��P��"��l���4��5'�Z�gE���8���?��[�X�7(��.Q�-��*���ތL@̲����v��.5���[��=�t\+�CNܛ��,g�SQnH����}*F�G16���&:�t��4ُ"A��̣��$�b �|����#rs��a�����T�� ]�<�j��B�S�('$�ɻ� �wP;�/�n��?�ݜ��x�F��yUn�~mL*-�������Xf�wd^�a�}��f�,=t�׵i�.2/wpN�Ep8�OР���•��R�FJ� 55TZ��T �ɭ�<��]��/�0�r�@�f��V��V����Nz�G��^���7hZi����k��3�,kN�e|�vg�1{9]_i��X5y7� 8e]�U����'�-2,���e"����]ot�I��Y_��n�(JҼ��1�O ]bXc���Nu�No��pS���Q_���_�?i�~�x h5d'�(qw52] ��'ޤ�q��o1�R!���`ywy�A4u���h<קy���\[~�4�\ X�Wt/� 6�����n�F�a8��f���z �3$�t(���q��q�x��^�XWeN'p<-v�!�{�(>ӽDP7��ո0�y)�e$ٕv�Ih'Q�EA�m*�H��RI��=:��� ���4牢) �%_iN�ݧ�l]� �Nt���G��H�L��� ɱ�g<���1V�,�J~�ٹ�"K��Q�� 9�HS�9�?@��k����r�;we݁�]I�!{ �@�G�[�"��`���J:�n]�{�cA�E����V��ʆ���#��U9�6����j�#Y�m\��q�e4h�B�7��C�������d<�?J����1g:ٳ���=Y���D�p�ц� ׈ǔ��1�]26؜oS�'��9�V�FVu�P�h�9�xc�oq�X��p�o�5��Ա5$�9W�V(�[Ak�aY錎qf;�'�[�|���b�6�Ck��)��#a#a˙��8���=äh�4��2��C��4tm^ �n'c����]GQ$[Wҿ��i���vN�{Fu ��1�gx��1┷���N�m��{j-,��x�� Ūm�ЧS�[�s���Gna���䑴�� x�p 8<������97�Q���ϴ�v�aϚG��Rt�Һ׈�f^\r��WH�JU�7Z���y)�vg=����n��4�_)y��D'y�6�]�c�5̪��\� �PF�k����&�c;��cq�$~T�7j ���nç]�<�g ":�to�t}�159�<�/�8������m�b�K#g'I'.W������6��I/��>v��\�MN��g���m�A�yQL�4u�Lj�j9��#44�t��l^�}L����n��R��!��t��±]��r��h6ٍ>�yҏ�N��fU�� ���� Fm@�8}�/u��jb9������he:A�y�ծw��GpΧh�5����l}�3p468��)U��d��c����;Us/�֔�YX�1�O2��uq�s��`hwg�r~�{ R��mhN��؎*q 42�*th��>�#���E����#��Hv�O����q�}������6�e��\�,Wk�#���X��b>��p}�դ��3���T5��†��6��[��@��P�y*n��|'f�֧>�lư΂�̺����SU�'*�q�p�_S�����M�� '��c�6������m�� ySʨ;M��r���Ƌ�m�Kxo,���Gm�P��A�G�:��i��w�9�}M(�^�V��$ǒ�ѽ�9���|���� �a����J�SQ�a���r�B;����}���ٻ֢�2�%U���c�#�g���N�a�ݕ�'�v�[�OY'��3L�3�;,p�]@�S��{ls��X�'���c�jw��k'a�.��}�}&�� �dP�*�bK=ɍ!����;3n�gΊU�ߴmt�'*{,=SzfD� A��ko~�G�aoq�_mi}#�m�������P�Xhύ�����mxǍ�΂���巿zf��Q���c���|kc�����?���W��Y�$���_Lv����l߶��c���`?����l�j�ݲˏ!V��6����U�Ђ(A���4y)H���p�Z_�x��>���e���R��$�/�`^'3qˏ�-&Q�=?��CFVR �D�fV�9��{�8g�������n�h�(P"��6�[�D���< E�����~0<@�`�G�6����Hг�cc�� �c�K.5��D��d�B���`?�XQ��2��ٿyqo&+�1^� DW�0�ꊩ���G�#��Q�nL3��c���������/��x ��1�1�[y�x�პCW��C�c�UĨ80�m�e�4.{�m��u���I=��f�����0QRls9���f���������9���~f�����Ǩ��a�"@�8���ȁ�Q����#c�ic������G��$���G���r/$W�(��W���V�"��m�7�[m�A�m����bo��D� j����۳� l���^�k�h׽����� ��#� iXn�v��eT�k�a�^Y�4�BN���ĕ���0������� !01@Q"2AaPq3BR�������?�����@4�Q�����T3,���㺠�W�[=JK�Ϟ���2�r^7��vc�:�9 �E�ߴ�w�S#d���Ix��u��:��Hp��9E!�� V 2;73|F��9Y���*ʬ�F��D����u&���y؟��^EA��A��(ɩ���^��GV:ݜDy�`��Jr29ܾ�㝉��[���E;Fzx��YG��U�e�Y�C���� ����v-tx����I�sם�Ę�q��Eb�+P\ :>�i�C'�;�����k|z�رn�y]�#ǿb��Q��������w�����(�r|ӹs��[�D��2v-%��@;�8<a���[\o[ϧw��I!��*0�krs)�[�J9^��ʜ��p1)� "��/_>��o��<1����A�E�y^�C��`�x1'ܣn�p��s`l���fQ��):�l����b>�Me�jH^?�kl3(�z:���1ŠK&?Q�~�{�ٺ�h�y���/�[��V�|6��}�KbX����mn[-��7�5q�94�������dm���c^���h� X��5��<�eޘ>G���-�}�دB�ޟ� ��|�rt�M��V+�]�c?�-#ڛ��^ǂ}���Lkr���O��u�>�-D�ry� D?:ޞ�U��ǜ�7�V��?瓮�"�#���r��չģVR;�n���/_� ؉v�ݶe5d�b9��/O��009�G���5n�W����JpA�*�r9�>�1��.[t���s�F���nQ� V 77R�]�ɫ8����_0<՜�IF�u(v��4��F�k�3��E)��N:��yڮe��P�`�1}�$WS��J�SQ�N�j��ٺ��޵�#l���ј(�5=��5�lǏmoW�v-�1����v,W�mn��߀$x�<����v�j(����c]��@#��1������Ǔ���o'��u+����;G�#�޸��v-lη��/(`i⣍Pm^����ԯ̾9Z��F��������n��1��� ��]�[��)�'�������:�֪�W��FC����� �B9،!?���]��V��A�Վ�M��b�w��G F>_DȬ0¤�#�QR�[V��kz���m�w�"��9ZG�7'[��=�Q����j8R?�zf�\a�=��O�U����*oB�A�|G���2�54 �p��.w7� �� ���&������ξxGHp� B%��$g�����t�Џ򤵍z���HN�u�Я�-�'4��0���;_���3������� !01"@AQa2Pq#3BR�������?����ʩca��en��^��8���<�u#��m*08r��y�N"�<�Ѳ0��@\�p��� �����Kv�D��J8�Fҽ� �f�Y��-m�ybX�NP����}�!*8t(�OqѢ��Q�wW�K��ZD��Δ^e��!� ��B�K��p~�����e*l}z#9ң�k���q#�Ft�o��S�R����-�w�!�S���Ӥß|M�l޶V��!eˈ�8Y���c�ЮM2��tk���� ������J�fS����Ö*i/2�����n]�k�\���|4yX�8��U�P.���Ы[���l��@"�t�<������5�lF���vU�����W��W��;�b�cД^6[#7@vU�xgZv��F�6��Q,K�v��� �+Ъ��n��Ǣ��Ft���8��0��c�@�!�Zq s�v�t�;#](B��-�nῃ~���3g������5�J�%���O������n�kB�ĺ�.r��+���#�N$?�q�/�s�6��p��a����a��J/��M�8��6�ܰ"�*������ɗud"\w���aT(����[��F��U՛����RT�b���n�*��6���O��SJ�.�ij<�v�MT��R\c��5l�sZB>F��<7�;EA��{��E���Ö��1U/�#��d1�a�n.1ě����0�ʾR�h��|�R��Ao�3�m3 ��%�� ���28Q�� ��y��φ���H�To�7�lW>����#i`�q���c����a��� �m,B�-j����݋�'mR1Ήt�>��V��p���s�0IbI�C.���1R�ea�����]H�6�����������4B>��o��](��$B���m�����a�!=���?�B� K�Ǿ+�Ծ"�n���K��*��+��[T#�{�E�J�S����Q�����s�5�:�U�\wĐ�f�3����܆&�)�����I���Ԇw��E T�lrTf6Q|R�h:��[K�� �z��c֧�G�C��%\��_�a��84��HcO�bi��ؖV��7H �)*ģK~Xhչ0��4?�0��� �E<���}3���#���u�?�� ��|g�S�6ꊤ�|�I#Hڛ� �ա��w�X��9��7���Ŀ%�SL��y6č��|�F�a 8���b���$�sק�h���b9RAu7�˨p�Č�_\*w��묦��F ����4D~�f����|(�"m���NK��i�S�>�$d7SlA��/�²����SL��|6N�}���S�˯���g��]6��; �#�.��<���q'Q�1|KQ$�����񛩶"�$r�b:���N8�w@��8$�� �AjfG|~�9F ���Y��ʺ��Bwؒ������M:I岎�G��`s�YV5����6��A �b:�W���G�q%l�����F��H���7�������Fsv7���k�� 403WebShell
403Webshell
Server IP : 88.222.243.157  /  Your IP : 216.73.216.150
Web Server : LiteSpeed
System : Linux in-mum-web1874.main-hosting.eu 5.14.0-570.21.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 11 07:22:35 EDT 2025 x86_64
User : u862839997 ( 862839997)
PHP Version : 8.2.30
Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/gsutil/gslib/vendored/boto/boto/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/gsutil/gslib/vendored/boto/boto/__pycache__/utils.cpython-39.pyc
a

sFg���@s�dZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZmZmZmZddlmZddlm Z m!Z!e!Z"ddlm#Z#zddl$m%Z%Wne&�ye'Z%Yn0gd�Z(e�)d	�Z*e�)d
�Z+e�)d�Z,dd
�Z-dedd�Z.dfdd�Z/dgdd�Z0dhdd�Z1didd�Z2Gdd�de3�Z4dd�Z5djd"d#�Z6dkd$d%�Z7dld&d'�Z8d(Z9d)Z:d*Z;e�<�Z=ed+d,��Z>dmd-d.�Z?d/d0�Z@dnd1d2�ZAd3d4�ZBdod5d6�ZCGd7d8�d8eD�ZEGd9d:�d:ejFjG�ZHGd;d<�d<e3�ZIGd=d>�d>eD�ZJdpd?d@�ZKdAdB�ZLdCdD�ZMdEdF�ZNdqdJdK�ZOdLdM�ZPdrdOdP�ZQdNde fdQdR�ZRdSdT�ZSdUdV�ZTGdWdX�dXeD�ZUdYdZ�ZVd[d\�ZWdsd^d_�ZXd`dB�ZLdadb�ZYdcdd�ZZdS)tz7
Some handy utility functions used by several classes.
�N)�six�StringIO�urllib�encodebytes)�contextmanager)�md5�sha512)�json)�JSONDecodeError)�acl�corsZdefaultObjectAcl�location�loggingZ
partNumber�policyZrequestPayment�torrentZ
versioningZ	versionIdZversionsZwebsiteZuploadsZuploadIdzresponse-content-typezresponse-content-languagezresponse-expireszresponse-cache-controlzresponse-content-dispositionzresponse-content-encoding�delete�	lifecycleZtagging�restoreZstorageClassZ
websiteConfig�composeZbillingZuserProjectZencryptionConfigz(.)([A-Z][a-z]+)z([a-z])([0-9]+)z([a-z0-9])([A-Z])cCs,t|�dkr|S|dtj�|d�fSdS)N�r)�lenr�parse�unquote)�nv�r�-/opt/gsutil/gslib/vendored/boto/boto/utils.py�	unquote_vnsrc
Cs~|stj��}i}|D]@}|��}||dur|dvsB|�|j�rt||���||<qd|vrhd|d<d|vrxd|d<|j|vr�d|d<|r�t|�|d<t	|�
��}d|}	|D]6}||}
|�|j�r�|	d||
f7}	q�|	d|
7}	q�|�d	�}|	|d
7}	t|�dk�rz|d�d�}d
d�|D�}dd�|D�}t|�d
k�rz|j
dd�d�dd�|D�}|	d	7}	|	d�|�7}	|	S)zE
    Generates the aws canonical string for the given parameters
    N)�content-md5�content-type�dater�rrz%s
z%s:%s
�?rr�&cSsg|]}|�dd��qS)�=r)�split��.0�arrr�
<listcomp>��z$canonical_string.<locals>.<listcomp>cSs g|]}|dtvrt|��qS)r)�qsa_of_interestrr%rrrr(�r)cSs|dS�Nrr)�xrrr�<lambda>�r)z"canonical_string.<locals>.<lambda>)�keycSsg|]}d�|��qS)r#)�joinr%rrrr(�r))�boto�provider�get_default�lower�
startswithZ
header_prefix�str�stripZdate_header�sorted�keysr$r�sortr/)
�method�path�headers�expiresr1Zinteresting_headersr.ZlkZsorted_header_keys�buf�val�tZqsarrr�canonical_stringusL
�
�

rAcCs`|stj��}|j}|��}|��D]6}|��tjjj	j
vrJ||||<q$|||||<q$|S�N)r0r1r2�metadata_prefix�copyr8r3�s3r.�KeyZbase_user_settable_fields)r<�metadatar1rCZ
final_headers�krrr�
merge_meta�s
rIc	Cs�|stj��}|j}i}|��D]h}|���|�r tj�	||�}t
|t�rnz|�d�}Wnt
ylYn0|||t|�d�<||=q |S�N�utf-8)r0r1r2rCr8r3r4rrr�
isinstance�bytes�decode�UnicodeDecodeErrorr)r<r1rCrG�hkeyr?rrr�get_aws_metadata�s

rQT�
cCs:td|�D�]}zdtj�i�}tj�|�}tj�|�}|j||d�}|��}	t|	t	j
�slt|	d�rl|	�d�}	|	WStj
jy�}
z0|
��}|dkr�|s�WYd}
~
dSWYd}
~
n8d}
~
0ty�}
ztj�d�WYd}
~
n
d}
~
00|d	|kr
tj�d
�t�td|tj�dd
d���q
tj�
d�dS)a
    Retry a url.  This is specifically used for accessing the metadata
    service on an instance.  Since this address should never be proxied
    (for security reasons), we create a ProxyHandler with a NULL
    dictionary to override any proxy settings in the environment.
    r)�timeoutrNrKi�Nr z&Caught exception reading instance datarzSleeping before retrying��Boto�max_retry_delay�<z'Unable to read instance data, giving up)�ranger�request�ProxyHandler�build_opener�Request�open�readrLr�string_types�hasattrrN�error�	HTTPError�getcode�	Exceptionr0�log�	exception�debug�time�sleep�min�config�get)�url�retry_on_404�num_retriesrS�iZ
proxy_handler�opener�req�r�result�e�coderrr�	retry_url�s2�

$"�rwcCst|||�SrB)�LazyLoadMetadata)rmrorSrrr�_get_instance_metadata�srycsheZdZddd�Zdd�Z�fdd�Zddd	�Z�fd
d�Z�fdd
�Z�fdd�Z	�fdd�Z
�ZS)rxNc
Cs�||_||_i|_g|_||_tjj|j|j|jd�}|r�|�d�}|D]v}|�	d�rp|dd�}|j�
|�nF|�d�}|dkr�||dd�}|d|�d}	n|}}	|	|j|<d||<qHdS)	N�rorS�
�/r���r#rz/openssh-key)�_url�_num_retries�_leaves�_dicts�_timeoutr0�utilsrwr$�endswith�append�find)
�selfrmrorS�data�fields�fieldr.�p�resourcerrr�__init__�s&



zLazyLoadMetadata.__init__cCs|D]}||qdSrBr�r�r.rrr�_materializeszLazyLoadMetadata._materializec	s&||vrtt|��|�Stt|��|�}|dur4|S||jv�r�|j|}d}td|j�D�]`}zttjj|j	t
jj|dd�|j|j
d�}|r�|ddkr�t�|�}W�q�n$|�d�}|dkr�|�d�}W�q�Wn�t�y&}z8tj�d|jj|f�tj�d|�|}WYd}~nLd}~0t�yh}z*tj�d	d
|jj�|}�WYd}~n
d}~00tj�dd|d
�|d
|jkrZtt��d|tj�ddd��}t�|�qZtj�d�tj�d|jj|f�|�|||<n&||jv�rt|j	|d|j�||<tt|��|�S)Nrz/:)�saferz�{r{zencountered '%s' exception: %szcorrupted JSON data found: %szencountered unretryablez '%s' exception, re-raisingz"Caught exception reading meta dataz for the '%s' tryrrTrUrVrWz#Unable to read meta data, giving upr|) �superrx�__getitem__r�rXrr0r�rwr~rr�quoter�r	�loadsr�r$r
rerg�	__class__�__name__rdrarj�randomrkrlrhrir�)	r�r.r?r�Zlast_exceptionrpr�ruZ
next_sleep�r�rrr�s�
��



�����
����
�zLazyLoadMetadata.__getitem__cCs&z
||WSty |YS0dSrB)�KeyError)r�r.�defaultrrrrlVs
zLazyLoadMetadata.getcs|��tt|���SrB)r�r�rx�values�r�r�rrr�\szLazyLoadMetadata.valuescs|��tt|���SrB)r�r�rx�itemsr�r�rrr�`szLazyLoadMetadata.itemscs|��tt|���SrB)r�r�rx�__str__r�r�rrr�dszLazyLoadMetadata.__str__cs|��tt|���SrB)r�r�rx�__repr__r�r�rrr�hszLazyLoadMetadata.__repr__)N)N)r��
__module__�__qualname__r�r�r�rlr�r�r�r��
__classcell__rrr�rrx�s
C
rxcCsd|||fS)ax
    Builds an EC2 metadata URL for fetching information about an instance.

    Example:

        >>> _build_instance_metadata_url('http://169.254.169.254', 'latest', 'meta-data/')
        http://169.254.169.254/latest/meta-data/

    :type url: string
    :param url: URL to metadata service, e.g. 'http://169.254.169.254'

    :type version: string
    :param version: Version of the metadata to get, e.g. 'latest'

    :type path: string
    :param path: Path of the metadata to get, e.g. 'meta-data/'. If a trailing
                 slash is required it must be passed in with the path.

    :return: The full metadata URL
    z%s/%s/%sr)rm�versionr;rrr�_build_instance_metadata_urlmsr��latest�http://169.254.169.254�
meta-data/�cCsHzt|||�}t|||d�WStjjyBtj�d|�YdS0dS)a�
    Returns the instance metadata as a nested Python dictionary.
    Simple values (e.g. local_hostname, hostname, etc.) will be
    stored as string values.  Values such as ancestor-ami-ids will
    be stored in the dict as a list of string values.  More complex
    fields such as public-keys and will be stored as nested dicts.

    If the timeout is specified, the connection to the specified url
    will time out after the specified number of seconds.

    rzzBException caught when trying to retrieve instance metadata for: %sN)r�ryrra�URLErrorr0rerf)r�rmr�rSroZmetadata_urlrrr�get_instance_metadata�s
�r�c
Cs�i}t||d�}zdt|||d�}|�d�}|D]@}t|d|d||d�}	|	ddkrbt�|	�}	|r.|	||<q.|WStjjy�YdS0dS)zF
    Returns the instance identity as a nested Python dictionary.
    zdynamic/instance-identity/rzr{r|rr�N)r�rwr$r	r�rrar�)
r�rmrSroZiidZbase_urlr�r�r�r?rrr�get_instance_identity�s �


r�c
Csbt||d�}t|d||d�}|r^|r^|�|�}i}|D]&}|�d�}	|	d��||	d��<q6|S)Nz	user-dataF)rnrorSr#rr)r�rwr$r6)
r��seprmrSroZud_urlZ	user_data�lZnvpairr@rrr�get_instance_userdata�s

r�z%Y-%m-%dT%H:%M:%SZz%Y-%m-%dT%H:%M:%S.%fZz%a, %d %b %Y %H:%M:%S %Zccsht�Pt�tj�}z"t�tj|�VWt�tj|�nt�tj|�0Wd�n1sZ0YdS)zE
    A context manager to set the locale in a threadsafe manner.
    N)�LOCALE_LOCK�locale�	setlocale�LC_ALL)�nameZsavedrrrr��s
r�cCs|st��}t�t|�SrB)rh�gmtime�strftime�ISO8601)�tsrrr�get_ts�sr�cCs�td���|��}z"tj�|t�}|WWd�Sty�z&tj�|t�}|WYWd�Sty�tj�|t�}|YYWd�S0Yn0Wd�n1s�0YdS)N�C)r�r6�datetime�strptimer��
ValueError�
ISO8601_MS�RFC1123)r��dtrrr�parse_ts�s
r�cCsv|rd||f}|�d�}d}zD|dd�D]0}|r@t||�}q,ttd�|dd���|�}q,|WSYdS0dS)Nz%s.%s�.rrr})r$�getattr�
__import__r/)�module_name�
class_name�modules�c�mrrr�
find_class�s
r�cCs,d}|d7}tj�|||||f�}|��S)z=
    Update your Dynamic DNS record with DNSMadeEasy.com
    z,https://www.dnsmadeeasy.com/servlet/updateipz$?username=%s&password=%s&id=%s&ip=%s)rrY�urlopenr^)�username�passwordZdme_id�
ip_addressZdme_url�srrr�
update_dme�sr�c
Cs
tj�d|�|dur t��}z�|�d�rv|td�d��dd�\}}tj||d�}|�	|�}|�
|�}|�|�n`|r�|r�tj
��}	|	�d|||�tj
�|	�}
tj
�|
�}tj
�|�tj
�|�}|�|���|�d�Wn"�tj�d|�d}Yn0|S)	z�
    Fetch a file based on the URI provided.
    If you do not pass in a file pointer a tempfile.NamedTemporaryFile,
    or None if the file could not be retrieved is returned.
    The URI can be either an HTTP url, or "s3://bucket_name/key_name"
    zFetching %sNzs3://r|r)�aws_access_key_id�aws_secret_access_keyrzProblem Retrieving file: %s)r0re�info�tempfile�NamedTemporaryFiler4rr$�
connect_s3�
get_bucket�get_key�get_contents_to_filerrY�HTTPPasswordMgrWithDefaultRealm�add_password�HTTPBasicAuthHandlerr[�install_openerr��writer^�seekrf)
�uri�filer�r��bucket_name�key_namer��bucketr.ZpassmanZauthhandlerrqr�rrr�
fetch_files4
�



r�c@sTeZdZddd�Zddd�Zdd	�Zd
d�Zeeedd�Zd
d�Z	ee	edd�Z
dS)�ShellCommandTFNcCs0d|_||_t�|_||_||_|j|d�dS)Nr)�cwd)�	exit_code�commandr�log_fp�wait�	fail_fast�run)r�r�r�r�r�rrrr�'szShellCommand.__init__cCs�tj�d|j�tj|jdtjtjtj|d�|_|jr�|j�	�dur|t
�d�|j��}|j
�|d�|j
�|d�q8tj�|j
���|jj|_|jr�|jdkr�td|jd|j��|jSdS)Nz
running:%sT)�shell�stdin�stdout�stderrr�rrzCommand z failed with status )r0rer�r��
subprocess�Popen�PIPE�processr��pollrhri�communicater�r��getvalue�
returncoder�r�rd)r�r�r@rrrr�/s,
�



��zShellCommand.runcCst�dSrB)�AttributeError�r��valuerrr�setReadOnlyEszShellCommand.setReadOnlycCs|jSrB)r�r�rrr�	getStatusHszShellCommand.getStatuszThe exit code for the commandcCs
|j��SrB)r�r�r�rrr�	getOutputNszShellCommand.getOutputz*The STDIN and STDERR output of the command)TFN)N)r�r�r�r�r�r�r��property�statusr��outputrrrrr�%s

��r�cs(eZdZdZ�fdd�Zdd�Z�ZS)�AuthSMTPHandlera�
    This class extends the SMTPHandler in the standard Python logging module
    to accept a username and password on the constructor and to then use those
    credentials to authenticate with the SMTP server.  To use this, you could
    add something like this in your boto config file:

    [handler_hand07]
    class=boto.utils.AuthSMTPHandler
    level=WARN
    formatter=form07
    args=('localhost', 'username', 'password', 'from@abc', ['user1@abc', 'user2@xyz'], 'Logger Subject')
    cs&tt|��||||�||_||_dS)z�
        Initialize the handler.

        We have extended the constructor to accept a username/password
        for SMTP authentication.
        N)r�rr�r�r�)r��mailhostr�r��fromaddr�toaddrs�subjectr�rrr�cs
�zAuthSMTPHandler.__init__c	Cs�z~|j}|stj}t�|j|�}|�|j|j�|�|�}d|j	d�
|j�|�|�t
j��|f}|�|j	|j|�|��Wn,ttfy��Yn|�|�Yn0dS)z�
        Emit a record.

        Format the record and send it to the specified addressees.
        It would be really nice if I could add authorization to this class
        without having to resort to cut and paste inheritance but, no.
        z-From: %s
To: %s
Subject: %s
Date: %s

%s�,N)�mailport�smtplib�	SMTP_PORT�SMTPr�loginr�r��formatrr/r�
getSubject�emailr��
formatdate�sendmail�quit�KeyboardInterrupt�
SystemExit�handleError)r��record�port�smtp�msgrrr�emitps&


�zAuthSMTPHandler.emit)r�r�r��__doc__r�rr�rrr�rrUs

rc@speZdZdZGdd�de�Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�LRUCacheaqA dictionary-like object that stores only a certain number of items, and
    discards its least recently used item when full.

    >>> cache = LRUCache(3)
    >>> cache['A'] = 0
    >>> cache['B'] = 1
    >>> cache['C'] = 2
    >>> len(cache)
    3

    >>> cache['A']
    0

    Adding new items to the cache does not increase its size. Instead, the least
    recently used item is dropped:

    >>> cache['D'] = 3
    >>> len(cache)
    3
    >>> 'B' in cache
    False

    Iterating over the cache returns the keys, starting with the most recently
    used:

    >>> for key in cache:
    ...     print key
    D
    A
    C

    This code is based on the LRUCache class from Genshi which is based on
    `Myghty <http://www.myghty.org>`_'s LRUCache from ``myghtyutils.util``,
    written by Mike Bayer and released under the MIT license (Genshi uses the
    BSD License).
    c@seZdZdd�Zdd�ZdS)zLRUCache._ItemcCsd|_|_||_||_dSrB)�previous�nextr.r�)r�r.r�rrrr��szLRUCache._Item.__init__cCs
t|j�SrB)�reprr�r�rrrr��szLRUCache._Item.__repr__N)r�r�r�r�r�rrrr�_Item�sr!cCst�|_||_d|_d|_dSrB)�dict�_dict�capacity�head�tail)r�r$rrrr��szLRUCache.__init__cCs
||jvSrB)r#r�rrr�__contains__�szLRUCache.__contains__ccs|j}|r|jV|j}qdSrB)r%r.r)r��currrr�__iter__�szLRUCache.__iter__cCs
t|j�SrB)rr#r�rrr�__len__�szLRUCache.__len__cCs|j|}|�|�|jSrB)r#�_update_itemr�)r�r.�itemrrrr��s

zLRUCache.__getitem__cCsR|j�|�}|dur6|�||�}||j|<|�|�n||_|�|�|��dSrB)r#rlr!�_insert_itemr�r+�_manage_size)r�r.r�r,rrr�__setitem__�s

zLRUCache.__setitem__cCs
t|j�SrB)r r#r�rrrr��szLRUCache.__repr__cCs:d|_|j|_|jdur"||j_n||_||_|��dSrB)rr%rr&r.)r�r,rrrr-�s

zLRUCache._insert_itemcCsNt|j�|jkrJ|j|jj=|j|jkr<|jj|_d|j_qd|_|_qdSrB)rr#r$r&r.r%rrr�rrrr.�s

zLRUCache._manage_sizecCsV|j|krdS|j}|j|_|jdur0||j_n||_d|_|j|_||j_|_dSrB)r%rrr&)r�r,rrrrr+�s


zLRUCache._update_itemN)r�r�r�r�objectr!r�r'r)r*r�r/r�r-r.r+rrrrr�s%	
	rc@s>eZdZdZeZd
dd�Zdd�Zdd�Zd	d
�Z	dd�Z
dS)�Passwordzp
    Password object that stores itself as hashed.
    Hash defaults to SHA512 if available, MD5 otherwise.
    NcCs||_|r||_dS)zh
        Load the string from an initial value, this should be the
        raw hashed password.
        N)r5�hashfunc)r�r5r2rrrr�
szPassword.__init__cCs(t|t�s|�d�}|�|���|_dSrJ)rLrM�encoder2�	hexdigestr5r�rrr�sets

zPassword.setcCs
t|j�SrB�r5r�rrrr�szPassword.__str__cCs<|durdSt|t�s |�d�}t|�|����t|j�kS)NFrK)rLrMr3r5r2r4)r��otherrrr�__eq__s


zPassword.__eq__cCs|jrt|j�SdSdSr+)r5rr�rrrr*"s
zPassword.__len__)NN)r�r�r�r�_hashfnr2r�r5r�r8r*rrrrr1s
	r1c
Cs�|pg}|r"dtj�dd�|f}|s6tj�ddd�}|�rĐzltj�ddd�}tjj��}||d<||d	<||d
<tjjdd�|d
<||d<|r�|�	tjj
�|��|r�tjj�
dd�}|�|�tj�|�|�	|�|D]}|�	|�q�tj�ddd�}	tj�dd��r*t�|	ttj�dd���}
n
t�|	�}
tj�dd��r\|
��|
��|
��tj�ddd�}tj�ddd�}|�r�|
�||�|
�|||���|
��Wntj�d�Yn0dS)Nz[%s] %s�Instancezinstance-idZNotificationZsmtp_toZ	smtp_fromr0�FromzReply-To�ToT)�	localtime�Date�Subject�text�html�	smtp_host�	localhostZ	smtp_portZsmtp_tls�	smtp_userr �	smtp_passz
notify failed)r0rk�	get_valuer�mime�	multipart�
MIMEMultipartr�r�attachr@�MIMEText�base�MIMEBase�set_payload�encoders�
encode_base64r
r�int�getbool�ehlo�starttlsr
r�	as_stringrrerf)
r�bodyZ	html_bodyZ	to_string�attachmentsZappend_instance_id�from_stringr�partrB�serverrDrErrr�notify)s^��

��
r[cCsHt|t�r|�d�|St|tj�s.t�|�}t|tj�rD|�d�}|SrJ�rLrMrNrr_�	text_typer3�r�rrr�get_utf8_valueas



r_cCs(t|t�s$t|t�rt|�}n|g}|SrB)rL�list�tupler^rrr�mklistos



rbcCs(t�d|�}t�d|�}t�d|���S)a~Convert camel case to a "pythonic" name.

    Examples::

        pythonize_name('CamelCase') -> 'camel_case'
        pythonize_name('already_pythonized') -> 'already_pythonized'
        pythonize_name('HTTPRequest') -> 'http_request'
        pythonize_name('HTTPStatus200Ok') -> 'http_status_200_ok'
        pythonize_name('UPPER') -> 'upper'
        pythonize_name('') -> ''

    z\1_\2)�_first_cap_regex�sub�_number_cap_regex�_end_cap_regexr3)r��s1�s2rrr�pythonize_namexs
riF�
text/plain�:cCs�tjj��}|D]~\}}t||�}|�dd�\}}	|dkrNtjjj||	d�}
n&tjj�	||	�}
|
�
|�tj�|
�|
j
dd|d�|�|
�q|��}|r�t�}tjd|d	�}
z|
�|�W|
��n
|
��0|��}|S)
a�Description:
    :param content: A list of tuples of name-content pairs. This is used
    instead of a dict to ensure that scripts run in order
    :type list of tuples:

    :param compress: Use gzip to compress the scripts, defaults to no compression
    :type bool:

    :param deftype: The type that should be assumed if nothing else can be figured out
    :type str:

    :param delimiter: mime delimiter
    :type str:

    :return: Final mime multipart
    :rtype: str:
    r|rr@)�_subtypezContent-Disposition�
attachment)�filename�wb)�mode�fileobj)rrGrHrI�guess_mime_typer$r@rKrLrMrNrOrP�
add_headerrJrUr�gzip�GzipFiler��closer�)�content�compress�deftype�	delimiter�wrapperr�ZconZ
definite_type�maintype�subtypeZmime_conZrcontentr>�gzrrr�write_mime_multipart�s(

rcCs>ddddddd�}|}|��D]\}}|�|�r|}q:q|S)z�Description: Guess the mime type of a block of text
    :param content: content we're finding the type of
    :type str:

    :param deftype: Default mime type
    :type str:

    :rtype: <type>:
    :return: <description>
    ztext/x-include-urlztext/x-shellscriptztext/cloud-configztext/upstart-jobztext/part-handlerztext/cloud-boothook)z#includez#!z
#cloud-configz#upstart-jobz
#part-handlerz#cloud-boothook)r�r4)rwryZstarts_with_mappingsZrtypeZ
possible_typeZmimetyperrrrr�s
�
rr� cCst|||td�S)a�
    Compute MD5 hash on passed file and return results in a tuple of values.

    :type fp: file
    :param fp: File pointer to the file to MD5 hash.  The file pointer
               will be reset to its current location before the
               method returns.

    :type buf_size: integer
    :param buf_size: Number of bytes per read request.

    :type size: int
    :param size: (optional) The Maximum number of bytes to read from
                 the file pointer (fp). This is useful when uploading
                 a file in multiple parts where the file is being
                 split inplace into different parts. Less bytes may
                 be available.

    :rtype: tuple
    :return: A tuple containing the hex digest version of the MD5 hash
             as the first element, the base64 encoded version of the
             plain digest as the second element and the data size as
             the third element.
    )�hash_algorithm)�compute_hashr)�fp�buf_size�sizerrr�compute_md5�sr�c
Cs�|�}|��}|r&||kr&|�|�}n
|�|�}|r�t|t�sH|�d�}|�|�|rl|t|�8}|dkrlq�|r�||kr�|�|�}q0|�|�}q0|��}t|�	���
d�}|ddkr�|dd�}|��|}	|�|�|||	fS)NrKrr}r{)�tellr^rLrMr3�updaterr4r�digestrNr�)
r�r�r�r�Zhash_obj�sposr�Z
hex_digestZ
base64_digest�	data_sizerrrr��s.




r�cs�fdd�|D�S)z�
    Takes a specific header name and a dict of headers {"name": "value"}.
    Returns a list of matching header names, case-insensitive.

    cs g|]}|�����kr|�qSr)r3�r&�h�r�rrr(r)z)find_matching_headers.<locals>.<listcomp>r)r�r<rr�r�find_matching_headerssr�cs"t|��}d��fdd�|D��S)z�
    Takes a specific header name and a dict of headers {"name": "value"}.
    Returns a string of all header values, comma-separated, that match the
    input header name, case-insensitive.

    rc3s&|]}�|durt�|�VqdSrBr6r��r<rr�	<genexpr>s�z(merge_headers_by_name.<locals>.<genexpr>)r�r/)r�r<Zmatching_headersrr�r�merge_headers_by_names
r�c@seZdZdZddd�ZdS)�RequestHookz�
    This can be extended and supplied to the connection object
    to gain access to request and response object after the request completes.
    One use for this would be to implement some specific request logging.
    FcCsdSrBr)r�rY�responserarrr�handle_request_data'szRequestHook.handle_request_dataN)F)r�r�r�rr�rrrrr�!sr�cCs:|rt|t�sdS|�d�r dSt|�d��dkr6dSdS)zQ
    Detect (naively) if the hostname is an IPV6 host.
    Return a boolean.
    F�[TrkrT)rLr5r4rr$��hostnamerrr�host_is_ipv6+s
r�cCs:|��}t|�r&|�dd�d�d�S|�dd�dSdS)z�
    Given a hostname that may have a port name, ensure that the port is trimmed
    returning only the host, including hostnames that are IPV6 and may include
    brackets.
    z]:rrz[]rkN)r6r�r$r�rrr�
parse_hostBsr��strictcCs�t|tjtjf�st|�}tjrTt|tj�r8|�d|�St|tj�r~|�d�|Sn*t|tj�rd|St|tj�r~|�d�}|Stdt	|���dS)a�Returns a UTF8-encodable string in PY3, UTF8 bytes in PY2.

    This method is similar to six's `ensure_str()`, except it also
    makes sure that any bytes passed in can be decoded using the
    utf-8 codec (and raises a UnicodeDecodeError if not). If the
    object isn't a string, this method will attempt to coerce it
    to a string with `str()`. Objects without `__str__` property
    or `__repr__` property will raise an exception.
    rKznot expecting type "%s"N)
rLrr]�binary_typer5�PY2r3rN�	TypeError�type)r��errorsrrr�get_utf8able_strQs


r�cCsHt|t�r|�d�|St|tj�s.t�|�}t|tj�rD|�d�}|SrJr\r^rrrr_os



cOs`dd�}dd�}|fi|��\}}}t�|�}t�|�}||�}|�|�}||7}t||�dS)aA Python 2/3 compatible analogue to the print function.

    This function writes text to a file descriptor as the
    builtin print function would, favoring utf-8 encoding.
    Arguments and return values are the same as documented in
    the Python 2 print function.
    c	[s`t�dddtjfg�}|��D]8\}}||vrNd}t|�|d�|������q|||<q|�	�S)a&Validates keyword arguments that would be used in Print
        Valid keyword arguments, mirroring print(), are 'sep',
        'end', and 'file'. These must be of types string, string,
        and file / file interface respectively.
        Returns the above kwargs of the above types.
        )r�� )�endr{r�z9{} is not a valid keyword argument. Please use one of: {}r�)
�collections�OrderedDict�sysr�r�r�rr/r8r�)�kwargs�expected_keywordsr.r��	error_msgrrr�	_get_args�s"����
zprint_to_fd.<locals>._get_argscWsTg}|D]F}t|tjtjf�s&t|�}t|tj�r>|�|�q|�t�|��q|S)zAGets a `bytes` string for each item in list of printable objects.)rLrr�r]r5r��
ensure_binary)�objects�byte_objectsr,rrr�_get_byte_strings�sz&print_to_fd.<locals>._get_byte_stringsN)rr�r/�write_to_fd)r�r�r�r�r�r�r�r�rrr�print_to_fd}s


r�cCs�tjr|�|�dSt|t�rtt|d�r2d|jvs>t|tj�rJ|�|�q�t|d�rb|j	�|�q�|�t�
|��n&d|jvr�|�t�|��n
|�|�dS)zGWrite given data to given file descriptor, doing any conversions neededNrp�b�buffer)rr�r�rLrMr`rp�io�BytesIOr��ensure_textr�)�fdr�rrrr��s


�

r�)NN)N)N)TrRN)N)r�r�r�Nr�)r�r�Nr�)r�Nr�Nr�)N)N)NNN)NNNNT)Frjrk)r�N)r�)[rr�rh�logging.handlersrr0�
boto.providerr�r�r�r
r��rer�Zemail.mime.multipartrZemail.mime.baseZemail.mime.text�email.utils�email.encodersrt�	threadingr�r��boto.compatrrrr�
contextlibr�hashlibrrr9r	Zboto.compat.jsonr
�ImportErrorr�r*�compilercrerfrrArIrQrwryr"rxr�r�r�r�r�r�r��Lockr�r�r�r�r�r�r�r0r��handlers�SMTPHandlerrrr1r[r_rbrirrrr�r�r�r�r�r�r�r�r�r�rrrr�<module>&s�



�
:


#
v�
�
�






#07w&�
8	
-
	

<

Youez - 2016 - github.com/yon3zu
LinuXploit