+
    NV-j¿�  ã                   ó  a € R t#0 t R t^ RIt^ RIt^RIHt ^RIHt ^RIHt ^RI	H
t
 ^RI	Ht ]P                  '       d   ^ RIt^RIHt ]P"                  ! R]P$                  ]P&                  4      t]P"                  ! R	]P*                  ]P,                  4      t]! . RO4      t]! . RO4      tR
]P6                  R]P8                  R]P:                  R]P<                  R]P>                  R]P@                  /t!] ^ k  ! R R4      t"R# )z8Parse tokens from the lexer into nodes for the compiler.N)Únodes)ÚTemplateAssertionError)ÚTemplateSyntaxError)Údescribe_token)Údescribe_token_expr)ÚEnvironmentÚ_ImportIncludeÚ
_MacroCallÚaddÚsubÚmulÚdivÚfloordivÚmodc                   ó^  a € ] tR t^0t o RtRnV 3R lR lltR]3V 3R lR lltV 3R lR ltRoV 3R	 lR
 llt	RpV 3R lR llt
RoV 3R lR lltRoV 3R lR lltV 3R lR ltRqV 3R lR lltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR  ltV 3R! lR" ltV 3R# lR$ ltV 3R% lR& ltV 3R' lR( ltV 3R) lR* ltV 3R+ lR, ltV 3R- lR. ltV 3R/ lR0 ltV 3R1 lR2 ltV 3R3 lR4 lt]P@                  RrV 3R5 lR6 ll4       t!]P@                  RsV 3R7 lR8 ll4       t!RsV 3R9 lR: llt!RtV 3R; lR< llt"V 3R= lR> lt#V 3R? lR@ lt$V 3RA lRB lt%V 3RC lRD lt&V 3RE lRF lt'V 3RG lRH lt(V 3RI lRJ lt)V 3RK lRL lt*V 3RM lRN lt+RtV 3RO lRP llt,RqV 3RQ lRR llt-RuV 3RS lRT llt.V 3RU lRV lt/V 3RW lRX lt0V 3RY lRZ lt1V 3R[ lR\ lt2V 3R] lR^ lt3V 3R_ lR` lt4V 3Ra lRb lt5V 3Rc lRd lt6RqV 3Re lRf llt7V 3Rg lRh lt8RoV 3Ri lRj llt9V 3Rk lRl lt:Rmt;V t<R# )vÚParserz}This is the central parsing class Jinja uses.  It's passed to
extensions and can be used to parse expressions or statements.
Nc                ó¦   <€ V ^8„  d   QhRRRS[ RS[P                  S[ ,          RS[P                  S[ ,          RS[P                  S[ ,          RR/# )	é   Úenvironmentr   ÚsourceÚnameÚfilenameÚstateÚreturnN)ÚstrÚtÚOptional)ÚformatÚ__classdict__s   "€Ú^/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/jinja2/parser.pyÚ__annotate__ÚParser.__annotate__5   s_   ø€ ÷ >ñ >à"ð>ñ ð>ñ �j‰j™�oð	>ñ
 —*‘*™S•/ð>ñ �z‰z™#�ð>ð 
ñ>ó    c                ó$  € Wn         VP                  W#WE4      V n        W0n        W@n        R V n        / V n        VP                  4        F/  pVP                   F  pVP                  V P                  V&   K  	  K1  	  ^ V n
        . V n        . V n        R# )FN)r   Ú	_tokenizeÚstreamr   r   ÚclosedÚ
extensionsÚiter_extensionsÚtagsÚparseÚ_last_identifierÚ
_tag_stackÚ_end_token_stack)Úselfr   r   r   r   r   Ú	extensionÚtags   &&&&&&  r   Ú__init__ÚParser.__init__5   s‰   € ð 'ÔØ!×+Ñ+¨F¸(ÓJˆŒØŒ	Ø ŒØˆŒð ð 	Œð %×4Ñ4Ö6ˆIØ —~”~�Ø'0§¡�—‘ Ó$ó &ñ 7ð !"ˆÔØ')ˆŒØ;=ˆÖr"   c                óx   <€ V ^8„  d   QhRS[ RS[P                  S[,          RS[P                  S[,          RR/# )r   ÚmsgÚlinenoÚexcr   úte.NoReturn)r   r   r   ÚintÚTyper   )r   r   s   "€r   r    r!   L   sE   ø€ ÷ 9ñ 9áð9ñ —
‘
™3•ð9ñ �V‰VÑ'Õ(ð	9ð
 
ñ9r"   c                ó†   € Vf!   V P                   P                  P                  pV! WV P                  V P                  4      h)zˆConvenience method that raises `exc` with the message, passed
line number or last line number as well as the current name and
filename.
)r%   Úcurrentr5   r   r   )r.   r4   r5   r6   s   &&&&r   ÚfailÚParser.failL   s5   € ð Š>Ø—[‘[×(Ñ(×/Ñ/ˆFÙ�#˜tŸy™y¨$¯-©-Ó8Ð8r"   c                óÄ   <€ V ^8„  d   QhRS[ P                  S[,          RS[ P                  S[ P                  S[R3,          ,          RS[ P                  S[,          RR/# )r   r   Úend_token_stack.r5   r   r7   )r   r   r   ÚListÚTupler8   )r   r   s   "€r   r    r!   Z   sY   ø€ ÷ &-ñ &-á�j‰j™�oð&-ñ Ÿ™¡§¡©¨S¨Õ 1Õ2ð&-ñ —
‘
™3•ð	&-ð
 
ñ&-r"   c           
     ó6  € \        4       pV F"  pVP                  \        \        V4      4       K$  	  V'       d6   R P	                  \        \
        \        \        VR	,          4      4      4      pMRpVf   R.pMRV: R2.pV'       d6   Ve   W9   d   VP                  RV R24       MVP                  RV R24       V P                  '       d(   VP                  RV P                  R	,          : R24       V P                  RP	                  V4      V4       R# )
z or NzUnexpected end of template.zEncountered unknown tag Ú.z\You probably made a nesting mistake. Jinja is expecting this tag, but currently looking for z*Jinja was looking for the following tags: z/The innermost block that needs to be closed is Ú éÿÿÿÿ)	ÚsetÚupdateÚmapr   ÚjoinÚreprÚappendr,   r<   )r.   r   r?   r5   ÚexpectedÚexprsÚcurrently_lookingÚmessages   &&&&    r   Ú_fail_ut_eofÚParser._fail_ut_eofZ   s  € ô  #›uˆÛ$ˆEØ�O‰OœCÔ 3°UÓ;Ö<ñ %çØ17·±Ü”Dœ#Ô1°?À2Õ3FÓGÓHó2Ñð !%ÐàŠ<Ø4Ð5‰Gà1°$±¸Ð;Ð<ˆGçØÒ DÔ$4Ø—‘ð2Ø2CÐ1DÀAðGõð
 —‘Ø@ÐARÐ@SÐSTÐUôð �?�?ˆ?Ø�N‰NðØ—O‘O BÕ'Ñ*¨!ð-ôð
 	�	‰	�#—(‘(˜7Ó# VÖ,r"   c                óN   <€ V ^8„  d   QhRS[ RS[P                  S[,          RR/# )r   r   r5   r   r7   )r   r   r   r8   )r   r   s   "€r   r    r!   ‚   s-   ø€ ÷ ?ñ ?Ùð?Ù!"§¡©C¥ð?à	ñ?r"   c                ó>   € V P                  WP                  V4       R# )zŒCalled if the parser encounters an unknown tag.  Tries to fail
with a human readable error message that could help to identify
the problem.
N)rP   r-   )r.   r   r5   s   &&&r   Úfail_unknown_tagÚParser.fail_unknown_tag‚   s   € ð 	×Ñ˜$× 5Ñ 5°vÖ>r"   c                óš   <€ V ^8„  d   QhRS[ P                  S[ P                  S[R3,          ,          RS[ P                  S[,          RR/# )r   Ú
end_tokens.r5   r   r7   )r   r   rA   r   r8   )r   r   s   "€r   r    r!   ‹   sG   ø€ ÷ 	/ñ 	/á—J‘J™qŸw™w¡s¨C xÕ0Õ1ð	/ñ —
‘
™3•ð	/ð 
ñ		/r"   c                ó~   € \        V P                  4      pVe   VP                  V4       V P                  RW24       R# )z9Like fail_unknown_tag but for end of template situations.N)Úlistr-   rK   rP   )r.   rW   r5   Ústacks   &&& r   Úfail_eofÚParser.fail_eof‹   s6   € ô �T×*Ñ*Ó+ˆØÒ!Ø�L‰L˜Ô$Ø×Ñ˜$ Ö.r"   c                ór   <€ V ^8„  d   QhRS[ P                  S[ P                  S[R3,          ,          RS[/# )r   Úextra_end_rules.r   )r   r   rA   r   Úbool)r   r   s   "€r   r    r!   –   s3   ø€ ÷ ñ Ù Ÿz™z©!¯'©'±#°s°(Õ*;Õ<ðá	ñr"   c                ó¦   € V P                   P                  P                  R9   d   R# Ve&   V P                   P                  P                  V4      # R# )zAre we at the end of a tuple?TF)Úvariable_endÚ	block_endÚrparen)r%   r;   ÚtypeÚtest_any)r.   r^   s   &&r   Úis_tuple_endÚParser.is_tuple_end–   sD   € ð �;‰;×Ñ×#Ñ#Ð'NÔNÙØÒ(Ø—;‘;×&Ñ&×/Ñ/°Ó@Ð@Ùr"   c                ó^   <€ V ^8„  d   QhRS[ P                  S[,          RS[P                  /# )r   r5   r   )r   r   r8   r   ÚInternalName)r   r   s   "€r   r    r!       s)   ø€ ÷ ñ ¡a§j¡j±¥oð Á×ASÑASñ r"   c                óÜ   € V ;P                   ^,          un         \        P                  \        P                  4      p\        P
                  P                  VRV P                    2VR7       V# )zDReturn a new free identifier as :class:`~jinja2.nodes.InternalName`.Úfi©r5   )r+   ÚobjectÚ__new__r   ri   ÚNoder1   )r.   r5   Úrvs   && r   Úfree_identifierÚParser.free_identifier    sS   € à×Ò Õ"ÕÜ�^‰^œE×.Ñ.Ó/ˆÜ�
‰
×Ñ˜B " T×%:Ñ%:Ð$;Ð <ÀVÐÔLØˆ	r"   c                ó–   <€ V ^8„  d   QhRS[ P                  S[P                  S[ P                  S[P                  ,          3,          /# ©r   r   )r   ÚUnionr   ro   r@   )r   r   s   "€r   r    r!   §   s3   ø€ ÷ &ñ &¡§¡©¯©±Q·V±V¹E¿J¹JÕ5GÐ)GÕ!Hñ &r"   c                óˆ  € V P                   P                  pVP                  R8w  d   V P                  RVP                  4       V P
                  P                  VP                  4       Rp VP                  \        9   dX   \        V RV P                   P                  P                   24      pV! 4       V'       d   V P
                  P                  4        # # VP                  R8X  d4   V P                  4       V'       d   V P
                  P                  4        # # VP                  R8X  d4   V P                  4       V'       d   V P
                  P                  4        # # V P                  P                  VP                  4      pVe,   V! V 4      V'       d   V P
                  P                  4        # # V P
                  P                  4        RpV P                  VP                  VP                  4       V'       d   V P
                  P                  4        R# R#   T'       d   T P
                  P                  4        i i ; i)	zParse a single statement.r   ztag name expectedTÚparse_ÚcallÚfilterNF)r%   r;   rd   r<   r5   r,   rK   ÚvalueÚ_statement_keywordsÚgetattrÚpopÚparse_call_blockÚparse_filter_blockr'   ÚgetrT   )r.   ÚtokenÚpop_tagÚfÚexts   &    r   Úparse_statementÚParser.parse_statement§   s¨  € à—‘×#Ñ#ˆØ�:‰:˜ÔØ�I‰IÐ)¨5¯<©<Ô8Ø�‰×Ñ˜uŸ{™{Ô+Øˆð	&Ø�{‰{Ô1Ô1Ü˜D F¨4¯;©;×+>Ñ+>×+DÑ+DÐ*EÐ"FÓG�Ù“s÷  Ø—‘×#Ñ#Õ%ð ð �{‰{˜fÔ$Ø×,Ñ,Ó.÷ Ø—‘×#Ñ#Õ%ð ð �{‰{˜hÔ&Ø×.Ñ.Ó0÷ Ø—‘×#Ñ#Õ%ð ð —/‘/×%Ñ% e§k¡kÓ2ˆCØŠÙ˜4“y÷ Ø—‘×#Ñ#Õ%ð ð	 �O‰O×ÑÔ!ØˆGØ×!Ñ! %§+¡+¨u¯|©|Ô<çØ—‘×#Ñ#Ö%ñ ø�wØ—‘×#Ñ#Õ%ð ús&   Á,AH Ã H Ä H Å 0H Æ4AH È%Ic                óŒ   <€ V ^8„  d   QhRS[ P                  S[R3,          RS[RS[ P                  S[P                  ,          /# )r   rW   .Údrop_needler   )r   rA   r   r_   r@   r   ro   )r   r   s   "€r   r    r!   Ä   s?   ø€ ÷ ñ ÙŸ'™'¡# s (Õ+ðÙ:>ðá	
�‰‘—
‘
Õ	ñr"   c                ó:  € V P                   P                  R4       V P                   P                  R4       V P                  V4      pV P                   P                  P
                  R8X  d   V P                  V4       V'       d   \        V P                   4       V# )a  Parse multiple statements into a list until one of the end tokens
is reached.  This is used to parse the body of statements as it also
parses template data if appropriate.  The parser checks first if the
current token is a colon and skips it if there is one.  Then it checks
for the block end and parses until if one of the `end_tokens` is
reached.  Per default the active token in the stream at the end of
the call is the matched end token.  If this is not wanted `drop_needle`
can be set to `True` and the end token is removed.
Úcolonrb   Úeof)r%   Úskip_ifÚexpectÚsubparser;   rd   r[   Únext)r.   rW   rˆ   Úresults   &&& r   Úparse_statementsÚParser.parse_statementsÄ   sr   € ð 	�‰×Ñ˜GÔ$ð 	�‰×Ñ˜;Ô'Ø—‘˜zÓ*ˆð �;‰;×Ñ×#Ñ# uÔ,Ø�M‰M˜*Ô%çÜ�—‘ÔØˆr"   c                ór   <€ V ^8„  d   QhRS[ P                  S[P                  S[P                  3,          /# rt   )r   ru   r   ÚAssignÚAssignBlock)r   r   s   "€r   r    r!   á   s/   ø€ ÷ 	Kñ 	K™1Ÿ7™7¡5§<¡<±×1BÑ1BÐ#BÕCñ 	Kr"   c                ón  € \        V P                  4      P                  pV P                  RR7      pV P                  P	                  R4      '       d)   V P                  4       p\        P                  ! W#VR7      # V P                  R4      pV P                  RRR7      p\        P                  ! W$WQR7      # )zParse an assign statement.T©Úwith_namespaceÚassignrl   N©rˆ   )zname:endset)r�   r%   r5   Úparse_assign_targetrŒ   Úparse_tupler   r”   Úparse_filterr‘   r•   )r.   r5   ÚtargetÚexprÚfilter_nodeÚbodys   &     r   Ú	parse_setÚParser.parse_setá   s–   € ä�d—k‘kÓ"×)Ñ)ˆØ×)Ñ)¸Ð)Ó>ˆØ�;‰;×Ñ˜x×(Ò(Ø×#Ñ#Ó%ˆDÜ—<’< °VÔ<Ð<Ø×'Ñ'¨Ó-ˆØ×$Ñ$Ð%5À4Ð$ÓHˆÜ× Ò  °dÔJÐJr"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   )r   ÚFor)r   r   s   "€r   r    r!   ì   s   ø€ ÷ Tñ T™5Ÿ9™9ñ Tr"   c           
     ó2  € V P                   P                  R4      P                  pV P                  RR7      pV P                   P                  R4       V P	                  RRR7      pRpV P                   P                  R4      '       d   V P                  4       pV P                   P                  R4      pV P                  R4      p\        V P                   4      P                  R	8X  d   . pMV P                  RR
R7      p\        P                  ! W#WgWEVR7      # )zParse a for loop.zname:forúname:in)r^   Fúname:recursive)Úwith_condexprr^   Núname:ifÚendforTrš   rl   )r§   )r¨   )úname:endforú	name:else)r¬   )r%   r�   r5   r›   rœ   rŒ   Úparse_expressionr‘   r�   rz   r   r¥   )r.   r5   rž   ÚiterÚtestÚ	recursiver¡   Úelse_s   &       r   Ú	parse_forÚParser.parse_forì   só   € à—‘×#Ñ# JÓ/×6Ñ6ˆØ×)Ñ)¸,Ð)ÓGˆØ�‰×Ñ˜9Ô%Ø×ÑØÐ1Dð  ó 
ˆð ˆØ�;‰;×Ñ˜y×)Ò)Ø×(Ñ(Ó*ˆDØ—K‘K×'Ñ'Ð(8Ó9ˆ	Ø×$Ñ$Ð%AÓBˆÜ�—‘Ó×"Ñ" hÔ.Ø‰Eà×)Ñ)Ð*:ÈÐ)ÓMˆEÜ�yŠy˜ t°DÈFÔSÐSr"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   )r   ÚIf)r   r   s   "€r   r    r!   ÿ   s   ø€ ÷ ñ ™%Ÿ(™(ñ r"   c                óP  € \         P                  ! V P                  P                  R4      P                  R7      ;r V P                  RR7      Vn        V P                  R	4      Vn        . Vn	        . Vn
        \        V P                  4      pVP                  R4      '       dS   \         P                  ! V P                  P                  P                  R7      pVP                  P                  V4       Kº  VP                  R4      '       d   V P                  R
RR7      Vn
         V# )zParse an if construct.rª   rl   TF©r©   ú	name:elifr­   rš   )r¹   r­   ú
name:endif)rº   )r   r¶   r%   r�   r5   rœ   r°   r‘   r¡   Úelif_r²   r�   r;   rK   )r.   Únoder�   r�   s   &   r   Úparse_ifÚParser.parse_ifÿ   sà   € äŸš¨¯©×(:Ñ(:¸9Ó(E×(LÑ(LÔMÐMˆØØ×(Ñ(°uÐ(Ó=ˆDŒIØ×-Ñ-Ð.VÓWˆDŒIØˆDŒJØˆDŒJÜ˜Ÿ™Ó%ˆEØ�z‰z˜+×&Ò&Ü—x’x t§{¡{×':Ñ':×'AÑ'AÔB�Ø—‘×#Ñ# DÔ)ÙØ—‘˜K×(Ò(Ø#×4Ñ4°_ÐRVÐ4ÓW�”ØØˆr"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   )r   ÚWith)r   r   s   "€r   r    r!     s   ø€ ÷ ñ ™EŸJ™Jñ r"   c                ó*  € \         P                  ! \        V P                  4      P                  R 7      p. p. pV P                  P
                  P                  R8w  d’   V'       d   V P                  P                  R4       V P                  4       pVP                  R4       VP                  V4       V P                  P                  R4       VP                  V P                  4       4       K¶  W!n        W1n        V P                  RRR7      Vn        V# )rl   rb   ÚcommaÚparamr™   Trš   )zname:endwith)r   rÀ   r�   r%   r5   r;   rd   r�   r›   Úset_ctxrK   r®   ÚtargetsÚvaluesr‘   r¡   )r.   r¼   rÅ   rÆ   rž   s   &    r   Ú
parse_withÚParser.parse_with  sÊ   € Ü�zŠz¤ d§k¡kÓ!2×!9Ñ!9Ô:ˆØ&(ˆØ%'ˆØ�k‰k×!Ñ!×&Ñ&¨+Ô5ßØ—‘×"Ñ" 7Ô+Ø×-Ñ-Ó/ˆFØ�N‰N˜7Ô#Ø�N‰N˜6Ô"Ø�K‰K×Ñ˜xÔ(Ø�M‰M˜$×/Ñ/Ó1Ö2ØŒØŒØ×)Ñ)Ð*;ÈÐ)ÓNˆŒ	Øˆr"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   )r   ÚScope)r   r   s   "€r   r    r!   "  s   ø€ ÷ #ñ #¡%§+¡+ñ #r"   c                ó  € \         P                  ! \        V P                  4      P                  R 7      p\         P
                  ! RV P                  4       4      .Vn        V P                  RRR7      Vn	        \         P                  ! V.4      # )rl   Ú
autoescapeTrš   )zname:endautoescape)r   ÚScopedEvalContextModifierr�   r%   r5   ÚKeywordr®   Úoptionsr‘   r¡   rÊ   ©r.   r¼   s   & r   Úparse_autoescapeÚParser.parse_autoescape"  sh   € Ü×.Ò.´d¸4¿;¹;Ó6G×6NÑ6NÔOˆÜŸš l°D×4IÑ4IÓ4KÓLÐMˆŒØ×)Ñ)Ð*AÈtÐ)ÓTˆŒ	Ü�{Š{˜D˜6Ó"Ð"r"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   )r   ÚBlock)r   r   s   "€r   r    r!   (  s   ø€ ÷ ñ ™UŸ[™[ñ r"   c                ó‚  € \         P                  ! \        V P                  4      P                  R 7      pV P                  P                  R4      P                  Vn        V P                  P                  R4      Vn	        V P                  P                  R4      Vn
        V P                  P                  P                  R8X  d   V P                  R4       V P                  RRR7      Vn        VP                  '       d•   VP                   F„  p\!        V\         P"                  4      '       dQ   \$        ;QJ d&    R VP                    4       F  '       g   K   RM	  R	M! R VP                    4       4      '       g   Ks  V P                  R
4       K†  	  V P                  P                  RVP                  ,           4       V# )rl   r   zname:scopedzname:requiredr   zpBlock names in Jinja have to be valid Python identifiers and may not contain hyphens, use an underscore instead.Trš   c              3   ó®   "  € T FK  p\        V\        P                  4      '       * ;'       g     VP                  P	                  4       '       * x € KM  	  R # 5i©N)Ú
isinstancer   ÚTemplateDataÚdataÚisspace)Ú.0Úoutput_nodes   & r   Ú	<genexpr>Ú%Parser.parse_block.<locals>.<genexpr>>  sN   é € ð Bñ (7˜ô # ;´×0BÑ0BÓCÔC÷ 6ð 6Ø&×+Ñ+×3Ñ3Ó5Ô5ô6ã'6ùs
   ‚*A­(AFz7Required blocks can only contain comments or whitespacezname:)zname:endblock)r   rÔ   r�   r%   r5   r�   rz   r   rŒ   ÚscopedÚrequiredr;   rd   r<   r‘   r¡   rØ   ÚOutputÚany)r.   r¼   Ú	body_nodes   &  r   Úparse_blockÚParser.parse_block(  sE  € Ü�{Š{¤$ t§{¡{Ó"3×":Ñ":Ô;ˆØ—K‘K×&Ñ& vÓ.×4Ñ4ˆŒ	Ø—k‘k×)Ñ)¨-Ó8ˆŒØŸ™×+Ñ+¨OÓ<ˆŒð
 �;‰;×Ñ×#Ñ# uÔ,Ø�I‰Ið?ôð
 ×)Ñ)Ð*<È$Ð)ÓOˆŒ	ð
 �=�=ˆ=Ø!ŸYœY�	Ü! )¬U¯\©\×:Ò:¿c»cñ Bð (1§¢óB¿c¿cºcñ Bð (1§¢óB÷ ?ô ?ð
 —I‘IÐWÖXñ 'ð 	�‰×Ñ˜G d§i¡iÕ/Ô0Øˆr"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   )r   ÚExtends)r   r   s   "€r   r    r!   H  s   ø€ ÷ ñ ™uŸ}™}ñ r"   c                ó˜   € \         P                  ! \        V P                  4      P                  R 7      pV P                  4       Vn        V# ©rl   )r   rè   r�   r%   r5   r®   ÚtemplaterÐ   s   & r   Úparse_extendsÚParser.parse_extendsH  s4   € Ü�}Š}¤D¨¯©Ó$5×$<Ñ$<Ô=ˆØ×-Ñ-Ó/ˆŒØˆr"   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[ /# )r   r¼   Údefaultr   )r   r_   )r   r   s   "€r   r    r!   M  s%   ø€ ÷ 
ñ 
Ù"ð
Ù-1ð
á	ñ
r"   c                óN  € V P                   P                  P                  R R4      '       ds   V P                   P                  4       P	                  R4      '       dD   \        V P                   4      P                  R8H  Vn        V P                   P                  4        V# W!n        V# )z	name:withzname:withoutúname:contextÚwith)	r%   r;   re   Úlookr°   r�   rz   Úwith_contextÚskip)r.   r¼   rï   s   &&&r   Úparse_import_contextÚParser.parse_import_contextM  s„   € ð �;‰;×Ñ×'Ñ'Ø˜÷
ò 
à�k‰k×ÑÓ ×%Ñ% n×5Ò5Ü $ T§[¡[Ó 1× 7Ñ 7¸6Ñ AˆDÔØ�K‰K×ÑÔð ˆð !(ÔØˆr"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   )r   ÚInclude)r   r   s   "€r   r    r!   Y  s   ø€ ÷ 
5ñ 
5™uŸ}™}ñ 
5r"   c                óÀ  € \         P                  ! \        V P                  4      P                  R 7      pV P                  4       Vn        V P                  P                  P                  R4      '       dS   V P                  P                  4       P                  R4      '       d$   RVn
        V P                  P                  ^4       MRVn
        V P                  VR4      # )rl   zname:ignorezname:missingTF)r   rù   r�   r%   r5   r®   rë   r;   r°   ró   Úignore_missingrõ   rö   rÐ   s   & r   Úparse_includeÚParser.parse_includeY  s£   € Ü�}Š}¤D¨¯©Ó$5×$<Ñ$<Ô=ˆØ×-Ñ-Ó/ˆŒØ�;‰;×Ñ×#Ñ# M×2Ò2°t·{±{×7GÑ7GÓ7I×7NÑ7NØ÷8
ò 8
ð #'ˆDÔØ�K‰K×Ñ˜QÕà"'ˆDÔØ×(Ñ(¨¨tÓ4Ð4r"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   )r   ÚImport)r   r   s   "€r   r    r!   e  s   ø€ ÷ 6ñ 6™eŸl™lñ 6r"   c                ó0  € \         P                  ! \        V P                  4      P                  R 7      pV P                  4       Vn        V P                  P                  R4       V P                  RR7      P                  Vn
        V P                  VR4      # )rl   úname:asT©Ú	name_onlyF)r   rÿ   r�   r%   r5   r®   rë   r�   r›   r   rž   rö   rÐ   s   & r   Úparse_importÚParser.parse_importe  so   € Ü�|Š|¤4¨¯©Ó#4×#;Ñ#;Ô<ˆØ×-Ñ-Ó/ˆŒØ�‰×Ñ˜9Ô%Ø×.Ñ.¸Ð.Ó>×CÑCˆŒØ×(Ñ(¨¨uÓ5Ð5r"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   )r   Ú
FromImport)r   r   s   "€r   r    r!   l  s   ø€ ÷ (ñ (™E×,Ñ,ñ (r"   c                óR  a a€ \         P                  ! \        S P                  4      P                  R 7      oS P                  4       Sn        S P                  P                  R4       . Sn        R VV 3R llp SP                  '       d   S P                  P                  R4       S P                  P                  P                  R8X  Ed%   V! 4       '       d   EM3S P                  RR7      pVP                  P                  R4      '       d#   S P                  R	VP                  \        R
7       S P                  P!                  R4      '       dE   S P                  RR7      pSP                  P#                  VP                  VP                  34       M%SP                  P#                  VP                  4       V! 4       '       g&   S P                  P                  P                  R8w  d   M!EKx  S P                  P                  R4       EK–  \%        SR4      '       g   RSn        S# )rl   zname:importc                ó$   € V ^8„  d   QhR\         /# rt   ©r_   )r   s   "r   r    Ú'Parser.parse_from.<locals>.__annotate__r  s   € ÷ 	ñ 	œtñ 	r"   c                  ó6  <€ SP                   P                  P                  R9   ds   SP                   P                  4       P	                  R4      '       dD   \        SP                   4      P                  R 8H  S n        SP                   P                  4        R# R# )rò   rñ   TF>   rò   Úwithout)r%   r;   rz   ró   r°   r�   rô   rõ   )r¼   r.   s   €€r   Úparse_contextÚ(Parser.parse_from.<locals>.parse_contextr  sr   ø€ Ø�{‰{×"Ñ"×(Ñ(ð -ô ð —+‘+×"Ñ"Ó$×)Ñ)¨.×9Ò9Ü$(¨¯©Ó$5×$;Ñ$;¸vÑ$E�Ô!Ø—‘× Ñ Ô"ÙÙr"   TrÂ   r   r  Ú_z4names starting with an underline can not be imported)r6   r  rô   F)r   r  r�   r%   r5   r®   rë   r�   Únamesr;   rd   r›   r   Ú
startswithr<   r   rŒ   rK   Úhasattrrô   )r.   r  rž   Úaliasr¼   s   f   @r   Ú
parse_fromÚParser.parse_froml  s‘  ù€ Ü×Ò¤t¨D¯K©KÓ'8×'?Ñ'?Ô@ˆØ×-Ñ-Ó/ˆŒØ�‰×Ñ˜=Ô)ØˆŒ
÷	ñ 	ð Ø�z�zˆzØ—‘×"Ñ" 7Ô+Ø�{‰{×"Ñ"×'Ñ'¨6Õ1Ù —?’?ÙØ×1Ñ1¸DÐ1ÓA�Ø—;‘;×)Ñ)¨#×.Ò.Ø—I‘IØNØŸ™Ü2ð ô ð
 —;‘;×&Ñ& y×1Ò1Ø ×4Ñ4¸tÐ4ÓD�EØ—J‘J×%Ñ% v§{¡{°E·J±JÐ&?Õ@à—J‘J×%Ñ% f§k¡kÔ2Ù —?’? d§k¡k×&9Ñ&9×&>Ñ&>À'Ô&IØò 'Jð —‘×"Ñ" 6×*Ü�t˜^×,Ò,Ø %ˆDÔØˆr"   c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   r¼   r   N)r	   )r   r   s   "€r   r    r!   –  s   ø€ ÷ %ñ %¡Jð %°4ñ %r"   c                óB  € . ;q!n         . ;q1n        V P                  P                  R 4       V P                  P                  P
                  R8w  d´   V'       d   V P                  P                  R4       V P                  RR7      pVP                  R4       V P                  P                  R4      '       d!   VP                  V P                  4       4       MV'       d   V P                  R4       VP                  V4       KØ  V P                  P                  R4       R# )	Úlparenrc   rÂ   Tr  rÃ   r™   z-non-default argument follows default argumentN)ÚargsÚdefaultsr%   r�   r;   rd   r›   rÄ   rŒ   rK   r®   r<   )r.   r¼   r  r  Úargs   &&   r   Úparse_signatureÚParser.parse_signature–  sÌ   € ØÐˆŒyØ#%Ð%ˆ”=Ø�‰×Ñ˜8Ô$Ø�k‰k×!Ñ!×&Ñ&¨(Ô2ßØ—‘×"Ñ" 7Ô+Ø×*Ñ*°TÐ*Ó:ˆCØ�K‰K˜Ô Ø�{‰{×"Ñ" 8×,Ò,Ø—‘ × 5Ñ 5Ó 7Õ8ßØ—	‘	ÐIÔJØ�K‰K˜ÖØ�‰×Ñ˜8Ö$r"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   )r   Ú	CallBlock)r   r   s   "€r   r    r!   ¦  s   ø€ ÷ ñ ¡%§/¡/ñ r"   c                óÌ  € \         P                  ! \        V P                  4      P                  R 7      pV P                  P
                  P                  R8X  d   V P                  V4       M. Vn        . Vn	        V P                  4       p\        V\         P                  4      '       g   V P                  RVP                  4       W!n        V P                  RRR7      Vn        V# )rl   r  zexpected callTrš   )zname:endcall)r   r   r�   r%   r5   r;   rd   r  r  r  r®   rØ   ÚCallr<   rx   r‘   r¡   )r.   r¼   Ú	call_nodes   &  r   r~   ÚParser.parse_call_block¦  s¦   € Ü�Š¤d¨4¯;©;Ó&7×&>Ñ&>Ô?ˆØ�;‰;×Ñ×#Ñ# xÔ/Ø× Ñ  Õ&àˆDŒIØˆDŒMà×)Ñ)Ó+ˆ	Ü˜)¤U§Z¡Z×0Ò0Ø�I‰I�o t§{¡{Ô3ØŒ	Ø×)Ñ)Ð*;ÈÐ)ÓNˆŒ	Øˆr"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   )r   ÚFilterBlock)r   r   s   "€r   r    r!   µ  s   ø€ ÷ ñ ¡E×$5Ñ$5ñ r"   c                óÎ   € \         P                  ! \        V P                  4      P                  R 7      pV P                  RRR7      Vn        V P                  RRR7      Vn        V# )rl   NT)Ústart_inlinerš   )zname:endfilter)	r   r&  r�   r%   r5   r�   ry   r‘   r¡   rÐ   s   & r   r   ÚParser.parse_filter_blockµ  sU   € Ü× Ò ¬¨T¯[©[Ó(9×(@Ñ(@ÔAˆØ×'Ñ'¨¸4Ð'Ó@ˆŒØ×)Ñ)Ð*=È4Ð)ÓPˆŒ	Øˆr"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   )r   ÚMacro)r   r   s   "€r   r    r!   »  s   ø€ ÷ ñ ™UŸ[™[ñ r"   c                ó  € \         P                  ! \        V P                  4      P                  R 7      pV P                  RR7      P                  Vn        V P                  V4       V P                  RRR7      Vn	        V# )rl   Tr  rš   )zname:endmacro)
r   r+  r�   r%   r5   r›   r   r  r‘   r¡   rÐ   s   & r   Úparse_macroÚParser.parse_macro»  se   € Ü�{Š{¤$ t§{¡{Ó"3×":Ñ":Ô;ˆØ×,Ñ,°tÐ,Ó<×AÑAˆŒ	Ø×Ñ˜TÔ"Ø×)Ñ)Ð*<È$Ð)ÓOˆŒ	Øˆr"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   )r   râ   )r   r   s   "€r   r    r!   Â  s   ø€ ÷ ñ ™UŸ\™\ñ r"   c                óv  € \         P                  ! \        V P                  4      P                  R 7      p. Vn         V P                  P
                  P                  R8w  dY   VP                   '       d   V P                  P                  R4       VP                   P                  V P                  4       4       K}  V# )rl   rb   rÂ   )
r   râ   r�   r%   r5   r;   rd   r�   rK   r®   rÐ   s   & r   Úparse_printÚParser.parse_printÂ  sy   € Ü�|Š|¤4¨¯©Ó#4×#;Ñ#;Ô<ˆØˆŒ
Ø�k‰k×!Ñ!×&Ñ&¨+Ô5Ø�z�zˆzØ—‘×"Ñ" 7Ô+Ø�J‰J×Ñ˜d×3Ñ3Ó5Ö6Øˆr"   c                ó>   <€ V ^8„  d   QhRS[ RRRS[P                  /# )r   Ú
with_tupler  zte.Literal[True]r   )r_   r   ÚName)r   r   s   "€r   r    r!   Ì  s)   ø€ ÷ ñ ÙðØ1Cðá	�‰ñr"   c                ó   € R # r×   © )r.   r4  r  s   &&&r   r›   ÚParser.parse_assign_targetË  s   € ñ r"   c                óî   <€ V ^8„  d   QhRS[ RS[ RS[P                  S[P                  S[R3,          ,          RS[ RS[P
                  S[P                  S[P                  S[P                  3,          /# ©r   r4  r  r^   .r˜   r   ©	r_   r   r   rA   r   ru   r   ÚNSRefr5  )r   r   s   "€r   r    r!   Ñ  so   ø€ ÷ <ñ <áð<ñ ð<ñ Ÿ™¡A§G¡G©C°¨HÕ$5Õ6ð	<ñ
 ð<ñ 
�‰‘—‘™eŸj™j©%¯+©+Ð5Õ	6ñ<r"   c                ó   € R # r×   r7  )r.   r4  r  r^   r˜   s   &&&&&r   r›   r8  Ð  s   € ñ 9<r"   c                óî   <€ V ^8„  d   QhRS[ RS[ RS[P                  S[P                  S[R3,          ,          RS[ RS[P
                  S[P                  S[P                  S[P                  3,          /# r:  r;  )r   r   s   "€r   r    r!   Ù  so   ø€ ÷ %ñ %áð%ñ ð%ñ Ÿ™¡A§G¡G©C°¨HÕ$5Õ6ð	%ñ
 ð%ñ 
�‰‘—‘™eŸj™j©%¯+©+Ð5Õ	6ñ%r"   c                óÖ  € V'       dJ   V P                   P                  R4      p\        P                  ! VP                  RVP
                  R7      pM@V'       d   V P                  RVVR7      pMV P                  VR7      pVP                  R4       VP                  4       '       gB   V P                  R\        V4      P                  P                  4       : 2VP
                  4       V# )aÊ  Parse an assignment target.  As Jinja allows assignments to
tuples, this function can parse all allowed assignment targets.  Per
default assignments to tuples are parsed, that can be disable however
by setting `with_tuple` to `False`.  If only assignments to names are
wanted `name_only` can be set to `True`.  The `extra_end_rules`
parameter is forwarded to the tuple parsing function.  If
`with_namespace` is enabled, a namespace assignment may be parsed.
r   Ústorerl   T)Ú
simplifiedr^   r˜   r—   zcan't assign to )r%   r�   r   r5  rz   r5   rœ   Úparse_primaryrÄ   Ú
can_assignr<   rd   Ú__name__Úlower)r.   r4  r  r^   r˜   r�   rž   s   &&&&&  r   r›   r8  Ù  s½   € ÷" Ø—K‘K×&Ñ& vÓ.ˆEÜ—Z’Z §¡¨W¸U¿\¹\ÔJ‰FçØ×)Ñ)Ø#Ø$3Ø#1ð *ó ‘ð ×+Ñ+¸>Ð+ÓJ�à�N‰N˜7Ô#à× Ñ ×"Ò"Ø�I‰IØ"¤4¨£<×#8Ñ#8×#>Ñ#>Ó#@Ñ"CÐDÀfÇmÁmôð ˆr"   c                ó:   <€ V ^8„  d   QhRS[ RS[P                  /# )r   r©   r   ©r_   r   ÚExpr)r   r   s   "€r   r    r!      s   ø€ ÷ ñ ©dð ¹e¿j¹jñ r"   c                óR   € V'       d   V P                  4       # V P                  4       # )z¢Parse an expression.  Per default all expressions are parsed, if
the optional `with_condexpr` parameter is set to `False` conditional
expressions are not parsed.
)Úparse_condexprÚparse_or©r.   r©   s   &&r   r®   ÚParser.parse_expression   s"   € ÷
 Ø×&Ñ&Ó(Ð(Ø�}‰}‹Ðr"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   ©r   rH  )r   r   s   "€r   r    r!   	  s   ø€ ÷ ñ ¡§
¡
ñ r"   c                ó¤  € V P                   P                  P                  pV P                  4       pV P                   P	                  R 4      '       d   V P                  4       pV P                   P	                  R4      '       d   V P                  4       pMRp\        P                  ! W2WAR7      pV P                   P                  P                  pKŸ  V# )rª   r­   Nrl   )r%   r;   r5   rK  rŒ   rJ  r   ÚCondExpr)r.   r5   Úexpr1Úexpr2Úexpr3s   &    r   rJ  ÚParser.parse_condexpr	  s–   € Ø—‘×$Ñ$×+Ñ+ˆØ—‘“ˆð �k‰k×!Ñ! )×,Ò,Ø—M‘M“OˆEØ�{‰{×"Ñ" ;×/Ò/Ø×+Ñ+Ó-‘à�Ü—N’N 5°ÔFˆEØ—[‘[×(Ñ(×/Ñ/ŠFØˆr"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   rO  )r   r   s   "€r   r    r!     s   ø€ ÷ ñ ™%Ÿ*™*ñ r"   c                ó<  € V P                   P                  P                  pV P                  4       pV P                   P	                  R 4      '       dK   V P                  4       p\
        P                  ! W#VR7      pV P                   P                  P                  pKk  V# )úname:orrl   )r%   r;   r5   Ú	parse_andrŒ   r   ÚOr©r.   r5   ÚleftÚrights   &   r   rK  ÚParser.parse_or  sn   € Ø—‘×$Ñ$×+Ñ+ˆØ�~‰~ÓˆØ�k‰k×!Ñ! )×,Ò,Ø—N‘NÓ$ˆEÜ—8’8˜D°Ô7ˆDØ—[‘[×(Ñ(×/Ñ/ŠFØˆr"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   rO  )r   r   s   "€r   r    r!   !  s   ø€ ÷ ñ ™5Ÿ:™:ñ r"   c                ó<  € V P                   P                  P                  pV P                  4       pV P                   P	                  R 4      '       dK   V P                  4       p\
        P                  ! W#VR7      pV P                   P                  P                  pKk  V# )úname:andrl   )r%   r;   r5   Ú	parse_notrŒ   r   ÚAndr[  s   &   r   rY  ÚParser.parse_and!  sn   € Ø—‘×$Ñ$×+Ñ+ˆØ�~‰~ÓˆØ�k‰k×!Ñ! *×-Ò-Ø—N‘NÓ$ˆEÜ—9’9˜T°Ô8ˆDØ—[‘[×(Ñ(×/Ñ/ŠFØˆr"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   rO  )r   r   s   "€r   r    r!   *  s   ø€ ÷ $ñ $™5Ÿ:™:ñ $r"   c                ó  € V P                   P                  P                  R 4      '       dF   \        V P                   4      P                  p\
        P                  ! V P                  4       VR7      # V P                  4       # )úname:notrl   )	r%   r;   r°   r�   r5   r   ÚNotrb  Úparse_compare)r.   r5   s   & r   rb  ÚParser.parse_not*  sX   € Ø�;‰;×Ñ×#Ñ# J×/Ò/Ü˜$Ÿ+™+Ó&×-Ñ-ˆFÜ—9’9˜TŸ^™^Ó-°fÔ=Ð=Ø×!Ñ!Ó#Ð#r"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   rO  )r   r   s   "€r   r    r!   0  s   ø€ ÷ 7ñ 7™uŸz™zñ 7r"   c                óÞ  € V P                   P                  P                  pV P                  4       p. p V P                   P                  P                  pV\
        9   dK   \        V P                   4       VP                  \        P                  ! W@P                  4       4      4       EMV P                   P                  R4      '       d6   VP                  \        P                  ! RV P                  4       4      4       M«V P                   P                  P                  R4      '       d€   V P                   P                  4       P                  R4      '       dQ   V P                   P                  ^4       VP                  \        P                  ! RV P                  4       4      4       MM#V P                   P                  P                  pEKš  V'       g   V# \        P                  ! W#VR7      # )Tr§   Úinrg  Únotinrl   )r%   r;   r5   Úparse_math1rd   Ú_compare_operatorsr�   rK   r   ÚOperandrŒ   r°   ró   rõ   ÚCompare)r.   r5   rŸ   ÚopsÚ
token_types   &    r   ri  ÚParser.parse_compare0  sL  € Ø—‘×$Ñ$×+Ñ+ˆØ×ÑÓ!ˆØˆØØŸ™×,Ñ,×1Ñ1ˆJØÔ/Ô/Ü�T—[‘[Ô!Ø—
‘
œ5Ÿ=š=¨×5EÑ5EÓ5GÓHÖIØ—‘×$Ñ$ Y×/Ò/Ø—
‘
œ5Ÿ=š=¨¨t×/?Ñ/?Ó/AÓBÕCØ—‘×$Ñ$×)Ñ)¨*×5Ò5¸$¿+¹+×:JÑ:JÓ:L×:QÑ:QØ÷;ò ;ð —‘× Ñ  Ô#Ø—
‘
œ5Ÿ=š=¨°$×2BÑ2BÓ2DÓEÕFàØ—[‘[×(Ñ(×/Ñ/‹FßØˆKÜ�}Š}˜T¨vÔ6Ð6r"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   rO  )r   r   s   "€r   r    r!   G  ó   ø€ ÷ 	ñ 	™UŸZ™Zñ 	r"   c                ó¨  € V P                   P                  P                  pV P                  4       pV P                   P                  P                  R9   d}   \
        V P                   P                  P                  ,          p\        V P                   4       V P                  4       pV! W$VR7      pV P                   P                  P                  pK¡  V# )r
   rl   )r
   r   )r%   r;   r5   Úparse_concatrd   Ú_math_nodesr�   ©r.   r5   r\  Úclsr]  s   &    r   ro  ÚParser.parse_math1G  s—   € Ø—‘×$Ñ$×+Ñ+ˆØ× Ñ Ó"ˆØ�k‰k×!Ñ!×&Ñ&¨.Ô8Ü˜dŸk™k×1Ñ1×6Ñ6Õ7ˆCÜ�—‘ÔØ×%Ñ%Ó'ˆEÙ�t¨6Ô2ˆDØ—[‘[×(Ñ(×/Ñ/ŠFØˆr"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   rO  )r   r   s   "€r   r    r!   R  s   ø€ ÷ 1ñ 1™eŸj™jñ 1r"   c                óz  € V P                   P                  P                  pV P                  4       .pV P                   P                  P                  R 8X  d7   \        V P                   4       VP                  V P                  4       4       K[  \        V4      ^8X  d
   V^ ,          # \        P                  ! W!R7      # )Útilderl   )
r%   r;   r5   Úparse_math2rd   r�   rK   Úlenr   ÚConcat)r.   r5   r  s   &  r   ry  ÚParser.parse_concatR  s„   € Ø—‘×$Ñ$×+Ñ+ˆØ× Ñ Ó"Ð#ˆØ�k‰k×!Ñ!×&Ñ&¨'Ô1Ü�—‘ÔØ�K‰K˜×(Ñ(Ó*Ö+Üˆt‹9˜Œ>Ø˜•7ˆNÜ�|Š|˜DÔ0Ð0r"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   rO  )r   r   s   "€r   r    r!   \  rw  r"   c                ó¨  € V P                   P                  P                  pV P                  4       pV P                   P                  P                  R9   d}   \
        V P                   P                  P                  ,          p\        V P                   4       V P                  4       pV! W$VR7      pV P                   P                  P                  pK¡  V# )r   rl   )r   r   r   r   )r%   r;   r5   Ú	parse_powrd   rz  r�   r{  s   &    r   r�  ÚParser.parse_math2\  s”   € Ø—‘×$Ñ$×+Ñ+ˆØ�~‰~ÓˆØ�k‰k×!Ñ!×&Ñ&Ð*KÔKÜ˜dŸk™k×1Ñ1×6Ñ6Õ7ˆCÜ�—‘ÔØ—N‘NÓ$ˆEÙ�t¨6Ô2ˆDØ—[‘[×(Ñ(×/Ñ/ŠFØˆr"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   rO  )r   r   s   "€r   r    r!   g  s   ø€ ÷ ñ ™5Ÿ:™:ñ r"   c                ón  € V P                   P                  P                  pV P                  4       pV P                   P                  P                  R 8X  d`   \        V P                   4       V P                  4       p\        P                  ! W#VR7      pV P                   P                  P                  pK„  V# )Úpowrl   )r%   r;   r5   Úparse_unaryrd   r�   r   ÚPowr[  s   &   r   r‡  ÚParser.parse_powg  s�   € Ø—‘×$Ñ$×+Ñ+ˆØ×ÑÓ!ˆØ�k‰k×!Ñ!×&Ñ&¨%Ô/Ü�—‘ÔØ×$Ñ$Ó&ˆEÜ—9’9˜T°Ô8ˆDØ—[‘[×(Ñ(×/Ñ/ŠFØˆr"   c                ó:   <€ V ^8„  d   QhRS[ RS[P                  /# )r   Úwith_filterr   rG  )r   r   s   "€r   r    r!   q  s   ø€ ÷ ñ ¡tð ±u·z±zñ r"   c                ó
  € V P                   P                  P                  pV P                   P                  P                  pVR 8X  d>   \	        V P                   4       \
        P                  ! V P                  R4      VR7      pMTVR8X  d>   \	        V P                   4       \
        P                  ! V P                  R4      VR7      pMV P                  4       pV P                  V4      pV'       d   V P                  V4      pV# )r   Frl   r
   )r%   r;   rd   r5   r�   r   ÚNegrŒ  ÚPosrB  Úparse_postfixÚparse_filter_expr)r.   r�  rt  r5   r¼   s   &&   r   rŒ  ÚParser.parse_unaryq  sÂ   € Ø—[‘[×(Ñ(×-Ñ-ˆ
Ø—‘×$Ñ$×+Ñ+ˆð ˜ÔÜ�—‘ÔÜ—9’9˜T×-Ñ-¨eÓ4¸VÔD‰DØ˜5Ô Ü�—‘ÔÜ—9’9˜T×-Ñ-¨eÓ4¸VÔD‰Dà×%Ñ%Ó'ˆDØ×!Ñ! $Ó'ˆßØ×)Ñ)¨$Ó/ˆDØˆr"   c                ó:   <€ V ^8„  d   QhRS[ RS[P                  /# )r   r˜   r   rG  )r   r   s   "€r   r    r!   ƒ  s   ø€ ÷ (ñ (©Dð (¹U¿Z¹Zñ (r"   c                óÐ  € V P                   P                  pVP                  R8X  EdS   \        V P                   4       VP                  R9   d2   \
        P                  ! VP                  R9   VP                  R7      pV# VP                  R9   d%   \
        P                  ! RVP                  R7      pV# V'       d�   V P                   P                  P                  R8X  dj   \        V P                   4       V P                   P                  R4      p\
        P                  ! VP                  VP                  VP                  R7      pV# \
        P                  ! VP                  RVP                  R7      p V# VP                  R8X  dÃ   \        V P                   4       VP                  .pVP                  pV P                   P                  P                  R8X  dG   VP                  V P                   P                  P                  4       \        V P                   4       Kk  \
        P                  ! RP                  V4      VR7      pV# VP                  R9   dD   \        V P                   4       \
        P                  ! VP                  VP                  R7      pV# VP                  R8X  dE   \        V P                   4       V P                  R	R
7      pV P                   P                  R4       V# VP                  R8X  d   V P                  4       pV# VP                  R8X  d   V P                  4       pV# V P!                  R\#        V4      : 2VP                  4       X# )zxParse a name or literal value. If ``with_namespace`` is enabled, also
parse namespace attr refs, for use in assignments.r   rl   NÚdotÚloadÚstringÚ r  T)Úexplicit_parenthesesrc   ÚlbracketÚlbracezunexpected )ÚtrueÚfalseÚTrueÚFalse)r   r¢  )ÚnoneÚNone)ÚintegerÚfloat)r%   r;   rd   r�   rz   r   ÚConstr5   r�   r<  r5  rK   rI   rœ   Ú
parse_listÚ
parse_dictr<   r   )r.   r˜   r�   r¼   ÚattrÚbufr5   s   &&     r   rB  ÚParser.parse_primaryƒ  sƒ  € ð —‘×#Ñ#ˆà�:‰:˜ÕÜ�—‘ÔØ�{‰{Ð@Ô@Ü—{’{ 5§;¡;Ð2BÑ#BÈ5Ï<É<ÔX�ð@ ˆð? —‘Ð 0Ô0Ü—{’{ 4°·±Ô=�ð< ˆ÷;   D§K¡K×$7Ñ$7×$<Ñ$<ÀÔ$Eô �T—[‘[Ô!Ø—{‘{×)Ñ)¨&Ó1�Ü—{’{ 5§;¡;°·
±
À5Ç<Á<ÔP�ð0 ˆô- —z’z %§+¡+¨v¸e¿l¹lÔK‘ð, ˆð+ �Z‰Z˜8Ô#Ü�—‘ÔØ—;‘;�-ˆCØ—\‘\ˆFØ—+‘+×%Ñ%×*Ñ*¨hÔ6Ø—
‘
˜4Ÿ;™;×.Ñ.×4Ñ4Ô5Ü�T—[‘[Ö!Ü—;’;˜rŸw™w s›|°FÔ;ˆDð ˆð �Z‰ZÐ/Ô/Ü�—‘ÔÜ—;’;˜uŸ{™{°5·<±<Ô@ˆDð ˆð �Z‰Z˜8Ô#Ü�—‘ÔØ×#Ñ#¸Ð#Ó>ˆDØ�K‰K×Ñ˜xÔ(ð ˆð �Z‰Z˜:Ô%Ø—?‘?Ó$ˆDð
 ˆð	 �Z‰Z˜8Ô#Ø—?‘?Ó$ˆDð ˆð �I‰I˜¤N°5Ó$9Ñ#<Ð=¸u¿|¹|ÔLØˆr"   c                óÜ   <€ V ^8„  d   QhRS[ RS[ RS[P                  S[P                  S[R3,          ,          RS[ RS[ RS[P
                  S[P                  S[P                  3,          /# )r   rA  r©   r^   .r�  r˜   r   )r_   r   r   rA   r   ru   r   rH  )r   r   s   "€r   r    r!   ­  s{   ø€ ÷ C8ñ C8áðC8ñ ðC8ñ Ÿ™¡A§G¡G©C°¨HÕ$5Õ6ð	C8ñ
 #ðC8ñ ðC8ñ 
�‰‘—‘™eŸj™jÐ(Õ	)ñC8r"   c                óœ  a aa€ S P                   P                  P                  pV'       d   R V V3R llpM
R V V3R llp. pRp	 V'       d   S P                   P                  R4       S P	                  V4      '       d   MaVP                  V! 4       4       S P                   P                  P                  R8X  d   Rp	MM"S P                   P                  P                  pK�  V	'       gL   V'       d
   V^ ,          # V'       g3   S P                  R\        S P                   P                  4      : 24       \        P                  ! VR	VR
7      # )ao  Works like `parse_expression` but if multiple expressions are
delimited by a comma a :class:`~jinja2.nodes.Tuple` node is created.
This method could also return a regular expression instead of a tuple
if no commas where found.

The default parsing mode is a full tuple.  If `simplified` is `True`
only names and literals are parsed; ``with_namespace`` allows namespace
attr refs as well. The `no_condexpr` parameter is forwarded to
:meth:`parse_expression`.

Because tuples do not require delimiters and may end in a bogus comma
an extra hint is needed that marks the end of a tuple.  For example
for loops support tuples between `for` and `in`.  In that case the
`extra_end_rules` is set to ``['name:in']``.

`explicit_parentheses` is true if the parsing was triggered by an
expression in parentheses.  This is used to figure out if an empty
tuple is a valid expression or not.
c                ó8   € V ^8„  d   QhR\         P                  /# rt   rO  )r   s   "r   r    Ú(Parser.parse_tuple.<locals>.__annotate__Ë  s   € ÷ Iñ Iœ5Ÿ:™:ñ Ir"   c                  ó(   <€ S P                  SR 7      # )r—   )rB  )r.   r˜   s   €€r   r*   Ú!Parser.parse_tuple.<locals>.parseË  s   ø€ Ø×)Ñ)¸Ð)ÓHÐHr"   c                ó8   € V ^8„  d   QhR\         P                  /# rt   rO  )r   s   "r   r    r±  Ð  s   € ÷ Jñ Jœ5Ÿ:™:ñ Jr"   c                  ó(   <€ S P                  SR 7      # )r¸   )r®   rL  s   €€r   r*   r³  Ð  s   ø€ Ø×,Ñ,¸=Ð,ÓIÐIr"   FTrÂ   zExpected an expression, got rš  rl   )r%   r;   r5   r�   rf   rK   rd   r<   r   r   rA   )
r.   rA  r©   r^   r�  r˜   r5   r*   r  Úis_tuples
   f&f&&f    r   rœ   ÚParser.parse_tuple­  s  ú€ ð6 —‘×$Ñ$×+Ñ+ˆß÷Iò I÷
Jñ Jð $&ˆØˆàßØ—‘×"Ñ" 7Ô+Ø× Ñ  ×1Ò1ØØ�K‰K™›Ô Ø�{‰{×"Ñ"×'Ñ'¨7Ô2Ø‘àØ—[‘[×(Ñ(×/Ñ/ŠFçßØ˜A•w�÷ (Ø—	‘	ðÜ*¨4¯;©;×+>Ñ+>Ó?ÑBðDôô
 �{Š{˜4 °Ô7Ð7r"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   )r   r@   )r   r   s   "€r   r    r!   ò  s   ø€ ÷ 
6ñ 
6™EŸJ™Jñ 
6r"   c                óÒ  € V P                   P                  R 4      p. pV P                   P                  P                  R8w  dk   V'       d   V P                   P                  R4       V P                   P                  P                  R8X  d   M!VP	                  V P                  4       4       K�  V P                   P                  R4       \        P                  ! W!P                  R7      # )rž  ÚrbracketrÂ   rl   )	r%   r�   r;   rd   rK   r®   r   r@   r5   )r.   r�   Úitemss   &  r   r©  ÚParser.parse_listò  s�   € Ø—‘×"Ñ" :Ó.ˆØ$&ˆØ�k‰k×!Ñ!×&Ñ&¨*Ô4ßØ—‘×"Ñ" 7Ô+Ø�{‰{×"Ñ"×'Ñ'¨:Ô5ØØ�L‰L˜×.Ñ.Ó0Ö1Ø�‰×Ñ˜:Ô&Ü�zŠz˜%¯©Ô5Ð5r"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   )r   ÚDict)r   r   s   "€r   r    r!   þ  s   ø€ ÷ 6ñ 6™EŸJ™Jñ 6r"   c                ól  € V P                   P                  R 4      p. pV P                   P                  P                  R8w  d¸   V'       d   V P                   P                  R4       V P                   P                  P                  R8X  d   MnV P	                  4       pV P                   P                  R4       V P	                  4       pVP                  \        P                  ! W4VP                  R7      4       KÜ  V P                   P                  R4       \        P                  ! W!P                  R7      # )rŸ  ÚrbracerÂ   rŠ   rl   )
r%   r�   r;   rd   r®   rK   r   ÚPairr5   r¾  )r.   r�   r»  Úkeyrz   s   &    r   rª  ÚParser.parse_dictþ  sÑ   € Ø—‘×"Ñ" 8Ó,ˆØ$&ˆØ�k‰k×!Ñ!×&Ñ&¨(Ô2ßØ—‘×"Ñ" 7Ô+Ø�{‰{×"Ñ"×'Ñ'¨8Ô3ØØ×'Ñ'Ó)ˆCØ�K‰K×Ñ˜wÔ'Ø×)Ñ)Ó+ˆEØ�L‰LœŸš C°s·z±zÔBÖCØ�‰×Ñ˜8Ô$Ü�zŠz˜%¯©Ô5Ð5r"   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r   r¼   r   rO  )r   r   s   "€r   r    r!     s#   ø€ ÷ ñ ¡%§*¡*ð ±·±ñ r"   c                óÀ   €  V P                   P                  P                  pVR8X  g   VR8X  d   V P                  V4      pKB  VR8X  d   V P	                  V4      pK\   V# )Tr™  rž  r  )r%   r;   rd   Úparse_subscriptÚ
parse_call©r.   r¼   rt  s   && r   r”  ÚParser.parse_postfix  sY   € ØØŸ™×,Ñ,×1Ñ1ˆJØ˜UÔ" j°JÔ&>Ø×+Ñ+¨DÓ1’ð ˜xÔ'Ø—‘ tÓ,’àØˆr"   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rÅ  rO  )r   r   s   "€r   r    r!     s#   ø€ ÷ ñ ¡e§j¡jð ±U·Z±Zñ r"   c                ó0  €  V P                   P                  P                  pVR8X  d   V P                  V4      pK;  VR8X  d9   V P                   P                  P                  R8X  d   V P                  V4      pKz  VR8X  d   V P                  V4      pK”   V# )TÚpiper   Úisr  )r%   r;   rd   r�   rz   Ú
parse_testrÈ  rÉ  s   && r   r•  ÚParser.parse_filter_expr  s   € ØØŸ™×,Ñ,×1Ñ1ˆJØ˜VÔ#Ø×(Ñ(¨Ó.’Ø˜vÔ%¨$¯+©+×*=Ñ*=×*CÑ*CÀtÔ*KØ—‘ tÓ,’ð ˜xÔ'Ø—‘ tÓ,’àØˆr"   c                óŒ   <€ V ^8„  d   QhRS[ P                  RS[P                  S[ P                  S[ P
                  3,          /# rÅ  )r   rH  r   ru   ÚGetattrÚGetitem)r   r   s   "€r   r    r!   )  s;   ø€ ÷ Añ AÙ—J‘JðAá	
�‰‘—‘¡§¡Ð-Õ	.ñAr"   c                óB  € \        V P                  4      pVP                  R 8X  dæ   V P                  P                  p\        V P                  4       VP                  R8X  d.   \        P
                  ! WP                  RVP                  R7      # VP                  R8w  d   V P                  RVP                  4       \        P                  ! VP                  VP                  R7      p\        P                  ! WRVP                  R7      # VP                  R8X  dç   . pV P                  P                  P                  R8w  dE   V'       d   V P                  P                  R4       VP                  V P                  4       4       Ki  V P                  P                  R4       \        V4      ^8X  d   V^ ,          pM#\        P                  ! VRVP                  R7      p\        P                  ! WRVP                  R7      # V P                  R	VP                  4       R
# )r™  r   rš  rl   r¦  zexpected name or numberrž  rº  rÂ   zexpected subscript expressionN)r�   r%   rd   r;   r   rÒ  rz   r5   r<   r¨  rÓ  r�   rK   Úparse_subscribedr‚  rA   )r.   r¼   r�   Ú
attr_tokenr  r  s   &&    r   rÇ  ÚParser.parse_subscript)  sx  € ô �T—[‘[Ó!ˆð �:‰:˜ÔØŸ™×,Ñ,ˆJÜ�—‘ÔØ�‰ &Ô(Ü—}’}Ø×*Ñ*¨F¸5¿<¹<ôð ð —‘ IÔ-Ø—	‘	Ð3°Z×5FÑ5FÔGÜ—+’+˜j×.Ñ.°z×7HÑ7HÔIˆCÜ—=’= ¨F¸5¿<¹<ÔHÐHØ�:‰:˜Ô#Ø')ˆDØ—+‘+×%Ñ%×*Ñ*¨jÔ8ßØ—K‘K×&Ñ& wÔ/Ø—‘˜D×1Ñ1Ó3Ö4Ø�K‰K×Ñ˜zÔ*Ü�4‹y˜AŒ~Ø˜1•g‘ä—k’k $¨°u·|±|ÔD�Ü—=’= ¨F¸5¿<¹<ÔHÐHØ�	‰	Ð1°5·<±<Ö@r"   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   rO  )r   r   s   "€r   r    r!   H  s   ø€ ÷ 1ñ 1¡%§*¡*ñ 1r"   c                óæ  € V P                   P                  P                  pV P                   P                  P                  R 8X  d   \	        V P                   4       R.pMOV P                  4       pV P                   P                  P                  R 8w  d   V# \	        V P                   4       V.pV P                   P                  P                  R 8X  d   VP                  R4       MVV P                   P                  P                  R9  d!   VP                  V P                  4       4       MVP                  R4       V P                   P                  P                  R 8X  dm   \	        V P                   4       V P                   P                  P                  R9  d!   VP                  V P                  4       4       M#VP                  R4       MVP                  R4       \        P                  ! VRV/ # )rŠ   Nr5   )rº  rÂ   )	r%   r;   r5   rd   r�   r®   rK   r   ÚSlice)r.   r5   r  r¼   s   &   r   rÕ  ÚParser.parse_subscribedH  s^  € Ø—‘×$Ñ$×+Ñ+ˆð �;‰;×Ñ×#Ñ# wÔ.Ü�—‘ÔØ�6‰Dà×(Ñ(Ó*ˆDØ�{‰{×"Ñ"×'Ñ'¨7Ô2Ø�Ü�—‘ÔØ�6ˆDà�;‰;×Ñ×#Ñ# wÔ.Ø�K‰K˜ÕØ�[‰[× Ñ ×%Ñ%Ð-BÔBØ�K‰K˜×-Ñ-Ó/Õ0à�K‰K˜Ôà�;‰;×Ñ×#Ñ# wÔ.Ü�—‘ÔØ�{‰{×"Ñ"×'Ñ'Ð/DÔDØ—‘˜D×1Ñ1Ó3Õ4à—‘˜DÕ!à�K‰K˜Ôä�{Š{¨4Ð0 &Ñ0Ð0r"   c                ó2  <€ V ^8„  d   QhRS[ P                  S[ P                  S[P                  ,          S[ P                  S[P
                  ,          S[ P                  S[P                  ,          S[ P                  S[P                  ,          3,          /# rt   )r   rA   r@   r   rH  rÎ   r   )r   r   s   "€r   r    r!   h  sc   ø€ ÷ 62ñ 62á	
�‰Ù	�‰‰u�z‰zÕÙ	�‰‰u�}‰}ÕÙ	�
‰
‘5—:‘:ÕÙ	�
‰
‘5—:‘:Õð	 õ
ñ62r"   c                ó.  a a	€ S P                   P                  R 4      o	. p. pRpRpRpR V V	3R llpS P                   P                  P                  R8w  Ed!   V'       dC   S P                   P                  R4       S P                   P                  P                  R8X  d   EMÖS P                   P                  P                  R8X  d>   T! VRJ ;'       d    VRJ 4       \	        S P                   4       S P                  4       pEMoS P                   P                  P                  R8X  d2   V! VRJ 4       \	        S P                   4       S P                  4       pEMS P                   P                  P                  R	8X  d±   S P                   P                  4       P                  R
8X  dˆ   V! VRJ 4       S P                   P                  P                  pS P                   P                  ^4       S P                  4       pVP                  \        P                  ! WxVP                  R7      4       MDT! VRJ ;'       d    VRJ ;'       d    V'       * 4       VP                  S P                  4       4       RpEKF  S P                   P                  R4       WW43# )r  NFc                ó(   € V ^8„  d   QhR\         RR/# )r   rŸ   r   Nr
  )r   s   "r   r    Ú,Parser.parse_call_args.<locals>.__annotate__w  s   € ÷ 	Wñ 	Wœð 	W $ñ 	Wr"   c                 óT   <€ V '       g   SP                  R SP                  4       R# R# )z+invalid syntax for function call expressionN)r<   r5   )rŸ   r.   r�   s   &€€r   ÚensureÚ&Parser.parse_call_args.<locals>.ensurew  s   ø€ ßØ—	‘	ÐGÈÏÉÖVñ r"   rc   rÂ   r   r‹  r   r™   rl   T)r%   r�   r;   rd   r�   r®   ró   rz   rõ   rK   r   rÎ   r5   )
r.   r  ÚkwargsÚdyn_argsÚ
dyn_kwargsÚrequire_commará  rÂ  rz   r�   s
   f        @r   Úparse_call_argsÚParser.parse_call_argsh  s  ù€ ð —‘×"Ñ" 8Ó,ˆØˆØˆØˆØˆ
Øˆ÷	Wñ 	Wð �k‰k×!Ñ!×&Ñ&¨(Õ2ßØ—‘×"Ñ" 7Ô+ð —;‘;×&Ñ&×+Ñ+¨xÔ7Ùà�{‰{×"Ñ"×'Ñ'¨5Ô0Ù�x 4Ð'×>Ð>¨J¸$Ð,>Ô?Ü�T—[‘[Ô!Ø×0Ñ0Ó2’Ø—‘×$Ñ$×)Ñ)¨UÔ2Ù�z TÐ)Ô*Ü�T—[‘[Ô!Ø!×2Ñ2Ó4’
ð —K‘K×'Ñ'×,Ñ,°Ô6ØŸ™×(Ñ(Ó*×/Ñ/°8Ô;ñ ˜:¨Ð-Ô.ØŸ+™+×-Ñ-×3Ñ3�CØ—K‘K×$Ñ$ QÔ'Ø ×1Ñ1Ó3�EØ—M‘M¤%§-¢-°À5Ç<Á<Ô"PÕQñ ˜8 tÐ+×QÐQ°
¸dÐ0B×QÐQÈ6ÄzÔRØ—K‘K × 5Ñ 5Ó 7Ô8à ‹Mà�‰×Ñ˜8Ô$Ø˜XÐ1Ð1r"   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rÅ  )r   rH  r"  )r   r   s   "€r   r    r!      s'   ø€ ÷ Yñ Y™uŸz™zð Y©e¯j©jñ Yr"   c           	     óš   € V P                   P                  pV P                  4       w  r4rV\        P                  ! WWEWbP
                  R 7      # rê   )r%   r;   rç  r   r"  r5   )r.   r¼   r�   r  rã  rä  rå  s   &&     r   rÈ  ÚParser.parse_call   s=   € ð —‘×#Ñ#ˆØ-1×-AÑ-AÓ-CÑ*ˆ�hÜ�zŠz˜$ f¸
Ï<É<ÔXÐXr"   c                óœ   <€ V ^8„  d   QhRS[ P                  S[P                  ,          RS[RS[ P                  S[P                  ,          /# )r   r¼   r(  r   )r   r   r   rH  r_   )r   r   s   "€r   r    r!   §  s?   ø€ ÷ ñ Ù—J‘J™uŸz™zÕ*ðÙ:>ðá	
�‰‘E—J‘JÕ	ñr"   c           
     óš  € V P                   P                  P                  R 8X  g
   V'       Ed   V'       g   \        V P                   4       V P                   P	                  R4      pVP
                  pV P                   P                  P                  R8X  dK   \        V P                   4       VRV P                   P	                  R4      P
                  ,           ,          pKo  V P                   P                  P                  R8X  d   V P                  4       w  rVrxM. p. pR;rx\        P                  ! WWVWxVP                  R7      pRpEKJ  V# )rÍ  r   r™  rC   r  Nrl   F)
r%   r;   rd   r�   r�   rz   rç  r   ÚFilterr5   )	r.   r¼   r(  r�   r   r  rã  rä  rå  s	   &&&      r   r�   ÚParser.parse_filter§  sú   € ð �k‰k×!Ñ!×&Ñ&¨&Ô0·L°LßÜ�T—[‘[Ô!Ø—K‘K×&Ñ& vÓ.ˆEØ—;‘;ˆDØ—+‘+×%Ñ%×*Ñ*¨eÔ3Ü�T—[‘[Ô!Ø˜˜dŸk™k×0Ñ0°Ó8×>Ñ>Õ>Õ>’Ø�{‰{×"Ñ"×'Ñ'¨8Ô3Ø59×5IÑ5IÓ5KÑ2�˜h¨
à�Ø�Ø(,Ð,�Ü—<’<Ø˜D¨(ÀuÇ|Á|ôˆDð !‹LØˆr"   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rÅ  rO  )r   r   s   "€r   r    r!   ¾  s#   ø€ ÷ $ñ $™uŸz™zð $©e¯j©jñ $r"   c           
     ób  € \        V P                  4      pV P                  P                  P                  R 4      '       d   \        V P                  4       RpMRpV P                  P	                  R4      P
                  pV P                  P                  P                  R8X  dK   \        V P                  4       VRV P                  P	                  R4      P
                  ,           ,          pKo  R;rV. pV P                  P                  P                  R8X  d   V P                  4       w  r‡rVMµV P                  P                  P                  R9   d�   V P                  P                  P                  RR	R
4      '       gb   V P                  P                  P                  R4      '       d   V P                  R4       V P                  4       p	V P                  V	4      p	V	.pM. p\        P                  ! WW‡WVVP                  R7      pV'       d"   \        P                  ! WP                  R7      pV# )rg  TFr   r™  rC   Nr  r­   rX  ra  zname:isz'You cannot chain multiple tests with isrl   >   r   r§  rŸ  r  r›  r¦  rž  )r�   r%   r;   r°   r�   rz   rd   rç  re   r<   rB  r”  r   ÚTestr5   rh  )
r.   r¼   r�   Únegatedr   rä  rå  rã  r  Úarg_nodes
   &&        r   rÏ  ÚParser.parse_test¾  s¤  € Ü�T—[‘[Ó!ˆØ�;‰;×Ñ×#Ñ# J×/Ò/Ü�—‘ÔØ‰GàˆGØ�{‰{×!Ñ! &Ó)×/Ñ/ˆØ�k‰k×!Ñ!×&Ñ&¨%Ô/Ü�—‘ÔØ�C˜$Ÿ+™+×,Ñ,¨VÓ4×:Ñ:Õ:Õ:ŠDØ $Ð$ˆØ(*ˆØ�;‰;×Ñ×#Ñ# xÔ/Ø15×1EÑ1EÓ1GÑ.ˆD˜( JØ�[‰[× Ñ ×%Ñ%ð *
ô 
ð —+‘+×%Ñ%×.Ñ.¨{¸IÀz×RÒRØ�{‰{×"Ñ"×'Ñ'¨	×2Ò2Ø—	‘	ÐCÔDØ×)Ñ)Ó+ˆHØ×)Ñ)¨(Ó3ˆHØ�:‰DàˆDÜ�zŠzØ˜ hÀ5Ç<Á<ô
ˆ÷ Ü—9’9˜T¯,©,Ô7ˆDØˆr"   c                óª   <€ V ^8„  d   QhRS[ P                  S[ P                  S[R3,          ,          RS[ P                  S[P                  ,          /# )r   rW   .r   )r   r   rA   r   r@   r   ro   )r   r   s   "€r   r    r!   ä  s@   ø€ ÷ /ñ /ÙŸ*™*¡Q§W¡W©S°#¨XÕ%6Õ7ð/á	
�‰‘—
‘
Õ	ñ/r"   c                óÌ  aa€ . o. oSP                   pVe   V P                  P                  V4       R VV3R llp V P                  '       EdÌ   V P                  P                  pVP                  R8X  d\   VP
                  '       d3   V! \        P                  ! VP
                  VP                  R7      4       \        V P                  4       K•  VP                  R8X  dK   \        V P                  4       V! V P                  RR7      4       V P                  P                  R4       Kð  VP                  R	8X  dÓ   V! 4        \        V P                  4       VeL   V P                  P                  P                  ! V!  '       d"   SVe   V P                  P                  4        # # V P                  4       p\        V\         4      '       d   SP#                  V4       MSP                  V4       V P                  P                  R
4       EKÓ  \%        R4      hV! 4        Ve   V P                  P                  4        S#   Te   T P                  P                  4        i i ; i)Nc                ó   € V ^8„  d   QhRR/# )r   r   Nr7  )r   s   "r   r    Ú%Parser.subparse.<locals>.__annotate__î  s   € ÷ 	#ñ 	#˜Dñ 	#r"   c                  ó¤   <€ S'       dG   S^ ,          P                   p SP                  \        P                  ! SR,          V R7      4       SR R# R# )é    :NNNrl   N)r5   rK   r   râ   )r5   r¡   Údata_buffers    €€r   Ú
flush_dataÚ#Parser.subparse.<locals>.flush_dataî  s<   ø€ ßØ$ Q�×.Ñ.�Ø—‘œEŸLšL¨°Q­ÀÔGÔHØ ’Nñ r"   rÚ   rl   Úvariable_beginTr¸   ra   Úblock_beginrb   zinternal parsing error)rK   r-   r%   r;   rd   rz   r   rÙ   r5   r�   rœ   r�   re   r}   r…   rØ   rY   ÚextendÚAssertionError)r.   rW   Úadd_datarý  r�   rp   r¡   rü  s   &&    @@r   rŽ   ÚParser.subparseä  sÔ  ù€ ð $&ˆØ*,ˆØ×%Ñ%ˆàÒ!Ø×!Ñ!×(Ñ(¨Ô4÷	#ñ 	#ð	,Ø—+—+‘+ØŸ™×+Ñ+�Ø—:‘: Ô'Ø—{—{�{Ù ¤×!3Ò!3°E·K±KÈÏÉÔ!UÔVÜ˜Ÿ™Ö%Ø—Z‘ZÐ#3Ô3Ü˜Ÿ™Ô%Ù˜T×-Ñ-¸DÐ-ÓAÔBØ—K‘K×&Ñ& ~Ö6Ø—Z‘Z =Ô0Ù”LÜ˜Ÿ™Ô%Ø!Ò-°$·+±+×2EÑ2E×2NÒ2NØ#÷3ð 3ð  $ð Ò%Ø×%Ñ%×)Ñ)Õ+ð &ð ×-Ñ-Ó/�BÜ! "¤d×+Ò+ØŸ™ B�àŸ™ BœØ—K‘K×&Ñ& {×3ä(Ð)AÓBÐBáŒLàÒ%Ø×%Ñ%×)Ñ)Ô+Øˆøð Ò%Ø×%Ñ%×)Ñ)Õ+ð &ús%   ½I Á8I Â	C>I ÆI Æ)A9I É!I#c                ó4   <€ V ^8„  d   QhRS[ P                  /# rt   )r   ÚTemplate)r   r   s   "€r   r    r!     s   ø€ ÷ ñ ‘u—~‘~ñ r"   c                óˆ   € \         P                  ! V P                  4       ^R7      pVP                  V P                  4       V# )z0Parse the whole template into a `Template` node.rl   )r   r  rŽ   Úset_environmentr   )r.   r�   s   & r   r*   ÚParser.parse  s1   € ä—’ §¡£¸Ô:ˆØ×Ñ˜t×/Ñ/Ô0Øˆr"   )	r-   r+   r,   r&   r   r'   r   r   r%   )NNNr×   )NN)F)..)TFNF)T)FTNFF)=rD  Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r1   r   r<   rP   rT   r[   rf   rq   r…   r‘   r¢   r³   r½   rÇ   rÑ   rå   rì   rö   rü   r  r  r  r~   r   r-  r1  ÚtypingÚoverloadr›   r®   rJ  rK  rY  rb  ri  ro  ry  r�  r‡  rŒ  rB  rœ   r©  rª  r”  r•  rÇ  rÕ  rç  rÈ  r�   rÏ  rŽ   r*   Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r   0   s^  ø‡ € ñ÷>ò >ð4 #'Ø+>÷	9ò 9÷&-ð &-÷P?ò ?÷	/ò 	/÷ò ÷ò ÷&ð &÷:ò ÷:	Kð 	K÷Tð T÷&ð ÷$ð ÷"#ð #÷ð ÷@ð ÷

ð 
÷
5ð 
5÷6ð 6÷(ð (÷T%ð %÷ ð ÷ð ÷ð ÷ð ð ‡_�_÷ñ ó ðð ‡_�_÷<ñ <ó ð<÷%ò %÷Nò ÷ð ÷ð ÷ð ÷$ð $÷7ð 7÷.	ð 	÷1ð 1÷	ð 	÷ð ÷ò ÷$(ò (÷TC8ò C8÷J
6ð 
6÷6ð 6÷ð ÷ð ÷Að A÷>1ð 1÷@62ð 62÷pYð Y÷ò ÷.$ð $÷L/ò /÷bö r"   r   c                ó´   € V ^8„  d   Qh/ ^ \         9   dD   \        P                  \        \        P                  \
        P                  ,          3,          ;R&   # )r   rz  )Ú__conditional_annotations__r   r¾  r   r9   r   rH  )r   s   "r   r    r       s;   € × >Ñ >÷Jò ŒQ�V‰V”CœŸ™¤§
¡
Õ+Ð+Õ,ñ òK ?r"   )ÚforÚifÚblockÚextendsÚprintÚmacroÚincludeÚfromÚimportrF   rò   rÌ   )ÚeqÚneÚltÚlteqÚgtÚgteq)$r  r  r  r   rœ  r   Ú
exceptionsr   r   Úlexerr   r   ÚTYPE_CHECKINGÚtyping_extensionsÚter   r   ÚTypeVarrÿ   rù   r   r+  r   r	   Ú	frozensetr{   rp  ÚAddÚSubÚMulÚDivÚFloorDivÚModrz  r   r    )r  s   @r   Ú<module>r0     sÐ   øðÞ >ã Û å Ý .Ý +Ý !Ý &à‡?‡?€?Û"å(à—’Ð+¨U¯\©\¸5¿=¹=ÓI€Ø�YŠY�| U§[¡[°%·/±/ÓB€
áòóÐ ñ  ÒGÓHÐ ð 
ˆ5�9‰9Ø	ˆ5�9‰9Ø	ˆ5�9‰9Ø	ˆ5�9‰9Ø�—‘Ø	ˆ5�9‰9ð0€ó ÷ió ir"   