Ë
    #´˜j   ã                   ón   — d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
mZmZmZ  G d„ dej                  «      Zy)zoFixer for execfile.

This converts usages of the execfile function into calls to the built-in
exec() function.
é   )Ú
fixer_base)
ÚCommaÚNameÚCallÚLParenÚRParenÚDotÚNodeÚArgListÚStringÚsymsc                   ó   — e Zd ZdZdZd„ Zy)ÚFixExecfileTz«
    power< 'execfile' trailer< '(' arglist< filename=any [',' globals=any [',' locals=any ] ] > ')' > >
    |
    power< 'execfile' trailer< '(' filename=any ')' > >
    c                 ó¬  — |sJ ‚|d   }|j                  d«      }|j                  d«      }|j                  d   j                  d   j                  «       }t        |j                  «       t	        «       t        dd«      g|¬«      }t        t        j                  t        d«      |g«      }t        t        j                  t        «       t        d	«      g«      t        t        j                  t        «       t        «       g«      g}	|g|	z   }
|j                  «       }d|_        t        d
d«      }|
t	        «       |t	        «       |gz   }t        t        d«      |d«      }|g}|�)|j!                  t	        «       |j                  «       g«       |�)|j!                  t	        «       |j                  «       g«       t        t        d«      ||j                  ¬«      S )NÚfilenameÚglobalsÚlocalséÿÿÿÿz"rb"Ú )ÚrparenÚopenÚreadz'exec'ÚcompileÚ Úexec)Úprefix)ÚgetÚchildrenÚcloner   r   r   r
   r   Úpowerr   Útrailerr	   r   r   r   r   Úextend)ÚselfÚnodeÚresultsr   r   r   Úexecfile_parenÚ	open_argsÚ	open_callr   Ú	open_exprÚfilename_argÚexec_strÚcompile_argsÚcompile_callÚargss                   ú,lib/python3.12/lib2to3/fixes/fix_execfile.pyÚ	transformzFixExecfile.transform   s|  € ÙˆˆwØ˜:Ñ&ˆØ—+‘+˜iÓ(ˆØ—‘˜XÓ&ˆð Ÿ™ rÑ*×3Ñ3°BÑ7×=Ñ=Ó?ˆä˜XŸ^™^Ó-¬u«w¼¸vÀsÓ8KÐLØ#1ô3ˆ	äœŸ™¤d¨6£l°IÐ%>Ó?ˆ	Ü”T—\‘\¤C£E¬4°«<Ð#8Ó9Ü”T—\‘\¤F£H¬f«hÐ#7Ó8ð:ˆà�K $Ñ&ˆ	ð  —~‘~Ó'ˆØ!ˆÔÜ˜( CÓ(ˆØ ¤E£G¨\¼5»7ÀHÐ#MÑMˆÜœD ›O¨\¸2Ó>ˆàˆ~ˆØÐØ�K‰Kœ› '§-¡-£/Ð2Ô3ØÐØ�K‰Kœ› &§,¡,£.Ð1Ô2Ü”D˜“L $¨t¯{©{Ô;Ð;ó    N)Ú__name__Ú
__module__Ú__qualname__ÚBM_compatibleÚPATTERNr0   © r1   r/   r   r      s   „ Ø€Mð€Gó<r1   r   N)Ú__doc__r   r   Ú
fixer_utilr   r   r   r   r   r	   r
   r   r   r   ÚBaseFixr   r7   r1   r/   Ú<module>r;      s0   ðñõ ÷1÷ 1÷ 1ô&<�*×$Ñ$õ &<r1   