OwlCyberSecurity - MANAGER
Edit File: compiler.cpython-311.pyc
� ������h���������������������������d�Z�ddlZddlmZ�ddlmZ�ddlmZ�ddl m Z �ddlmZ �ddlmZ�dd lmZ�d dlmZ�d dlmZ�d d lmZ�d dlmZ�d dlmZ�d dlmZ�d dlmZ�d dlmZ�d dlmZ�d dlmZ�d dlm Z �d dl!m"Z"�ej#��������r ddl$Z%d dl&m'Z'��ej(��������dej)��������dej*��������f����������������������Z+dddddd d!d"d#�Z,d$e+d%e+fd&�Z-d'e.d%ej)��������d(ej/��������d)gdf���������fd*�Z0d'e.d%ej)��������d(ej1��������d)gdf���������fd+�Z2 � � �dHd.ej3��������d/d0d1ej4��������e.���������d2ej4��������e.���������d3ej4��������ej5�����������������d4e6d5e6d%ej4��������e.���������fd6�Z7d7ej*��������d%e6fd8�Z8d9ej9��������ej:�����������������d:ej9��������e.���������d%ej;��������e.���������fd;�Z<�G�d<��d=������������Z=�G�d>��d)������������Z>�G�d?��d@e?������������Z@�G�dA��dBe"������������ZA�G�dC��dDe"������������ZB�G�dE��dFeC������������ZD�G�dG��d(e"������������ZEdS�)Iz0Compiles nodes from the parser into Python code.�����N)�contextmanager)�update_wrapper)�StringIO)�chain)� iskeyword)�escape)�Markup����)�nodes)�TemplateAssertionError)�Symbols)�VAR_LOAD_ALIAS)�VAR_LOAD_PARAMETER)�VAR_LOAD_RESOLVE)�VAR_LOAD_UNDEFINED)�EvalContext)� Optimizer)�_PassArg)�concat)�NodeVisitor)�Environment�F.)�boundz==z!=�>z>=�<z<=�inznot in)�eq�ne�gt�gteq�lt�lteqr����notin�f�returnc����������� ��������������dddt�����������j��������dddt����������j��������dt����������j��������f ��fd�}t ����������t����������j��������t����������|��������������������������S�) N�self� CodeGenerator�node�frame�Frame�kwargsr%���c������������������������|�j����������H|j��������j��������s<|�j������������������������������||j��������������������}||k����r|����������������������||������������S���|�||fi�|��S��N)� optimizer�eval_ctx�volatile�visit)r'���r)���r*���r,����new_noder$���s��� ��F/opt/cloudlinux/venv/lib64/python3.11/site-packages/jinja2/compiler.py�new_funczoptimizeconst.<locals>.new_func,���sk���������>�%�e�n�.E�%��~�+�+�D�%�.�A�A�H��4����z�z�(�E�2�2�2��q��t�U�-�-�f�-�-�-�����)r����Expr�t�Anyr����castr���)r$���r5���s���` r4���� optimizeconstr;���+���sm������� .�� .�%*�Z� .�8?� .�KL�5� .� �� .�� .�� .�� .�� .�� .���!�&��H�-�-�q�1�1�1r6����opr(���r+���c����������� �������\�������t�����������dddt����������j��������dt����������dd�f��fd���������������}|S�)Nr'���r(���r)���r*���r%���c�����������������������|�j���������j��������rs�|�j���������j��������v�re|����������������������d��d��������������|����������������������|j��������|�������������|����������������������d�������������|����������������������|j��������|�������������nd|����������������������d�������������|����������������������|j��������|�������������|����������������������d���d��������������|����������������������|j��������|�������������|����������������������d�������������d�S�)Nz environment.call_binop(context, �, �(� �))�environment� sandboxed�intercepted_binops�writer2����left�right�r'���r)���r*���r<���s��� �r4����visitorz_make_binop.<locals>.visitor<���s��������� ��&� *��d�&�9�9�9��J�J�B�"�B�B�B�C�C�C��J�J�t�y�%�(�(�(��J�J�t�����J�J�t�z�5�)�)�)�)��J�J�s�O�O�O��J�J�t�y�%�(�(�(��J�J�y�2�y�y�y�!�!�!��J�J�t�z�5�)�)�)�� � �3�����r6���)r;���r����BinExprr+����r<���rJ���s���` r4����_make_binoprM���;���sP���������o���U�]���5���T�������������]��"��Nr6���c����������� �������\�������t�����������dddt����������j��������dt����������dd�f��fd���������������}|S�)Nr'���r(���r)���r*���r%���c������������������6�����|�j���������j��������rC�|�j���������j��������v�r5|����������������������d��d��������������|����������������������|j��������|�������������n3|����������������������d�z����������������|����������������������|j��������|�������������|����������������������d�������������d�S�)Nzenvironment.call_unop(context, r?���r@���rB���)rC���rD����intercepted_unopsrF���r2���r)���rI���s��� �r4���rJ���z_make_unop.<locals>.visitorT���s��������� ��&� )��d�&�8�8�8��J�J�A��A�A�A�B�B�B��J�J�t�y�%�(�(�(�(��J�J�s�R�x� � � ��J�J�t�y�%�(�(�(�� � �3�����r6���)r;���r���� UnaryExprr+���rL���s���` r4���� _make_unoprR���Q���sR����������o���U�_���U���t�������������]����Nr6���FTr)���rC���r����name�filename�stream� defer_init� optimizedc������������������������t����������|�t����������j��������������������st����������d�������������|���������������������||||||������������}|���������������������|��������������|�|j�������������������������������������������S�dS�)z+Generate the python source for a node tree.z Can't compile non template nodesN)� isinstancer����Template� TypeError�code_generator_classr2���rU����getvalue)r)���rC���rS���rT���rU���rV���rW���� generators��� r4����generater_���e���s|��������d�E�N�+�+��<��:�;�;�;��0�0��T�8�V�Z�����I���O�O�D���� �~���(�(�*�*�*��4r6����valuec����������������������|��|�t�����������u�s |�t����������u�rdS�t����������|�������������t����������t����������t ����������t����������t����������t����������t����������hv�rdS�t����������|�������������t����������t����������t����������t����������hv�rt����������d��|�D���������������������������S�t����������|�������������t����������u�r+t����������d��|������������������������������������D���������������������������S�dS�)z)Does the node have a safe representation?NTc��������������3����4���K����|�]}t����������|������������V����d�S�r.����� has_safe_repr)�.0�vs��� r4���� <genexpr>z has_safe_repr.<locals>.<genexpr>����s*����������3�3��=��#�#�3�3�3�3�3�3r6���c��������������3����X���K����|�]%\��}}t����������|������������ot����������|������������V����&d�S�r.���rc����re����krf���s��� r4���rg���z has_safe_repr.<locals>.<genexpr>����s;����������S�S�T�Q��=��#�#�8� �a�(8�(8�S�S�S�S�S�Sr6���F)�NotImplemented�Ellipsis�type�bool�int�float�complex�range�strr ����tuple�list�set� frozenset�all�dict�items�r`���s��� r4���rd���rd���}���s��������}���/�/�5�H�3D�3D��t��E�{�{�t�S�%��%��f�E�E�E��t��E�{�{�u�d�C��3�3�3��3�3�U�3�3�3�3�3�3��E�{�{�d����S�S�U�[�[�]�]�S�S�S�S�S�S��5r6���r����namesc�����������������������t����������|������������} �|�D�]}|���������������������|��������������n#�t����������$�r�Y�nw�xY�w|j��������S�)z�Check if the names passed are accessed undeclared. The return value is a set of all the undeclared names from the sequence of names found. )�UndeclaredNameVisitorr2����VisitorExit� undeclared)r���r|���rJ���r)���s��� r4����find_undeclaredr��������sh�������$�E�*�*�G� ��� �� �D��M�M�$����� ���� �� �� ��� ������s����,�� 9�9c��������������������L�����e�Zd�Zdej��������ej��������ej��������f���������ddfd�ZdS�)�MacroRefr)���r%���Nc������������������>�����||�_���������d|�_��������d|�_��������d|�_��������d�S��NF)r)����accesses_caller�accesses_kwargs�accesses_varargs�r'���r)���s��� r4����__init__zMacroRef.__init__����s'�������� �$���$��� %����r6���) �__name__� __module__�__qualname__r8����Unionr����Macro� CallBlockr������r6���r4���r����r��������sF��������������&�Q�W�U�[�%�/�%A�B��&�t��&��&��&��&��&��&r6���r����c������������ �������������e�Zd�ZdZ � �d dedej��������d����������dej��������e���������ddfd�Zdd�Z dd e dd�fd�Zdd�Ze Z dS�)r+���z&Holds compile time information for us.Nr0����parent�levelr%���c������������������@����||�_���������||�_��������|�+t����������|�������������|�_��������d|�_��������d�|�_��������d�|�_��������n?t����������|j��������|�������������|�_��������|j��������|�_��������|j��������|�_��������|j��������|�_��������d|�_��������d|�_��������d|�_ ��������d|�_ ��������d|�_��������d�S�)N�r����F)r0���r����r ����symbols�require_output_check�buffer�block�toplevel� rootlevel� loop_frame�block_frame� soft_frame)r'���r0���r����r����s��� r4���r����zFrame.__init__����s��������!�� ������>�"��/�/�/�D�L��).�D�%��,0�D�K��+/�D�J�J��#�6�>��?�?�?�D�L�(.�(C�D�%� �-�D�K���D�J���� � ����� ��� ��� � ����r6���c������������������������t����������j��������t����������t�������������������������������|�j��������������������������������}|j�����������������������������|�j���������������������|�j��������� ����������������������������������|_��������|S�)z!Create a copy of the current one.) r8���r:���r+����object�__new__� __class__�__dict__�updater�����copy�r'����rvs��� r4���r����z Frame.copy����sS������ �V�E�6�>�>�$�.�9�9� :� :�� ����4�=�)�)�)��\�&�&�(�(�� �� r6���F�isolatedc������������������v�����|r#t����������|�j��������|�j��������j��������dz����������������S�t����������|�j��������|�������������S�)zReturn an inner frame.r ���r����)r+���r0���r����r����)r'���r����s��� r4����innerzFrame.inner����s<�������� F����d�l�.@�1�.D�E�E�E�E��T�]�D�)�)�)r6���c������������������J�����|�������������������������������������}d|_��������d|_��������|S�)a&��Return a soft frame. A soft frame may not be modified as standalone thing as it shares the resources with the frame it was created of, but it's not a rootlevel frame any longer. This is only used to implement if-statements and conditional expressions. FT)r����r����r����r����s��� r4����softz Frame.soft����s$��������Y�Y�[�[������� �� r6���)NN)r%���r+����F)r����r����r�����__doc__r���r8����Optionalro���r����r����rn���r����r�����__copy__r����r6���r4���r+���r+�������s���������������0�0� �'+�!%� 1 ��1 ��1 ��� �7�#�1 ���z�#�� 1 � � �1 ��1 ��1 ��1 �f�������*��*�d��*�w��*��*��*��*����������H�H�Hr6���c�������������������������e�Zd�ZdZdS�)r���z?Exception used by the `UndeclaredNameVisitor` to signal a stop.N�r����r����r����r����r����r6���r4���r���r�������s��������������I�I�I�Ir6���r���c��������������������h�����e�Zd�ZdZd d�Zdej��������ddfd�Zdej��������ddfd�Z dej ��������ddfd�ZdS�) �DependencyFinderVisitorz.A visitor that collects filter and test calls.r%���Nc������������������R�����t������������������������|�_��������t������������������������|�_��������d�S�r.���)rv����filters�tests�r'���s��� r4���r����z DependencyFinderVisitor.__init__����s������#&�5�5���!$���� � � r6���r)���c������������������n�����|�����������������������|�������������|�j�����������������������������|j���������������������d�S�r.���)� generic_visitr�����addrS���r����s��� r4����visit_Filterz$DependencyFinderVisitor.visit_Filter��s4���������4� � � �������#�#�#�#�#r6���c������������������n�����|�����������������������|�������������|�j�����������������������������|j���������������������d�S�r.���)r����r����r����rS���r����s��� r4���� visit_Testz"DependencyFinderVisitor.visit_Test��s2���������4� � � �� ���t�y�!�!�!�!�!r6���c�����������������������dS�)zStop visiting at blocks.Nr����r����s��� r4����visit_Blockz#DependencyFinderVisitor.visit_Block������������r6����r%���N)r����r����r����r����r����r����Filterr�����Testr�����Blockr����r����r6���r4���r����r��������s���������������8�8�'��'��'��'�$����$�$��$��$��$��$�"�u�z��"�d��"��"��"��"�'����'���'��'��'��'��'��'r6���r����c��������������������l�����e�Zd�ZdZdej��������e���������ddfd�Zdej ��������ddfd�Z dej��������ddfd�ZdS�) r~���z�A visitor that checks if a name is accessed without being declared. This is different from the frame visitor as it will not stop at closure frames. r|���r%���Nc������������������T�����t����������|������������|�_��������t������������������������|�_��������d�S�r.���)rv���r|���r����)r'���r|���s��� r4���r����zUndeclaredNameVisitor.__init__��s��������Z�Z�� �&)�e�e����r6���r)���c������������������������|j���������dk����rM|j��������|�j��������v�r?|�j�����������������������������|j���������������������|�j��������|�j��������k����rt�������������������������d�S�|�j�����������������������������|j���������������������d�S�)N�load)�ctxrS���r|���r����r����r����discardr����s��� r4���� visit_Namez UndeclaredNameVisitor.visit_Name��sv�������8�v���$�)�t�z�"9�"9��O���� �*�*�*���$�*�,�,�!�m�m�#��-�,�� �J���t�y�)�)�)�)�)r6���c�����������������������dS�)zStop visiting a blocks.Nr����r����s��� r4���r����z!UndeclaredNameVisitor.visit_Block!��r����r6���) r����r����r����r����r8����Iterablers���r����r����Namer����r����r����r����r6���r4���r~���r~�����s������������������ ,�a�j��o��,�$��,��,��,��,�*�u�z��*�d��*��*��*��*�&����&���&��&��&��&��&��&r6���r~���c�������������������������e�Zd�ZdZdS�)�CompilerExitz�Raised if the compiler encountered a situation where it just doesn't make sense to further process the code. Any block that raises such an exception is not further processed. Nr����r����r6���r4���r����r����%��s��������������������r6���r����c�������������������� ����e�Zd�ZU� � � �d�dddej��������e���������dej��������e���������dej��������ej�����������������d ed eddfd�Ze defd ���������������Z dededdfd�Zdefd�Z deddfd�Z �d�dededdfd�Zd�d�Zd�deddfd�Zd�dedej��������ej�����������������ddfd�Zdeddfd�Z �d�dededej��������ej�����������������ddfd�Zd ej��������ej�����������������deddfd!�Zd"eddfd#�Z �d�d"edej��������ej�����������������d%eddfd&�Zd�dej��������ej�����������������d%eddfd'�Z �d�dej��������ej��������ej��������ej ��������f���������ded(ej��������ej!��������eej"��������f������������������ddfd)�Z#d ej��������ej�����������������ddfd*�Z$deddfd+�Z%d�ded,eddfd-�Z&d�d0ed1edefd2�Z'dedefd3�Z(dej��������ej)��������ej*��������f���������dedej+��������ee,f���������fd4�Z-d5e,deddfd6�Z.dej��������defd7�Z/dedefd8�Z0d�d9�Z1deddfd:�Z2d�d;�Z3d<eddfd=�Z4d<eddfd>�Z5d�d?�Z6defd@�Z7defdA�Z8dedefdB�Z9d<edefdC�Z:d�dD�Z;deddfdE�Z< �d�dej=��������dej��������e���������ddfdF�Z>dej?��������deddfdG�Z@dejA��������deddfdH�ZBdejC��������deddfdI�ZDdej��������ejE��������ejF��������f���������deddfdJ�ZGdejE��������deddfdK�ZHdejF��������deddfdL�ZIdejJ��������deddfdM�ZKdejL��������deddfdN�ZMdej)��������deddfdO�ZNdej*��������deddfdP�ZOdejP��������deddfdQ�ZQdejR��������deddfdR�ZSdejT��������deddfdS�ZU�G�dT��dUejV��������������������ZWeXdVej"��������dej"��������fdW���������������ZYdZZej��������eW���������e[dX<���deWfdY�Z\dZej��������ej"�����������������defd[�Z]dej^��������ded\eWdefd]�Z_dej^��������ded\eWddfd^�Z`dej^��������ded\eWddfd_�Zadejb��������deddfd`�Zcdejd��������deddfda�Zedejf��������deddfdb�Zgdejh��������deddfdc�Zidejj��������deddfdd�Zkdejl��������deddfde�Zmdejn��������deddfdf�Zodej+��������deddfdg�Zpdejq��������deddfdh�Zrdejs��������deddfdi�Zt�eudj������������Zv�eudk������������Zw�eudl������������Zx�eudm������������Zy�eudn������������Zz�eudo������������Z{�eudp������������Z|�eudq������������Z}�eudr������������Z~�edj������������Z��edk������������Z��eds������������Z�e�dej���������deddfdt���������������Z�e�dej���������deddfdu���������������Z�dej���������deddfdv�Z�e�dej���������deddfdw���������������Z�e�dej���������deddfdx���������������Z�dej���������deddfdy�Z�e�dej��������ej��������ej ��������f���������dedzedej���������d���������fd{���������������Z�e�dej��������deddfd|���������������Z�e�dej ��������deddfd}���������������Z�e�dej���������deddfd~���������������Z�e� �d�dej��������dededdfd����������������Z�dej���������deddfd��Z�dej���������deddfd��Z�dej���������deddfd��Z�dej���������deddfd��Z�dej���������deddfd��Z�dej���������deddfd��Z�dej���������deddfd��Z�dej���������deddfd��Z�dej���������deddfd��Z�dej���������deddfd��Z�dej���������deddfd��Z�dej���������deddfd��Z�dej���������deddfd��Z�dej���������deddfd��Z�dej���������deddfd��Z�dS�)�r(���NFTrC���r���rS���rT���rU���rV���rW���r%���c����������������������|�t������������������������}||�_��������||�_��������||�_��������||�_��������d|�_��������||�_��������d�|�_��������|rt����������|������������|�_��������i�|�_ ��������i�|�_ ��������d|�_��������d|�_��������d|�_ ��������i�|�_��������i�|�_��������g�|�_��������d�|�_��������d|�_��������d|�_��������d|�_��������d|�_��������d|�_��������g�|�_��������g�|�_��������dg|�_��������d�S�)NFr���r ���T�context)r���rC���rS���rT���rU����created_block_contextrV���r/���r����import_aliases�blocks�extends_so_far�has_known_extends�code_linenor����r����� debug_info�_write_debug_info� _new_lines� _last_line�_first_write�_last_identifier�_indentation� _assign_stack�_param_def_block�_context_reference_stack)r'���rC���rS���rT���rU���rV���rW���s��� r4���r����zCodeGenerator.__init__-��s�������>��Z�Z�F�&����� � �� ����%*��"�$���04����� 4�&�{�3�3�D�N��13����13���� ��� �"'��������(*�� �)+����68���26������������!����!"��������24����57����*3���%�%�%r6���c�����������������������|�j���������d�uS�r.���)r/���r����s��� r4���rW���zCodeGenerator.optimizedv��s�������~�T�)�)r6����msg�linenozte.NoReturnc������������������:�����t����������|||�j��������|�j���������������������)z*Fail with a :exc:`TemplateAssertionError`.)r���rS���rT���)r'���r����r����s��� r4����failzCodeGenerator.fail|��s������$�S�&�$�)�T�]�K�K�Kr6���c������������������6�����|�xj���������dz ��c_���������d|�j������������S�)zGet a new unique identifier.r ����t_)r����r����s��� r4����temporary_identifierz"CodeGenerator.temporary_identifier���s'����������"���+�D�)�+�+�+r6���r*���c������������������r�����|�������������������������������������|_��������|����������������������|j����������d��������������dS�)z7Enable buffering for the frame from that point onwards.z = []N)r����r����� writeline�r'���r*���s��� r4���r����zCodeGenerator.buffer���s8�������0�0�2�2������%�,�-�-�-�.�.�.�.�.r6����force_unescapedc������������������&����|s�|j���������j��������r�|����������������������d�������������|�������������������������������������|����������������������d|j����������d��������������|�������������������������������������|����������������������d�������������|�������������������������������������|����������������������d|j����������d��������������|�������������������������������������dS�|j���������j��������r |����������������������d|j����������d��������������dS�|����������������������d|j����������d��������������dS�)z(Return the buffer contents of the frame.zif context.eval_ctx.autoescape:zreturn Markup(concat(�))�else:zreturn concat(rB���N)r0���r1���r�����indentr�����outdent� autoescape)r'���r*���r����s��� r4����return_buffer_contentsz$CodeGenerator.return_buffer_contents���s�������� ��~�&�� ����@�A�A�A���� � � ����G�u�|�G�G�G�H�H�H����������w�'�'�'���� � � ����?���?�?�?�@�@�@�����������*�� ����G�u�|�G�G�G�H�H�H������7���7�7�7�8�8�8�8�8r6���c������������������&�����|�xj���������dz ��c_���������dS�)zIndent by one.r ���N�r����r����s��� r4���r����zCodeGenerator.indent���s���������Q�����r6���r ����stepc������������������&�����|�xj���������|z��c_���������dS�)zOutdent by step.Nr����)r'���r����s��� r4���r����zCodeGenerator.outdent���s���������T�!����r6���r)���c�����������������������|j����������|����������������������d|�������������dS�|����������������������|j�����������d�|�������������dS�)z%Yield or write into the frame buffer.N�yield �.append()r����r����)r'���r*���r)���s��� r4����start_writezCodeGenerator.start_write���sI�������<���N�N�8�T�*�*�*�*�*��N�N�e�l�4�4�4�d�;�;�;�;�;r6���c������������������B�����|j����������|����������������������d�������������dS�dS�)z1End the writing process started by `start_write`.NrB���)r����rF���r����s��� r4���� end_writezCodeGenerator.end_write���s%�������<�#��J�J�s�O�O�O�O�O��$�#r6����sc�����������������������|�����������������������||�������������|����������������������|�������������|����������������������|�������������dS�)z4Simple shortcut for start_write + write + end_write.N)r���rF���r��)r'���r��r*���r)���s��� r4����simple_writezCodeGenerator.simple_write���sA������� �����%�%�%�� � �1� � � ����u�����r6���r���c����������������������� �|�����������������������d�������������|D�]}|����������������������||��������������dS�#�t����������$�r�Y�dS�w�xY�w)z�Visit a list of nodes as block in a frame. If the current frame is no buffer a dummy ``if 0: yield None`` is written automatically. �passN)r����r2���r����)r'���r���r*���r)���s��� r4���� blockvisitzCodeGenerator.blockvisit���sk������ ��N�N�6�"�"�"��� (�� (��� � �4��'�'�'�'� (�� (���� �� �� ��D�D� ���s����04�� A�A�xc����������������������|�j���������r�|�j��������sk|�j�����������������������������d|�j���������z���������������|�xj��������|�j���������z ��c_��������|�j���������-|�j�����������������������������|�j��������|�j��������f�������������d|�_��������d|�_��������|�j�����������������������������d|�j��������z���������������d|�_���������|�j�����������������������������|�������������dS�)z&Write a string into the output stream.� NFz r���) r����r����rU���rF���r����r����r�����appendr����)r'���r ��s��� r4���rF���zCodeGenerator.write���s��������?�� ��$�� 2���!�!�$���"8�9�9�9�� � �D�O�3� � ��)�5��O�*�*�D�,B�D�DT�+U�V�V�V�-1�D�*� %�D���K���f�t�'8�8�9�9�9��D�O�����!�����r6���r����extrac������������������\�����|�����������������������||�������������|����������������������|�������������dS�)z!Combination of newline and write.N)�newlinerF���)r'���r ��r)���r ��s��� r4���r����zCodeGenerator.writeline���s+������� ���T�5�!�!�!�� � �1� � � � � r6���c�����������������������t����������|�j��������d|z���������������|�_��������|�*|j��������|�j��������k����r|j��������|�_��������|j��������|�_��������dS�dS�dS�)z/Add one or more newlines before the next write.r ���N)�maxr����r����r����r����)r'���r)���r ��s��� r4���r��zCodeGenerator.newline���sR�������d�o�q�5�y�9�9�������t�� >� >�%)�[�D�"�"�k�D�O�O�O���� >� >r6����extra_kwargsc�����������������������t����������d��t����������d��|j��������D���������������|pd������������D���������������������������}|j��������D�]-}|����������������������d�������������|����������������������||��������������.|sl|j��������D�]-}|����������������������d�������������|����������������������||��������������.|�5|�����������������������������������D�] \��}}|����������������������d|��d|�����������������!|j��������r0|����������������������d�������������|����������������������|j��������|�������������|�r%|j���������|����������������������d�������������n|����������������������d �������������|j��������D�]O}|����������������������|j ���������d ��������������|����������������������|j ��������|�������������|����������������������d��������������P|�5|�����������������������������������D�] \��}}|����������������������|�d |��d���������������!|j���������G|����������������������d�������������|����������������������|j��������|�������������|����������������������d�������������dS�|����������������������d �������������dS�|j���������2|����������������������d�������������|����������������������|j��������|�������������dS�dS�)a+��Writes a function call to the stream for the current node. A leading comma is added automatically. The extra keyword arguments may not include python keywords otherwise a syntax error could occur. The extra keyword arguments should be given as python dict. c��������������3����d���K����|�]+}t����������t����������j��������t����������|������������������������V����,d�S�r.���)�is_python_keywordr8���r:���rs���)re���rj���s��� r4���rg���z*CodeGenerator.signature.<locals>.<genexpr>���sH����������� �� ��� �a�f�S�!�n�n�-�-� �� �� �� �� �� r6���c��������������3����$���K����|�]}|j���������V����d�S�r.���)�key�re���r ��s��� r4���rg���z*CodeGenerator.signature.<locals>.<genexpr>���s$����������7�7�a�A�E�7�7�7�7�7�7r6���r����r?���N�=z, *z , **dict({z, **{�: z}, **rB����}z, **)�anyr���r,����argsrF���r2���rz����dyn_args� dyn_kwargsr��r`���) r'���r)���r*���r���kwarg_workaround�arg�kwargr��r`���s ��� r4���� signaturezCodeGenerator.signature���s��������� �� ��7�7�4�;�7�7�7��9K��L�L� �� �� �� �� �� ��9�� #�� #�C��J�J�t�����J�J�s�E�"�"�"�"��� 3���� )�� )��� � �4� � � �� � �5�%�(�(�(�(��'�".�"4�"4�"6�"6��3��3�J�C���J�J�1�C�1�1�%�1�1�2�2�2�2��=�� -��J�J�u�����J�J�t�}�e�,�,�,��� /���*�� � �<�(�(�(�(�� � �7�#�#�#���� !�� !��� � �e�i�-�-�-�.�.�.�� � �5�;��.�.�.�� � �4� � � � ��'�".�"4�"4�"6�"6��6��6�J�C���J�J�#�4�4�5�4�4�4�5�5�5�5���*�� � �7�#�#�#�� � �4�?�E�2�2�2�� � �3������� � �3������ �_� (��J�J�v�����J�J�t���.�.�.�.�.��)� (r6���c����������� �������>����t������������������������}|D�]}|���������������������|��������������|�j��������|j��������df|�j��������|j��������dffD��]T\��}}}t ����������|������������D��]<}||vr|������������������������������������||<���|����������������������d�������������|�������������������������������������|����������������������||�����������d|��d|�d��������������|�������������������������������������|����������������������d�������������|�������������������������������������|����������������������d�������������|����������������������d ||�����������d ��������������|�������������������������������������|����������������������d|dd ������������d|�d��������������|�������������������������������������|���������������������������������������>��VdS�)a���Find all filter and test names used in the template and assign them to variables in the compiled namespace. Checking that the names are registered with the environment is done when compiling the Filter and Test nodes. If the node is in an If or CondExpr node, the check is done at runtime instead. .. versionchanged:: 3.0 Filters and tests in If and CondExpr nodes are checked at runtime instead of compile time. r����r�����try:z = environment.�[�]zexcept KeyError:z @internalcode�def z (*unused):zraise TemplateRuntimeError("No N���� named z found.")) r����r2���r����r�����sortedr����r����r����r����)r'���r���rJ���r)����id_mapr|���� dependencyrS���s��� r4����pull_dependencieszCodeGenerator.pull_dependencies��s�������*�+�+���� �� �D��M�M�$�����*.�,����)S��J��M��V ��* �� �� �%�F�E�:� ��u� � �� �� ���v�%�%�#'�#<�#<�#>�#>�F�4�L�����v�&�&�&���� � � ����&��,�U�U�z�U�U�D�U�U�U�V�V�V����������1�2�2�2���� � � �����/�/�/����>�f�T�l�>�>�>�?�?�?���� � � ����0�j��"��o��0��0�"�0��0��0��������������������) � �� r6���c����������� ������������g�}|j���������j�������������������������������������������D�]�\��}\��}}|t����������k����r�|t����������k����r1|����������������������|��d|��������������������������������������d|�d���������������P|t����������k����r|����������������������|��d|�����������������v|t����������k����r|� ��������������������|���������������t����������d�������������|r-|����������������������d���������������������|��������������d��������������d�S�d�S�)N� = r@���rB���zunknown load instruction� = missing)r�����loadsrz���r���r���r�����get_resolve_funcr���r���r���NotImplementedError�join)r'���r*����undefs�target�action�params��� r4����enter_framezCodeGenerator.enter_frameE��s$�������',�}�':�'@�'@�'B�'B�� F�� F�#�F�O�V�U��+�+�+���+�+�+����&�Q�Q�T�-B�-B�-D�-D�Q�Q�u�Q�Q�Q�R�R�R�R��>�)�)����&�4�4�U�4�4�5�5�5�5��-�-�-�� � �f�%�%�%�%�)�*D�E�E�E��� >��N�N�e�j�j��0�0�<�<�<�=�=�=�=�=� >�� >r6����with_python_scopec�����������������������|sUg�}|j���������j��������D�]}|���������������������|��������������|r/|����������������������d���������������������|��������������d��������������d�S�d�S�d�S�)Nr0��r1��)r����r2��r��r����r5��)r'���r*���r;��r6��r7��s��� r4����leave_framezCodeGenerator.leave_frameU��s������� �� B��F��-�-�� &�� &��� � �f�%�%�%�%��� B����%�*�*�V�"4�"4�@�@�@�A�A�A�A�A� B�� B� B�� Br6����async ���async_value� sync_valuec������������������"�����|�j���������j��������r|n|S�r.���)rC����is_async)r'���r@��rA��s��� r4����choose_asynczCodeGenerator.choose_async]��s������"�.�7�G�{�{�Z�Gr6���c������������������4�����|���������������������������������������d|���S�)Nr(��)rD��)r'���rS���s��� r4����funczCodeGenerator.func`��s"�������#�#�%�%�1�1�4�1�1�1r6���c����������� �������P����|������������������������������������}|j�����������������������������|�������������t����������|������������}d}t ������������������������}g�}t����������|j��������������������D�]g\��}}|j��������dk����r|}|j��������dv�r|���������������������|j���������������������|� ��������������������|j��������� ��������������������|j����������������������������������ht����������|j��������d������������} d| v�r�|�O �|j ��������|t����������|j��������������������z ������������nX#�t����������$�r�|����������������������d|j���������������������Y�n1w�xY�w|� ��������������������|j�����������������������������d�������������������������d|_��������d| v�r8d|vr4|� ��������������������|j�����������������������������d�������������������������d|_��������d| v�r8d|vr4|� ��������������������|j�����������������������������d�������������������������d|_��������d |_��������|j�����������������������������|�������������|����������������������|����������������������d ��������������dd���������������������|��������������d �|�������������|�������������������������������������|����������������������|�������������|����������������������|�������������|����������������������|�������������t����������|j��������������������D��]\��}}|j��������� ��������������������|j��������������������} |����������������������d| ��d��������������|������������������������������������� �|j ��������|t����������|j��������������������z �����������}|����������������������| ��d��������������|����������������������||�������������n8#�t����������$�r+�|����������������������| ��d|j���������d|j���������d��������������Y�nw�xY�w|����������������������| �������������|�� �������������������������������������|��!�����������������������������������|��"��������������������|j��������|�������������|��#��������������������|d��������������|��$��������������������|d��������������|�� �����������������������������������||fS�)z/Dump the function def of a macro or call block.N�caller)r,����varargs)rH��r,���rI��zhWhen defining macros or call blocks the special "caller" argument must be omitted or be given a default.Tr,���rI��F�macror@���r?����):�if � is missing:r0��z = undefined("parameter z was not provided", name=rB���)r�����r;��)%r����r�����analyze_noder����rv���� enumerater��rS���r����r���refr�����body�defaults�len� IndexErrorr����r�����declare_parameterr����r����r����r����r����rF��r5��r����r����r:���push_parameter_definitionsr2����mark_parameter_storedr�����pop_parameter_definitionsr��r����r=��)r'���r)���r*���� macro_ref�explicit_caller�skip_special_paramsr���idxr!��r����rQ���defaults��� r4���� macro_bodyzCodeGenerator.macro_bodyc��sM��������� � �� � �"�"�4�(�(�(��T�N�N� ���!�e�e����!�$�)�,�,�� 5�� 5�H�C���x�8�#�#�"%���x�0�0�0�#�'�'���1�1�1��K�K�� �)�)�#�(�3�3�4�4�4�4�$�T�Y�0O�P�P� ��z�!�!���*���M�/�C�� �N�N�"B�C�C�C��!��������I�I�1���� �����������������E�M�;�;�H�E�E�F�F�F�(,�I�%��z�!�!�h�6I�&I�&I��K�K�� �7�7��A�A�B�B�B�(,�I�%�� �"�"�y�8K�'K�'K��K�K�� �7�7� �B�B�C�C�C�)-�I�&��&+��"� � �"�"�4�(�(�(����$�)�)�G�,�,�B�B�t�y�y����B�B�B�D�I�I�I���� � � ����E������������'�'��.�.�.�!�$�)�,�,�� �� �H�C���-�#�#�C�H�-�-�C��N�N�2��2�2�2�3�3�3��K�K�M�M�M� +��-��c�$�)�n�n�(<�=������#�{�{�{�+�+�+�� � �7�E�*�*�*�*����� �� �� ������+��+�C�H��+��+� �X�+��+��+���������� ����� �&�&�s�+�+�+��L�L�N�N�N�N��&�&�(�(�(����� �5�)�)�)��#�#�E�4�#�@�@�@�����$��7�7�7��������i��s$����("D��%D3�2D3�?"M�2N�NrZ��c����������� �������0����d����������������������d��|j��������j��������D���������������������������}t����������|j��������dd������������}t ����������|j��������j��������������������dk����r|dz ��}|����������������������d|�d|��d |j���������d|j���������d|j���������d ��������������dS�)z<Dump the macro definition for the def created by macro_body.r?���c��������������3����>���K����|�]}t����������|j��������������������V����d�S�r.���)�reprrS���r��s��� r4���rg���z*CodeGenerator.macro_def.<locals>.<genexpr>���s*����������H�H�q�d�1�6�l�l�H�H�H�H�H�Hr6���rS���Nr ����,zMacro(environment, macro, z, (z), z, context.eval_ctx.autoescape)) r5��r)���r���getattrrT��rF���r����r����r����)r'���rZ��r*���� arg_tuplerS���s��� r4���� macro_defzCodeGenerator.macro_def���s��������I�I�H�H�I�N�4G�H�H�H�H�H� ��y�~�v�t�4�4���y�~�"�#�#�q�(�(����I�� � � L��� L�� L�I�� L�� L��)� L�� L�/8�/I� L�� L��)� L�� L�� L� �� �� �� �� r6���c������������������@�����d|j������������}|�j���������|��d|�j����������}|S�)z.Return a human readable position for the node.zline N� in )r����rS���)r'���r)���r����s��� r4����positionzCodeGenerator.position���s3������ "�T�[� "� "���9� ��)�)�D�I�)�)�B�� r6���c�����������������������d����������������������d��|j������������������������������������������������������������������������������D���������������������������}d|��d�S�)Nr?���c��������������3����*���K����|�]\��}}|�d�|���V����dS��r��Nr����)re���rS���r7��s��� r4���rg���z3CodeGenerator.dump_local_context.<locals>.<genexpr>���sH����������� �� ���f���!�!��!�!� �� �� �� �� �� r6����{r��)r5��r�����dump_storesrz���)r'���r*����items_kvs��� r4����dump_local_contextz CodeGenerator.dump_local_context���s^�������9�9�� �� � %� � 9� 9� ;� ;� A� A� C� C� �� �� �� �� ���!�H� � � � r6���c�����������������������|�����������������������d�������������|�����������������������d�������������|�����������������������d�������������|�����������������������d�������������dS�)z�Writes a common preamble that is used by root and block functions. Primarily this sets up common local helpers and enforces a generator through a dead branch. z$resolve = context.resolve_or_missingz!undefined = environment.undefinedzcond_expr_undefined = Undefinedzif 0: yield NoneN�r����r����s��� r4���� write_commonszCodeGenerator.write_commons���sX������ � ���=�>�>�>����:�;�;�;�� ���8�9�9�9����)�*�*�*�*�*r6���c������������������h�����|�j������������������������������|j��������������������������������������������������������dS�)aQ��Pushes all parameter targets from the given frame into a local stack that permits tracking of yet to be assigned parameters. In particular this enables the optimization from `visit_Name` to skip undefined expressions for parameters in macros as macros can reference otherwise unbound parameters. N)r����r��r�����dump_param_targetsr����s��� r4���rW��z(CodeGenerator.push_parameter_definitions���s/������� ��$�$�U�]�%E�%E�%G�%G�H�H�H�H�Hr6���c������������������8�����|�j���������������������������������������������dS�)z+Pops the current parameter definitions set.N)r�����popr����s��� r4���rY��z'CodeGenerator.pop_parameter_definitions���s��������!�!�#�#�#�#�#r6���r7��c������������������X�����|�j���������r"|�j���������d������������������������������|�������������dS�dS�)z�Marks a parameter in the current parameter definitions as stored. This will skip the enforced undefined checks. r)��N)r����r�����r'���r7��s��� r4���rX��z#CodeGenerator.mark_parameter_stored���s;�������� �� 6��!�"�%�-�-�f�5�5�5�5�5� 6�� 6r6���c������������������:�����|�j������������������������������|�������������d�S�r.���)r����r��ry��s��� r4����push_context_referencez$CodeGenerator.push_context_reference���s�������%�,�,�V�4�4�4�4�4r6���c������������������8�����|�j���������������������������������������������d�S�r.���)r����rw��r����s��� r4����pop_context_referencez#CodeGenerator.pop_context_reference���s�������%�)�)�+�+�+�+�+r6���c�����������������������|�j���������d���������S�)Nr)���r����r����s��� r4����get_context_refzCodeGenerator.get_context_ref���s�������,�R�0�0r6���c������������������6�����|�j���������d���������}|dk����rdS�|��d�S�)Nr)��r�����resolvez.resolver��ry��s��� r4���r3��zCodeGenerator.get_resolve_func���s.�������.�r�2���Y����9��"�"�"�"r6���c������������������\�����|���������������������������������������d|����������������������|��������������d�S�)Nz .derived(rB���)r���rp��r����s��� r4����derive_contextzCodeGenerator.derive_context���s3�������&�&�(�(�T�T�4�3J�3J�5�3Q�3Q�T�T�T�Tr6���c������������������2�����|�j���������sdS�||�j���������d���������v�S�)z4Checks if a given target is an undeclared parameter.Fr)��)r����ry��s��� r4����parameter_is_undeclaredz%CodeGenerator.parameter_is_undeclared��s%�������$�� ��5���.�r�2�2�2r6���c������������������R�����|�j������������������������������t�������������������������������������dS�)z+Pushes a new layer for assignment tracking.N)r����r��rv���r����s��� r4����push_assign_trackingz"CodeGenerator.push_assign_tracking��s#��������!�!�#�%�%�(�(�(�(�(r6���c������������������z����|�j��������������������������������������������}|j��������s|j��������s|j��������r|sdS�d��|D���������������}t����������|������������dk����r�t ����������t����������|������������������������}|j��������� ��������������������|������������}|j��������r|�� ��������������������d|�d|����������������dS�|j��������r|�� ��������������������d|�d|����������������dS�|�� ��������������������d|�d|����������������n�|j��������r|�� ��������������������d�������������n2|j��������r|�� ��������������������d �������������n|�� ��������������������d �������������t����������|������������D�]P\��}}|r|����������������������d�������������|j��������� ��������������������|������������}|����������������������|�d|�����������������Q|����������������������d �������������|j��������s�|j��������s{|r{t����������|������������dk����r!|�� ��������������������d|d����������d��������������dS�d� ��������������������t����������t����������|������������������������}|�� ��������������������d|��d��������������dS�dS�dS�dS�)zoPops the topmost level for assignment tracking and updates the context variables if necessary. Nc������������������.�����g�|�]}|d�d����������dk�����|��S�)Nr ����_r����r��s��� r4���� <listcomp>z5CodeGenerator.pop_assign_tracking.<locals>.<listcomp>��s%������8�8�8�a�1�R�a�R�5�C�<�<��<�<�<r6���r ���z_loop_vars[�] = z_block_vars[� context.vars[z_loop_vars.update({z_block_vars.update({�context.vars.update({r?���r���})�context.exported_vars.add(r���rB���zcontext.exported_vars.update((r����)r����rw��r����r����r����rT���next�iterr����rQ��r����rP��rF���r5���maprb��)r'���r*����vars�public_namesrS���rQ��r]��� names_strs��� r4����pop_assign_trackingz!CodeGenerator.pop_assign_tracking��s��������!�%�%�'�'���!� ��$� ���N� ��� �� �F�8�8�4�8�8�8���t�9�9��>�>���T� � �#�#�D��-�#�#�D�)�)�C���� ����>�T�>�>��>�>�?�?�?���� �� ����?�d�?�?�#�?�?�@�@�@����N�N�<�4�<�<�s�<�<�=�=�=�=���� 8����4�5�5�5�5��"�� 8����5�6�6�6�6����6�7�7�7�&�t�_�_�� /�� /� ��T���%��J�J�t�$�$�$��m�'�'��-�-��� � �d�-�-��-�-�.�.�.�.��J�J�t����� �� O��)9�� O�l�� O��<� � �A�%�%����P�L��O�P�P�P�Q�Q�Q�Q�Q� �I�I�c�$��&=�&=�>�>� ����M� �M�M�M�N�N�N�N�N� O�� O�� O�� O�� O�� Or6���c����������� ������� ����|� J�d���������������t����������|�j��������|�j��������������������}ddlm}m}�|�j��������j��������rt����������||z���������������}nt����������|������������}|����������������������d�������������|����������������������dd� ��������������������|������������z����������������|�j ��������rdnd}|���������������������t����������j ��������������������d�u}|���������������������t����������j��������������������D�]C} | j��������|�j��������v�r$|����������������������d | j���������d �| j���������������������| |�j��������| j��������<����D|���������������������t����������j��������������������D�]�} | j��������|�j��������vr|| j��������}|������������������������������������x|�j��������|<���}d|v�r8|���������������������dd������������\��} }|����������������������d| ��d |��d|�����������������q|����������������������d|��d|������������������|����������������������d|�j�����������������������|����������������������|����������������������d��������������d|��d�d��������������|�������������������������������������|�������������������������������������t7����������|������������}dt9����������|j��������d������������v�r2|j�����������������������������d������������}|����������������������|��d��������������|j��������� ��������������������|�������������dx|_!��������|_"��������|o|�j#���������|_$��������|r|����������������������d�������������|��%��������������������|�������������|��&��������������������|j���������������������|��'��������������������|j��������|�������������|��(��������������������|d��������������|��)�����������������������������������|r�|�j#��������s)|�������������������������������������|����������������������d�������������|�������������������������������������|�j��������j��������s|����������������������d�������������nR|����������������������d�������������|�������������������������������������|����������������������d�������������|��)�����������������������������������|��)��������������������d|�j#���������z����������������|�j���������*����������������������������������D��]�\��}} |����������������������|����������������������d|z�����������������d|��d�| d�������������|�������������������������������������|�������������������������������������t7����������|������������}d|_+��������t9����������| j��������d ������������}d|v�r2|j�����������������������������d������������}|����������������������|��d��������������d!|v�r8|j�����������������������������d!������������}|����������������������|��d"|�d#|��d$��������������|j��������� ��������������������| �������������||_,��������|����������������������d%�������������|��%��������������������|�������������|��&��������������������| j���������������������|��'��������������������| j��������|�������������|��(��������������������|d��������������|��)��������������������������������������d� ��������������������d&��|�j��������D���������������������������}|����������������������d'|��d(�d��������������d)� ��������������������d*��|�j-��������D���������������������������}|����������������������d+|���������������d�S�),Nzno root frame allowedr ���)�exported�async_exportedz%from __future__ import generator_stopzfrom jinja2.runtime import r?���r?��z, environment=environmentzblock z defined twice�.zfrom z import z as zimport zname = �rootz(context, missing=missingrK��)r ��r'���r����z = TemplateReference(context)Tzparent_template = NonerN���if parent_template is not None:z4yield from parent_template.root_render_func(context)z=async for event in parent_template.root_render_func(context):zyield event�block_)r'����superr���z = context.super(z, block_rB���z_block_vars = {}c��������������3����$���K����|�]}|�d�|���V����dS�)z: block_Nr����r��s��� r4���rg���z/CodeGenerator.visit_Template.<locals>.<genexpr>���s0����������!K�!K�!�Q�"5�"5�!�"5�"5�!K�!K�!K�!K�!K�!Kr6���z blocks = {r���&c��������������3����*���K����|�]\��}}|��d�|���V����dS�)r��Nr����ri���s��� r4���rg���z/CodeGenerator.visit_Template.<locals>.<genexpr>���s0����������G�G�t�q�!�1� � �q� � �G�G�G�G�G�Gr6���z debug_info = ).r���rC���rS����runtimer���r���rC��r+��r����r5��rV����findr����Extends�find_allr����r����r����r�����ImportedName� importnamer����r�����rsplitrF��r����rs��r+���r����rR��r����rV��rO��r����r����r����r����r:��r.��r��r=��r����rz���r����r����r����)r'���r)���r*���r0���r���r����exported_names�envenv�have_extendsr�����import_�imp�alias�module�objrQ��rS���r����r����� blocks_kv_str�debug_kv_strs��� r4����visit_TemplatezCodeGenerator.visit_Template9��s��������}�}�5�}�}�}��t�/���;�;��5�5�5�5�5�5�5�5���$�� .�#�H�~�$=�>�>�N�N�#�H�-�-�N����>�?�?�?����4�t�y�y��7P�7P�P�Q�Q�Q����G���,G����y�y���/�/�t�;����]�]�5�;�/�/�� ,�� ,�E��z�T�[�(�(�� � �?�5�:�?�?�?���N�N�N�&+�D�K�� �#�#���}�}�U�%7�8�8�� ?�� ?�G��!��)<�<�<��(��37�3L�3L�3N�3N�N��#�C�(�5��#�:�:�"%�*�*�S�!�"4�"4�K�F�C��N�N�#K�6�#K�#K�3�#K�#K�E�#K�#K�L�L�L�L��N�N�#=�S�#=�#=�e�#=�#=�>�>�>��� ���.���.�.�/�/�/�� ����y�y�� � �E�E�6�E�E�E�Q�� �� �� �� �� ��� � � ���������h�����_�T�Y� �:�:�:�:��-�1�1�&�9�9�C��N�N�c�@�@�@�A�A�A� � �"�"�4�(�(�(�+/�/�����%1�%P�$�:P�6P��"��� 5��N�N�3�4�4�4�����������t�y�)�)�)����� �5�)�)�)�����$��7�7�7���������� ;��)�� B���� � � ����@�A�A�A��K�K�M�M�M��#�,�� ����U�V�V�V�V����S���������� � � ����}�-�-�-��������L�L��$�"8�8�9�:�:�:�� �;�,�,�.�.�� �� �K�D�%��N�N��9�9�X��_�-�-�R�R��R�R�R��� �� �� � � �K�K�M�M�M���� � � �� ��/�/�K�&*�K�#�(���5F�G�G�J���#�#�!�)�;�;�F�C�C�����#�D�D�D�E�E�E��*�$�$�!�)�;�;�G�D�D�����#�O�O��O�O��O�O�O�P�P�P���,�,�U�3�3�3� $�K���N�N�-�.�.�.����[�)�)�)��"�"�5�:�.�.�.��O�O�E�J��4�4�4����[�D��A�A�A��L�L�N�N�N�N�� � �!K�!K�t�{�!K�!K�!K�K�K� ����6�]�6�6�6�a��@�@�@��x�x�G�G�t��G�G�G�G�G�����7�|�7�7�8�8�8�8�8r6���c������������������V����d}|j���������rB|�j��������rdS�|�j��������dk����r.|����������������������d�������������|�������������������������������������|dz ��}|j��������r|����������������������|������������}n|������������������������������������}|j��������rf|����������������������d|j ���������d�|�������������|�������������������������������������|����������������������d|j ���������d�|�������������|�� �����������������������������������|�j��������j��������s*|j ���������#|����������������������d |j ���������d |��d�|�������������nt|����������������������|��������������������������������������d|j ���������d |��d �|�������������|�������������������������������������|����������������������d|�������������|�� �����������������������������������|�� ��������������������|�������������dS�)z.Call a block and register it for the template.r���N�if parent_template is None:r ���zif len(context.blocks[z]) <= 1:z+raise TemplateRuntimeError("Required block z not found")zyield from context.blocks[z][0](rB���zfor event in context.blocks[rK���event)r����r����r����r����r�����scopedr���r����requiredrS���r����rC���rC��r����rD��r��)r'���r)���r*���r����r����s��� r4���r����zCodeGenerator.visit_Block���s���������>�� ���%�� ����"�Q�&�&����<�=�=�=���� � � ��� ���;�� -��)�)�%�0�0�G�G��*�*�,�,�G��=�� ��N�N�I�D�I�I�I�I�4�P�P�P��K�K�M�M�M��N�N�W�d�i�W�W�W�� �� �� �� �L�L�N�N�N���(�� �U�\�-A��N�N�I�T�Y�I�I�w�I�I�I�4� �� �� �� �� �N�N��$�$�&�&��A��A�#'�9�A��A�5<�A��A��A�� �� �� � � �K�K�M�M�M����g�u�-�-�-��L�L�N�N�N����U�����r6���c����������������������|j���������s|����������������������d|j���������������������|�j��������dk����rn|�j��������s)|����������������������d�������������|�������������������������������������|����������������������d�������������|�j��������rt�������������������������|�������������������������������������|����������������������d|�������������|�� ��������������������|j ��������|�������������|����������������������d|�j���������d��������������|����������������������d�������������|�������������������������������������|����������������������d �������������|�������������������������������������|j ��������rd |�_��������|�xj��������dz ��c_��������dS�) zCalls the extender.z,cannot use extend from a non top-level scoper���r���z5raise TemplateRuntimeError("extended multiple times")z+parent_template = environment.get_template(r?���rB���z9for name, parent_block in parent_template.blocks.items():z8context.blocks.setdefault(name, []).append(parent_block)Tr ���N)r����r����r����r����r����r����r����r����r����r2����templaterF���rS���r�����r'���r)���r*���s��� r4���� visit_ExtendszCodeGenerator.visit_Extends���sS������~�� S��I�I�D�d�k�R�R�R� ����"�"���)�� ����@�A�A�A���� � � ��N�N�R�S�S�S���%�� �"�n�n�$����������D�d�K�K�K�� � �4�=�%�(�(�(�� � �&�� �&�&�&�'�'�'����R�S�S�S���� � � ����Q�R�R�R������� ��?�� *�%)�D�"�� ���q� ����r6���c������������������*����|j���������r)|����������������������d�������������|�������������������������������������d}t����������|j��������t ����������j��������������������rKt����������|j��������j��������t����������������������rd}nVt����������|j��������j��������t����������t����������f������������rd}n-t����������|j��������t ����������j��������t ����������j��������f������������rd}|����������������������d|��d�|�������������|�� ��������������������|j��������|�������������|����������������������d|�j���������d��������������|j���������r�|�������������������������������������|����������������������d �������������|�������������������������������������|����������������������d �������������|�������������������������������������|����������������������d�������������|�������������������������������������d}|j��������rA|����������������������|��������������������������������������d |����������������������|��������������d��������������n9|�j��������j��������r|����������������������d�������������n|����������������������d�������������d}|s>|�������������������������������������|����������������������d|�������������|�������������������������������������|j���������r|�������������������������������������dS�dS�)zHandles includes.r%���get_or_select_template�get_template�select_templateztemplate = environment.r@���r?���rB���zexcept TemplateNotFound:r��r����FzUfor event in template.root_render_func(template.new_context(context.get_all(), True, z)):zGfor event in (await template._get_default_module_async())._body_stream:z6yield from template._get_default_module()._body_streamTr���N)�ignore_missingr����r����rY���r���r����Constr`���rs���rt���ru����Tuple�Listr2���rF���rS���r�����with_contextrD��rp��rC���rC��r��)r'���r)���r*���� func_name�skip_event_yields��� r4���� visit_IncludezCodeGenerator.visit_Include��s��������� ��N�N�6�"�"�"��K�K�M�M�M�,� ��d�m�U�[�1�1�� *��$�-�-�s�3�3�� .�*� � ��D�M�/�%���?�?�� .�-� �� �� ���U�Z�'@� A� A�� *�)�I����=��=�=�=�t�D�D�D�� � �4�=�%�(�(�(�� � �&�� �&�&�&�'�'�'���� ��L�L�N�N�N��N�N�5�6�6�6��K�K�M�M�M��N�N�6�"�"�"��L�L�N�N�N��N�N�7�#�#�#��K�K�M�M�M� ����� $��N�N��$�$�&�&��8��8��+�+�E�2�2�8��8��8� �� �� �� � �� � &�� $��N�N�!� �� �� �� � � �N�N�S�T�T�T�#���� ��K�K�M�M�M����g�u�-�-�-��L�L�N�N�N���� ��L�L�N�N�N�N�N� �� r6���c�����������������������|�����������������������|����������������������d��������������d��������������|����������������������|j��������|�������������|�����������������������d|�j���������d��������������|j��������rHd|����������������������d���������������}|�����������������������|��d|����������������������|��������������d��������������d�S�|�����������������������d |����������������������d��������������d ��������������d�S�)N�await zenvironment.get_template(r?���z).�make_module�_asyncz(context.get_all(), True, rB����_get_default_modulez (context))rF���rD��r2���r���rS���r���rp��)r'���r)���r*����f_names��� r4����_import_commonzCodeGenerator._import_common9��s������� � � �d�'�'��1�1�L�L�L�M�M�M�� � �4�=�%�(�(�(�� � �'�� �'�'�'�(�(�(���� U�@�4�#4�#4�X�#>�#>�@�@�F��J�J��V�V�T�5L�5L�U�5S�5S�V�V�V� �� �� �� �� �� �J�J�S�T�->�->�x�-H�-H�S�S�S�T�T�T�T�Tr6���c������������������n����|�����������������������|j�����������������������������|j����������������������d�|�������������|j��������r|����������������������d|j���������d��������������|����������������������||�������������|j��������r:|j�����������������������������d������������s"|�����������������������d|j���������d��������������dS�dS�dS�)zVisit regular imports.r0��r���r���r����context.exported_vars.discard(rB���N)r����r����rQ��r7��r����rF���r���� startswithr���s��� r4����visit_ImportzCodeGenerator.visit_ImportH��s����������%�-�+�+�D�K�8�8�=�=�=�t�D�D�D��>�� <��J�J�:�t�{�:�:�:�;�;�;����D�%�(�(�(��>�� N�$�+�"8�"8��"=�"=�� N��N�N�L�D�K�L�L�L�M�M�M�M�M� N�� N�� N�� Nr6���c����������� �������0�����|�����������������������|�������������|����������������������d�������������|����������������������|��������������g�}g�}|j��������D��]C}t ����������|t ����������������������r|\��}}n|}|�����������������������j�����������������������������|��������������d|�d��������������|����������������������d�j�����������������������������|��������������d��������������|�� �����������������������������������d|�� ��������������������|��������������d|��}|�����������������������j�����������������������������|��������������d|�d |�d ��������������|��������������������������������������j��������r?|� ��������������������|�������������|���������������������d������������s|� ��������������������|���������������E|r�t����������|������������dk����r<|d ���������}|����������������������d|�d�j�����������������������������|����������������������������n:d����������������������fd�|D���������������������������}|����������������������d|��d��������������|rwt����������|������������dk����r!|����������������������d|d ����������d ��������������dS�d���������������������t#����������t$����������|������������������������} |����������������������d| ��d��������������dS�dS�)zVisit named imports.zincluded_template = z = getattr(included_template, z , missing)rL��rM��z9the template {included_template.__name__!r} (imported on z%) does not export the requested name z = undefined(fz, name=rB���r���r ���r���r���r���r?���c��������������3����V����K����|�]#}|�d��j������������������������������|���������������V����$dS�rl��)r����rQ��)re���rS���r*���s��� �r4���rg���z1CodeGenerator.visit_FromImport.<locals>.<genexpr>x��sR������������%��%�?C�t�:�:���!2�!2�4�!8�!8�:�:�%��%��%��%��%��%r6���r���r���r���z)context.exported_vars.difference_update((r����N)r��rF���r���r|���rY���rt���r����r����rQ��r����ri��r����r����r��r���rT��r5��r���rb��) r'���r)���r*���� var_names�discarded_namesrS���r����message�names_kvr���s ��� ` r4����visit_FromImportzCodeGenerator.visit_FromImportS��s���������T����� � �)�*�*�*����D�%�(�(�(�� ����J�� 2�� 2�D��$��&�&�� �"���e�e����N�N��=�$�$�U�+�+��B��B�/3�B��B��B� �� �� �� �N�N�G���!2�!2�5�!9�!9�G�G�G�H�H�H��K�K�M�M�M�@�!%���t�!4�!4�@��@�7;�@��@�� � � �N�N��=�$�$�U�+�+�V�V�7�V�V�T�V�V�V� �� �� �� �L�L�N�N�N��~�� 2�� � ��'�'�'��'�'��,�,��2�#�*�*�5�1�1�1���� G��9�~�~��"�"� ��|�����T�t�T�T�5�=�;L�;L�T�;R�;R�T�T�U�U�U�U��9�9��%��%��%��%�GP�%��%��%����������E��E�E�E�F�F�F��� ��?�#�#�q�(�(����W��PQ�@R�W�W�W�X�X�X�X�X� �I�I�c�$��&@�&@�A�A� ����M� �M�M�M���������� �� r6���c�����������������������|������������������������������������}d|_��������|������������������������������������}|������������������������������������}|j��������p[dt����������|���������������������d�������������d������������v�p5t����������d��|���������������������t����������j��������������������D���������������������������}d�}|r|j ��������� ��������������������d������������}|j �����������������������������|d��������������|j��������r|j �����������������������������|d ��������������|j ���������r�|������������������������������������}|j �����������������������������|d ��������������|����������������������|����������������������|��������������d�|j ���������������������|�������������������������������������|����������������������|�������������|����������������������|����������������������dd �������������������������|����������������������|j��������|�������������|����������������������d�������������|����������������������|����������������������dd�������������������������|����������������������d�������������|�������������������������������������|����������������������d|j ���������������������|����������������������|j ��������|�������������|����������������������d�������������|�������������������������������������|����������������������d�������������|����������������������|j��������|�������������|����������������������d�������������|����������������������|d��������������|j��������ra|����������������������|����������������������d��������������d�|�������������|�������������������������������������|����������������������|�������������|j��������|_��������|r|����������������������|��d��������������|���������������������t����������j��������������������D�]3} | j��������dk����r&| j��������dk����r|����������������������d| j����������������������4|j��������r,|������������������������������������} |����������������������| ��d��������������|����������������������|����������������������dd ������������|�������������|����������������������|j��������|�������������|r0|����������������������d|��d|����������������������d��������������d��������������n|����������������������d�������������|j ��������r|����������������������|��d��������������|j��������r|����������������������d�������������na|�j��������j ��������r|s|����������������������d �������������|����������������������|j!��������|�������������|�j��������j ��������r|s|����������������������d!�������������|j ��������r|����������������������d!�������������|j��������r|����������������������d"�������������n|����������������������|rd#nd�������������|�������������������������������������|����������������������|�������������|����������������������d$�������������|��"��������������������|j#��������|�������������|j��������r|����������������������| ��d%��������������|�������������������������������������|����������������������||j��������o|j�����������������������|j��������r�|����������������������d| ��d��������������|�������������������������������������|����������������������|�������������|��"��������������������|j��������|�������������|����������������������|�������������|�������������������������������������|j��������r�|��$��������������������|�������������|�������������������������������������|��%��������������������||�������������|����������������������|����������������������d&��������������d'��������������|�j��������j ��������r|����������������������d �������������|����������������������|j!��������|�������������|�j��������j ��������r|����������������������d!�������������|����������������������d(�������������|��&��������������������|�������������|�j'��������r,|�j'��������d)����������(��������������������|j ��������j)���������������������d�S�d�S�)*NT�loop)rR��)�only)r���c��������������3����$���K����|�]}|j���������V����d�S�r.���)r���)re���r����s��� r4���rg���z*CodeGenerator.visit_For.<locals>.<genexpr>���s$����������H�H�E�5�<�H�H�H�H�H�Hr6���rR��)� for_branch�else�testz(fiter):z async for zfor rh��zauto_aiter(fiter)�fiter�:rL��r��������rN��z%(reciter, loop_render_func, depth=0):r1���storez8Can't assign to special loop variable in for-loop targetz = 1r?����AsynczLoopContext(r@����reciterzauto_aiter(rB���z&, undefined, loop_render_func, depth):z , undefined):z_loop_vars = {}z = 0r���zloop(z, loop)r)��)*r����r����� recursiver�����iter_child_nodesr��r���r���r����r����rV��rO���else_r���r����r����rF��r����r:��rD��r2���r7��rF���r����r=��r����r����r����rS���r����r����rC���rC��r���r��rR��r����r���r��r�����difference_update�stores)r'���r)���r*���r����� test_frame� else_frame� extended_loop�loop_ref�loop_filter_funcrS����iteration_indicators��� r4���� visit_ForzCodeGenerator.visit_For���s�������[�[�]�]� � $� ���[�[�]�]� ��[�[�]�]� �� �N�� I���t�4�4�)�4�D�D�i�P�P�Q� I���H�H�T�]�]�5�;�-G�-G�H�H�H�H�H� � ������ D�!�)�;�;�F�C�C�H���'�'���'�@�@�@��:�� E���+�+�D�V�+�D�D�D��9�� A�#�8�8�:�:����+�+�D�V�+�D�D�D��N�N�d�i�i�(8�9�9�C�C�C�T�Y�O�O�O��K�K�M�M�M����Z�(�(�(��N�N�4�,�,�\�6�B�B�C�C�C��J�J�t�{�J�/�/�/��J�J�v�����J�J�t�(�(�)<�g�F�F�G�G�G��J�J�s�O�O�O��K�K�M�M�M��N�N�5�$�)�,�,�,��J�J�t�y�*�-�-�-��J�J�s�O�O�O��K�K�M�M�M��N�N�8�$�$�$��J�J�t�{�J�/�/�/��L�L��O�O�O����Z�4��@�@�@� ��>�� 2��N�N��9�9�V�$�$�K�K�K�T� �� �� �� �K�K�M�M�M��K�K� �#�#�#��!+� 1�J����� 4��N�N�h�2�2�2�3�3�3��M�M�%�*�-�-�� �� �D��x�7�"�"�t�y�F�':�':�� � �N��K������� ��:�� 9�"&�";�";�"=�"=���N�N�1�7�7�7�8�8�8����t�(�(��v�>�>��E�E�E�� � �4�;� �+�+�+��� ��J�J�R�H�R�R�$�*;�*;�G�*D�*D�R�R�R�S�S�S�S��J�J�v�����9�� /��J�J�*�-�-�-�.�.�.��>�� ��J�J�y�!�!�!�!���(�� *��� *�� � �=�)�)�)��J�J�t�y�%�(�(�(���(�� ��� �� � �3�����9�� ��J�J�s�O�O�O��>�� B��J�J�?�@�@�@�@��J�J�-�@���S�A�A�A���� � � �����$�$�$����(�)�)�)����� �:�.�.�.��:�� 9��N�N�1�7�7�7�8�8�8�����������$�.�*K���^�� �� �� �� ���:�� ��N�N�7�!4�7�7�7�8�8�8��K�K�M�M�M����Z�(�(�(��O�O�D�J� �3�3�3����Z�(�(�(��L�L�N�N�N���>�� "��'�'� �3�3�3��L�L�N�N�N����U�D�)�)�)��J�J�$�+�+�H�5�5�<�<�<�=�=�=���(�� *�� � �=�)�)�)��J�J�t�y�%�(�(�(���(�� �� � �3�����J�J�y�!�!�!��N�N�5�!�!�!����� P���r�"�4�4�Z�5G�5N�O�O�O�O�O� P�� Pr6���c������������������(����|������������������������������������}|����������������������d|�������������|����������������������|j��������|�������������|����������������������d�������������|�������������������������������������|����������������������|j��������|�������������|�������������������������������������|j ��������D�]�}|����������������������d|�������������|����������������������|j��������|�������������|����������������������d�������������|�������������������������������������|����������������������|j��������|�������������|���������������������������������������|j ��������rZ|����������������������d�������������|�������������������������������������|����������������������|j ��������|�������������|�������������������������������������d�S�d�S�)NrL��r���zelif r����)r����r����r2���r���rF���r����r��rR��r�����elif_r���)r'���r)���r*����if_framer���s��� r4����visit_IfzCodeGenerator.visit_If��sN������:�:�<�<�����u�d�#�#�#�� � �4�9�h�'�'�'�� � �3������� � � ����� �8�,�,�,��������Z�� �� �E��N�N�7�E�*�*�*��J�J�u�z�8�,�,�,��J�J�s�O�O�O��K�K�M�M�M��O�O�E�J��1�1�1��L�L�N�N�N�N��:�� ��N�N�7�#�#�#��K�K�M�M�M��O�O�D�J��1�1�1��L�L�N�N�N�N�N� �� r6���c����������������������|�����������������������||������������\��}}|�������������������������������������|j��������rV|j�����������������������������d������������s|����������������������d|j���������d��������������|����������������������d|j���������d��������������|����������������������|j�����������������������������|j����������������������d��������������|�� ��������������������||�������������d�S�)Nr���r���rB���r���r���r0��) r_��r��r����rS���r���rF���r����r����rQ��rf��)r'���r)���r*����macro_framerZ��s��� r4����visit_MacrozCodeGenerator.visit_Macro%��s�������!%����u�!=�!=���Y��������>�� >��9�'�'��,�,�� H�� � �F�� �F�F�F�G�G�G��N�N�<�4�9�<�<�<�=�=�=�� � �e�m�'�'�� �2�2�7�7�7�8�8�8����y�+�.�.�.�.�.r6���c����������������������|�����������������������||������������\��}}|����������������������d�������������|����������������������||�������������|����������������������||�������������|����������������������|j��������|d��������������|����������������������|�������������d�S�)Nz caller = T)�forward_caller)r_��r����rf��r���� visit_Call�callr��)r'���r)���r*���� call_framerZ��s��� r4����visit_CallBlockzCodeGenerator.visit_CallBlock/��s������� $����e� <� <�� �I����{�#�#�#����y�*�-�-�-������%�%�%����� �5���>�>�>����u�����r6���c����������������������|������������������������������������}|j�����������������������������|�������������|����������������������|�������������|����������������������|�������������|����������������������|j��������|�������������|����������������������||�������������|����������������������|j ��������|�������������|�� ��������������������|�������������|����������������������|�������������d�S�r.���)r����r����rO��r:��r����r��rR��r���r�����filterr��r=��)r'���r)���r*����filter_frames��� r4����visit_FilterBlockzCodeGenerator.visit_FilterBlock7��s��������{�{�}�}����)�)�$�/�/�/�����&�&�&����L�!�!�!����� �<�0�0�0������%�%�%����$�+�|�4�4�4����u��������&�&�&�&�&r6���c�����������������������|������������������������������������}|j�����������������������������|�������������|����������������������|�������������t ����������|j��������|j��������������������D�]Z\��}}|�������������������������������������|����������������������||�������������|�� ��������������������d�������������|����������������������||��������������[|�� ��������������������|j��������|�������������|����������������������|�������������d�S��Nr0��) r����r����rO��r:���zip�targets�valuesr��r2���rF���r��rR��r=��)r'���r)���r*���� with_framer7���exprs��� r4���� visit_WithzCodeGenerator.visit_WithB��s��������[�[�]�]� ���'�'��-�-�-�����$�$�$����d�k�:�:�� $�� $�L�F�D��L�L�N�N�N��J�J�v�z�*�*�*��J�J�u�����J�J�t�U�#�#�#�#����� �:�.�.�.�����$�$�$�$�$r6���c������������������f�����|�����������������������|�������������|����������������������|j��������|�������������d�S�r.���)r��r2���r)���r���s��� r4����visit_ExprStmtzCodeGenerator.visit_ExprStmtN��s0���������T����� � �4�9�e�$�$�$�$�$r6���c��������������������j�����e�Zd�ZU�ej��������ej��������def������������������ed<���ej��������e���������ed<���dS�)�CodeGenerator._FinalizeInfo.�const�srcN)r����r����r����r8���r�����Callablers����__annotations__r����r6���r4���� _FinalizeInfor��R��sB�����������������z�!�*�S�#�X�.�/�/�/�/� �Z��_�����r6���r��r`���c������������������ �����t����������|�������������S�)z�The default finalize function if the environment isn't configured with one. Or, if the environment has one, this is called on that function's output for constants. )rs���r{���s��� r4����_default_finalizezCodeGenerator._default_finalizeV��s��������5�z�z�r6���� _finalizec�����������������������������j������������j���������S���j��������x}�d}��j��������j��������r�d}��j��������j���������t����������j��������dt����������j��������dt����������j��������di���������������������t ����������j���������������������������������}d}|� dt����������j ��������dt����������j ��������f��fd�}n-|��|��d �}|dk����r dt����������j ��������dt����������j ��������f����fd �}�����������������������||��������������_�����������j���������S�)a���Build the finalize function to be used on constants and at runtime. Cached so it's only created once for all output nodes. Returns a ``namedtuple`` with the following attributes: ``const`` A function to finalize constant data at compile time. ``src`` Source code to output around nodes to be evaluated at runtime. Nzenvironment.finalize(r�����context.eval_ctxrC���r`���r%���c������������������,����������|�������������������������S�r.���r����)r`���r^���env_finalizes��� ��r4����finalizez.CodeGenerator._make_finalize.<locals>.finalize���s�������"�7�<�<��#6�#6�7�7�7r6���r?���c������������������8�����������j���������|�������������������������S�r.���)rC���)r`���r^��r��r'���s��� ���r4���r��z.CodeGenerator._make_finalize.<locals>.finalize���s"�������&�w�|�|�D�4D�e�'L�'L�M�M�Mr6���)r��r��rC���r��r���r�����eval_context�get�from_objr8���r9���r��)r'���r��r���pass_argr^��r��s���` @@r4����_make_finalizezCodeGenerator._make_finalize`��sX����������>�%��>�!��"�3�3��7�����$�� N�)�C��+�4�L�� �)��%�'9��$�m����c��!�,�/�/���� � ���H���8�A�E��8�a�e��8��8��8��8��8��8��8��8���*�h�*�*�*���}�,�,�N����N�!�%��N��N��N��N��N��N��N��N���+�+�H�c�:�:����~�r6����groupc������������������:�����t����������t����������|������������������������S�)z�Given a group of constant values converted from ``Output`` child nodes, produce a string to write to the template module source. )rb��r���)r'���r&��s��� r4����_output_const_reprz CodeGenerator._output_const_repr���s������ ��F�5�M�M�"�"�"r6���r��c������������������������|����������������������|j��������������������}|j��������j��������rt����������|������������}t ����������|t ����������j��������������������rt����������|������������S�|���������������������|������������S�)aC��Try to optimize a child of an ``Output`` node by trying to convert it to constant, finalized data at compile time. If :exc:`Impossible` is raised, the node is not constant and will be evaluated at runtime. Any other exception will also be evaluated at runtime for easier debugging. ) �as_constr0���r����r���rY���r����TemplateDatars���r��)r'���r)���r*���r��r��s��� r4����_output_child_to_constz$CodeGenerator._output_child_to_const���sd�������� � �e�n�-�-���>�$�� "��5�M�M�E���d�E�.�/�/�� ��u�:�:���~�~�e�$�$�$r6���c�����������������������|j���������j��������r|����������������������d�������������n7|j���������j��������r|����������������������d�������������n|����������������������d�������������|j���������|����������������������|j���������������������dS�dS�)zXOutput extra source code before visiting a child of an ``Output`` node. z1(escape if context.eval_ctx.autoescape else str)(zescape(zstr(N)r0���r1���rF���r����r���r'���r)���r*���r��s��� r4����_output_child_prezCodeGenerator._output_child_pre���s���������>�"�� ��J�J�J�K�K�K�K� �^� &�� ��J�J�y�!�!�!�!��J�J�v�����<�#��J�J�x�|�$�$�$�$�$��$�#r6���c������������������l�����|�����������������������d�������������|j���������|�����������������������d�������������dS�dS�)zWOutput extra source code after visiting a child of an ``Output`` node. rB���N)rF���r��r.��s��� r4����_output_child_postz CodeGenerator._output_child_post���s6������� � � �3�����<�#��J�J�s�O�O�O�O�O��$�#r6���c�����������������������|j���������r2|�j��������rd�S�|����������������������d�������������|�������������������������������������|������������������������������������}g�}|j��������D�]�} �|j��������s-t����������|t ����������j��������������������st����������j �����������������������|�� ��������������������|||������������}n1#�t ����������j ��������t����������f$�r�|���������������������|�������������Y��|w�xY�w|r7t����������|d���������t����������������������r|d������������������������������|���������������|���������������������|g���������������|j���������bt����������|������������dk����r|����������������������|j����������d��������������n|����������������������|j����������d��������������|�������������������������������������|D�]�}t����������|t����������������������rN|����������������������|������������}|j���������|����������������������d|z�����������������L|����������������������|dz�����������������e|j���������|����������������������d|�������������n|����������������������|�������������|����������������������|||�������������|����������������������||�������������|����������������������|||�������������|j���������|����������������������d���������������|j���������>|�������������������������������������|����������������������t����������|������������dk����rdnd �������������|j���������r|�������������������������������������d�S�d�S�) Nr���r)��r ���r����z .extend((r����rc��rB���r����)r����r����r����r����r%��r���r��rY���r+��� Impossibler,��� Exceptionr��ru���r����rT��r(��r��r/��r2���r1��rF���r����) r'���r)���r*���r��rR���childr���item�vals ��� r4����visit_OutputzCodeGenerator.visit_Output���s�������%�� ��%�� ����N�N�8�9�9�9��K�K�M�M�M��&�&�(�(��;=�� ��Z�� %�� %�E� ���N�-��"�%��);�<�<� -�� �*�,�,�,��3�3�E�5�(�K�K�����$�i�0�� �� �� �����E�"�"�"��� ������� %� �4��8�T�2�2�� %��R�����&�&�&�&����U�G�$�$�$�$��<�#��4�y�y�A�~�~����%�,�8�8�8�9�9�9�9����%�,�9�9�9�:�:�:��K�K�M�M�M��� $�� $�D��$��%�%�� $��-�-�d�3�3���<�'��N�N�8�c�>�2�2�2�2��N�N�3��9�-�-�-�-��<�'��N�N�8�T�2�2�2�2��L�L��&�&�&���&�&�t�U�H�=�=�=�� � �4��'�'�'��'�'��e�X�>�>�>��<�+��J�J�s�O�O�O���<�#��L�L�N�N�N��N�N�#�d�)�)�q�.�.�3�3�d�;�;�;��%�� ��L�L�N�N�N�N�N� �� s����AB&�&+C�Cc����������������������|��������������������������������������|����������������������|�������������|����������������������|j��������|�������������|����������������������d�������������|����������������������|j��������|�������������|����������������������|�������������d�S�r��)r���r��r2���r7��rF���r)���r���r���s��� r4����visit_AssignzCodeGenerator.visit_Assign��s~�������!�!�#�#�#����T����� � �4�;��&�&�&�� � �5����� � �4�9�e�$�$�$�� � ��'�'�'�'�'r6���c����������������������|��������������������������������������|�����������������������������������}d|_��������|j�����������������������������|�������������|����������������������|�������������|����������������������|�������������|����������������������|j��������|�������������|�� ��������������������|�������������|�� ��������������������|j��������|�������������|����������������������d�������������|j ���������|����������������������|j ��������|�������������n|����������������������d|j����������d��������������|����������������������d�������������|����������������������|�������������|����������������������|�������������d�S�)NFz9 = (Markup if context.eval_ctx.autoescape else identity)(�concat(rB���)r���r����r����r����rO��r:��r����r��rR��r��r2���r7��rF���r��r����r���r=��)r'���r)���r*���r����s��� r4����visit_AssignBlockzCodeGenerator.visit_AssignBlock��s:������!�!�#�#�#��k�k�m�m���,1��(���(�(��.�.�.�����%�%�%����K� � � ����� �;�/�/�/����T����� � �4�;��&�&�&�� � �N�O�O�O��;�"����d�k�;�7�7�7�7��J�J�6��!3�6�6�6�7�7�7�� � �3����� � ��'�'�'�����%�%�%�%�%r6���c����������� ������������|j���������dk����rA|j��������s|j��������s|j��������r,|�j��������r%|�j��������d������������������������������|j���������������������|j�����������������������������|j��������������������}|j���������dk����rh|j��������� ��������������������|������������}|�&|d���������t����������k����r|����������������������|������������r&|����������������������d|j���������d|��d|��d��������������d�S�|����������������������|�������������d�S�) Nr���r)��r����r���z(undefined(name=z) if z is missing else rB���) r����r����r����r����r����r����rS���r����rQ��� find_loadr���r���rF���)r'���r)���r*���rQ��r����s��� r4���r����zCodeGenerator.visit_Name6��s������8�w����N���#�.���27�2C�����!�� 6��"�2�&�*�*�4�9�5�5�5��m���� �*�*�� ��8�v����=�*�*�3�/�/�D�� ���G�1�1�1��4�4�S�9�9��2��� � �U�t�y�U�U��U�U�s�U�U�U���������� � �3�����r6���c������������������0����|j������������������������������|j��������������������}|����������������������d|��d��������������|�������������������������������������|����������������������d�������������|�������������������������������������|����������������������|��d|j���������d��������������d�S�)Nzif not isinstance(z , Namespace):zMraise TemplateRuntimeError("cannot assign attribute on non-namespace object")r&��r'��)r����rQ��rS���r����r����r�����attr)r'���r)���r*���rQ��s��� r4����visit_NSRefzCodeGenerator.visit_NSRefO��s���������m���� �*�*�����>�C�>�>�>�?�?�?���� � � ���� B� �� �� �� ���������#�.�.�� �.�.�.�/�/�/�/�/r6���c������������������������|����������������������|j��������������������}t����������|t����������������������r$|����������������������t����������|�������������������������d�S�|����������������������t ����������|�������������������������d�S�r.���)r*��r0���rY���rp���rF���rs���rb��)r'���r)���r*���r7��s��� r4����visit_ConstzCodeGenerator.visit_Const]��sc�������m�m�E�N�+�+���c�5�!�!�� "��J�J�s�3�x�x� � � � � ��J�J�t�C�y�y�!�!�!�!�!r6���c������������������������ �|�����������������������t����������|���������������������|j���������������������������������������������d�S�#�t����������j��������$�r"�|�����������������������d|j���������d��������������Y�d�S�w�xY�w�Nz6(Markup if context.eval_ctx.autoescape else identity)(rB���)rF���rb��r*��r0���r���r3���datar���s��� r4����visit_TemplateDataz CodeGenerator.visit_TemplateDatad��s������� ��J�J�t�D�M�M�%�.�9�9�:�:�;�;�;�;�;����� �� �� ��J�J�W���W�W�W� �� �� �� �� �� � ���s����:>��-A/�.A/c�����������������������|�����������������������d�������������d}t����������|j��������������������D�]2\��}}|r|�����������������������d�������������|����������������������||��������������3|�����������������������|dk����rdnd�������������d�S�)Nr@���r)��r?���r���z,)rB����rF���rP��rz���r2����r'���r)���r*���r]��r6��s��� r4����visit_TuplezCodeGenerator.visit_Tuplel��s�������� � �3������"�4�:�.�.�� $�� $�I�C���� !�� � �4� � � ��J�J�t�U�#�#�#�#�� � �3�!�8�8�4�4��-�-�-�-�-r6���c������������������������|�����������������������d�������������t����������|j��������������������D�]2\��}}|r|�����������������������d�������������|����������������������||��������������3|�����������������������d�������������d�S�)Nr&��r?���r'��rJ��rK��s��� r4���� visit_ListzCodeGenerator.visit_Listu��sr������� � �3����"�4�:�.�.�� $�� $�I�C���� !�� � �4� � � ��J�J�t�U�#�#�#�#�� � �3�����r6���c������������������R����|�����������������������d�������������t����������|j��������������������D�]g\��}}|r|�����������������������d�������������|����������������������|j��������|�������������|�����������������������d�������������|����������������������|j��������|��������������h|�����������������������d�������������d�S�)Nrm��r?���r��r��)rF���rP��rz���r2���r��r`���rK��s��� r4���� visit_DictzCodeGenerator.visit_Dict}��s�������� � �3����"�4�:�.�.�� *�� *�I�C���� !�� � �4� � � ��J�J�t�x��'�'�'��J�J�t�����J�J�t�z�5�)�)�)�)�� � �3�����r6����+�-�*�/z//z**�%�and�orznot c������������������ ����|j���������j��������rd}n|j���������j��������rd}nd}|����������������������|��d��������������|j��������D�]-}|����������������������||�������������|����������������������d��������������.|����������������������d�������������d�S�)Nz8(markup_join if context.eval_ctx.volatile else str_join)�markup_join�str_joinz((r?���r����)r0���r1���r����rF���r���r2���)r'���r)���r*���r���r!��s��� r4����visit_ConcatzCodeGenerator.visit_Concat���s��������>�"�� #�R�I�I� �^� &�� #�%�I�I�"�I�� � �i�#�#�#�$�$�$��:�� �� �C��J�J�s�E�"�"�"��J�J�t������ � �4�����r6���c������������������������|�����������������������d�������������|����������������������|j��������|�������������|j��������D�]}|����������������������||��������������|�����������������������d�������������d�S�)Nr@���rB���)rF���r2���r ���opsrI���s��� r4���� visit_ComparezCodeGenerator.visit_Compare���sb������� � �3����� � �4�9�e�$�$�$��(�� "�� "�B��J�J�r�5�!�!�!�!�� � �3�����r6���c�����������������������|�����������������������dt����������|j�������������������d��������������|����������������������|j��������|�������������d�S�)NrA���)rF���� operatorsr<���r2���r ��r���s��� r4���� visit_OperandzCodeGenerator.visit_Operand���sC������� � �,�y���)�,�,�,�-�-�-�� � �4�9�e�$�$�$�$�$r6���c������������������*����|�j���������j��������r|����������������������d�������������|����������������������d�������������|����������������������|j��������|�������������|����������������������d|j���������d��������������|�j���������j��������r|����������������������d�������������d�S�d�S�)N�(await auto_await(zenvironment.getattr(r?���rB���r����)rC���rC��rF���r2���r)���rA��r���s��� r4���� visit_GetattrzCodeGenerator.visit_Getattr���s���������$�� -��J�J�+�,�,�,�� � �)�*�*�*�� � �4�9�e�$�$�$�� � �&�� �&�&�&�'�'�'���$�� ��J�J�t������ �� r6���c������������������z����t����������|j��������t����������j��������������������rb|����������������������|j��������|�������������|����������������������d�������������|����������������������|j��������|�������������|����������������������d�������������d�S�|�j��������j��������r|����������������������d�������������|����������������������d�������������|����������������������|j��������|�������������|����������������������d�������������|����������������������|j��������|�������������|����������������������d�������������|�j��������j��������r|����������������������d�������������d�S�d�S�)Nr&��r'��rc��zenvironment.getitem(r?���rB���r����) rY���r!��r����Slicer2���r)���rF���rC���rC��r���s��� r4���� visit_GetitemzCodeGenerator.visit_Getitem���s�������d�h���,�,�� !��J�J�t�y�%�(�(�(��J�J�s�O�O�O��J�J�t�x��'�'�'��J�J�s�O�O�O�O�O���(�� 1�� � �/�0�0�0��J�J�-�.�.�.��J�J�t�y�%�(�(�(��J�J�t�����J�J�t�x��'�'�'��J�J�s�O�O�O���(�� !�� � �4� � � � � � !�� !r6���c������������������*����|j����������|����������������������|j���������|�������������|����������������������d�������������|j���������|����������������������|j��������|�������������|j���������2|����������������������d�������������|����������������������|j��������|�������������d�S�d�S�)Nr���)�startr2���rF����stopr����r���s��� r4����visit_SlicezCodeGenerator.visit_Slice���s��������:�!��J�J�t�z�5�)�)�)�� � �3�����9� ��J�J�t�y�%�(�(�(��9� ��J�J�s�O�O�O��J�J�t�y�%�(�(�(�(�(��!� r6���� is_filterc��������������#����\��K����|�j���������j��������r|����������������������d�������������|rM|����������������������|�j��������|j�������������������d��������������|�j���������j�����������������������������|j��������������������}nL|����������������������|�j��������|j�������������������d��������������|�j���������j�����������������������������|j��������������������}|�4|j��������s-|rdnd}|����������������������d|��d|j���������d�|j ���������������������t����������j��������dt����������j��������d t����������j���������d i���������������������t����������j ��������|������������������������}|�|����������������������|��d��������������d�V���|����������������������||�������������|����������������������d�������������|�j���������j��������r|����������������������d�������������d�S�d�S�) N�await auto_await(r@���r��r���zNo r*��r���r����r��rC���r?���rB���)rC���rC��rF���r����rS���r"��r����r����r����r����r���r����r!��r#��r#��)r'���r)���r*���rl��rF��� type_namer$��s��� r4����_filter_test_commonz!CodeGenerator._filter_test_common���s�������������$�� ,��J�J�*�+�+�+��� 9��J�J�$�,�t�y�1�4�4�4�5�5�5��#�+�/�/�� �:�:�D�D��J�J�$�*�T�Y�/�2�2�2�3�3�3��#�)�-�-�d�i�8�8�D� ��<�� 0�<�$-�9���6�I��I�I�<�I�<�<�d�i�<�<�<�d�k�J�J�J�� ��i��!�#5�� �-� ���#���d�#�#� �� � � �����J�J�(����'�'�'�� �������t�U�#�#�#�� � �3������$�� ��J�J�s�O�O�O�O�O� �� r6���c����������������������|�����������������������||d������������5��|j���������|����������������������|j��������|�������������n||j��������j��������r'|����������������������d|j����������d|j����������d��������������nI|j��������j��������r|����������������������d|j����������d��������������n|����������������������d|j����������d��������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�)NTz(Markup(concat(z.)) if context.eval_ctx.autoescape else concat(r����zMarkup(concat(r<��rB���)rp��r)���r2���r0���r1���rF���r����r����r���s��� r4���r����zCodeGenerator.visit_Filter��sH����� � %� %�d�E�4� 8� 8�� 6�� 6���y�$�� � �4�9�e�,�,�,�,���(�� 6�� � �T�e�l��T��T�CH�<�T��T��T�����������*�� 6�� � �<�E�L�<�<�<�=�=�=�=�� � �4�U�\�4�4�4�5�5�5� 6�� 6�� 6�� 6�� 6�� 6�� 6�� 6�� 6�� 6�� 6�� 6����� 6�� 6�� 6�� 6�� 6�� 6s����B C�C �C c�����������������������|�����������������������||d������������5��|����������������������|j��������|�������������d�d�d��������������d�S�#�1�swxY�w�Y���d�S�r����)rp��r2���r)���r���s��� r4���r����zCodeGenerator.visit_Test��s������� � %� %�d�E�5� 9� 9�� )�� )��J�J�t�y�%�(�(�(� )�� )�� )�� )�� )�� )�� )�� )�� )�� )�� )�� )����� )�� )�� )�� )�� )�� )s����A�A�Ac������������������l����������������������������������������������d����fd�}�����������������������d�������������������������������������j���������������������������������������������d�������������������������������������j���������������������������������������������d��������������|��������������������������������������d�������������d�S�)Nr%���c��������������������������j���������������������������������j������������������������d�S�����������������������d�������������������������������������d��������������d�S�)Nz1cond_expr_undefined("the inline if-expression on z6 evaluated to false and no else section was defined."))�expr2r2���rF���ri��)r*���r)���r'���s������r4����write_expr2z1CodeGenerator.visit_CondExpr.<locals>.write_expr2��si��������z�%�� � �4�:�u�-�-�-����J�J�+��M�M�$�'�'�+��+��+� �� �� �� �� r6���r@���z if z else rB���r����)r����rF���r2����expr1r���)r'���r)���r*���rv��s���``` r4����visit_CondExprzCodeGenerator.visit_CondExpr��s����������� � ���� �� �� �� �� �� �� �� �� � � �3����� � �4�:�u�%�%�%�� � �6����� � �4�9�e�$�$�$�� � �8������ � � �� � �3�����r6���r���c����������������������|�j���������j��������r|����������������������d�������������|�j���������j��������r|����������������������d�������������n|����������������������d�������������|����������������������|j��������|�������������|rddind�}|j��������rddini�}|j��������rddini�}|r�|j��������|fi�|���n|s|r t����������|fi�|��}|�� ��������������������|||�������������|����������������������d�������������|�j���������j��������r|����������������������d�������������d�S�d�S�)Nrn��zenvironment.call(context, z context.call(rH��� _loop_vars�_block_varsrB���)rC���rC��rF���rD���r2���r)���r����r����r����ry���r#��)r'���r)���r*���r���r���loop_kwargs�block_kwargss��� r4���r���zCodeGenerator.visit_Call0��sN��������$�� ,��J�J�*�+�+�+���%�� (��J�J�3�4�4�4�4��J�J��'�'�'�� � �4�9�e�$�$�$�/=�G��(�+�+�4��6;�6F�N�|�\�2�2�B��9>�9J�R� �}�5�5�PR���� =��L���<�<�|�<�<�<�<� �� =�L�� =���<�<�|�<�<�L����t�U�L�1�1�1�� � �3������$�� ��J�J�s�O�O�O�O�O� �� r6���c������������������v�����|�����������������������|j��������dz����������������|����������������������|j��������|�������������d�S�)Nr��)rF���r��r2���r`���r���s��� r4���� visit_KeywordzCodeGenerator.visit_KeywordG��s6������� � �4�8�c�>�"�"�"�� � �4�:�u�%�%�%�%�%r6���c�����������������������|�����������������������d�������������|����������������������|j��������|�������������|�����������������������d�������������d�S�)NzMarkup(rB����rF���r2���r ��r���s��� r4����visit_MarkSafezCodeGenerator.visit_MarkSafeM��s=������� � �9����� � �4�9�e�$�$�$�� � �3�����r6���c�����������������������|�����������������������d�������������|����������������������|j��������|�������������|�����������������������d�������������d�S�rF��r���r���s��� r4����visit_MarkSafeIfAutoescapez(CodeGenerator.visit_MarkSafeIfAutoescapeR��s@������� � � �K�L�L�L�� � �4�9�e�$�$�$�� � �3�����r6���c������������������@�����|�����������������������d|j��������z����������������d�S�)Nzenvironment.�rF���rS���r���s��� r4����visit_EnvironmentAttributez(CodeGenerator.visit_EnvironmentAttributeY��s#������� � � �>�D�I�-�.�.�.�.�.r6���c������������������P�����|�����������������������d|j���������d|j������������������������d�S�)Nzenvironment.extensions[z].)rF���� identifierrS���r���s��� r4����visit_ExtensionAttributez&CodeGenerator.visit_ExtensionAttribute^��s1������� � � �M�T�_�M�M�$�)�M�M�N�N�N�N�Nr6���c������������������P�����|�����������������������|�j��������|j������������������������������d�S�r.���)rF���r����r���r���s��� r4����visit_ImportedNamez CodeGenerator.visit_ImportedNamec��s$������� � �4�&�t��7�8�8�8�8�8r6���c������������������:�����|�����������������������|j���������������������d�S�r.���r���r���s��� r4����visit_InternalNamez CodeGenerator.visit_InternalNamef��s������� � �4�9�����r6���c������������������0�����|�����������������������d�������������d�S�)Nr����)rF���r���s��� r4����visit_ContextReferencez$CodeGenerator.visit_ContextReferencei��s������� � � �9�����r6���c������������������V�����|�����������������������|����������������������|�������������������������d�S�r.���)rF���r���r���s��� r4����visit_DerivedContextReferencez+CodeGenerator.visit_DerivedContextReferencen��s*������� � � �4�&�&�u�-�-�.�.�.�.�.r6���c������������������2�����|�����������������������d|�������������d�S�)N�continuerr��r���s��� r4����visit_ContinuezCodeGenerator.visit_Continues��s���������z�4�(�(�(�(�(r6���c������������������2�����|�����������������������d|�������������d�S�)N�breakrr��r���s��� r4����visit_BreakzCodeGenerator.visit_Breakv��s���������w��%�%�%�%�%r6���c������������������������|������������������������������������}|j�����������������������������|�������������|����������������������|�������������|����������������������|j��������|�������������|����������������������|�������������d�S�r.���)r����r����rO��r:��r��rR��r=��)r'���r)���r*����scope_frames��� r4����visit_ScopezCodeGenerator.visit_Scopey��sj�������k�k�m�m����(�(��.�.�.�����%�%�%����� �;�/�/�/�����%�%�%�%�%r6���c������������������*����|�������������������������������������}|����������������������|��d|����������������������|����������������������������|����������������������|��d��������������|����������������������|j��������|�������������|����������������������|�������������|���������������������d�������������}|j�����������������������������|�������������|�� ��������������������|�������������|�� ��������������������|j��������|�������������|����������������������|�������������|�� �����������������������������������d�S�)Nr0��z.vars = T)r����)r����r����r���r2���r����r{��r����r����rO��r:��r��rR��r=��r}��)r'���r)���r*���r����r���s��� r4����visit_OverlayScopez CodeGenerator.visit_OverlayScope���s������'�'�)�)�����#�>�>�$�"5�"5�e�"<�"<�>�>�?�?�?����#�'�'�'�(�(�(�� � �4�<��'�'�'��#�#�C�(�(�(��k�k�4�k�0�0����(�(��.�.�.�����%�%�%����� �;�/�/�/�����%�%�%��"�"�$�$�$�$�$r6���c������������������D����|j���������D�]�}|����������������������d|j����������d��������������|����������������������|j��������|������������� �|j�����������������������������|j��������������������}t����������|j��������|j��������|��������������w#�t����������j ��������$�r�d|j��������_ ��������Y���w�xY�wd�S�)Nzcontext.eval_ctx.r0��T)�optionsr����r��r2���r`���r*��r0����setattrr���r3��r1���)r'���r)���r*����keywordr7��s��� r4����visit_EvalContextModifierz'CodeGenerator.visit_EvalContextModifier���s���������|�� :�� :�G��N�N�?�w�{�?�?�?�@�@�@��J�J�w�}�e�,�,�,� :��m�,�,�U�^�<�<��������S�9�9�9�9����#�� /�� /�� /�*.���'�'�'� /���� :�� :s����A?�?B�Bc������������������b����|�������������������������������������}|j�������������������������������������������}|����������������������|��d��������������|����������������������||�������������|j��������D�]}|����������������������||��������������|j�����������������������������|�������������|����������������������d|��d��������������d�S�)Nz = context.eval_ctx.save()zcontext.eval_ctx.revert(rB���)r����r0����saver����r���rR��r2����revert)r'���r)���r*����old_ctx_name� saved_ctxr5��s��� r4����visit_ScopedEvalContextModifierz-CodeGenerator.visit_ScopedEvalContextModifier���s���������0�0�2�2���N�'�'�)�)� ����,�B�B�B�C�C�C��&�&�t�U�3�3�3��Y�� %�� %�E��J�J�u�e�$�$�$�$� ����i�(�(�(����A�,�A�A�A�B�B�B�B�Br6����NFTr����r����)r ���r.���)Nr���)r>��r?��)�r����r����r����r8���r����rs����TextIOrn���r�����propertyrW���ro���r����r����r+���r����r����r����r����r����Noder���r��r��r����r��rF���r����r��r�����Callr����r�����Mappingr9���r#��r.��r:��r=��rD��rF��r����r����r���r����r_��rf��ri��rp��rs��rW��rY��rX��r{��r}��r���r3��r���r���r���r���rZ���r���r����r����r���r����Includer����Import� FromImportr���r���r����Forr����Ifr���r���r���FilterBlockr���Withr���ExprStmtr��� NamedTupler���staticmethodr��r��r��r%��r(��r7���r,��r/��r1���Outputr8���Assignr:���AssignBlockr=��r����r�����NSRefrB��r���rD��r+��rH��rL��r���rN���DictrP��rM���� visit_Add� visit_Sub� visit_Mul� visit_Div�visit_FloorDiv� visit_Pow� visit_Mod� visit_And�visit_OrrR���� visit_Pos� visit_Neg� visit_Notr;����Concatr[���Comparer^���Operandra���Getattrrd���Getitemrg��rf��rk��r����Iteratorrp��r����r�����CondExprrx��r����Keywordr���MarkSafer����MarkSafeIfAutoescaper����EnvironmentAttributer����ExtensionAttributer���r���r����InternalNamer����ContextReferencer����DerivedContextReferencer����Continuer����Breakr����Scoper����OverlayScoper����EvalContextModifierr����ScopedEvalContextModifierr���r����r6���r4���r(���r(���,��s,����������������(,� ��G4��G4�"�G4���j��o�G4���*�S�/� G4� �� �1�8�$�G4��� G4���G4�� �G4��G4��G4��G4�R��*�4��*��*��*���X�*� L���L�S��L�]��L��L��L��L�,�c��,��,��,��,� /�E��/�d��/��/��/��/��5:�9��9��9�-1�9� �9��9��9��9�(�������"��"�C��"���"��"��"��"�<��<���<�a�j���.D��<�PT��<��<��<��<��u�������������DH������"��*+�*�U�Z�*@�� �������� �� �5�:� 6�� �u�� ��� �� �� �� ��s���t����������IJ�������J�u�z�2��BE�� ��������*��*�A�J�u�z�2��*�#��*�d��*��*��*��*��;?� 7/��7/��g�e�j�%�,�� �:�;�7/���7/���j���3���:�!6�7� 7/� � �7/��7/��7/��7/�r)�q�z�%�*�'=��)�$��)��)��)��)�V>���>�4��>��>��>��>� B��B���B�4��B�D��B��B��B��B�H��H���H�C��H�QT��H��H��H��H�2���2���2��2��2��2�Q ��G�E�K���8�9�Q �BG�Q � ����� !�Q ��Q ��Q ��Q �f �8�� �E�� �d�� �� �� �� ��U�Z���C���������!���!�#��!��!��!��!� +�� +�� +�� +�I���I�$��I��I��I��I�$��$��$��$�6�C��6�D��6��6��6��6�5�S��5�T��5��5��5��5�,��,��,��,�1���1��1��1��1�#�#��#��#��#��#�U�E��U�c��U��U��U��U�3�c��3�d��3��3��3��3�)��)��)��)�)O���)O�4��)O��)O��)O��)O�\�@D�u9��u9��N�u9�+,�:�e�+<�u9� �u9��u9��u9��u9�n)����)�E��)�d��)��)��)��)�V)!�%�-��)!���)!�$��)!��)!��)!��)!�V1�%�-��1���1�$��1��1��1��1�f U��G�E�L�%�*:�:�;� U�DI� U� � U�� U�� U�� U� N���� N�e�� N��� N�� N�� N�� N�0�U�%5��0�e��0���0��0��0��0�dIP�e�i��IP���IP�$��IP��IP��IP��IP�V�U�X���e������������*/����/�E��/�d��/��/��/��/��E�O���E���d��������� '�e�&7�� '��� '�$�� '�� '�� '�� '� %�u�z�� %�%�� %�D�� %�� %�� %�� %�%�5�>��%�%��%�D��%��%��%��%�������������������������1�5���������\���,0�I�q�z�-�(�/�/�/�.� ��.��.��.��.�`#�� �1�5�(9��#�c��#��#��#��#�%��J�%�',�%�8E�%� �%��%��%��%�*%��J�%�',�%�8E�%� �%��%��%��%� ��J� �',� �8E� � � �� �� �� �M����M�e��M���M��M��M��M�^(����(�e��(���(��(��(��(�&�e�&7��&���&�$��&��&��&��&�0�u�z���%���D���������20����0�E��0�d��0��0��0��0�"����"�E��"�d��"��"��"��"��u�'9���%���D���������.����.�E��.�d��.��.��.��.��u�z���%���D����������u�z���%���D������������C� � �I���C� � �I���C� � �I���C� � �I� �[��&�&�N���D�!�!�I���C� � �I���E�"�"�I��{�4� � �H�� �3���I�� �3���I�� �6�"�"�I�������e������������]�����%�-������$���������]��%�%�-��%���%�$��%��%��%��%��� �%�-�� ��� �$�� �� �� ���]� ���!�%�-��!���!�$��!��!��!���]�!�()����)�E��)�d��)��)��)��)���'��G�E�L�%�*�4�5�'�>C�'�PT�'� ��D� �'��'��'���^�'�R��6����6�e��6���6��6��6���]�6� ��)�u�z��)�%��)�D��)��)��)���]�)����5�>���%���D���������]��,��EJ�����J��',��>B�� ��������]��,&�%�-��&���&�$��&��&��&��&��5�>���%���D��������� ��.��7<�� ��������/��.�/�7<�/� �/��/��/��/� O��,�O�5:�O� �O��O��O��O� 9�u�'9��9�%��9�D��9��9��9��9��u�'9���%���D�����������*��38�� �������� /��1�/�:?�/� �/��/��/��/� )�5�>��)�%��)�D��)��)��)��)�&����&�E��&�d��&��&��&��&�&����&�E��&�d��&��&��&��&�%�u�'9��%�%��%�D��%��%��%��%�:��-�:�6;�:� �:��:��:��:� C��3� C�<A� C� � C�� C�� C�� C�� C�� Cr6���r���)Fr�����typingr8���� contextlibr���� functoolsr����ior���� itertoolsr���r���r���r��� markupsafer���r ���r?��r���� exceptionsr���� idtrackingr ���r���r���r���r���r���r/���r����utilsr���r���rJ���r���� TYPE_CHECKING�typing_extensions�terC���r����TypeVarr��r9���r���r`��r;���rs���rK���rM���rQ���rR���rZ���r����r���rn���r_���rd���r����r����Setr����r����r+����RuntimeErrorr���r����r~���r4��r����r(���r����r6���r4����<module>r������s������6��6����������%��%��%��%��%��%��$��$��$��$��$��$��������������������������2��2��2��2��2��2��������������������������������������.��.��.��.��.��.��������������&��&��&��&��&��&��*��*��*��*��*��*��(��(��(��(��(��(��*��*��*��*��*��*�������������� �� �� �� �� �� �������������������������� �� �� �� �� �� ��?��)�"�"�"�"�(�(�(�(�(�(� �A�I�c���C���J�/�0�0�0���� � �� �� � � �� � � 2�Q�� 2�1�� 2�� 2�� 2�� 2� �C���A�J�����'P�RV�'V�W���������,����Z��%�/�7�;�T�A�B��������2�$(������ �.������*�S�/����j��o� � � �J�q�x� ���� ������Z��_��������0�����4���������"��:�e�j�!��*+�*�S�/���U�3�Z��������&��&��&��&��&��&��&��&�P��P��P��P��P��P��P��P�fJ��J��J��J��J�,��J��J��J�'��'��'��'��'�k��'��'��'�&&��&��&��&��&�K��&��&��&�,���������9�������yC��yC��yC��yC��yC�K��yC��yC��yC��yC��yCr6���