§
    øyIf.t  ã                   óV  — U d Z ddlZddlmZmZmZmZmZmZm	Z	m
Z
mZmZ ej        dk    rddlmZ nddlmZ ddlmZ ddlmZ ddlmZmZ dd	lmZmZ dd
lmZ ddlmZ ddlmZm Z m!Z!m"Z"  ej#        e¦  «         ej$        Z%ee&d<    ed¦  «        Z'ee e!f         Z(e)Z*e)Z+ej,        ej-        ej.        hZ/ee&d<   e%j0        e%j1        e%j2        e%j3        e%j4        e%j5        e%j6        e%j7        e%j8        e%j9        h
Z:ee&d<   dZ;ee&d<   dej<        e;<   ddhZ=ee&d<   ej>        ej?        ej@        ejA        ejB        ejC        hZDee&d<   ejE        ejF        ejG        ejH        ejI        ejJ        ejK        ejL        ejM        ejN        ejO        ejP        ejQ        ejR        hZSee&d<   ejL        ejR        hZTee&d<   eTejM        hz  ZUee&d<   e%jV        e%jW        e%jX        e%jY        e%jZ        hZ[ee&d<   e%j\        e%j]        e%j^        e%j_        e%j`        e%ja        e%jb        hZcee&d<   e%jd        e%je        e%jf        e%jg        e%jh        e%ji        e%jj        e%jk        e%jl        e%jm        e%jn        e%jo        e%jX        e%jp        e%jq        e%jr        hZsee&d<   e%jt        e%ju        hZvee&d<   h d£Zwee&d<   e%jx        e%j`        e%jy        hZzee&d <   ej{        ej|        ej}        ej~        ej        ej€        iZ�ee&d!<    e‚e� ƒ                    ¦   «         ¦  «        Z„ee&d"<    e‚e� …                    ¦   «         ¦  «        Z†ee&d#<   e„e†z  Z‡ee&d$<   e†ejˆ        e;ej‰        ejŠ        ej‹        hz  ZŒee&d%<   d&Z� ed'¬(¦  «         G d)„ d*ee'         ¦  «        ¦   «         ZŽd+e d,e�d-ed.e�fd/„Z‘dxd1e)d2e�d3e�d.e�fd4„Z’d5ee(         d.ee          fd6„Z“d5ee(         d7eee+                  d.e�fd8„Z”d5ee(         d.ee+         fd9„Z•d:e!d;e(d.ee(         fd<„Z–d=e(d>e(d.dfd?„Z—d+e d.e(fd@„Z˜d5e(d.ee          fdA„Z™d5e(d.e�fdB„Zšd5ed-ed.e�fdC„Z›d5e(d.e�fdD„Zœd5e(d.e�fdE„Z�d5e(d.e�fdF„Zžej{        ej|        ffdGe dHe dIee          dJe
e)e)f         d.e�f
dK„ZŸd5e(d.e�fdL„Z dyd5e(dNe�d.e�fdO„Z¡d5e(d.e�fdP„Z¢d5e(d.e�fdQ„Z£d+e dRe	e+         d.e�fdS„Z¤d5e!d.e�fdT„Z¥d5e!d.e fdU„Z¦d5e(d.e�fdV„Z§d5e!d.e�fdW„Z¨d5e!d.e�fdX„Z©d5e!d.e�fdY„Zªd5e(d.e�fdZ„Z«d5e(d.e�fd[„Z¬d+e d.e�fd\„Z­d+e d.e�fd]„Z®d+e d.e�fd^„Z¯d+e d.e�fd_„Z°d+e d.e�fd`„Z±d+e d.e�fda„Z²d+e d.e�fdb„Z³d+e d.e�fdc„Z´dde�d.e�fde„Zµd'dfœdge!dhe(die�d.dfdj„Z¶d5e(d.ee(         fdk„Z·d+e d.dfdl„Z¸dmed.ee          fdn„Z¹dmed.ee          fdo„Zºdmed.ee          fdp„Z»dmed.ee          fdq„Z¼d+e d.edr         fds„Z½d+e d.e�fdt„Z¾d5e(d.ee          fdu„Z¿d5e(d.ee          fdv„ZÀd+e d.e(fdw„ZÁdS )zz>
blib2to3 Node/Leaf transformation-related utility functions.
é    N)
ÚFinalÚGenericÚIteratorÚListÚLiteralÚOptionalÚSetÚTupleÚTypeVarÚUnion)é   é
   )Ú	TypeGuard)Ú
mypyc_attr)Ú	CACHE_DIR)ÚModeÚPreview)Úget_string_prefixÚhas_triple_quotes)Úpygram)Útoken)ÚNLÚLeafÚNodeÚ	type_reprÚsymsÚTÚ
WHITESPACEÚ	STATEMENTé™   ÚSTANDALONE_COMMENTÚandÚorÚLOGIC_OPERATORSÚCOMPARATORSÚMATH_OPERATORSÚSTARSÚVARARGS_SPECIALSÚVARARGS_PARENTSÚUNPACKING_PARENTSÚTEST_DESCENDANTSÚTYPED_NAMES>   ú%=ú&=ú*=ú+=ú-=ú/=ú@=ú^=ú|=ú**=ú//=ú<<=ú>>=ú:ú=ÚASSIGNMENTSÚIMPLICIT_TUPLEÚBRACKETÚOPENING_BRACKETSÚCLOSING_BRACKETSÚBRACKETSÚALWAYS_NO_SPACEé7   T)Úallow_interpreted_subclassesc                   óJ   — e Zd ZdZdedee         fd„Zdedee         fd„ZdS )ÚVisitorzBBasic lib2to3 visitor that yields things of type `T` on `visit()`.ÚnodeÚreturnc              #   ó  K  — |j         dk     rt          j        |j                  }n!t          t	          |j         ¦  «        ¦  «        }t          | d|› �d¦  «        }|r ||¦  «        E d{V —† dS |                      |¦  «        E d{V —† dS )az  Main method to visit `node` and its children.

        It tries to find a `visit_*()` method for the given `node.type`, like
        `visit_simple_stmt` for Node objects or `visit_INDENT` for Leaf objects.
        If no dedicated `visit_*()` method is found, chooses `visit_default()`
        instead.

        Then yields objects of type `T` from the selected visitor.
        é   Úvisit_N)Útyper   Útok_nameÚstrr   ÚgetattrÚvisit_default)ÚselfrG   ÚnameÚvisitfs       ú?/var/www/piapp/venv/lib/python3.11/site-packages/black/nodes.pyÚvisitzVisitor.visit£   s­   è è € ð Œ9�sŠ?ˆ?Ý”> $¤)Ô,ˆDˆDå•y ¤Ñ+Ô+Ñ,Ô,ˆDõ
 ˜˜¨˜˜°Ñ5Ô5ˆØð 	0Ø�v˜d‘|”|Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#à×)Ò)¨$Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ó    c              #   ó‚   K  — t          |t          ¦  «        r%|j        D ]}|                      |¦  «        E d{V —† ŒdS dS )zCDefault `visit_*()` implementation. Recurses to children of `node`.N)Ú
isinstancer   ÚchildrenrU   )rQ   rG   Úchilds      rT   rP   zVisitor.visit_default»   sd   è è € å�d�DÑ!Ô!ð 	-Øœð -ð -�ØŸ:š: eÑ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ð	-ð 	-ð-ð -rV   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚLNr   r   rU   rP   © rV   rT   rF   rF   Ÿ   sf   € € € € € àLÐLð0˜"ð 0 ¨!¤ð 0ð 0ð 0ð 0ð0- "ð -¨°!¬ð -ð -ð -ð -ð -ð -rV   rF   ÚleafÚcomplex_subscriptÚmoderH   c                óþ  — d}d}d}| j         }| j        }| j        }|t          v r|S |t          j        k    r|S |€J d| ›�¦   «         ‚|t          j        k    r,|j         t          j        t          j	        t          j
        hvr|S |t          j        k    r|j         t          j        k    r|S | j        }	|	�st          |¦  «        }
|
r|
j         t          v r|S |t          j        k    r2|
j         t          j        k    r|S |
j         t          j        k    r|s|S |S |
j         t          j        k    rf|
j        r]|
j        j         t          j        t          j        t          j        t          j        hv r|S |
j        j         t          j        k    r|
j        S �n]|
j         t          j        k    rAt3          |
¦  «        t          j        k    r$t3          |
j        ¦  «        t          j	        k    r|S |
j         t6          v r!t9          |
t:          t<          z  ¬¦  «        r|S nØ|
j         t          j        k    r2|
j        r*|
j        j         t          j        t          j
        hv r|r|n|S n‘|
j        r*|
j        j         t          j        k    r|
j         t@          v r|S |
j         t          j!        k    r#|j        r|j        j         t          j"        k    r|S n'|	j         t          v r|S |	j         t          j#        k    r|S |j         t          j        t          j        hv r|	r|	j         t          j        k    r|S �nÓ|j         t          j        k    r|	r|	j         t          j        k    r|S �n£|j         t          j        k    r[|	s|S |t          j        k    r|	j         tH          vr|S �nh|	j         t          j        k    r|	j        S |	j         t          j        k    r|S �n3|j         tH          v r,|	s(t          |¦  «        }
|
r|
j         t          j        k    r|S �nù|j         t          j%        k    ra|t          j&        k    s|t          j'        k    r|S |	s$|t          j(        k    s|t          j)        k    r|S �nœ|	j         t          j        k    r|S �nƒ|j         t          j        k    r^|t          j        k    r|S |	s*t          |¦  «        }
|
r|
j         t          j&        k    r|S �n0|	j         t          j        ht6          z  v r|S �n|j         t          j"        k    r|S |j         t          j*        k    rC|	r|S t          |¦  «        }
|
r*|
j         t          j!        k    s|
j         t          j(        k    r|S �n¡|j         t          j+        k    r-|t          j&        k    r|S |	r|	j         t          j&        k    r|S �n_|j         t          j        t          j
        hv r^|	s/|j        €
J d¦   «         ‚|j        j         t          j	        k    r|S |S |t          j,        k    s|	j         t          j,        k    r|S |s|S �nâ|j         t          j-        k    r|	r|t          j(        k    r|S �n·|j         t          j.        k    r|	r|	j         t          j/        k    r|S �n‡|j         t          j        t          j        hv r¹|	s�t          |¦  «        }
|
r|
j         t          v r|S |
j        }|€J ‚|
j         t          j        k    r!|j         t          j        t          j
        hv r|S |
j         t          j        k    r|j         t          j        k    r|S n×|t          j0        t          j1        t          j2        hv r|S n¯|j         t          j3        k    r\|t          j(        k    r|	r|	j         t          j(        k    r|S np|t          j0        k    r!|dk    r|S |	r|	j         t          j(        k    r|S n>|j         t          j
        k    r|S |j         t          j4        k    r|t          j        k    r|S |S )	zãReturn whitespace prefix if needed for the given `leaf`.

    `complex_subscript` signals whether the given leaf is part of a subscription
    which has non-trivial arguments, like arithmetic expressions or function calls.
    Ú ú z  Nz/INTERNAL ERROR: hand-made leaf without parent: )Úwithinzsubscripts are always parentedÚimport)5rL   ÚparentÚvaluerB   r   ÚCOMMENTÚCOLONr   Ú	subscriptÚsubscriptlistÚsliceopÚLBRACEÚfstring_replacement_fieldÚprev_siblingÚpreceding_leafr?   ÚCOMMAÚEQUALÚarglistÚargumentÚ
parametersÚvarargslistÚtypedargslistÚprefixÚSTARÚparent_typeÚ	star_exprr(   Ú	is_varargr)   r*   Úfactorr&   ÚATÚ	decoratorÚBANGr,   ÚtrailerÚLPARÚRPARÚDOTÚLSQBÚdotted_nameÚclassdefÚ
COLONEQUALÚatomÚdictsetmakerÚ
DOUBLESTARÚNAMEÚNUMBERÚSTRINGÚimport_fromÚexcept_clause)ra   rb   rc   ÚNOÚSPACEÚDOUBLESPACEÚtÚpÚvÚprevÚprevpÚprevp_parents               rT   Ú
whitespacer�   Â   sÜ  € ð €BØ€EØ"€KØŒ	€AØŒ€AØŒ
€AØ�OÐÐØˆ	à�EŒMÒÐØÐàˆ=ˆ=ÐTÈDÐTÐT‰=Œ=ˆ=Ø�EŒKÒÐ˜AœFÝŒÝÔÝŒð+ð ð ð
 ˆ	à�EŒLÒÐ˜QœV¥tÔ'EÒEÐEØˆ	àÔ€DØñ =Ý˜qÑ!Ô!ˆØð 	˜œ
Õ&6Ð6Ð6ØˆIà•”ÒÐØŒz�Uœ[Ò(Ð(Ø�	à”�uœ{Ò*Ð*Ð3DÐ*Ø�	àˆLàŒ:�œÒ$Ð$ØŒ|ð (Ø”<Ô$Ý”LÝ”MÝ”OÝÔ$ð	)ð ð ð �Ià”\Ô&­$Ô*<Ò<Ð<ð !œ<Ð'ùð ŒJ�%œ*Ò$Ð$Ý˜EÑ"Ô"¥d¤nÒ4Ð4Ý˜EœLÑ)Ô)­TÔ-?Ò?Ð?ð ˆIàŒZÕ+Ð+Ð+Ý˜¥Õ9JÑ'JÐKÑKÔKð Ø�	ðð ŒZ�5œ;Ò&Ð&ØŒ|ð : ¤Ô 1µd´nÅdÄlÐ5SÐ SÐ SØ 1Ð9�u�u°rÐ9øð ŒLð		à”Ô!¥T¤[Ò0Ð0Ø”
�nÐ,Ð,àˆIàŒZ�5œ8Ò#Ð#¨¬Ð#°Q´X´]ÅdÄnÒ5TÐ5TàˆIøà	ŒÕ&Ð	&Ð	&Øˆ	à	Œ•e”jÒ	 Ð	 Øˆ	à„v•$”/¥4¤<Ð0Ð0Ð0àð 	�t”y¥E¤KÒ/Ð/ØˆIñ 0ð 
Œ•4Ô#Ò	#Ð	#àð 	�D”I¥¤Ò,Ð,ØˆIùà	
Œ•4Ô%Ò	%Ð	%àð 	ØˆIà•”ÒÐØŒy¥Ð+Ð+Ø�	ñ ,ð ŒY�%œ+Ò%Ð%ð ”;ÐàŒY�%œ+Ò%Ð%ØˆIñ &ð 
Œ•;Ð	Ð	àð 	Ý" 1Ñ%Ô%ˆEØð ˜EœJ­%¬+Ò5Ð5Ø�	ùà	
Œ•4”<Ò	Ð	à•”
Š?ˆ?˜a¥5¤:šo˜oØˆIàð 	Ø•E”IŠ~ˆ~ ¥e¤j¢ Ø�	ñ "1ð ŒY�%œ+Ò%Ð%ØˆIñ &ð 
Œ•4”=Ò	 Ð	 à•”ÒÐØˆIàð 	Ý" 1Ñ%Ô%ˆEØð ˜EœJ­%¬*Ò4Ð4Ø�	ñ 5ð ŒY�5œ;˜-Õ*:Ñ:Ð:Ð:ØˆIñ ;ð 
Œ•4”>Ò	!Ð	!àˆ	à	
Œ•4Ô#Ò	#Ð	#Øð 	ØˆIå˜qÑ!Ô!ˆØð 	˜œ
¥e¤hÒ.Ð.°%´*ÅÄ	Ò2IÐ2IØˆIñ 3Jð 
Œ•4”=Ò	 Ð	 Ø•”
Š?ˆ?ØˆIàð 	�D”I¥¤Ò+Ð+ØˆIùà	
Œ•D”N¥D¤LÐ1Ð	1Ð	1àð 	Ø”8Ð'Ð'Ð)IÑ'Ô'Ð'ØŒxŒ}¥Ô 2Ò2Ð2Ø�àˆIà•%Ô"Ò"Ð" d¤iµ5Ô3CÒ&CÐ&CØˆLà"ð 	ØˆIñ	ð 
Œ•4”9Ò	Ð	Øð 	�A�œ’N�NàˆIùà	
Œ•4Ô$Ò	$Ð	$àð 	�D”I¥Ô!1Ò1Ð1ØˆIùà	
Œ•D”K¥¤Ð0Ð	0Ð	0àð 	Ý" 1Ñ%Ô%ˆEØð ˜EœJÕ*:Ð:Ð:Ø�	à œ<ˆLØÐ+Ð+Ð+ØŒz�Uœ[Ò(Ð(¨\Ô->Ý”Ý”ðCð .ð .ð �	à”�uœ{Ò*Ð*¨|Ô/@ÅDÄMÒ/QÐ/QØ�	øð •5”:�uœ|­U¬\Ð:Ð:Ð:ØˆIð ;ð 
Œ•4Ô#Ò	#Ð	#Ø•”	Š>ˆ>Øð ˜œ	¥U¤YÒ.Ð.Ø�	øà•%”*Š_ˆ_Ø�HŠ}ˆ}Ø�àð ˜œ	¥U¤YÒ.Ð.Ø�	øà	
Œ•4”<Ò	Ð	Øˆ	à	
Œ•4Ô%Ò	%Ð	%Ø•”
Š?ˆ?ØˆIà€LrV   ú
Únl_countÚ	form_feedÚ
empty_linec                 ó,   — |r|| dz
  z  dz   |z   S || z  S )z$Generate a normalized prefix string.é   úr`   )rŸ   r    r¡   s      rT   Úmake_simple_prefixr¥   ²  s/   € àð AØ˜h¨™lÑ+¨tÑ3°jÑ@Ð@Ø˜Ñ Ð rV   rG   c                 óÎ   — | rb| j         }|rPt          |t          ¦  «        r|S 	 t          |                     ¦   «         ¦  «        d         S # t
          $ r Y dS w xY w| j        } | °bdS )z3Return the first leaf that precedes `node`, if any.éÿÿÿÿN)rr   rX   r   ÚlistÚleavesÚ
IndexErrorri   )rG   Úress     rT   rs   rs   ¹  s�   € à
ð ØÔˆØð 	Ý˜#�tÑ$Ô$ð Ø�
ðÝ˜CŸJšJ™LœLÑ)Ô)¨"Ô-Ð-øåð ð ð Ø�t�tðøøøð Œ{ˆð ð ð ˆ4s   ¤&A Á
AÁAÚtokensc                 óŠ   — |sdS |d         €| du S | sdS | j         |d         k    rdS t          | j        |dd…         ¦  «        S )a;  Return if the `node` and its previous siblings match types against the provided
    list of tokens; the provided `node`has its type matched against the last element in
    the list.  `None` can be used as the first element to declare that the start of the
    list is anchored at the start of its parent's children.Tr§   NF)rL   Úprev_siblings_arerr   )rG   r¬   s     rT   r®   r®   Ë  sc   € ð
 ð ØˆtØˆb„zÐØ�tˆ|ÐØð ØˆuØ„y�F˜2”JÒÐØˆuÝ˜TÔ.°°s¸°s´Ñ<Ô<Ð<rV   c                 ó0   — | �| j         €dS | j         j        S )z|
    Returns:
        @node.parent.type, if @node is not None and has a parent.
            OR
        None, otherwise.
    N)ri   rL   ©rG   s    rT   r}   r}   Û  s    € ð €|�t”{Ð*ØˆtàŒ;ÔÐrV   ÚancestorÚ
descendantc                 óL   — |}|r|j         | k    r|j         }|r|j         | k    °|S )z:Return the child of `ancestor` that contains `descendant`.)ri   )r±   r²   rG   s      rT   Úchild_towardsr´   è  s=   € à#€DØ
ð �4”; (Ò*Ð*ØŒ{ˆð ð �4”; (Ò*Ð*à€KrV   Ú	old_childÚ	new_childc                 óx   — | j         }|sdS |                      ¦   «         }|�|                     ||¦  «         dS dS )zÔ
    Side Effects:
        * If @old_child.parent is set, replace @old_child with @new_child in
        @old_child's underlying Node structure.
            OR
        * Otherwise, this function does nothing.
    N)ri   ÚremoveÚinsert_child)rµ   r¶   ri   Ú	child_idxs       rT   Úreplace_childr»   ð  sT   € ð Ô€FØð Øˆà× Ò Ñ"Ô"€IØÐØ×Ò˜I yÑ1Ô1Ð1Ð1Ð1ð ÐrV   c                 óÈ   — | j         }| }|rV|j        }|€nL|j        d         j         |k    rn5|j        t          j        k    rn|j        �|j        j        t          v rn|}|°V|S )z˜Return `leaf` or one of its ancestors that is the topmost container of it.

    By "container" we mean a node where `leaf` is the very first child.
    Nr   )r{   ri   rY   rL   r   Ú
file_inputrr   rA   )ra   Úsame_prefixÚ	containerri   s       rT   Úcontainer_ofrÀ     s…   € ð
 ”+€KØ€IØ
ð ØÔ!ˆØˆ>ØàŒ?˜1ÔÔ$¨Ò3Ð3ØàŒ;�$œ/Ò)Ð)ØàÔÐ*¨vÔ/BÔ/GÍ8Ð/SÐ/SØàˆ	ð ð ð ÐrV   c                 óv   — t          | t          ¦  «        r| S | j        rt          | j        d         ¦  «        S dS )z(Returns the first leaf of the node tree.r   N)rX   r   rY   Úfirst_leaf_ofr°   s    rT   rÂ   rÂ     s=   € å�$�ÑÔð ØˆØ„}ð Ý˜Tœ]¨1Ô-Ñ.Ô.Ð.àˆtrV   c                 ól   — | j         t          j        t          j        t          j        t          j        hv S )z?Whether node is an arithmetic or a binary arithmetic expression)rL   r   Ú
arith_exprÚ
shift_exprÚxor_exprÚand_exprr°   s    rT   Úis_arith_likerÈ   $  s*   € àŒ9ÝŒÝŒÝŒÝŒð	ð ð rV   c                 ó€  — t          | t          ¦  «        rO| j        t          j        k    rdS t          | j        ¦  «        }t          |¦  «                             d¦  «        rdS t          j
        |v rZ| j        rS| j        j        t          j        k    r9| j        j        s-| j        j        r!| j        j        j        t          j        k    rdS t!          | j        d t          j        t          j        t          j        g¦  «        rdS t!          | j        t          j        t          j        t          j        g¦  «        rdS dS )NFÚbBfFT)rX   r   rL   r   r‘   r   rj   ÚsetÚintersectionr   Úunify_docstring_detectionri   r   Úsimple_stmtrr   r½   r®   ÚNEWLINEÚINDENTrx   rl   )rG   rc   r{   s      rT   Úis_docstringrÑ   .  s  € Ý�$�ÑÔð ØŒ9�œÒ$Ð$Ø�5å" 4¤:Ñ.Ô.ˆÝˆv‰;Œ;×#Ò# FÑ+Ô+ð 	Ø�5õ 	Ô)¨TÐ1Ð1ØŒKð 	2àŒKÔ¥Ô 0Ò0Ð0Ø”Ô(ð 1àŒKÔð 1ð ŒKÔÔ#¥t¤Ò6Ð6àˆtåØŒ�d�EœM­5¬<½Ô9IÐJñô ð ð ˆtõ ˜œ¥t¤½¼ÅTÔEUÐ&VÑWÔWð ð ˆtàˆ5rV   c                 óÜ   — | j         t          j        k    oWt          | j        ¦  «        dk    o?| j        d         j         t
          j        k    o| j        d         j         t
          j        k    S )z+Return True if `node` holds an empty tuple.é   r   r£   )rL   r   rŒ   ÚlenrY   r   r…   r†   r°   s    rT   Úis_empty_tuplerÕ   O  s`   € ð 	Œ	•T”YÒð 	0Ý�”ÑÔ !Ò#ð	0àŒM˜!ÔÔ!¥U¤ZÒ/ð	0ð ŒM˜!ÔÔ!¥U¤ZÒ/ð	rV   c                 óx  — | j         t          j        k    r`t          | ¦  «        }|�|j         t          j        k    rdS t          |j        ¦  «        dk    o|j        d         j         t          j        k    S | j         t          v o7t          | j        ¦  «        dk    o| j        d         j         t          j        k    S )zMReturn True if `node` holds a tuple with one element, with or without parens.NFrÓ   r£   )
rL   r   rŒ   Úunwrap_singleton_parenthesisÚtestlist_gexprÔ   rY   r   rt   r=   ©rG   Úgexps     rT   Úis_one_tuplerÛ   Y  s£   € à„y•D”IÒÐÝ+¨DÑ1Ô1ˆØˆ<˜4œ9­Ô(:Ò:Ð:Ø�5å�4”=Ñ!Ô! QÒ&ÐO¨4¬=¸Ô+;Ô+@ÅEÄKÒ+OÐOð 	Œ	•^Ð#ð 	1Ý�”ÑÔ !Ò#ð	1àŒM˜!ÔÔ!¥U¤[Ò0ðrV   c                 ó¼   — | j         t          j        k    rdS t          | ¦  «        }|�|j         t          j        k    rdS t          d„ |j        D ¦   «         ¦  «        S )zDReturn True if `node` holds a tuple that contains a walrus operator.FNc              3   ó@   K  — | ]}|j         t          j        k    V — Œd S ©N)rL   r   Únamedexpr_test)Ú.0rZ   s     rT   ú	<genexpr>z-is_tuple_containing_walrus.<locals>.<genexpr>q  s,   è è € ÐLÐL°UˆuŒz�TÔ0Ò0ÐLÐLÐLÐLÐLÐLrV   )rL   r   rŒ   r×   rØ   ÚanyrY   rÙ   s     rT   Úis_tuple_containing_walrusrã   i  s[   € à„y•D”IÒÐØˆuÝ'¨Ñ-Ô-€DØ€|�t”y¥DÔ$6Ò6Ð6ØˆuåÐLÐL¸d¼mÐLÑLÔLÑLÔLÐLrV   ÚopeningÚclosingr©   Úbracketsc                 ó„  — | j         |j         f|k    rdS |j        dz   }t          |¦  «        D ]\  }}|| u r nŒt          d¦  «        ‚d}|dz  }||d…         D ]a}||u r nZ|j        }||k    rL|j         t          j        k    r7|dz  }|j        r+|j        j         t          j        t          j	        hv r|dz  } nŒb|dk     S )zIReturn True if content between `opening` and `closing` is a one-sequence.Fr£   z#Opening paren not found in `leaves`r   NrÓ   )
rL   Úbracket_depthÚ	enumerateÚLookupErrorr   rt   ri   r   rv   rz   )	rä   rå   r©   ræ   ÚdepthÚ_opening_indexra   Úcommasrè   s	            rT   Úis_one_sequence_betweenrî   t  s  € ð 	Œ�g”lÐ# xÒ/Ð/ØˆuàÔ! AÑ%€EÝ )¨&Ñ 1Ô 1ð Að AÑˆ˜Ø�7ˆ?ˆ?ØˆEð õ Ð?Ñ@Ô@Ð@à€FØ�aÑ€NØ�~��Ô'ð ð ˆØ�7ˆ?ˆ?ØˆEàÔ*ˆØ˜EÒ!Ð! d¤iµ5´;Ò&>Ð&>Ø�a‰KˆFØŒ{ð ˜tœ{Ô/Ý”ÝÔ"ð4ð  ð  ð ˜!‘�Ø�øà�AŠ:ÐrV   c                 óR   — t          | ¦  «        }|duo|j        t          j        k    S )z7Return True iff `node` is of the shape ( test := test )N)r×   rL   r   rß   )rG   Úinners     rT   Úis_walrus_assignmentrñ   ™  s)   € å(¨Ñ.Ô.€EØ˜ÐÐB ¤­tÔ/BÒ!BÐBrV   FÚlastc                 óF  — | j         t          j        k    �ot          | j        ¦  «        dk    o?| j        d         j         t
          j        k    o| j        d         j         t
          j        k    p³|oWt          | j        ¦  «        dk    o?| j        d         j         t
          j        k    o| j        d         j         t
          j	        k    pY|oWt          | j        ¦  «        dk    o?| j        d         j         t
          j        k    o| j        d         j         t
          j	        k    S )z?Return True iff `node` is a trailer valid in a simple decoratorrÓ   r   r£   r   )
rL   r   r„   rÔ   rY   r   r‡   r�   r…   r†   )rG   rò   s     rT   Úis_simple_decorator_trailerrô   Ÿ  s  € àŒ9�œÒ$ñ å�”ÑÔ !Ò#ð 4Ø”˜aÔ Ô%­¬Ò2ð4à”˜aÔ Ô%­¬Ò3ð	
ð ð 4Ý�D”MÑ"Ô" aÒ'ð4à”˜aÔ Ô%­¬Ò3ð4ð ”˜aÔ Ô%­¬Ò3ð	
ð ð 4Ý�D”MÑ"Ô" aÒ'ð4à”˜aÔ Ô%­¬Ò3ð4ð ”˜aÔ Ô%­¬Ò3ð'rV   c                 ór  — | j         t          j        k    rdS | j         t          j        k    rŠ| j        rƒ| j        d         j         t          j        k    obt          t          t          | j        dd…         ¦  «        ¦  «        o3t          | j        ¦  «        dk     pt          | j        d         d¬¦  «        S dS )a\  Return True iff `node` could be a 'dotted name' decorator

    This function takes the node of the 'namedexpr_test' of the new decorator
    grammar and test if it would be valid under the old decorator grammar.

    The old grammar was: decorator: @ dotted_name [arguments] NEWLINE
    The new grammar is : decorator: @ namedexpr_test NEWLINE
    Tr   r£   r§   rÓ   )rò   F)
rL   r   r�   r   ÚpowerrY   ÚallÚmaprô   rÔ   r°   s    rT   Úis_simple_decorator_expressionrù   ¹  s­   € ð „y•E”JÒÐØˆtØ„y•D”JÒÐØŒ=ð 	à”˜aÔ Ô%­¬Ò3ð Ý�Õ7¸¼ÀqÈÀtÔ9LÑMÔMÑNÔNðõ ˜œÑ&Ô&¨Ò*ð QÝ2°4´=ÀÔ3DÈ4ÐPÑPÔPðð ˆ5rV   c                 óV  — | j         t          j        k    rdS t          | ¦  «        r| j        dk    rdS | j         t          j        k    rdS t          | j        ¦  «        dk    rdS | j        \  }}}|j         t          j	        k    r$|j         t          j
        k    rt          |¦  «        S dS )zAReturn True if `node` holds a `yield` or `yield from` expression.TÚyieldFr   )rL   r   Ú
yield_exprÚis_name_tokenrj   rŒ   rÔ   rY   r   r…   r†   Úis_yield)rG   ÚlparÚexprÚrpars       rT   rþ   rþ   Ñ  s¡   € à„y•D”OÒ#Ð#Øˆtå�TÑÔð ˜tœz¨WÒ4Ð4Øˆtà„y•D”IÒÐØˆuå
ˆ4Œ=ÑÔ˜QÒÐØˆuà”}Ñ€Dˆ$�Ø„y•E”JÒÐ 4¤9µ´
Ò#:Ð#:Ý˜‰~Œ~Ðàˆ5rV   rg   c                 óš   — | j         t          vs| j        sdS | j        }|j         t          j        k    r|j        sdS |j        }|j         |v S )aF  Return True if `leaf` is a star or double star in a vararg or kwarg.

    If `within` includes VARARGS_PARENTS, this applies to function signatures.
    If `within` includes UNPACKING_PARENTS, it applies to right hand-side
    extended iterable unpacking (PEP 3132) and additional unpacking
    generalizations (PEP 448).
    F)rL   r(   ri   r   r~   )ra   rg   r˜   s      rT   r   r   æ  sY   € ð „yÕ(Ð(Ð(°´Ð(ØˆuàŒ€AØ„v•”ÒÐð Œxð 	Ø�5àŒHˆàŒ6�VÐÐrV   c                 ó,   — | j         t          j        k    S )z&Return True if the node is an f-string)rL   r   Úfstringr°   s    rT   Ú
is_fstringr  ý  s   € àŒ9�œÒ$Ð$rV   c                 óÐ   — t          | ¦  «        t          | j        ¦  «        d…         }t          t          j        || j        ¬¦  «        }|                      ¦   «         pd|_        |S )z/Converts an fstring node back to a string node.N)r{   r   )rN   rÔ   r{   r   r   r‘   Ú
get_linenoÚlineno)rG   Ústring_without_prefixÚstring_leafs      rT   Úfstring_to_stringr    sY   € å ™IœI¥c¨$¬+Ñ&6Ô&6Ð&8Ð&8Ô9ÐÝ•u”|Ð%:À4Ä;ÐOÑOÔO€KØŸšÑ*Ô*Ð/¨a€KÔØÐrV   c                 óØ   — t          | t          ¦  «        rt          | ¦  «        rt          | ¦  «        }nt          | t          ¦  «        r| }ndS t          |j        ¦  «        od|j        v S )zKReturn True if `leaf` is a multiline string that actually spans many lines.Frž   )rX   r   r  r  r   r   rj   )rG   ra   s     rT   Úis_multiline_stringr  
  sl   € å�$�ÑÔð ¥*¨TÑ"2Ô"2ð Ý  Ñ&Ô&ˆˆÝ	�D�$Ñ	Ô	ð Øˆˆàˆuå˜TœZÑ(Ô(Ð?¨T°T´ZÐ-?Ð?rV   c                 óž   — | j         t          j        t          j        hv sJ ‚| j        €J ‚| j        j         t          j        t          j        hv S rÞ   )rL   r   ÚsuiterÎ   ri   ÚfuncdefrŠ   r°   s    rT   Úis_parent_function_or_classr    sF   € ØŒ9�œ¥TÔ%5Ð6Ð6Ð6Ð6Ð6ØŒ;Ð"Ð"Ð"àŒ;Ô¥¤­d¬mÐ<Ð<Ð<rV   c                 óV   — | j         t          j        t          j        t          j        hv S rÞ   )rL   r   r  rŠ   Úasync_funcdefr°   s    rT   Úis_function_or_classr    s   € ØŒ9�œ¥t¤}µdÔ6HÐIÐIÐIrV   c                 óÜ  — | j         �t          | ¦  «        sdS | j                             ¦   «         rdS t	          | j        ¦  «        dk    s`| j        d         j        t          j        k    s@| j        d         j        t          j	        k    s | j        d         j        t          j
        k    rdS | j        d         j                             ¦   «         rdS t          | j        d         ¦  «        S )z2Return True if `node` is a suite with a stub body.NFé   r   r£   r   rÓ   )ri   r  r{   ÚstriprÔ   rY   rL   r   rÏ   rÐ   ÚDEDENTÚis_stub_bodyr°   s    rT   Úis_stub_suiter  !  sÓ   € à„{ÐÕ'BÀ4Ñ'HÔ'HÐØˆuð „{×ÒÑÔð Øˆuõ 	ˆDŒMÑÔ˜aÒÐØŒ=˜ÔÔ ¥E¤MÒ1Ð1ØŒ=˜ÔÔ ¥E¤LÒ0Ð0ØŒ=˜ÔÔ ¥E¤LÒ0Ð0àˆuà„}�QÔÔ×$Ò$Ñ&Ô&ð Øˆuå˜œ aÔ(Ñ)Ô)Ð)rV   c                 ór  — t          | t          ¦  «        r| j        t          j        k    rdS t          | j        ¦  «        dk    rdS | j        d         }|j                             ¦   «          oJ|j        t          j	        k    o5t          |j        ¦  «        dk    ot          d„ |j        D ¦   «         ¦  «        S )zCReturn True if `node` is a simple statement containing an ellipsis.FrÓ   r   r   c              3   óR   K  — | ]"}|t          t          j        d ¦  «        k    V — Œ#dS )ú.N)r   r   r‡   )rà   ra   s     rT   rá   zis_stub_body.<locals>.<genexpr>E  s3   è è € ÐHÐH°���UœY¨Ñ,Ô,Ò,ÐHÐHÐHÐHÐHÐHrV   )rX   r   rL   r   rÎ   rÔ   rY   r{   r  rŒ   r÷   )rG   rZ   s     rT   r  r  8  sµ   € å�d�DÑ!Ô!ð  T¤Yµ$Ô2BÒ%BÐ%BØˆuå
ˆ4Œ=ÑÔ˜QÒÐØˆuàŒM˜!Ô€EàŒL×ÒÑ Ô Ð ð 	IØŒJ�$œ)Ò#ð	Iå�”ÑÔ 1Ò$ð	Iõ ÐHÐH¸¼ÐHÑHÔHÑHÔHð	rV   c                 ób  — t          | t          ¦  «        s| j        t          j        k    rdS | j        d         | j        d         }}t          |t          ¦  «        oT|j        t          j        k    o?|j        dk    o4t          |t          ¦  «        o|j        t          j	        k    o
|j        dk    S )z�Given a `LN`, determines whether it's an atom `node` with invisible
    parens. Useful in dedupe-ing and normalizing parens.
    Fr   r§   re   )
rX   r   rL   r   rŒ   rY   r   r…   rj   r†   )rG   Úfirstrò   s      rT   Úis_atom_with_invisible_parensr   I  sª   € õ �$�ÑÔð  ¤­d¬iÒ!7Ð!7Øˆuà”- Ô" D¤M°"Ô$5ˆ4€Eå�5�$ÑÔð 	ØŒJ�%œ*Ò$ð	àŒK˜2Òð	õ �t�TÑ"Ô"ð	ð ŒI�œÒ#ð		ð
 ŒJ˜"ÒðrV   c                 ó>   — t          | ¦  «        pt          | ¦  «        S rÞ   )Úis_empty_lparÚis_empty_rpar©ra   s    rT   Úis_empty_parr%  [  s   € Ý˜ÑÔÐ5¥-°Ñ"5Ô"5Ð5rV   c                 óB   — | j         t          j        k    o
| j        dk    S ©Nre   )rL   r   r…   rj   r$  s    rT   r"  r"  _  ó   € ØŒ9�œ
Ò"Ð7 t¤z°RÒ'7Ð7rV   c                 óB   — | j         t          j        k    o
| j        dk    S r'  )rL   r   r†   rj   r$  s    rT   r#  r#  c  r(  rV   c                 óÚ   — | j         }| j        }| j        }t          |t          j        k    o9|dk    r|r|j        t          j        k    p|dk    o|o|j        t          j        k    ¦  «        S )z9Return True if the given leaf starts an import statement.rh   Úfrom)	ri   rL   rj   Úboolr   r�   r   Úimport_namer’   )ra   r˜   r—   r™   s       rT   Ú	is_importr.  g  ss   € àŒ€AØŒ	€AØŒ
€AÝØ	�UŒZŠð 	
à�(Š]Ð?˜qÐ? Q¤V­tÔ/?Ò%?ð BØ�V’Ð@ Ð@ a¤fµÔ0@Ò&@ñ	ô ð rV   c                 ó$  — t          | j        t          j        k    o+| j        dk    o | j        o| j        j        t          j        k    ¦  «        pBt          | j        t          j        k    o | j	        o| j	        j        t          j        k    ¦  «        S )zDReturn True if the given leaf starts a with or async with statement.Úwith)
r,  rL   r   r�   rj   ri   r   Ú	with_stmtÚASYNCÚnext_siblingr$  s    rT   Úis_with_or_async_with_stmtr4  u  s�   € åØŒ	•U”ZÒð 	/ØŒJ˜&Ò ð	/àŒKð	/ð ŒKÔ¥¤Ò.ñ	ô ð 	õ
 
ØŒ	•U”[Ò ð 	5ØÔð	5àÔÔ"¥d¤nÒ4ñ
ô 
ð	rV   c                 óœ   — t          | j        t          j        k    o*| j        o#| j        j        t
          j        t
          j        hv ¦  «        S )zÆReturn True if the given leaf starts an async def/for/with statement.

    Note that `async def` can be either an `async_stmt` or `async_funcdef`,
    the latter is used when it has decorators.
    )r,  rL   r   r2  ri   r   Ú
async_stmtr  r$  s    rT   Úis_async_stmt_or_funcdefr7  ƒ  sJ   € õ ØŒ	•U”[Ò ð 	FØŒKð	FàŒKÔ¥¤µ$Ô2DÐ EÐEñô ð rV   c                 ór   — | j         }| j        }|t          j        t          hv o|                     d¦  «        S )aB  Return True if the given leaf is a type comment. This function should only
    be used for general type comments (excluding ignore annotations, which should
    use `is_type_ignore_comment`). Note that general type comments are no longer
    used in modern version of Python, this function may be deprecated in the future.z# type:)rL   rj   r   rk   r!   Ú
startswith©ra   r—   r™   s      rT   Úis_type_commentr;  �  s6   € ð
 	Œ	€AØŒ
€AØ•”Õ 2Ð3Ð3ÐO¸¿ºÀYÑ8OÔ8OÐOrV   c                 óf   — | j         }| j        }|t          j        t          hv ot          |¦  «        S )zGReturn True if the given leaf is a type comment with ignore annotation.)rL   rj   r   rk   r!   Úis_type_ignore_comment_stringr:  s      rT   Úis_type_ignore_commentr>  š  s2   € àŒ	€AØŒ
€AØ•”Õ 2Ð3Ð3ÐXÕ8UÐVWÑ8XÔ8XÐXrV   rj   c                 ó,   — |                       d¦  «        S )zSReturn True if the given string match with type comment with
    ignore annotation.z# type: ignore)r9  )rj   s    rT   r=  r=  ¡  s   € ð ×ÒÐ,Ñ-Ô-Ð-rV   )Úvisibleri   rZ   r@  c                ó:  — t          t          j        |rdnd¦  «        }t          t          j        |rdnd¦  «        }|j        }d|_        |                     ¦   «         pd}t          t          j        |||g¦  «        }||_        |  	                    ||¦  «         dS )zéWrap `child` in parentheses.

    This replaces `child` with an atom holding the parentheses and the old
    child.  That requires moving the prefix.

    If `visible` is False, the leaves will be valueless (and thus invisible).
    ú(re   ú)r   N)
r   r   r…   r†   r{   r¸   r   r   rŒ   r¹   )ri   rZ   r@  rÿ   r  r{   Úindexr¶   s           rT   Úwrap_in_parenthesesrE  §  s”   € õ •”
 7Ð2˜C˜C°Ñ3Ô3€DÝ•”
 7Ð2˜C˜C°Ñ3Ô3€DØŒ\€FØ€E„LØ�LŠL‰NŒNÐ˜a€EÝ•T”Y  u¨dÐ 3Ñ4Ô4€IØ€IÔØ
×Ò˜˜yÑ)Ô)Ð)Ð)Ð)rV   c                 ó¨   — t          | j        ¦  «        dk    rdS | j        \  }}}|j        t          j        k    r|j        t          j        k    sdS |S )zqReturns `wrapped` if `node` is of the shape ( wrapped ).

    Parenthesis can be optional. Returns None otherwiser   N)rÔ   rY   rL   r   r…   r†   )rG   rÿ   Úwrappedr  s       rT   r×   r×   ¹  sS   € õ ˆ4Œ=ÑÔ˜QÒÐØˆtàœ-Ñ€Dˆ'�4ØŒI�œÒ#Ð#¨¬	µU´ZÒ(?Ð(?Øˆtà€NrV   c                 ó~   — | j         t          j        k    r	d| _        dS | j         t          j        k    r	d| _        dS dS )z«Make sure parentheses are visible.

    They could be invisible as part of some statements (see
    :func:`normalize_invisible_parens` and :func:`visit_import_from`).
    rB  rC  N)rL   r   r…   rj   r†   r$  s    rT   Úensure_visiblerI  Ç  s@   € ð „y•E”JÒÐØˆŒ
ˆ
ˆ
Ø	Œ•e”jÒ	 Ð	 ØˆŒ
ˆ
ˆ
ð 
!Ð	 rV   Únlc                 ó,   — | j         t          j        k    S rÞ   )rL   r   r�   ©rJ  s    rT   rý   rý   Ó  ó   € ØŒ7•e”jÒ Ð rV   c                 ó,   — | j         t          j        k    S rÞ   )rL   r   r…   rL  s    rT   Úis_lpar_tokenrO  ×  rM  rV   c                 ó,   — | j         t          j        k    S rÞ   )rL   r   r†   rL  s    rT   Úis_rpar_tokenrQ  Û  rM  rV   c                 ó,   — | j         t          j        k    S rÞ   )rL   r   r�   rL  s    rT   Úis_number_tokenrS  ß  s   € ØŒ7•e”lÒ"Ð"rV   )rH   ÚparamNc                 ó¶   — | j         }|�O|j        r|j        j        t          j        k    rdS |j         r|j         j        t
          j        k    rdS |j         }|­OdS )z<Returns the type of annotation this leaf is part of, if any.NrH   rT  )ri   rr   rL   r   ÚRARROWr   Útname)ra   r±   s     rT   Úget_annotation_typerX  ã  sg   € àŒ{€HØ
Ð
ØÔ ð 	 XÔ%:Ô%?Å5Ä<Ò%OÐ%OØ�8ØŒ?ð 	˜xœÔ3µt´zÒAÐAØ�7Ø”?ˆð Ð
ð ˆ4rV   c                 ó$   — t          | ¦  «        duS )z7Returns whether this leaf is part of a type annotation.N)rX  r$  s    rT   Úis_part_of_annotationrZ  ï  s   € å˜tÑ$Ô$¨DÐ0Ð0rV   c                 óv   — t          | t          ¦  «        r| S | j        sdS t          | j        d         ¦  «        S )z,Returns the first leaf of the ancestor node.Nr   )rX   r   rY   Ú
first_leafr°   s    rT   r\  r\  ô  s=   € å�$�ÑÔð ,ØˆØŒ]ð ,Øˆtå˜$œ-¨Ô*Ñ+Ô+Ð+rV   c                 óv   — t          | t          ¦  «        r| S | j        sdS t          | j        d         ¦  «        S )z+Returns the last leaf of the ancestor node.Nr§   )rX   r   rY   Ú	last_leafr°   s    rT   r^  r^  þ  s=   € å�$�ÑÔð ,ØˆØŒ]ð ,Øˆtå˜œ rÔ*Ñ+Ô+Ð+rV   c                 ó´   — | }|j         rN|j         j        rB||j         j        d         u r.|j         }|j         r |j         j        r||j         j        d         u °.|S )zGReturns the furthest ancestor that has this leaf node as the last leaf.r§   )ri   rY   )ra   rG   s     rT   Ú furthest_ancestor_with_last_leafr`    sk   € à€DØ
Œ+ð ˜$œ+Ô.ð °4¸4¼;Ô;OÐPRÔ;SÐ3SÐ3SØŒ{ˆð Œ+ð ˜$œ+Ô.ð °4¸4¼;Ô;OÐPRÔ;SÐ3SÐ3Sà€KrV   )rž   )F)Âr^   ÚsysÚtypingr   r   r   r   r   r   r	   r
   r   r   Úversion_infor   Útyping_extensionsÚmypy_extensionsr   Úblack.cacher   Ú
black.moder   r   Úblack.stringsr   r   Úblib2to3r   Úblib2to3.pgen2r   Úblib2to3.pytreer   r   r   r   Ú
initializeÚpython_symbolsr   Ú__annotations__r   r_   ÚintÚLeafIDÚNodeTyper  rÐ   rÏ   r   Úif_stmtÚ
while_stmtÚfor_stmtÚtry_stmtr“   r1  r  rŠ   Ú
match_stmtÚ
case_blockr   r!   rM   r$   ÚLESSÚGREATERÚEQEQUALÚNOTEQUALÚ	LESSEQUALÚGREATEREQUALr%   ÚVBARÚ
CIRCUMFLEXÚAMPERÚ	LEFTSHIFTÚ
RIGHTSHIFTÚPLUSÚMINUSr|   ÚSLASHÚDOUBLESLASHÚPERCENTr�   ÚTILDErŽ   r&   r'   r(   rv   rw   r„   rz   ry   r)   rŒ   r�   Ú	listmakerrØ   Útestlist_star_exprÚsubject_exprÚpatternr*   ÚtestÚlambdefÚor_testÚand_testÚnot_testÚ
comparisonr~   r   rÆ   rÇ   rÅ   rÄ   Útermrö   rß   r+   rW  Ú
tname_starr,   r<   ÚtestlistÚexprlistr=   r…   r†   rˆ   ÚRSQBrp   ÚRBRACEr>   rË   Úkeysr?   Úvaluesr@   rA   rt   ÚFSTRING_MIDDLEÚFSTRING_ENDrƒ   rB   rV  rF   r,  rN   r�   r¥   rs   r®   r}   r´   r»   rÀ   rÂ   rÈ   rÑ   rÕ   rÛ   rã   rî   rñ   rô   rù   rþ   r   r  r  r  r  r  r  r  r   r%  r"  r#  r.  r4  r7  r;  r>  r=  rE  r×   rI  rý   rO  rQ  rS  rX  rZ  r\  r^  r`  r`   rV   rT   ú<module>r�     s7  ððð ð ð €
€
€
ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ô�wÒÐØ Ð Ð Ð Ð Ð Ð à+Ð+Ð+Ð+Ð+Ð+à &Ð &Ð &Ð &Ð &Ð &à !Ð !Ð !Ð !Ð !Ð !Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à €Ô �)Ñ Ô Ð ØÔ#€€eÐ #Ð #Ñ #ð €GˆC�L„L€Ø
ˆ4�ˆ:Ô€Ø	€Ø€ð ”\ 5¤<°´Ð?€
ˆEÐ ?Ð ?Ñ ?à„LØ„OØ„MØ„MØÔØ„NØ„LØ„MØ„OØ„Oð€	ˆ5ð ð ñ ð  Ð �EÐ Ð Ñ Ø%9€„Ð!Ñ "Ø ˜€�Ð &Ð &Ñ &à	„JØ	„MØ	„MØ	„NØ	„OØ	Ôð€ˆUð ð ñ ð 
„JØ	ÔØ	„KØ	„OØ	ÔØ	„JØ	„KØ	„JØ	„KØ	ÔØ	„MØ	„HØ	„KØ	Ôð€�ð ð ñ ð  ”
˜EÔ,Ð-€€uÐ -Ð -Ñ -Ø 5¤; -Ñ/Ð �%Ð /Ð /Ñ /à„LØ„MØ„LØÔØÔð€�ð ð ñ ð 	„IØÔØ„NØÔØÔØÔØ„LðÐ �5ð ð ñ ð 	„IØ„LØ„LØ„MØ„MØ„OØ„NØ„IØ„MØ„MØ„OØ„OØ„LØ„IØ„JØÔð!Ð �%ð ð ñ ð$ ”j $¤/Ð2€ˆUÐ 2Ð 2Ñ 2ðð ð €ˆUð ð ñ ð$ œ¨Ô(?ÀÄÐO€�Ð OÐ OÑ Oà	„J�”
Ø	„J�”
Ø	„L�%”,ð€ˆð ð ñ ð
 ˜#˜gŸlšl™nœnÑ-Ô-Ð �%Ð -Ð -Ñ -Ø˜#˜gŸnšnÑ.Ô.Ñ/Ô/Ð �%Ð /Ð /Ñ /Ø"Ð%5Ñ5€ˆ%Ð 5Ð 5Ñ 5Ø)Ø	„KØØ	ÔØ	ÔØ	„Jð-ñ €�ð ð ñ ð 
€ð €¨Ð.Ñ.Ô.ð-ð -ð -ð -ð -ˆg�aŒjñ -ô -ñ /Ô.ð-ðDm�Tð m°ð m¸Tð mÀcð mð mð mð mð`!ð ! ð !°ð !À3ð !ÐRUð !ð !ð !ð !ð˜ "œð ¨(°4¬.ð ð ð ð ð$=˜H RœLð =°$°xÀÔ7IÔ2Jð =Ètð =ð =ð =ð =ð 
�h˜r”lð 
 x°Ô'9ð 
ð 
ð 
ð 
ð˜Dð ¨bð °X¸b´\ð ð ð ð ð2˜Rð 2¨Bð 2°4ð 2ð 2ð 2ð 2ð"�tð  ð ð ð ð ð2˜ð ˜x¨œ~ð ð ð ð ð˜ð ˜tð ð ð ð ð�rð  ð ¨$ð ð ð ð ðB˜ð  ð ð ð ð ð�rð ˜dð ð ð ð ð M Rð M¨Dð Mð Mð Mð Mð "'¤¨U¬ZÐ 8ð	"ð "Øð"àð"ð �ŒJð"ð �C˜�HŒoð	"ð
 
ð"ð "ð "ð "ðJC˜rð C dð Cð Cð Cð Cðð  bð °ð Àð ð ð ð ð4¨ð °ð ð ð ð ð0�2ð ˜$ð ð ð ð ð*�Dð  # h¤-ð °Dð ð ð ð ð.%�Tð %˜dð %ð %ð %ð %ð
˜Dð  Tð ð ð ð ð	@˜bð 	@ Tð 	@ð 	@ð 	@ð 	@ð= dð =¨tð =ð =ð =ð =ðJ˜tð J¨ð Jð Jð Jð Jð*˜ð * ð *ð *ð *ð *ð.�rð ˜dð ð ð ð ð"¨ð ¨tð ð ð ð ð$6�tð 6 ð 6ð 6ð 6ð 6ð8˜ð 8 ð 8ð 8ð 8ð 8ð8˜ð 8 ð 8ð 8ð 8ð 8ð�Dð ˜Tð ð ð ð ð Tð ¨dð ð ð ð ð
 4ð 
¨Dð 
ð 
ð 
ð 
ðP˜$ð P 4ð Pð Pð Pð PðY ð Y¨$ð Yð Yð Yð Yð.¨ð .°ð .ð .ð .ð .ð EIð *ð *ð * ð *¨Rð *¸Tð *ÈTð *ð *ð *ð *ð$ rð ¨h°r¬lð ð ð ð ð	˜ð 	 $ð 	ð 	ð 	ð 	ð!�bð !˜Y tœ_ð !ð !ð !ð !ð!�bð !˜Y tœ_ð !ð !ð !ð !ð!�bð !˜Y tœ_ð !ð !ð !ð !ð#˜ð #˜y¨œð #ð #ð #ð #ð	˜dð 	 wÐ/FÔ'Gð 	ð 	ð 	ð 	ð1 ð 1¨ð 1ð 1ð 1ð 1ð
,�Rð ,˜H TœNð ,ð ,ð ,ð ,ð,�Bð ,˜8 Dœ>ð ,ð ,ð ,ð ,ð¨4ð °Bð ð ð ð ð ð rV   