����JFIFXX�����    $.' ",#(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�8ds|\���Ҿp6�Ҵ���]��.����6�z<�v��@]�i%��$j��~�g��J>��no����pM[me�i$[����s�o�ᘨ�˸ nɜG-�ĨU�ycP�3.DB�li�;��hj���x7Z^�N�h������N3u{�:j�x�힞��#M&��jL P@_���� P��&��o8������9�����@Sz6�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*-iH��g�D�)� E�m�|�ؘbҗ�a��Ҿ����t4���o���G��*oCN�rP���Q��@z,|?W[0�����:�n,jWiE��W��$~/�hp\��?��{(�0���+�Y8rΟ�+����>S-S����VN;�}�s?.����� w�9��˟<���Mq4�Wv'��{)0�1mB��V����W[�����8�/<� �%���wT^�5���b��)iM� pg�N�&ݝ��VO~�q���u���9� ����!��J27����$O-���! �:�%H��� ـ����y�ΠM=t{!S�� oK8������t<����è:a������[�����ա�H���~��w��Qz`�po�^ ����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�_�uX6��3?nk��Wy�f;^*B� ��@�~a�`��Eu������+���6�L��.ü>��}y���}_�O�6�͐�:�YrG�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�!039C� �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 Xp3�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@:)ִ�:�]��hv�E�w���T�l��P���"Ju�}��وV J��G6��. J/�Qgl߭�e�����@�z�Zev2u�)]կ�����7x���s�M�-<ɯ�c��r�v�����@��$�ޮ}lk���a���'����>x��O\�ZFu>�����ck#��&:��`�$�ai�>2Δ����l���oF[h��lE�ܺ�Πk:)���`�� $[6�����9�����kOw�\|���8}������ބ:��񶐕��I�A1/�=�2[�,�!��.}gN#�u����b��� ~��݊��}34q����d�E��Lc��$��"�[q�U�硬g^��%B �z���r�pJ�ru%v\h1Y�ne`ǥ:g���pQM~�^�Xi� ��`S�:V29.�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&Ú����2g�}&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��f24;�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)*Pt����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���#yw��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���/$�WPw���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��BS�('$�ɻ� �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 : 213.165.242.4  /  Your IP : 216.73.217.83
Web Server : Apache
System : Linux amsngx344.inmotionhosting.com 4.18.0-553.40.1.lve.el8.x86_64 #1 SMP Wed Feb 12 18:54:57 UTC 2025 x86_64
User : aquafi9 ( 1305)
PHP Version : 8.1.34
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /opt/imh-python/lib/python3.9/site-packages/pygments/lexers/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/imh-python/lib/python3.9/site-packages/pygments/lexers/__pycache__/sql.cpython-39.pyc
a

a�h��@sbdZddlZddlZddlmZmZmZmZmZddl	m
Z
mZmZm
Z
mZmZmZmZmZmZmZddlmZmZddlmZmZmZmZmZddlmZm Z m!Z!m"Z"m#Z#ddlm$Z$dd	lm%Z%gd
�Z&e�'d�Z(e�'d�Z)e�'d
ej*�Z+e�'dej*�Z,e�'d�Z-e�'d�Z.e�'dej*�Z/e�'dej*�Z0e�'d�Z1e$j2e$j3e$j4Z5dd�Z6Gdd�d�Z7Gdd�de7e�Z8Gdd�de7e�Z9Gdd�de7e�Z:e�'d�Z;e�'d�Z<e�'d �Z=e�'d!�Z<e�'d"�Z>e�'d#�Z?Gd$d%�d%�Z@Gd&d'�d'e�ZAGd(d)�d)e�ZBGd*d+�d+e�ZCGd,d-�d-e�ZDGd.d/�d/e�ZEGd0d1�d1e�ZFGd2d3�d3e�ZGGd4d5�d5e�ZHdS)6a�
    pygments.lexers.sql
    ~~~~~~~~~~~~~~~~~~~

    Lexers for various SQL dialects and related interactive sessions.

    Postgres specific lexers:

    `PostgresLexer`
        A SQL lexer for the PostgreSQL dialect. Differences w.r.t. the SQL
        lexer are:

        - keywords and data types list parsed from the PG docs (run the
          `_postgres_builtins` module to update them);
        - Content of $-strings parsed using a specific lexer, e.g. the content
          of a PL/Python function is parsed using the Python lexer;
        - parse PG specific constructs: E-strings, $-strings, U&-strings,
          different operators and punctuation.

    `PlPgsqlLexer`
        A lexer for the PL/pgSQL language. Adds a few specific construct on
        top of the PG SQL lexer (such as <<label>>).

    `PostgresConsoleLexer`
        A lexer to highlight an interactive psql session:

        - identifies the prompt and does its best to detect the end of command
          in multiline statement where not all the lines are prefixed by a
          prompt, telling them apart from the output;
        - highlights errors in the output and notification levels;
        - handles psql backslash commands.

    `PostgresExplainLexer`
        A lexer to highlight Postgres execution plan.

    The ``tests/examplefiles`` contains a few test files with data to be
    parsed by these lexers.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�Lexer�
RegexLexer�
do_insertions�bygroups�words)�Punctuation�
Whitespace�Text�Comment�Operator�Keyword�Name�String�Number�Generic�Literal)�get_lexer_by_name�
ClassNotFound)�KEYWORDS�	DATATYPES�PSEUDO_TYPES�PLPGSQL_KEYWORDS�EXPLAIN_KEYWORDS)�MYSQL_CONSTANTS�MYSQL_DATATYPES�MYSQL_FUNCTIONS�MYSQL_KEYWORDS�MYSQL_OPTIMIZER_HINTS)�_googlesql_builtins)�_tsql_builtins)
�GoogleSqlLexer�
PostgresLexer�PlPgsqlLexer�PostgresConsoleLexer�PostgresExplainLexer�SqlLexer�TransactSqlLexer�
MySqlLexer�SqliteConsoleLexer�RqlLexerz.*?
z^(?:sqlite|   ...)>(?= )z\s+LANGUAGE\s+'?(\w+)'?z\bDO\bz\[[a-zA-Z_]\w*\]z`[a-zA-Z_]\w*`z\bgo\bz
\bdeclare\s+@z@[a-zA-Z_]\w*\bccs�d}t�|j|��|��d��}|dur>|�|�d��}n|tt�|jtd|�	�d�|�	����}|r�|�|d�d��}n8tt
�|jtd|�	�d�|�	����}|r�|�d�}|�	d�t|�d�fV|�	d�tj|�d�fV|�	d	�t|�d	�fV|�r"|�
|�d
��EdHn|�	d
�t|�d
�fV|�	d�t|�d�fV|�	d�tj|�d�fV|�	d
�t|�d
�fVdS)z�Parse the content of a $-string using a lexer

    The lexer is chosen looking for a nearby LANGUAGE or assumed as
    plpgsql if inside a DO statement and no LANGUAGE has been found.
    N�d�r�����plpgsql������)�language_re�match�text�end�
_get_lexer�group�list�finditer�max�start�do_rer�	Delimiter�get_tokens_unprocessed)�lexerr6�lx�m�rE��/root/rpmbuild/BUILDROOT/imh-python39-modules-3.9.7-92.el8.x86_64/opt/imh-python/lib/python3.9/site-packages/pygments/lexers/sql.py�language_callbackYs. ��
rGcs(eZdZdZ�fdd�Zdd�Z�ZS)�PostgresBasea�Base class for Postgres-related lexers.

    This is implemented as a mixin to avoid the Lexer metaclass kicking in.
    this way the different lexer don't have a common Lexer ancestor. If they
    had, _tokens could be created on this ancestor and not updated for the
    other classes, resulting e.g. in PL/pgSQL parsed as SQL. This shortcoming
    seem to suggest that regexp lexers are not really subclassable.
    c's$||_t�j|g|�R�EdHdS�N)r7�superrA)�selfr7�args��	__class__rErFrA�sz#PostgresBase.get_tokens_unprocessedc	Cs�|��dkrtdi|j��S|g}|�d�r>|�|dd��|�d�rZ|�|dd��|�d�r�|�d�r�|�|dd��|D]0}zt|fi|j��WSty�Yq�0q�dS)N�sql�
postgresql�plr/�ur,)rP)�lowerr�options�
startswith�append�endswithr)rK�lang�triesrCrErErFr9�s

zPostgresBase._get_lexer)�__name__�
__module__�__qualname__�__doc__rAr9�
__classcell__rErErMrFrH}srHc@sBeZdZdZdZddgZdgZdZdZe	j
Zdefd	e
jfd
e
jdfdd
�dd�eeD��dejfeedd�efdefdefdejfdejfdejfdeejej�dfdeejej�dfde fdefdejfde!fgd
e
jdfd e
jd!fd"e
jfd#e
jfgd$ejfd%ejfd&ejd!fgd'ejfd(ejfd)ejd!fgd*�Z"d+S),r!z2
    Lexer for the PostgreSQL dialect of SQL.
    zPostgreSQL SQL dialectrP�postgresztext/x-postgresql�https://www.postgresql.org�1.5�\s+�--.*\n?�/\*�multiline-comments�(�|ccs|]}|�dd�VqdS)� rbN)�replace)�.0�srErErF�	<genexpr>�s�zPostgresLexer.<genexpr>z)\b�\b��suffixz[+*/<>=~!@#%^&|`?-]+z::�\$\d+z&([0-9]*\.[0-9]*|[0-9]+)(e[+-]?[0-9]+)?�[0-9]+z((?:E|U&)?)(')�stringz((?:U&)?)(")�quoted-identz$(?s)(\$)([^$]*)(\$)(.*?)(\$)(\2)(\$)z	[a-z_]\w*�:(['"]?)[a-z]\w*\b\1z[;:()\[\]{},.]�\*/�#pop�[^/*]+�[/*]�[^']+�''�'�[^"]+�""�")�rootrerrrsN)#rZr[r\r]�name�aliases�	mimetypes�url�
version_added�re�
IGNORECASE�flagsrr
�Single�	Multiline�joinrrr
�Builtinrrrr�Variabler�Float�Integerrr�AffixrGr�tokensrErErErFr!�sX
����

�
�
��r!c@s�eZdZdZdZdgZdgZdZdZe	j
Zdd�ej
��D�Z
ee
d	�D]6\ZZed
ekrJeeedd�efe
d	e<[q�qJd
s�Jd��dejfdefdejfdejfge
d	dd
�<dS)r"z7
    Handle the extra syntax in Pl/pgSQL language.
    zPL/pgSQLr.ztext/x-plpgsqlz4https://www.postgresql.org/docs/current/plpgsql.htmlracCsi|]\}}||dd��qSrIrE�rjr��staterErErF�
<dictcomp>��zPlPgsqlLexer.<dictcomp>rr+rmrnrzSQL keywords not foundz\%[a-z]\w*\bz:=z\<\<[a-z]\w*\>\>z\#[a-z]\w*\bN)rZr[r\r]r�r�r�r�r�r�r�r�r!r��items�	enumerate�i�patternrrrrr
r�r�Label�PseudorErErErFr"�s*��r"c@s�eZdZdZdZgZejZdd�e	j
��D�Z
e
d�de
jdf�dedfd	efde
jfd
ejfdejfdejfd
ejfge
d<dS)�PsqlRegexLexerz�
    Extend the PostgresLexer adding support specific for psql commands.

    This is not a complete psql lexer yet as it lacks prompt support
    and output rendering.
    z'PostgreSQL console - regexp based lexercCsi|]\}}||dd��qSrIrEr�rErErFr�r�zPsqlRegexLexer.<dictcomp>rz\\[^\s]+zpsql-commandz\nrbrt�'(''|[^'])*'z	`([^`])*`z[^\s]+N)rZr[r\r]r�r�r�r�r�r!r�r�rVrr�r	rr
r�rr��Backtick�SymbolrErErErFr��s 
��r�z^(\S.*?)??[=\-\(\$\'\"][#>]z\s*\\z
;\s*(--.*?)?$z(\s*)(\\.+?)(\s+)$z(ERROR|FATAL):zS((?:DEBUG|INFO|NOTICE|WARNING|ERROR|FATAL|HINT|DETAIL|CONTEXT|LINE [0-9]+):)(.*?\n)c@s4eZdZdZdd�Zdd�Zdd�Zdd	�ZeZd
S)�	lookaheadz0Wrap an iterator and allow pushing back an item.cCst|�|_d|_dSrI)�iter�	_nextitem)rK�xrErErF�__init__#s
zlookahead.__init__cCs|SrIrE)rKrErErF�__iter__'szlookahead.__iter__cCs
||_|SrI)r�)rKr�rErErF�send*szlookahead.sendcCs$|jdur|j}d|_|St|j�SrI)r��nextr�)rK�nirErErF�__next__.s

zlookahead.__next__N)	rZr[r\r]r�r�r�r�r�rErErErFr�!sr�c@s6eZdZdZdZgd�ZdgZdZdZdZ	dd	�Z
d
S)r#z"
    Lexer for psql sessions.
    zPostgreSQL console (psql))�psqlzpostgresql-consolezpostgres-consoleztext/x-postgresql-psqlr`razpsql/psql_session.txtccs�tfi|j��}tt�|��}d}g}|D]�}|�d�r`|s`td	i|j��}|�|�EdHq�t�	|�}|dur�|�
t|�dtj
|��fgf�||t|���d�7}n||7}t�	|�s�t�|�r*q�q*t||�|��EdHtj}	|D]�}t�	|�}|du�r|�|�qt�	|�}
|
du�r�|
�d��d��sL|
�d��d��rRtj}	|
�d�tj|
�d�fV|
�d�|	|
�d�fVq�d|	|fVq�dSqdS)
N��$�consolerr+�ERROR�FATALr/)r�)r�rTr��line_re�findallrUrrA�	re_promptr6rV�lenr�Promptr:�re_psql_command�re_end_command�searchr�Outputr��
re_message�Errorr>�Strong)rK�datarO�lines�curcode�
insertions�linerBZmpromptZ	out_tokenZmmsgrErErFrACsN

�
��





�z+PostgresConsoleLexer.get_tokens_unprocessedN)rZr[r\r]r�r�r�r�r��_examplerArErErErFr#7sr#c&@sPeZdZdZdZdgZdgZdgZdZdZ	de
fd	efd
ee
je
�dfdee
jee
�dfed
dd�ejfdeeje�fdejfdeeje
�dfdeeje
e�dfdeee
e�dfeddd�ejdfdejdfdeeeeje�dfeddd�ejfeddd�e
jfdee
je
e�feedd�efd ejfd!ejfd"ejfd#ejfd$eeee
j�fd%e
dfd&ejfd'ejfd(ejfd)e
jfd*ejfd+eeje
e�d,fd-eeje
�fd.ejfd/eejee
je
e�fg d0e
d1fd2e
d3fd4e
jfd5efgd6ee
je
�dfd7ee
jee
�dfd0e
d8fd9e
fd:e
jfd;e
jfd<e
jfd=e
dfd>e
dfd?e
jfd@e
jfdAe
jfdBe
jfdCe
jfdDefdEe
fdFe
fd2e
d3fgdGee
e
je
�d3fdHe
jd3fgdIe
fdDefdJe
jfdKejfdLejfd2e
d3fgdMeeje
j�fdNejdfdOejdfgdPee
jeeee�fdQe
fgd0e
fdRe
jfd2e
d3fgdSe
fdTej fdUe
jfdLejfdDefgdV�	Z!dWS)Xr$z*
    Handle PostgreSQL EXPLAIN output
    zPostgreSQL EXPLAIN dialectzpostgres-explainz	*.explainztext/x-postgresql-explainz:https://www.postgresql.org/docs/current/using-explain.htmlz2.15z(:|\(|\)|ms|kB|->|\.\.|\,|\/)z(\s+)z
(cost)(=?)�instrumentationz(actual)( )(=?))�actualzMemory Usagez
Disk UsageZMemoryZBucketsZBatchesZ
originally�row�rowsZHitsZMissesZ	EvictionsZ	OverflowszPlanned Partitionsrmrnz.(hit|read|dirtied|written|write|time|calls)(=)z(shared|temp|local)z(Sort Method)(: )�sortz1(Sort Key|Group Key|Presorted Key|Hash Key)(:)( )�object_namez(Cache Key|Cache Mode)(:)( ))�Join FilterzSubplans Removed�Filterz
Merge Condz	Hash Condz
Index CondzRecheck CondzHeap BlockszTID Condz
Run ConditionzOrder Byz
Function CallzTable Function CallzInner UniquezParams EvaluatedzSingle CopyZSamplingzOne-Time Filterr�Z	Relationsz
Remote SQL�	predicatez	Conflict �conflictz(InitPlan|SubPlan)( )(\d+)( )�	init_plan)zSort Methodr�z
Planning timez
Planning TimezExecution timezExecution TimezWorkers PlannedzWorkers LaunchedZBuffersZPlanningZWorkerzQuery IdentifierZTimezFull-sort GroupszPre-sorted Groups)zRows Removed by Join FilterzRows Removed by FilterzRows Removed by Index RecheckzHeap Fetchesznever executedz(I/O Timings)(:)( )z"((Right|Left|Full|Semi|Anti) Join)z%(Parallel |Async |Finalize |Partial )ZBackwardz(Intersect|Except|Hash)z(CTE)( )(\w*)?z
(on|using)r�z
-?\d+\.\d+z(-?\d+)z(true|false)z\s*QUERY PLAN\s*\n\s*-+z(Settings)(:)( )�settingz!(JIT|Functions|Options|Timing)(:)zG(Inlining|Optimization|Expressions|Deforming|Generation|Emission|Total)z(Trigger)( )(\S*)(:)( )z\(z#pushz\)rvz(never executed)z[^)(]+z(\(cost)(=?)z(\(actual)( )(=?)�
expressionz(on)z&\w+(\.\w+)*( USING \S+| \w+ USING \S+)z\"?\w+\"?(?:\.\"?\w+\"?)?z\'\S*\'z,\n�,z"\*SELECT\*( \d+)?"(.\w+)?z"\*VALUES\*(_\d+)?"(.\w+)?z"ANY_subquery"rpz::\w+z +r~z
\[\.\.\.\]z(\()([^\n]*)(\))z[^\n]*z=|\.\.z(rows|width|time|loops)z\d+\.\d+z(\d+)z(Resolution: )(\w+)z(Arbiter \w+:)z
(Filter: )z ([a-z_]*?)(\s*)(=)(\s*)(\'.*?\')z\, zreturns \$\d+(,\$\d+)?z:|kBz.(quicksort|top-N|heapsort|Average|Memory|Peak)z(external|merge|Disk|sort))	rr�r�r�r�r�r�r�r�N)"rZr[r\r]r�r��	filenamesr�r�r�rrrr
�Classrr
r�rrr��Preprocrr��	Exceptionr�Typer�rr��Constant�	AttributeZPrepocr�rErErErFr$�s������	
�������a��#
��	

������r$c@s�eZdZdZdZdgZdgZdgZdZdZ	e
jZde
fd	ejfd
ejdfedd
d�efedd
d�ejfdefdejfdejfdejfdefdefgd
ejdfdejdfdejfdejfgd�Zdd�ZdS)r%z
    Lexer for Structured Query Language. Currently, this lexer does
    not recognize any special syntax except ANSI SQL.
    �SQLrO�*.sqlz
text/x-sqlz!https://en.wikipedia.org/wiki/SQLr�rbrcrdre(�ZABORTZABSZABSOLUTEZACCESSZADAZADDZADMINZAFTERZ	AGGREGATEZALIASZALLZALLOCATEZALTERZANALYSEZANALYZE�AND�ANYZAREZASZASCZ
ASENSITIVEZ	ASSERTIONZ
ASSIGNMENTZ
ASYMMETRIC�ATZATOMICZ
AUTHORIZATIONZAVGZBACKWARDZBEFOREZBEGINZBETWEENZBITVARZ
BIT_LENGTHZBOTHZBREADTHZBY�CZCACHE�CALLZCALLEDZCARDINALITYZCASCADEZCASCADEDZCASEZCASTZCATALOGZCATALOG_NAMEZCHAINZCHARACTERISTICSZCHARACTER_LENGTHZCHARACTER_SET_CATALOGZCHARACTER_SET_NAMEZCHARACTER_SET_SCHEMAZCHAR_LENGTHZCHECKZCHECKED�
CHECKPOINTZCLASSZCLASS_ORIGINZCLOBZCLOSEZCLUSTERZCOALESCE�COBOLZCOLLATEZ	COLLATIONZCOLLATION_CATALOGZCOLLATION_NAMEZCOLLATION_SCHEMAZCOLUMNZCOLUMN_NAMEZCOMMAND_FUNCTIONZCOMMAND_FUNCTION_CODE�COMMENTZCOMMITZ	COMMITTEDZ
COMPLETIONZCONDITION_NUMBERZCONNECTZ
CONNECTIONZCONNECTION_NAMEZ
CONSTRAINTZCONSTRAINTSZCONSTRAINT_CATALOGZCONSTRAINT_NAMEZCONSTRAINT_SCHEMAZCONSTRUCTORZCONTAINS�CONTINUEZ
CONVERSIONZCONVERT�COPYZ
CORRESPONDINGZCOUNTZCREATEZCREATEDBZ
CREATEUSERZCROSSZCUBEZCURRENTZCURRENT_DATEZCURRENT_PATHZCURRENT_ROLEZCURRENT_TIMEZCURRENT_TIMESTAMPZCURRENT_USERZCURSORZCURSOR_NAMEZCYCLEZDATAZDATABASEZDATETIME_INTERVAL_CODEZDATETIME_INTERVAL_PRECISIONZDAYZ
DEALLOCATEZDECLARE�DEFAULTZDEFAULTSZ
DEFERRABLEZDEFERREDZDEFINEDZDEFINER�DELETEZ	DELIMITERZ
DELIMITERSZDEREFZDESCZDESCRIBEZ
DESCRIPTORZDESTROYZ
DESTRUCTORZ
DETERMINISTICZDIAGNOSTICSZ
DICTIONARYZ
DISCONNECTZDISPATCHZDISTINCTZDOZDOMAINZDROPZDYNAMICZDYNAMIC_FUNCTIONZDYNAMIC_FUNCTION_CODEZEACH�ELSEZELSIF�ENCODING�	ENCRYPTED�ENDzEND-EXECZEQUALS�ESCAPEZEVERYZ	EXCEPTIONZEXCEPTZ	EXCLUDINGZ	EXCLUSIVEZEXECZEXECUTEZEXISTINGZEXISTSZEXPLAINZEXTERNALZEXTRACT�FALSEZFETCHZFINALZFIRSTZFORZFORCEZFOREIGNZFORTRANZFORWARD�FOUNDZFREEZFREEZEZFROMZFULLZFUNCTION�GZGENERALZ	GENERATED�GET�GLOBALZGOZGOTOZGRANTZGRANTEDZGROUPZGROUPINGZHANDLERZHAVINGZ	HIERARCHYZHOLDZHOSTZIDENTITYZIFZIGNOREZILIKEZ	IMMEDIATEZIMMEDIATELYZ	IMMUTABLEZIMPLEMENTATIONZIMPLICIT�INZ	INCLUDINGZ	INCREMENTZINDEXZ
INDITCATORZINFIXZINHERITSZ
INITIALIZEZ	INITIALLYZINNERZINOUTZINPUTZINSENSITIVEZINSERTZINSTANTIABLEZINSTEADZ	INTERSECTZINTOZINVOKERZISZISNULLZ	ISOLATIONZITERATEZJOINZKEYZ
KEY_MEMBERZKEY_TYPEZLANCOMPILER�LANGUAGEZLARGEZLASTZLATERALZLEADINGZLEFTZLENGTH�LESSZLEVELZLIKEZLIMITZLISTENZLOADZLOCALZ	LOCALTIMEZLOCALTIMESTAMPZLOCATIONZLOCATORZLOCKZLOWERZMAPZMATCH�MAXZMAXVALUEZMESSAGE_LENGTHZMESSAGE_OCTET_LENGTHZMESSAGE_TEXTZMETHODZMINZMINUTEZMINVALUEZMODZMODEZMODIFIESZMODIFYZMONTHZMOREZMOVEZMUMPSZNAMESZNATIONALZNATURALZNCHARZNCLOBZNEWZNEXT�NOZ
NOCREATEDBZNOCREATEUSER�NONE�NOT�NOTHINGZNOTIFYZNOTNULLZNULLZNULLABLEZNULLIFZOBJECTZOCTET_LENGTHZOFZOFFZOFFSETZOIDSZOLD�ONZONLYZOPENZ	OPERATIONZOPERATORZOPTION�OPTIONS�ORZORDERZ
ORDINALITYZOUTZOUTERZOUTPUTZOVERLAPSZOVERLAYZ
OVERRIDINGZOWNERZPADZ	PARAMETERZ
PARAMETERSZPARAMETER_MODEZPARAMETER_NAMEZPARAMETER_ORDINAL_POSITIONZPARAMETER_SPECIFIC_CATALOGZPARAMETER_SPECIFIC_NAMEZPARAMETER_SPECIFIC_SCHEMA�PARTIALZPASCALZPENDANTZPERIODZPLACINGZPLIZPOSITIONZPOSTFIXZPRECEEDSZ	PRECISION�PREFIXZPREORDERZPREPAREZPRESERVEZPRIMARYZPRIORZ
PRIVILEGESZ
PROCEDURALZ	PROCEDUREZPUBLIC�READZREADSZRECHECKZ	RECURSIVEZREFZ
REFERENCESZREFERENCINGZREINDEXZRELATIVEZRENAMEZ
REPEATABLEZREPLACE�RESETZRESTARTZRESTRICTZRESULTZRETURNZRETURNED_LENGTHZRETURNED_OCTET_LENGTHZRETURNED_SQLSTATEZRETURNSZREVOKEZRIGHTZROLEZROLLBACKZROLLUPZROUTINEZROUTINE_CATALOGZROUTINE_NAMEZROUTINE_SCHEMAZROWZROWSZ	ROW_COUNTZRULEZ
SAVE_POINTZSCALEZSCHEMAZSCHEMA_NAMEZSCOPEZSCROLLZSEARCHZSECONDZSECURITYZSELECTZSELFZ	SENSITIVEZSERIALIZABLEZSERVER_NAMEZSESSIONZSESSION_USERZSETZSETOFZSETSZSHAREZSHOWZSIMILAR�SIMPLEZSIZEZSOMEZSOURCE�SPACEZSPECIFICZSPECIFICTYPEZ
SPECIFIC_NAMEr�ZSQLCODEZSQLERRORZSQLEXCEPTIONZSQLSTATEZSQLWARNINIGZSTABLEZSTARTZSTATEZ	STATEMENTZSTATICZ
STATISTICSZSTDIN�STDOUTZSTORAGEZSTRICTZ	STRUCTUREZSTYPEZSUBCLASS_ORIGINZSUBLISTZ	SUBSTRINGZSUCCEEDSZSUMZ	SYMMETRICZSYSIDZSYSTEMZSYSTEM_USERZTABLEZ
TABLE_NAMEz TEMP�TEMPLATE�	TEMPORARYZ	TERMINATEZTHANZTHENZTIME�	TIMESTAMPZ
TIMEZONE_HOURZTIMEZONE_MINUTEZTOZTOASTZTRAILINGZTRANSACTIONZTRANSACTIONS_COMMITTEDZTRANSACTIONS_ROLLED_BACKZTRANSACTION_ACTIVEZ	TRANSFORMZ
TRANSFORMSZ	TRANSLATEZTRANSLATIONZTREATZTRIGGERZTRIGGER_CATALOGZTRIGGER_NAMEZTRIGGER_SCHEMAZTRIM�TRUEZTRUNCATEZTRUSTEDZTYPEZUNCOMMITTEDZUNDERZUNENCRYPTEDZUNIONZUNIQUE�UNKNOWNZUNLISTENZUNNAMEDZUNNESTZUNTILZUPDATEZUPPER�USAGE�USERZUSER_DEFINED_TYPE_CATALOGZUSER_DEFINED_TYPE_NAMEZUSER_DEFINED_TYPE_SCHEMAZUSINGZVACUUMZVALIDZ	VALIDATORZVALUES�VARIABLE�VERBOSE�VERSION�VERSIONSZ
VERSIONINGZVIEWZVOLATILEZWHENZWHENEVERZWHEREZWITHZWITHOUTZWORK�WRITEZYEARZZONErmrn)ZARRAYZBIGINT�BINARYZBITZBLOBZBOOLEANZCHARZ	CHARACTERZDATEZDECZDECIMAL�FLOAT�INTZINTEGERZINTERVAL�NUMBERZNUMERICZREALZSERIALZSMALLINTZVARCHARZVARYINGZINT8ZSERIAL8ZTEXTz[+*/<>=~!@#%^&|`?-]rqr��"(""|[^"])*"z[a-z_][\w$]*�[;:()\[\],.]rurvrwrx�rrecCsdSrIrE)rKr7rErErF�analyse_text�szSqlLexer.analyse_textN)rZr[r\r]r�r�r�r�r�r�r�r�r�rr
r�r�rrr
r�rrr�rr�rr�rrErErErFr%:sF
W�X�Y���l

��tr%c@s`eZdZdZdZddgZdgZdgZdZdZ	e
jZd	e
fd
ejfdejdfeej�efeejd
d�ejfeejd
d�ejfeejd
d�ejfdeee
ej�feejd
d�efdeeee�fde j!fde j"fde j"fde j"fde j#fde$jfde$j%fde&fdej'fdej(fdeeje&�fdefdej(j)fgdejdfdejdfd ejfd!ejfgd"�Z*d#d$�Z+d%S)&r&z�
    Transact-SQL (T-SQL) is Microsoft's and Sybase's proprietary extension to
    SQL.

    The list of keywords includes ODBC and keywords reserved for future use..
    zTransact-SQL�tsqlzt-sqlr�ztext/x-tsqlzhttps://www.tsql.infor�rbz--.*[$|\n]?rdrermrnz(goto)(\s+)(\w+\b)z(\[)([^]]+)(\])�0x[0-9a-f]+�[0-9]+\.[0-9]*(e[+-]?[0-9]+)?z\.[0-9]+(e[+-]?[0-9]+)?�[0-9]+e[+-]?[0-9]+rqr�rz[;(),.]z@@\w+z@\w+z(\w+)(:)z#?#?\w+�\?rurvrwrxrcCs�d}t�|�rd}n�tt�|��}tt�|��}||}|dkrV|d|krV|d7}n"||krh|d7}n|dkrx|d7}t�|�dur�|d7}t�|�dur�|d7}|S)Nrg�?r+r/��?皙�����?皙�����?)�tsql_declare_rer�r��name_between_backtick_rer��name_between_bracket_re�tsql_variable_re�
tsql_go_re�r7ZratingZname_between_backtick_countZname_between_bracket_countZdialect_name_countrErErFr�s.
��
�

zTransactSqlLexer.analyse_textN),rZr[r\r]r�r�r�r�r�r�r�r�r�rr
r�r�rrZ	OPERATORSrZOPERATOR_WORDS�Word�TYPESr
r�Z	FUNCTIONS�Functionrrr�rr�Hexr�r�rr�rr�r��Magicr�rrErErErFr&�sN

� 

��(r&c"@s�eZdZdZdZdgZdgZdZdZe	j
Zdefde
jfd	e
jd
fde
jdfd
ejfdejfdejfdejfdejfdejfdejfdejfdejfdejfdejfdejdfdejdfdejfdejfdejdfd ejd!fd"ejd#fd$ejfd%efd&efd'eeee�fee d(d(d)�ej!fee"d(d(d)�ej#fee$d(d(d)�efee%d(d*d)�eej&ee'�fd+efd,ej(d-fd.e'fg!d/e
jfd0e
jd1fee)d(d2�e
j*fd3e
jfd4e
jfgd5e
jfd0e
jd1fd4e
jfgd6ejfd7ej+fd8ej+fdejd1fgd9ejfd:ej+fd8ej+fdejd1fgd;ejfd7ejfdejd1fgd<ejfd:ejfdejd1fgd=ejfd>ejfd,ejd1fgd=ej(fd>ej(j+fd,ej(d1fgd?�	Z,d@dA�Z-dBS)Cr'a5The Oracle MySQL lexer.

    This lexer does not attempt to maintain strict compatibility with
    MariaDB syntax or keywords. Although MySQL and MariaDB's common code
    history suggests there may be significant overlap between the two,
    compatibility between the two is not a target for this lexer.
    �MySQL�mysqlztext/x-mysqlzhttps://www.mysql.comr�rb�
(?:#|--\s+).*z/\*\+�optimizer-hintsrd�multiline-comment�x'([0-9a-f]{2})+'r�b'[01]+'�0b[01]+r�[0-9]*\.[0-9]+(e[+-]?[0-9]+)?r�"[0-9]+(?=[^0-9a-z$_\u0080-\uffff])�I\{\s*d\s*(?P<quote>['\"])\s*\d{2}(\d{2})?.?\d{2}.?\d{2}\s*(?P=quote)\s*\}�Z\{\s*t\s*(?P<quote>['\"])\s*(?:\d+\s+)?\d{1,2}.?\d{1,2}.?\d{1,2}(\.\d*)?\s*(?P=quote)\s*\}�p\{\s*ts\s*(?P<quote>['\"])\s*\d{2}(?:\d{2})?.?\d{2}.?\d{2}\s+\d{1,2}.?\d{1,2}.?\d{1,2}(\.\d*)?\s*(?P=quote)\s*\}r{�single-quoted-stringr~�double-quoted-string�9@@(?:global\.|persist\.|persist_only\.|session\.)?[a-z_]+�
@[a-z0-9_$.]+�@'�single-quoted-variable�@"�double-quoted-variable�@`�backtick-quoted-variablerz[!%&*+/:<=>^|~-]+�\b(set)(?!\s*\()�\b(character)(\s+)(set)\brm��prefixro�\b(\s*)(\()�[0-9a-z$_€-￿]+�`�schema-object-name�[(),.;]z[^*a-z]+rurvrnz[a-z]+�\*�[^*]+�[^'\\]+rz�\\[0'"bnrtZ\\%_]�[^"\\]+r}ryr|�[^`]+�``)	rr*r+r4r5r9r;r=rEcCsld}tt�|��}tt�|��}||}|dkrF|d|krF|d7}n"||krX|d7}n|dkrh|d7}|S)Nrr+r/rrr)r�rr�rr!rErErFr�s"��
�

zMySqlLexer.analyse_textN).rZr[r\r]r�r�r�r�r�r�r�r�rr
r��Specialr�rr%�Binr�r�r�Dater�Doubler
r�rrrrrr�rr�rrr$r�Quotedrr��Escaper�rrErErErFr's�

���





�	
�S
�	
�

�
�
�
�
�

���r'c!@sleZdZdZdZddgZddgZddgZd	Zd
Z	e
jZde
fdejfd
ejdfdejfdejfdejfdejfdejfdejfdejfdejfdejfdejfdejfdejdfdejdfdejfdejfd ejd!fd"ejd#fd$ejd%fd&ejfd'efd(eee
e�feej d)d)d*�ej!feej"d)d)d*�ej#feej$d)d)d*�efeej%d)d+d*�eej&e
e'�feej(d)d)d*�e)fd,efd-ej*d.fd/e'fg d0ejfd1ejd2fd3ejfgd4ejfd5ej+fd6ej+fdejd2fgd7ejfd8ej+fd6ej+fdejd2fgd9ejfd5ejfdejd2fgd:ejfd8ejfdejd2fgd;ejfd<ejfd-ejd2fgd;ej*fd<ej*j+fd-ej*d2fgd=�Z,d>d?�Z-d@S)Ar z�
    GoogleSQL is Google's standard SQL dialect, formerly known as ZetaSQL.

    The list of keywords includes reserved words for future use.
    �	GoogleSQL�	googlesql�zetasqlz*.googlesqlz*.googlesql.sqlztext/x-google-sqlztext/x-google-sql-auxz+https://cloud.google.com/bigquery/googlesqlz2.19rbr)rdr+r,rr-r.rr/rr0r1r2r3r{r4r~r5r6r7r8r9r:r;r<r=rr>r?rmr@rBrCrDrErFrHrurvrGrIrzrJrKr}ryr|rLrM)rr+r4r5r9r;r=rEcCs(t�|���}dtdd�|��D��S)Ng����MbP?css|]\}}|tvr|VqdSrI)�googlesql_identifiers)rj�t�countrErErFrlks
�z.GoogleSqlLexer.analyse_text.<locals>.<genexpr>)�collections�Counter�split�sumr�)r7r�rErErFriszGoogleSqlLexer.analyse_textN).rZr[r\r]r�r�r�r�r�r�r�r�r�rr
r�r�rr%rOr�r�rrPrrQr
r�rrrr�	constantsr��typesr��keywords�
functionnamesr$r�	operatorsrrRrSr�rrErErErFr �s�
���





�
�P
�

�
�
�
�
�

���r c@s:eZdZdZdZdgZdgZdgZdZdZ	dZ
d	d
�ZdS)r(z3
    Lexer for example sessions using sqlite3.
    �
sqlite3con�sqlite3z*.sqlite3-consoleztext/x-sqlite3-consolezhttps://www.sqlite.orgz0.11zsqlite3/sqlite3.sqlite3-consolec	cstfi|j��}d}g}t�|�D]�}|��}t�|�}|dur�|�t|�dt	j
|dd�fgf�|�t|�dtdfgf�||dd�7}q"|r�t||�
|��EdHd}g}|�d�r�|��t	j|fVq"|��t	j|fVq"|r�t||�
|��EdHdS)Nr�rr4rh�zSQL error: )r%rTr�r<r:�sqlite_prompt_rer6rVr�rr�rrrArUr>�	Tracebackr�)rKr�rOr�r�r6r�Zprompt_matchrErErFrA|s6

�

��

�z)SqliteConsoleLexer.get_tokens_unprocessedN)rZr[r\r]r�r�r�r�r�r�r�rArErErErFr(osr(c@szeZdZdZdZdZdgZdgZdgZdZ	e
jZdd	e
fd
efdefdejfd
ejfdefdejfdejfdefg	iZdS)r)z,
    Lexer for Relation Query Language.
    �RQLz"http://www.logilab.org/project/rql�rqlz*.rqlz
text/x-rqlz2.0rrbz�(DELETE|SET|INSERT|UNION|DISTINCT|WITH|WHERE|BEING|OR|AND|NOT|GROUPBY|HAVING|ORDERBY|ASC|DESC|LIMIT|OFFSET|TODAY|NOW|TRUE|FALSE|NULL|EXISTS)\bz
[+*/<>=%-]z)(Any|is|instance_of|CWEType|CWRelation)\brqz[A-Z_]\w*\??r�rrN)rZr[r\r]r�r�r�r�r�r�r�r�r�rrrr
r�rr�rr�rr�rErErErFr)�s,���r))Ir]rZr�Zpygments.lexerrrrrrZpygments.tokenrrr	r
rrr
rrrrZpygments.lexersrrZ"pygments.lexers._postgres_builtinsrrrrrZpygments.lexers._mysql_builtinsrrrrrrr�__all__�compiler�rfr�r5r?rrr rrrar`r_rWrGrHr!r"r�r�r�r�Zre_errorr�r�r#r$r%r&r'r r(r)rErErErF�<module>sf*4




���$%8"




�I;V:!*

Youez - 2016 - github.com/yon3zu
LinuXploit