�����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 : 91.108.106.230  /  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/cloudlinux/venv/lib64/python3.11/site-packages/alembic/script/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/cloudlinux/venv/lib64/python3.11/site-packages/alembic/script/__pycache__/base.cpython-311.pyc
�

2�R��h���ddlmZddlmZddlZddlZddlZddlZddlZddl	m
Z
ddlmZddlm
Z
ddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZerddlmZddlm Z ddl!m"Z"ddl!m#Z#ddl$m%Z%	ddl&m'Z'n
#e($rdZ'YnwxYwee)ee)fZ*ej+d��Z,ej+d��Z-ej+d��Z.ej+d ��Z/ej+d!��Z0d"Z1ej+d#��Z2ej+d$��Z3Gd%�d&��Z4Gd'�d(ej%��Z5dS))�)�annotations)�contextmanagerN)�
ModuleType)�Any)�cast)�Iterator)�List)�Mapping)�Optional)�Sequence)�Set)�Tuple)�
TYPE_CHECKING)�Union���revision)�write_hooks�)�util)�	migration)�not_none)�Config)�MessagingOptions)�RevisionStep)�	StampStep)�Revision)�tzz (?!\.\#|__init__)(.*\.py)(c|o)?$z(?!\.\#|__init__)(.*\.py)$z([a-f0-9]+)\.py$z(upgrade|downgrade)_([a-z0-9]+)z\w+z%(rev)s_%(slug)sz
, *|(?: +)z
, *|(?: +)|\:c��eZdZdZedddddddedej��f	dad�Ze	dbd���Z
ejd���Zdcd�Z
eddd ���Ze					dedfd'���Z	dgdhd+�Zdid/�Zdjd2�Zdkd4�Zdld6�Zdmd<�Zdnd=�Zdod?�Zdnd@�ZdodA�ZdpdE�ZdqdF�ZdrdI�ZdsdJ�Ze	dK���Z dtdN�Z!dudO�Z"dvdQ�Z#dwdS�Z$						dxdyd]�Z%dzd`�Z&dS){�ScriptDirectoryaHProvides operations upon an Alembic script directory.

    This object is useful to get information as to current revisions,
    most notably being able to get at the "head" revision, for schemes
    that want to test if the current revision in the database is the most
    recent::

        from alembic.script import ScriptDirectory
        from alembic.config import Config
        config = Config()
        config.set_main_option("script_location", "myapp:migrations")
        script = ScriptDirectory.from_config(config)

        head_revision = script.get_current_head()



    �(NF�utf-8r�dir�str�
file_template�truncate_slug_length�
Optional[int]�version_locations�Optional[List[str]]�
sourceless�bool�output_encoding�timezone�
Optional[str]�hook_config�Optional[Mapping[str, str]]�recursive_version_locations�messaging_opts�return�Nonec�x�||_||_||_|pd|_||_||_t
j|j��|_	||_
||_|	|_|
|_
tj|tj��s4t#jdtj�|��z���dS)Nr!zVPath doesn't exist: %r.  Please use the 'init' command to create a new scripts folder.)r#r%r(r&r*r,r�RevisionMap�_load_revisions�revision_mapr-r/r1r2�os�access�F_OKr�CommandError�path�abspath)�selfr#r%r&r(r*r,r-r/r1r2s           �d/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/alembic/script/base.py�__init__zScriptDirectory.__init__Js������*���!2���$8�$>�B��!�$���.���$�0��1E�F�F��� ��
�&���+F��(�,����y��b�g�&�&�	��#�"�$&�G�O�O�C�$8�$8�9���
�	�	�c�n�|j}t|��dkrtjd���|dS)Nrz"Multiple version_locations presentr)�_version_locations�lenrr<)r?�locs  r@�versionszScriptDirectory.versionsls4���%���s�8�8�a�<�<��#�$H�I�I�I��q�6�MrBc��|jrd�|jD��Stj�tj�|jd����fS)Nc�p�g|]3}tj�tj|������4S�)r9r=r>r�coerce_resource_to_filename)�.0�locations  r@�
<listcomp>z6ScriptDirectory._version_locations.<locals>.<listcomp>wsA����������� @�� J� J�K�K���rBrG)r(r9r=r>�joinr#�r?s r@rDz"ScriptDirectory._version_locationsts]���!�	J��� $� 6����
�
�G�O�O�B�G�L�L���:�$F�$F�G�G�I�IrB�Iterator[Script]c#�K�|jrd�|jD��}n|jg}t��}|D]�}t�||��D]�}tj�|��}||vrtj
d|z���=|�|��tj�|��}tj�
|��}t�|||��}|���|V�����dS)Nc�P�g|]#}tj�|���!|��$SrJ)r9r=�exists)rL�verss  r@rNz3ScriptDirectory._load_revisions.<locals>.<listcomp>�s<�������7�>�>�$�'�'�����rBzJFile %s loaded twice! ignoring. Please ensure version_locations is unique.)r(rDrG�set�Script�_list_py_dirr9r=�realpathr�warn�add�basename�dirname�_from_filename)	r?�paths�dupesrU�	file_path�	real_path�filename�dir_name�scripts	         r@r7zScriptDirectory._load_revisions~s0�����!�	$��� �3����E�E��]�O�E������	�	�D�#�0�0��t�<�<�
�
�	��G�,�,�Y�7�7�	���%�%��I�7�9B�C������	�	�)�$�$�$��7�+�+�I�6�6���7�?�?�9�5�5���.�.�t�X�x�H�H���>�������
�	�	rB�configrc
��|�d��}|�tjd���|�d��}|�t|��}nd}|�d��}|r�|�d��}ddtjdd	d
�}	||}|�t�|��}	nGd�|�|��D��}	n'#t$r}
td|z��|
�d}
~
wwxYwd}	|�d
��}|r6tt�|����tj
dd�<|�d��dk}ttj|��|�dt ��||�d��dk|�dd��|	|�d��|�di��||j��
�
S)z�Produce a new :class:`.ScriptDirectory` given a :class:`.Config`
        instance.

        The :class:`.Config` need only have the ``script_location`` key
        present.

        �script_locationNz0No 'script_location' key found in configuration.r&r(�version_path_separator� �:�;)N�spacer9rkrlc��g|]}|�|��SrJrJ)rL�xs  r@rNz/ScriptDirectory.from_config.<locals>.<listcomp>�s-��)�)�)��a�)��)�)�)rBzV'%s' is not a valid value for version_path_separator; expected 'space', 'os', ':', ';'�prepend_sys_pathrr1�truer%r*r,r"r-�post_write_hooks)	r%r&r*r,r(r-r/r1r2)�get_main_optionrr<�intr9�pathsep�_split_on_space_comma�split�KeyError�
ValueError�list�_split_on_space_comma_colon�sysr=r rK�_default_file_template�get_sectionr2)
�clsrfrh�tslr&�version_locations_strri�
split_on_path�
split_charr(�kerp�rvls
             r@�from_configzScriptDirectory.from_config�sp��!�0�0�1B�C�C���"��#�E���
��$�$�%;�<�<���?�#&�s�8�8� � �#'� � &� 6� 6�7J� K� K�� �"	%�%+�%;�%;�(�&�&�"�
���j�����M�
�,9�*�-�
��%�(=�(C�(C�-�)�)�%�%�)�)�#8�#>�#>�z�#J�#J�)�)�)�%�%���
�
�
� �7�9O�P����	�����
����"!%��!�1�1�2D�E�E���	��+�1�1�2B�C�C���C�H�R�a�R�L��$�$�%B�C�C�v�M����,�_�=�=� �0�0��!7���"6��-�-�l�;�;�v�E�"�2�2�3D�g�N�N�/��+�+�J�7�7��*�*�+=�r�B�B�(+�!�0�

�

�

�
	
s�C�
C;�#C6�6C;�ancestor�multiple_heads�start�end�
resolution�Iterator[None]c#�`K�	dV�dS#tj$r^}|�tt|j��}|�tt|j��}|sd}|||d�z}t
j|��|�d}~wtj$rD}|sd}||p|j	t
j
|j��d�z}t
j|��|�d}~wtj$r&}|�
d|j	z}t
j|��|�d}~wtj
$r%}	t
j|	jd��|	�d}	~	wwxYw)NzgRequested range %(start)s:%(end)s does not refer to ancestor/descendant revisions along the same branch�r�r�z�Multiple head revisions are present for given argument '%(head_arg)s'; please specify a specific target revision, '<branchname>@%(head_arg)s' to narrow to a specific head, or 'heads' for all heads)�head_arg�headsz(Can't locate revision identified by '%s'r)r�RangeNotAncestorErrorrr�lower�upperrr<�
MultipleHeads�argument�format_as_commar��ResolutionError�
RevisionError�args)
r?r�r�r�r�r��rna�mh�re�errs
          r@�_catch_revision_errorsz&ScriptDirectory._catch_revision_errors�s�����#	:��E�E�E�E�E���-�	7�	7�	7��}��S�#�)�,�,���{��3��	�*�*���
�J�� �E�#�">�">�>�H��#�H�-�-�3�6������%�
	<�
	<�
	<�!�
�J��,��.�2�;��-�b�h�7�7�/�/��N��#�N�3�3��;������'�	8�	8�	8��!�G��K��
��#�J�/�/�R�7������%�	:�	:�	:��#�C�H�Q�K�0�0�c�9�����	:���s9�
�D-�AA2�2D-�?C�D-�!C6�6D-� D(�(D-�baser��headc#��K�|�||���5|j�||dd���D]}tt|��V��	ddd��dS#1swxYwYdS)a-Iterate through all revisions.

        :param base: the base revision, or "base" to start from the
         empty revision.

        :param head: the head revision; defaults to "heads" to indicate
         all head revisions.  May also be "head" to indicate a single
         head revision.

        r�TF)�	inclusive�assert_relative_lengthN)r�r8�iterate_revisionsrrW)r?r�r��revs    r@�walk_revisionszScriptDirectory.walk_revisionss������
(�
(�t��
(�
>�
>�	(�	(��(�:�:��d�d�5�;���
(�
(���6�3�'�'�'�'�'�'�
(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(s�9A!�!A%�(A%�id_�
_RevIdType�Tuple[Optional[Script], ...]c���|���5ttttdf|j�|����cddd��S#1swxYwYdS)z�Return the :class:`.Script` instance with the given rev identifier,
        symbolic name, or sequence of identifiers.

        .N)r�rrrrWr8�
get_revisions�r?r�s  r@r�zScriptDirectory.get_revisions-s���
�
(�
(�
*�
*�	�	���h�v�&��+�,��!�/�/��4�4���	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�AA'�'A+�.A+�Tuple[str, ...]�Set[Optional[Script]]c���|���5tttt|j�|����cddd��S#1swxYwYdS�N)r�rr
rrWr8�_get_all_currentr�s  r@�get_all_currentzScriptDirectory.get_all_current8s���
�
(�
(�
*�
*�	�	���H�V�$�%�t�'8�'I�'I�#�'N�'N���	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�AA%�%A)�,A)�Optional[Script]c���|���5ttt|j�|����cddd��S#1swxYwYdS)z�Return the :class:`.Script` instance with the given rev id.

        .. seealso::

            :meth:`.ScriptDirectory.get_revisions`

        N)r�rrrWr8�get_revisionr�s  r@r�zScriptDirectory.get_revision>s����
(�
(�
*�
*�	O�	O����(�$�*;�*H�*H��*M�*M�N�N�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O����	O�	O�	O�	O�	O�	Os�8A�A�!A�%Optional[Union[str, Tuple[str, ...]]]c��|���5|j�|��\}}ddd��n#1swxYwY|sdS|dkr|S|dS)z[Convert a symbolic revision, i.e. 'head' or 'base', into
        an actual revision number.Nr�r)r�r8�_resolve_revision_number)r?r�r��branch_names    r@�as_revision_numberz"ScriptDirectory.as_revision_numberJs����
(�
(�
*�
*�	O�	O�#�0�I�I�#�N�N��C��	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O����	O�	O�	O�	O��	��4�
�G�^�^��J��q�6�Ms�?�A�Ar��!Union[str, Tuple[str, ...], None]r��kwrc�f�ttt|jj||fi|����S)a�Iterate through script revisions, starting at the given
        upper revision identifier and ending at the lower.

        The traversal uses strictly the `down_revision`
        marker inside each migration script, so
        it is a requirement that upper >= lower,
        else you'll get nothing back.

        The iterator yields :class:`.Script` objects.

        .. seealso::

            :meth:`.RevisionMap.iterate_revisions`

        )rrrWr8r�)r?r�r�r�s    r@r�z!ScriptDirectory.iterate_revisions[s;��*��V��/�D��/��u�C�C��C�C�
�
�	
rBc��|�d���5|j���cddd��S#1swxYwYdS)aGReturn the current head revision.

        If the script directory has multiple heads
        due to branching, an error is raised;
        :meth:`.ScriptDirectory.get_heads` should be
        preferred.

        :return: a string revision number.

        .. seealso::

            :meth:`.ScriptDirectory.get_heads`

        z}The script directory has multiple heads (due to branching).Please use get_heads(), or merge the branches using alembic merge.�r�N)r�r8�get_current_headrPs r@r�z ScriptDirectory.get_current_headus����
(�
(�!�)�
�
�	8�	8��$�5�5�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�	8�	8s�=�A�A�	List[str]c�4�t|jj��S)aUReturn all "versioned head" revisions as strings.

        This is normally a list of length one,
        unless branches are present.  The
        :meth:`.ScriptDirectory.get_current_head()` method
        can be used normally when a script directory
        has only one head.

        :return: a tuple of string revision numbers.
        )rzr8r�rPs r@�	get_headszScriptDirectory.get_heads�s���D�%�+�,�,�,rBc��|���}t|��dkrtjd���|r|dSdS)a#Return the "base" revision as a string.

        This is the revision number of the script that
        has a ``down_revision`` of None.

        If the script directory has multiple bases, an error is raised;
        :meth:`.ScriptDirectory.get_bases` should be
        preferred.

        rz@The script directory has multiple bases. Please use get_bases().rN)�	get_basesrErr<)r?�basess  r@�get_basezScriptDirectory.get_base�sT����� � ���u�:�:��>�>��#�*���
��	���8�O��4rBc�4�t|jj��S)z�return all "base" revisions as strings.

        This is the revision number of all scripts that
        have a ``down_revision`` of None.

        )rzr8r�rPs r@r�zScriptDirectory.get_bases�s���D�%�+�,�,�,rB�destination�current_rev�List[RevisionStep]c������d|���5��||d���}�fd�tt|����D��cddd��S#1swxYwYdS)NzFDestination %(end)s is not a valid upgrade target from current head(s)�r�r�T)�
implicit_basec�Z��g|]'}tj��j|����(SrJ)r�
MigrationStep�upgrade_from_scriptr8�rLrer?s  �r@rNz1ScriptDirectory._upgrade_revs.<locals>.<listcomp>�sF��������'�;�;��%�v�����rB)r�r��reversedrz�r?r�r��revss`   r@�
_upgrade_revszScriptDirectory._upgrade_revs�s�����
(�
(�*��)�
�
�
	�
	�
�)�)��[��*���D�����'�t�D�z�z�2�2�	���
	�
	�
	�
	�
	�
	�
	�
	�
	�
	�
	�
	����
	�
	�
	�
	�
	�
	s�AA&�&A*�-A*c�����d|���5��||d���}�fd�|D��cddd��S#1swxYwYdS)NzHDestination %(end)s is not a valid downgrade target from current head(s)r�T)�select_for_downgradec�Z��g|]'}tj��j|����(SrJ)rr��downgrade_from_scriptr8r�s  �r@rNz3ScriptDirectory._downgrade_revs.<locals>.<listcomp>�sF��������'�=�=��%�v�����rB)r�r�r�s`   r@�_downgrade_revszScriptDirectory._downgrade_revs�s�����
(�
(�*��)�
�
�
	�
	�
�)�)��[�t�*���D�����#�	���
	�
	�
	�
	�
	�
	�
	�
	�
	�
	�
	�
	����
	�
	�
	�
	�
	�
	s�&A�A�Ar�List[StampStep]c
������d���5��|��}g}|sd}g}tj|��D]R}|rN|��j�ttt|��|d������Stj
|��}��|��pdg}|D�]}}|�"|��fd�|D�����'||vr�,t�j�|g����}	t�j�
|g����}
|	�|��r[|
�|��rJ�d�|D��}tj||jdd�j��}|�|����|
�|��rEd	�|D��}tj||jdd�j��}|�|����Ftjd
|jdd�j��}|�|����|cddd��S#1swxYwYdS)NzCMultiple heads are present; please specify a single target revisionr�r�T)�include_dependenciesc	�T��g|]$}tj|jddd�j����%S)NFT)rrrr8)rLr�r?s  �r@rNz/ScriptDirectory._stamp_revs.<locals>.<listcomp>sL���	�	�	�!%�&�/� $�
� $� %� $� $� 1���	�	�	rBc��g|]	}|j��
SrJr�rLr�s  r@rNz/ScriptDirectory._stamp_revs.<locals>.<listcomp>���!K�!K�!K�D�$�-�!K�!K�!KrBFc��g|]	}|j��
SrJrr�s  r@rNz/ScriptDirectory._stamp_revs.<locals>.<listcomp>(r�rBrJ)r�r�r�to_tuple�extendr8�filter_for_lineagerrrW�unique_listrV�_get_descendant_nodes�_get_ancestor_nodes�intersectionrrr�append)
r?rr��
heads_revs�steps�filtered_headsr��dests�dest�descendants�	ancestors�
todo_heads�steps
`            r@�_stamp_revszScriptDirectory._stamp_revs�s<����
(�
(�%�)�
�
�[	�[	�
�+�+�E�2�2�J��E��
"�!��+-�N��}�X�.�.�
�
����"�)�)��)�<�<� ��&�!1�:�>�>��15�=�������"�-�n�=�=�N��&�&�x�0�0�:�T�F�E��?
�?
���<��L�L�	�	�	�	�)7�	�	�	������^�+�+��"��%�;�;�T�F�C�C���� �� 1� E� E�t�f� M� M�N�N�	��+�+�N�;�;�"� )�5�5�n�E�E�E�E�E�!K�!K�N�!K�!K�!K�J�$�.�"��
����)���D��L�L��&�&�&���+�+�N�;�;��"L�!K�N�!K�!K�!K�J�$�.�"��
����)���D��L�L��&�&�&��%�.��D�M�4��t�7H���D��L�L��&�&�&���w[	�[	�[	�[	�[	�[	�[	�[	�[	�[	�[	�[	����[	�[	�[	�[	�[	�[	s�H3I�I�Ic�:�tj|jd��dS)z�Run the script environment.

        This basically runs the ``env.py`` script present
        in the migration environment.   It is called exclusively
        by the command functions in :mod:`alembic.command`.


        �env.pyN)r�load_python_filer#rPs r@�run_envzScriptDirectory.run_env=s��	
��d�h��1�1�1�1�1rBc��tj�tj�|jd����S)Nr�)r9r=r>rOr#rPs r@�env_py_locationzScriptDirectory.env_py_locationHs(���w���r�w�|�|�D�H�h�?�?�@�@�@rB�srcr�c���tjdtj�|����fi|j��5tj|||jfi|��ddd��dS#1swxYwYdS�NzGenerating )r�statusr9r=r>r2�template_to_filer,)r?r�r�r�s    r@�_generate_templatez"ScriptDirectory._generate_templateLs���
�[�1�"�'�/�/�$�/�/�1�1�
�
�59�5H�
�
�	I�	I�
�!�#�t�T�-A�H�H�R�H�H�H�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I����	I�	I�	I�	I�	I�	Is�A�A#�&A#c���tjdtj�|����fi|j��5t
j||��ddd��dS#1swxYwYdSr�)rr�r9r=r>r2�shutil�copy)r?r�r�s   r@�
_copy_filezScriptDirectory._copy_fileRs���
�[�1�"�'�/�/�$�/�/�1�1�
�
�59�5H�
�
�	#�	#�
�K��T�"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	#�	#s�A�A�"Ar=c��tj�|��}tj�|��sIt	jd|��fi|j��5tj|��ddd��dS#1swxYwYdSdS)NzCreating directory )r9r=r>rTrr�r2�makedirs)r?r=s  r@�_ensure_directoryz!ScriptDirectory._ensure_directoryXs����w���t�$�$���w�~�~�d�#�#�	"���,�d�,�,���04�0C���
"�
"���D�!�!�!�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"����
"�
"�
"�
"�
"�
"�	"�	"s�A;�;A?�A?�datetime.datetimec��|j��t�tjd���tj|j��}|�+tj|j�����}|�tjd|jz���tj����tj	������
|��}ntj���}|S)Nz>The library 'python-dateutil' is required for timezone supportzCan't locate timezone: %s)�tzinfo)r-rrr<�gettzr��datetime�utcnow�replace�tzutc�
astimezone�now)r?r�create_dates   r@�_generate_create_datez%ScriptDirectory._generate_create_date`s����=�$��z��'�+����
�X�d�m�,�,�F��~���$�-�"5�"5�"7�"7�8�8���~��'�/�$�-�?�����!�(�(�*�*�����
�
��+�+���F�#�#�
�K�#�+�/�/�1�1�K��rB�revid�message�refresh�splice�Optional[bool]�
branch_labels�version_path�
depends_on�Optional[_RevIdType]c	���|�d}	t�|��n7#tj$r%}
t	j|
jd��|
�d}
~
wwxYw��d���5tttddf�j�|����}|D]
}|dksJ��	ddd��n#1swxYwYtt|����t|��krt	jd	�������}
|�xt�j��d
krY|D]A}|�=t#|t��sJ�t$j�|j��}n�Bt	jd���n�j}t$j�t$j�|����}�jD]'}t$j�|��|krn�(t	jd|z����jr��|����||||
��}|s*|D]'}|�#|jst	jd
|jz����(|rW����5d��fd�t	j|��D��D��}ddd��n#1swxYwYnd}�jt$j��jd��|ftA|��tj!tEd�|D������t	j#|��tj!|��|
tj$|�|ndd�|	���j%}|rtMj'||��	t�(�|��}n7#tj$r%}
t	j|
jd��|
�d}
~
wwxYw|�dS|r/|j)s(t	jd|j�d|�d|j�d�����j�*|��|S)a�Generate a new revision file.

        This runs the ``script.py.mako`` template, given
        template arguments, and creates a new file.

        :param revid: String revision id.  Typically this
         comes from ``alembic.util.rev_id()``.
        :param message: the revision message, the one passed
         by the -m argument to the ``revision`` command.
        :param head: the head revision to generate against.  Defaults
         to the current "head" if no branches are present, else raises
         an exception.
        :param splice: if True, allow the "head" version to not be an
         actual head; otherwise, the selected head must be a head
         (e.g. endpoint) revision.
        :param refresh: deprecated.

        Nr�rz{Multiple heads are present; please specify the head revision on which the new revision should be based, or perform a merge.r�r.r�z"Duplicate head revisions specifiedrzAMultiple version locations present, please specify --version-pathz7Path %s is not represented in current version locationszeRevision %s is not a head revision; please specify --splice to create a new branch from this revisionc�8�g|]\}}||jvr|n|j��SrJ)rr)rLr��deps   r@rNz5ScriptDirectory.generate_revision.<locals>.<listcomp>�sE��'�'�'�!��S��c�/�/�/��C���'�'�'rBc�b��g|]+}t�j�|����|f��,SrJ)rr8r�)rLr r?s  �r@rNz5ScriptDirectory.generate_revision.<locals>.<listcomp>�sG���%�%�%��"�$�"3�"@�"@��"E�"E�F�F��L�%�%�%rBzscript.py.makoc3�,K�|]}|�|jndV��dSr�r)rL�hs  r@�	<genexpr>z4ScriptDirectory.generate_revision.<locals>.<genexpr>�s,����K�K��A�M�a�j�j�t�K�K�K�K�K�KrBz
empty message)�up_revision�
down_revisionrrr�commarzVersion z specified branch_labels z, however the migration file zb does not have them; have you upgraded your script.py.mako to include the 'branch_labels' section?)+rW�
verify_rev_idrr�rr<r�r�rrrr8r�rErVrrD�
isinstancer9r=r]rG�normpathr>r(r�	_rev_path�is_head�to_listrrOr#r$�tuple_rev_as_scalar�tupler�r�r/r�
_run_hooks�
_from_pathr�add_revision)r?rrr�rrrrrr�r�r�r#r�head_�	norm_path�	vers_pathr=�resolved_depends_onrrres`                    r@�generate_revisionz!ScriptDirectory.generate_revisionysl���<�<��D�	:�� � ��'�'�'�'���%�	:�	:�	:��#�C�H�Q�K�0�0�c�9�����	:�����
(�
(�&�)�
�
�	#�	#���h�z�*�C�/�0��!�/�/��5�5���E��
#�
#���F�{�{�{�{�{�
#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#��s�5�z�z�?�?�c�%�j�j�(�(��#�$H�I�I�I��0�0�2�2�����4�*�+�+�a�/�/�"�	�	�E��(�)�%��8�8�8�8�8�')�w���u�z�'B�'B����)�
�+�8����� $�}���G�$�$�R�W�_�_�\�%B�%B�C�C�	��0�	�	�I��w���	�*�*�i�7�7���8��#�$�&2�3���
�
�!�	1��"�"�<�0�0�0��~�~�l�E�7�K�H�H���	��
�
���$�U�]�$��+�M��.�)������	'��,�,�.�.�	
�	
�'�'�%�%�%�%�#'�<�
�#;�#;�%�%�%�	'�'�'�#�	
�	
�	
�	
�	
�	
�	
�	
�	
�	
�	
����	
�	
�	
�	
��#'������G�L�L���#3�4�4��
	
��E�
�
�"�6��K�K�U�K�K�K�K�K����-�
�6�6��3�4G�H�H�#��&�&�2�G�G��
	
�
	
��
	
�
	
�
	
� �+���	;��"�4�)9�:�:�:�	:��&�&�t�T�2�2�F�F���%�	:�	:�	:��#�C�H�Q�K�0�0�c�9�����	:�����>��4��	��!5�	��#�#�
�?�?�?�M�M�M�6�;�;�;�	@���
�	
��&�&�v�.�.�.��
sQ�"�A� A�A�/AC
�
C�C�+K�K�K�"N>�>O2�
 O-�-O2�rev_idrc��t|�����}d�t�|pd�������}t
|��|jkr,|d|j��dd��ddz}d|j	||||j
|j|j|j
|j|jd�	zz}t j�||��S)N�_�rrz%s.py)	r��slug�epoch�year�month�day�hour�minute�second)rt�	timestamprO�_slug_re�findallr�rEr&�rsplitr%r>r?r@rArBrCr9r=)r?r=r8rrr=r<rcs        r@r+zScriptDirectory._rev_paths����K�)�)�+�+�,�,���x�x��(�(���B�7�7�8�8�>�>�@�@���t�9�9�t�0�0�0��3�$�3�3�4�;�;�C��C�C�A�F��L�D�������#�(�$�*�"��#�(�%�,�%�,�
�
�
�

���w�|�|�D�(�+�+�+rB)r#r$r%r$r&r'r(r)r*r+r,r$r-r.r/r0r1r+r2rr3r4�r3r$)r3rQ)rfrr3r )NNNNN)r�r.r�r.r�r.r�r.r�r.r3r�)r�r�)r�r$r�r$r3rQ)r�r�r3r�)r�r�r3r�)r�r$r3r�)r�r.r3r�)r�r�r�r�r�rr3rQ)r3r.)r3r�)r�r$r�r$r3r�)r�r$r�r.r3r�)rr�r�r�r3r�)r3r4)r�r$r�r$r�rr3r4)r�r$r�r$r3r4)r=r$r3r4)r3r	)NFFNNN)rr$rr.r�r.rr+rrrr.rr.rrr�rr3r�)
r=r$r8r$rr.rr	r3r$)'�__name__�
__module__�__qualname__�__doc__r}rr�
EMPTY_DICTrA�propertyrG�memoized_propertyrDr7�classmethodr�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr7r+rJrBr@r r 5s���������,4�.0�15� �&�"&�37�,1�+/�4����,
�,
� � � � � �D�����X��
��J�J���J�����:�N
�N
�N
��[�N
�`�#'�(,�#�!�$(�
+:�+:�+:�+:��^�+:�\/6�(�(�(�(�(�&	�	�	�	�����
O�
O�
O�
O�����"
�
�
�
�48�8�8�8�0-�-�-�-�����,-�-�-�-�����$����$^�^�^�^�@	2�	2�	2�	2��A�A��X�A�I�I�I�I�#�#�#�#�"�"�"�"�����:#��!&�'+�&*�+/�Q�Q�Q�Q�Q�f,�,�,�,�,�,rBr c���eZdZUdZd%�fd�Zded<	ded<	dZd	ed
<	ed&d���Zed&d
���Z	ed&d���Z
d�Z					d'd(d�Z				d)d*d�Z
d&d�Zed+d���Zed,d!���Zed-d$���Z�xZS).rWz�Represent a single revision file in a ``versions/`` directory.

    The :class:`.Script` instance is returned by methods
    such as :meth:`.ScriptDirectory.iterate_revisions`.

    �modulerr8r$r=c���||_||_t���||jtjt|dd��d���tjt|dd��d������dS)NrrJ)�defaultr)r�dependencies)rRr=�superrAr&rr��getattr)r?rRr8r=�	__class__s    �r@rAzScript.__init__1s���������	�
������� ��-�����6�6����������d�3�3�R����
	�		
�		
�		
�		
�		
rBNr�_db_current_indicatorr3c�B�tjd|j��dS)�)Return the docstring given in the script.z

r)r�rw�longdocrPs r@�docz
Script.docIs���x����-�-�a�0�0rBc��|jj}|rHt|jd��r|�|jj��}|���SdS)r[�_alembic_source_encodingr;)rRrL�hasattr�decoder_�strip)r?r]s  r@r\zScript.longdocOs[���k�!���	��t�{�$>�?�?�
��j�j��K�8�����9�9�;�;���2rBc�j�d|j�|jrdnd�|jrdnd�|jrdnd�|jrdnd�d�}|jr|d|����d�z
}n|d	|����d�z
}|jr|d
tj|j��zz
}|jr|dtj|j	��zz
}|j
r |dtj|j
���d�z
}|d
|j�d�z
}|dd�d�|j
���D����zz
}|S)NzRev: � (head)r;� (branchpoint)�
 (mergepoint)�
 (current)�
zMerges: zParent: zAlso depends on: %s
zBranches into: %s
zBranch names: zPath: z
%s
c3� K�|]	}d|zV��
dS)z    %sNrJ)rL�paras  r@r$z#Script.log_entry.<locals>.<genexpr>}s&����L�L�$�h��o�L�L�L�L�L�LrB)rr,�is_branch_point�is_merge_pointrY�_format_down_revisionrUrr��nextrevrr=rOr\�
splitlines)r?�entrys  r@�	log_entryzScript.log_entry]s����
�M�M���-�I�I�2�-� $� 4�<���"�<�#�2�:�O�O��:� �6�>�L�L�B�>�>�
����	F��E�t�'A�'A�'C�'C�'C�'C�E�E�E�E��E�t�'A�'A�'C�'C�'C�'C�E�E�E���	��,��$�T�%6�7�7��
�E���	��*��$�T�\�2�2��
�E���	��E��$�T�%7�8�8�8�8��
�E�	������,�,��
���I�I�L�L�$�,�2I�2I�2K�2K�L�L�L�L�L�
�	
���rBc��|����d|j�|jrdnd�|jrdnd�|jrdnd�d|j��S)N� -> rdr;rerfz, )rmrr,rkrlr]rPs r@�__str__zScript.__str__�si���&�&�(�(�(�(��M�M���-�I�I�2�-� $� 4�<���"�<�#�2�:�O�O��:�:��H�H�

�	
rBFT�include_branchesr+�include_doc�include_parents�tree_indicators�head_indicatorsc���|j}|rT|jr4|����dtj|j���d|��}n|����d|��}|�J�|r&|jr|dtj|j��zz
}|s|r-||jrdnd�|jr	|jsdnd�|jrdnd��z
}|r||j	rd	nd�|j
rd
nd��z
}|r
|d|jzz
}|S)Nz (z) -> rsz (%s)rdr;z (effective head)rgrerfz, %s)rrUrmrr�r�
_is_real_headr,rYrkrlr])r?rurvrwrxry�texts       r@�
_head_onlyzScript._head_only�s}���}���	I�� �
I��.�.�0�0�0�0��(��):�;�;�;�;��D����&*�%?�%?�%A�%A�%A�%A�4�4�H�������	G�� 2�	G��G�d�2�4�3E�F�F�F�F�D��	�o�	��!�/�7�	�	�R�7��<��(,�(:��#�#���!%� :�B����B��
�D��	��$(�$8�@� � �b�@�#'�#6�>���B�>��
�D��	&��F�T�X�%�%�D��rB�verbosec�D�|r|jS|�||||��Sr�)rqr})r?r~rurvrwrxs      r@�
cmd_formatzScript.cmd_format�s3���	��>�!��?�?� �+�����
rBc�F�|jsdStj|j��S)Nz<base>)r&rr��_versioned_down_revisionsrPs r@rmzScript._format_down_revision�s'���!�	H��8��'��(F�G�G�GrB�	scriptdirr r�c�t�tj�|��\}}|�|||��Sr�)r9r=rwr^)rr�r=�dir_rcs     r@r1zScript._from_path�s3������t�,�,���h��!�!�)�T�8�<�<�<rBr�c�H��	�g}tj|d���D�]\}}}|�d��r�t|��D]5}|�tj�||�����6|jrtj�|d���	tj��	��r@d�|D���|�	��	fd�tj
�	��D����|jsn|�����|S)NT)�topdown�__pycache__c�D�h|]}|�d��d��S)�.r)rw)rLrcs  r@�	<setcomp>z&Script._list_py_dir.<locals>.<setcomp>�s)��J�J�J��X�^�^�C�0�0��3�J�J�JrBc3��K�|]A}|�d��d�v�tj��|��V��BdS)r�rN)rwr9r=rO)rL�pyc�names�
py_cache_paths  ��r@r$z&Script._list_py_dir.<locals>.<genexpr>�sY�����!�!���9�9�S�>�>�!�,�E�9�9�����]�C�8�8�9�9�9�9�!�!rB)
r9�walk�endswith�sortedr�r=rOr*rTr��listdirr1�sort)
rr�r=r_�root�dirs�filesrcr�r�s
        @@r@rXzScript._list_py_dir�s@������!#���t�!<�!<�!<�	�	��D�$���}�}�]�+�+�
��"�5�M�M�
;�
;�����R�W�\�\�$��9�9�:�:�:�:��#�
� "����T�=� A� A�
��7�>�>�-�0�0�	�K�J�E�J�J�J�E��L�L�!�!�!�!�!�#%�:�m�#<�#<�!�!�!�����8�
���
�I�I�K�K�K�K��rBr�rcc��|jrt�|��}nt�|��}|sdS|�d��}|jr3|�d��dk}|�d��dk}ndx}}|s|r�t
j�t
j�||����}t
j�t
j�||dz����}	|s|r|	rdStj
||��}
t|
d��sIt�|��}|stj
d|z���|�d��}n|
j}t|
|t
j�||����S)Nrr�c�oFrz�Could not determine revision id from filename %s. Be sure the 'revision' variable is declared inside the script (please see 'Upgrading from Alembic 0.1 to 0.2' in the documentation).)r*�_sourceless_rev_file�match�_only_source_rev_file�groupr9r=rTrOrr�r`�_legacy_revr<rrW)
rr�r�rc�py_match�py_filename�is_c�is_o�	py_exists�
pyc_existsrR�mrs
             r@r^zScript._from_filename�s�����	=�+�1�1�(�;�;�H�H�,�2�2�8�<�<�H��	��4��n�n�Q�'�'����	 ��>�>�!�$�$��+�D��>�>�!�$�$��+�D�D���D�4��	�4�	�����r�w�|�|�D�+�'F�'F�G�G�I���������T�;��;L�(M�(M�N�N�J�
�
�D�
�Z�
��t��&�t�X�6�6���v�z�*�*�	'��!�!�(�+�+�A��	
&��'�F��	�����7�7�1�:�:�����H��f�h�����T�8�(D�(D�E�E�ErB)rRrr8r$r=r$rH)FFFTT)rur+rvr+rwr+rxr+ryr+r3r$)FFFT)r~r+rur+rvr+rwr+rxr+r3r$)r�r r=r$r3r�)r�r r=r$r3r�)r�r r�r$rcr$r3r�)rIrJrKrLrA�__annotations__rYrNr]r\rqrtr}r�rmrPr1rXr^�
__classcell__)rXs@r@rWrW(s�����������
�
�
�
�
�
�����B�
�I�I�I�(�,0��0�0�0�0�4��1�1�1��X�1�
�����X���!�!�!��X�!�F
�
�
�"'�!� %� $� $�
$�$�$�$�$�R"'�!� %� $�

�
�
�
�
�H�H�H�H��=�=�=��[�=��"�"�"��[�"�H�/F�/F�/F��[�/F�/F�/F�/F�/FrBrW)6�
__future__r�
contextlibrr
r9r�rr|�typesr�typingrrrr	r
rrr
rrrr;rrr�runtimerrrfrr�runtime.migrationrr�script.revisionr�dateutilr�ImportErrorr$r��compiler�r�r��_mod_def_rerEr}rvr{r rWrJrBr@�<module>r�s?��"�"�"�"�"�"�%�%�%�%�%�%�����	�	�	�	�	�	�	�	�
�
�
�
�
�
�
�
������������������������������������������������������������� � � � � � ��������������������������������������+�������)�)�)�)�)�)�0�0�0�0�0�0�-�-�-�-�-�-�*�*�*�*�*�*��������������	
�B�B�B������3���
�%�
&�
�!�r�z�"E�F�F��"��
�#@�A�A���b�j�,�-�-���b�j�;�<�<���2�:�f����+��"��
�=�1�1��(�b�j�)9�:�:��p,�p,�p,�p,�p,�p,�p,�p,�fzF�zF�zF�zF�zF�X�
�zF�zF�zF�zF�zFs�(B/�/B9�8B9

Youez - 2016 - github.com/yon3zu
LinuXploit