§
    ƒÛgãñ ã                   óh  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZm	Z	 d dl
mZmZmZ d dlmZmZ d dlmZmZmZ d dlmZmZmZmZ d dlmZ d dlmZ  G d	„ d
e¦  «        Z ej         e!¦  «        Z" G d„ de¦  «        Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z. G d„ de¦  «        Z/dS )é    N)ÚerrorsÚirÚconfig)ÚNotDefinedErrorÚUnsupportedErrorÚerror_extras)Úget_definitionÚguard)Ú	PYVERSIONÚBINOPS_TO_OPERATORSÚINPLACE_BINOPS_TO_OPERATORS)ÚFlowÚAdaptDFAÚAdaptCFAÚ	BlockKind)Úeh)Úunpack_single_tuplec                   ó   — e Zd ZdZd„ Zd„ ZdS )Ú_UNKNOWN_VALUEzNRepresents an unknown value, this is for ease of debugging purposes only.
    c                 ó   — || _         d S ©N)Ú_varname)ÚselfÚvarnames     úL/granary/edev/quantum/lib/python3.11/site-packages/numba/core/interpreter.pyÚ__init__z_UNKNOWN_VALUE.__init__   s   € ØˆŒˆˆó    c                 ó6   — d                      | j        ¦  «        S )Nz_UNKNOWN_VALUE({}))Úformatr   ©r   s    r   Ú__repr__z_UNKNOWN_VALUE.__repr__   s   € Ø#×*Ò*¨4¬=Ñ9Ô9Ð9r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r!   © r   r   r   r      s<   € € € € € ðð ð ð  ð  ð:ð :ð :ð :ð :r   r   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚAssigneraÓ  
    This object keeps track of potential assignment simplifications
    inside a code block.
    For example `$O.1 = x` followed by `y = $0.1` can be simplified
    into `y = x`, but it's not possible anymore if we have `x = z`
    in-between those two instructions.

    NOTE: this is not only an optimization, but is actually necessary
    due to certain limitations of Numba - such as only accepting the
    returning of an array passed as function argument.
    c                 óv   — i | _         t          j        t          ¦  «        | _        t          ¦   «         | _        d S r   )Údest_to_srcÚcollectionsÚdefaultdictÚlistÚsrc_invalidateÚsetÚunused_destsr    s    r   r   zAssigner.__init__-   s1   € àˆÔõ *Ô5µdÑ;Ô;ˆÔÝ™EœEˆÔÐÐr   c                 ód  — |j         }|j         }|| j        v r7| j                             |¦  «        D ]}| j                             |¦  «         Œ|| j        v r| j        |         }|j        rD|| j        |<   | j        |                              |¦  «         | j                             |¦  «         |S )z™
        Assign *srcvar* to *destvar*. Return either *srcvar* or a possible
        simplified assignment source (earlier assigned to *srcvar*).
        )Únamer.   Úpopr*   Úis_tempÚappendr0   Úadd)r   ÚsrcvarÚdestvarÚsrcnameÚdestnameÚds         r   ÚassignzAssigner.assign5   sÆ   € ð
 ”+ˆØ”<ˆØ�tÔ*Ð*Ð*ð Ô(×,Ò,¨XÑ6Ô6ð (ð (�ØÔ ×$Ò$ QÑ'Ô'Ð'Ð'Ø�dÔ&Ð&Ð&ØÔ% gÔ.ˆFØŒ?ð 	,Ø)/ˆDÔ˜XÑ&ØÔ Ô(×/Ò/°Ñ9Ô9Ð9ØÔ×!Ò! (Ñ+Ô+Ð+Øˆr   c                 óf   — || j         v r| j         |         S | j                             |¦  «         dS )zu
        Get a possible assignment source (a ir.Var instance) to replace
        *destname*, otherwise None.
        N)r*   r0   Údiscard)r   r:   s     r   Úget_assignment_sourcezAssigner.get_assignment_sourceI   s<   € ð
 �tÔ'Ð'Ð'ØÔ# HÔ-Ð-ØÔ×!Ò! (Ñ+Ô+Ð+Øˆtr   N)r"   r#   r$   r%   r   r<   r?   r&   r   r   r(   r(       sK   € € € € € ð
ð 
ð"ð "ð "ðð ð ð(ð ð ð ð r   r(   c                 ó  — | |         j         j        }| |         j        }||j        |         v r=|j        |                              |¦  «         ||                              |¦  «         dS |||         vrt          d¦  «        ‚dS )a¯  
    Deletes the definition defined for old_body at index idx
    from func_ir. We assume this stmt will be deleted from
    new_body.

    In some optimizations we may update the same variable multiple times.
    In this situation, we only need to delete a particular definition once,
    this is tracked in already_deleted_def, which is a map from
    assignment name to the set of values that have already been
    deleted.
    z›Inconsistency found in the definitions while executing a peephole optimization. This suggests an internal error or inconsistency elsewhere in the compiler.N)Útargetr2   ÚvalueÚ_definitionsÚremover6   r   )Úold_bodyÚidxÚfunc_irÚalready_deleted_defsÚlhsÚrhss         r   Ú_remove_assignment_definitionrK   T   sž   € ð �3Œ-Ô
Ô
#€CØ
�3Œ-Ô
€CØ
ˆgÔ" 3Ô'Ð'Ð'ØÔ˜SÔ!×(Ò(¨Ñ-Ô-Ð-Ø˜SÔ!×%Ò% cÑ*Ô*Ð*Ð*Ð*Ø	Ð(¨Ô-Ð	-Ð	-ÝðAñ
ô 
ð 	
ð 
.Ð	-r   c                 óÎ   — |j                              ¦   «         }|j        }|                      ¦   «         D ]\  }}	|||	         d         f||	<   Œd||<   t          | |||¦  «         |S )a  
    Extracts the kws args passed as varkwarg
    for CALL_FUNCTION_EX. This pass is taken when
    n_kws <= 15 and the bytecode looks like:

        # Start for each argument
        LOAD_FAST  # Load each argument.
        # End for each argument
        ...
        BUILD_CONST_KEY_MAP # Build a map

    In the generated IR, the varkwarg refers
    to a single build_map that contains all of the
    kws. In addition to returning the kws, this
    function updates new_body to remove all usage
    of the map.
    é   N)ÚitemsÚcopyÚvalue_indexesrK   )
rE   Úkeyword_exprÚnew_bodyÚbuildmap_idxrG   rH   ÚkwsrP   ÚkeyÚindexs
             r   Ú#_call_function_ex_replace_kws_smallrW   m   sˆ   € ð2 Ô
×
!Ò
!Ñ
#Ô
#€Cð !Ô.€MØ#×)Ò)Ñ+Ô+ð *ð *‰
ˆˆUØ˜3˜uœ: aœ=Ð)ˆˆE‰
ˆ
ð "€Hˆ\Ñå!Ø�, Ð)=ñô ð ð €Jr   c                 ó¾  — d||<   t          | |||¦  «         g }|dz   }	|	|k    �r7| |	         }
t          |
t          j        ¦  «        rt          |
j        t          j        ¦  «        st          |¦  «        ‚|
j        j        }|
j        j        }|	dz  }	d}|	|k    rˆ|s†| |	         }t          |t          j        ¦  «        rWt          |j        t          j	        ¦  «        r8|j        j
        dk    r(|j        j        j        |k    r|j        j        dk    rd}n|	dz  }	|	|k    r|¯†|r|	|k    rt          |¦  «        ‚| |	dz            }t          |t          j        ¦  «        r†t          |j        t          j	        ¦  «        rg|j        j
        dk    rW|j        j        j        |j        j        k    r8t          |j        j        ¦  «        dk    r|j        j        d	         j        |k    st          |¦  «        ‚|j        j        d         }|                     ||f¦  «         d||	<   d||	dz   <   t          | |	||¦  «         t          | |	dz   ||¦  «         |	dz  }	|	|k    �°7|S )
aú  
    Extracts the kws args passed as varkwarg
    for CALL_FUNCTION_EX. This pass is taken when
    n_kws > 15 and the bytecode looks like:

        BUILD_MAP # Construct the map
        # Start for each argument
        LOAD_CONST # Load a constant for the name of the argument
        LOAD_FAST  # Load each argument.
        MAP_ADD # Append the (key, value) pair to the map
        # End for each argument

    In the IR generated, the initial build map is empty and a series
    of setitems are applied afterwards. THE IR looks like:

        $build_map_var = build_map(items=[])
        $constvar = const(str, ...) # create the const key
        # CREATE THE ARGUMENT, This may take multiple lines.
        $created_arg = ...
        $var = getattr(
            value=$build_map_var,
            attr=__setitem__,
        )
        $unused_var = call $var($constvar, $created_arg)

    We iterate through the IR, deleting all usages of the buildmap
    from the new_body, and adds the kws to a new kws list.
    NrM   FÚgetattrÚ__setitem__TÚcallé   r   )rK   Ú
isinstancer   ÚAssignrB   ÚConstr   rA   r2   ÚExprÚopÚattrÚfuncÚlenÚargsr5   )rE   Úbuildmap_namerS   Ú
search_endrR   rG   ÚerrmsgrH   rT   Úsearch_startÚ
const_stmtÚkey_var_nameÚkey_valÚfound_getattrÚgetattr_stmtÚsetitem_stmtÚarg_vars                    r   Ú#_call_function_ex_replace_kws_largerq   –   sß  € ðN "€Hˆ\Ñå!Ø�, Ð)=ñô ð ð €CØ !Ñ#€LØ
˜*Ò
$Ñ
$à˜lÔ+ˆ
å�z¥2¤9Ñ-Ô-ð	+å˜:Ô+­R¬XÑ6Ô6ð	+õ # 6Ñ*Ô*Ð*Ø!Ô(Ô-ˆØÔ"Ô(ˆØ˜Ñˆàˆà˜JÒ&Ð&Ø!ð 'ð $ LÔ1ˆLå˜<­¬Ñ3Ô3ð"å˜|Ô1µ2´7Ñ;Ô;ð"ð !Ô&Ô)¨YÒ6Ð6à Ô&Ô,Ô1Ø$ò%ð %ð !Ô&Ô+¨}Ò<Ð<à $��ð$  Ñ!�ðA ˜JÒ&Ð&Ø!ð 'ðD ð	+à˜zÒ)Ð)õ # 6Ñ*Ô*Ð*Ø ¨qÑ 0Ô1ˆå�|¥R¤YÑ/Ô/ð	+å˜<Ô-­r¬wÑ7Ô7ð	+ð Ô"Ô%¨Ò/Ð/àÔ"Ô'Ô,ØÔ&Ô+ò,ð ,õ �LÔ&Ô+Ñ,Ô,°Ò1Ð1àÔ"Ô'¨Ô*Ô/Øò ð  õ # 6Ñ*Ô*Ð*ØÔ$Ô)¨!Ô,ˆà�
Š
�G˜WÐ%Ñ&Ô&Ð&à!%ˆ�ÑØ%)ˆ� Ñ!Ñ"å%Ø�l GÐ-Añ	
ô 	
ð 	
õ 	&Ø�l QÑ&¨Ð1Eñ	
ô 	
ð 	
ð 	˜Ñˆðs ˜*Ò
$Ñ
$ðt €Jr   c                 ó>   — d||<   t          | |||¦  «         |j        S )a  
    Extracts the args passed as vararg
    for CALL_FUNCTION_EX. This pass is taken when
    n_args <= 30 and the bytecode looks like:

        # Start for each argument
        LOAD_FAST  # Load each argument.
        # End for each argument
        ...
        BUILD_TUPLE # Create a tuple of the arguments

    In the IR generated, the vararg refer
    to a single build_tuple that contains all of the
    args. In addition to returning the args, this
    function updates new_body to remove all usage
    of the tuple.
    N)rK   rN   )rE   Ú
tuple_exprrR   Úbuildtuple_idxrG   rH   s         r   Ú$_call_function_ex_replace_args_smallru   !  s5   € ð4  $€Hˆ^Ñå!Ø�. 'Ð+?ñô ð ð ÔÐr   c                 ó~  — d}g }t          |t          j        ¦  «        rHt          |j        t          j        ¦  «        r)|j        j        }	d||<   t          | |||¦  «         |dz  }nt          d¦  «        ‚||k    �r¢| |         }
t          |
t          j        ¦  «        rd|
j        j        |	k    rTt          |
j        t          j	        ¦  «        r5|
j        j
        dk    r%|
j        j        sd||<   t          | |||¦  «         �n||k    sst          |
t          j        ¦  «        rY|
j        j        |	k    rIt          |
j        t          j	        ¦  «        r*|
j        j
        dk    r|
j        j        t          j        k    st          |¦  «        ‚|
j        j        j        }|
j        j        j        }| |dz
           }t          |t          j        ¦  «        rLt          |j        t          j	        ¦  «        r-|j        j
        dk    rt%          |j        j        ¦  «        dk    st          |¦  «        ‚|j        j        |k    rt          d¦  «        ‚|j        j        |k    r|}	nt          |¦  «        ‚|                     |j        j        d         ¦  «         d||<   d||dz
  <   t          | |||¦  «         t          | |dz
  ||¦  «         |dz  }d}||k    rD|rB| |         }t          |t          j        ¦  «        r|j        j        |	k    rd	}n|dz  }||k    r|°B||k    �°¢||k    rt          |¦  «        ‚|ddd
…         S )aâ  
    Extracts the args passed as vararg
    for CALL_FUNCTION_EX. This pass is taken when
    n_args > 30 and the bytecode looks like:

        BUILD_TUPLE # Create a list to append to
        # Start for each argument
        LOAD_FAST  # Load each argument.
        LIST_APPEND # Add the argument to the list
        # End for each argument
        ...
        LIST_TO_TUPLE # Convert the args to a tuple.

    In the IR generated, the tuple is created by concatenating
    together several 1 element tuples to an initial empty tuple.
    We traverse backwards in the IR, collecting args, until we
    find the original empty tuple. For example, the IR might
    look like:

        $orig_tuple = build_tuple(items=[])
        $first_var = build_tuple(items=[Var(arg0, test.py:6)])
        $next_tuple = $orig_tuple + $first_var
        ...
        $final_var = build_tuple(items=[Var(argn, test.py:6)])
        $final_tuple = $prev_tuple + $final_var
        $varargs_var = $final_tuple
    r   NrM   ÚunreachableÚbuild_tupleÚbinopr\   TFéÿÿÿÿ)r]   r   r^   rB   ÚVarr2   rK   ÚAssertionErrorrA   r`   ra   rN   ÚfnÚoperatorr6   r   rI   rJ   rd   r5   )rE   Úvararg_stmtrR   rg   rG   rh   rH   ri   Ú
total_argsÚtarget_nameÚconcat_stmtÚlhs_nameÚrhs_nameÚarg_tuple_stmtÚkeep_lookingÚ	next_stmts                   r   Ú$_call_function_ex_replace_args_largerˆ   D  sÔ  € ðL €LØ€Jå�;¥¤	Ñ*Ô*ð,å�{Ô(­"¬&Ñ1Ô1ð,ð "Ô'Ô,ˆà#ˆ�Ñå%Ø�j 'Ð+?ñ	
ô 	
ð 	
ð 	�a‰ˆ
ˆ
õ
 ˜]Ñ+Ô+Ð+ð ˜Ò
$Ñ
$Ø˜zÔ*ˆå�{¥B¤IÑ.Ô.ðe	$àÔ"Ô'¨;Ò6Ð6Ý˜;Ô,­b¬gÑ6Ô6ð 7àÔ!Ô$¨Ò5Ð5ØÔ%Ô+ð 6ð $(ˆH�ZÑ å)Ø˜* gÐ/Cñô ð ñ ð ˜lÒ*Ð*Ý˜;­¬	Ñ2Ô2ð +ð  Ô&Ô+Ø"ò#ð #õ ØÔ%¥r¤wñô ð#ð  Ô%Ô(¨GÒ3Ð3ØÔ%Ô(­H¬LÒ8Ð8õ ' vÑ.Ô.Ð.Ø"Ô(Ô,Ô1ˆHØ"Ô(Ô,Ô1ˆHð & j°1¡nÔ5ˆNå˜>­2¬9Ñ5Ô5ð/åØ"Ô(­"¬'ñô ð/ð #Ô(Ô+Ø$ò%ð %õ ˜Ô,Ô2Ñ3Ô3°qÒ8Ð8õ ' vÑ.Ô.Ð.ØÔ$Ô)¨XÒ5Ð5å$ ]Ñ3Ô3Ð3ØÔ&Ô+¨xÒ7Ð7Ø&��õ ' vÑ.Ô.Ð.Ø×ÒØÔ$Ô*¨1Ô-ñô ð ð $(ˆH�ZÑ Ø'+ˆH�Z !‘^Ñ$å)Ø˜* gÐ/Cñô ð õ *Ø˜* q™.¨'Ð3Gñô ð ð ˜!‰OˆJàˆLØ Ò,Ð,°Ð,Ø$ ZÔ0�	å˜y­"¬)Ñ4Ô4ð$ð "Ô(Ô-Ø&ò'ð 'ð $)�L�Lð(  !‘O�Jð;  Ò,Ð,°Ð,ðU ˜Ò
$Ñ
$ðP �\Ò!Ð!õ ˜vÑ&Ô&Ð&à�d�d˜�dÔÐr   c                 ó‚	  — t          j        d¦  «        }t          j        t          ¦  «        }| j                             ¦   «         D �]v}d}g }t          |j        ¦  «        D �]\  }}t          |t          j        ¦  «        �rt          |j        t          j        ¦  «        �rî|j        j        dk    �rÝ|j        j        ��Ðd}|j        }|j        }	|j        }
|j        }|j        }|dz
  }|}d}d}|dk    rN|sL|j        |         }t          |t          j        ¦  «        r|j        j        |j        k    rd}n|dz  }|dk    r|¯L|
s1|r/t          |j        t          j        ¦  «        r|j        j        dk    st+          |¦  «        ‚|j        j        rt/          |j        |j        ||| |¦  «        }
n#t1          |j        |j        ||dz
  || ||¦  «        }
|}|��"|	rt+          |¦  «        ‚|}d}d}|dk    rN|sL|j        |         }t          |t          j        ¦  «        r|j        j        |j        k    rd}n|dz  }|dk    r|¯L|st+          |¦  «        ‚t          |j        t          j        ¦  «        r/|j        j        d	k    rt3          |j        |j        ||| |¦  «        }	nXt          |j        t          j        ¦  «        r|j        j        d
k    rt+          |¦  «        ‚t5          |j        |||| ||¦  «        }	t          j                             |j        |	|
|j        |j        ¬¦  «        }t=          |j        || |¦  «         t          j        ||j        |j        ¦  «        }| j        |j        j                                       |¦  «         nÖt          |t          j        ¦  «        r¼t          |j        t          j        ¦  «        r�|j        j        dk    r�|j        j        ��|j        }|j        j        }|| j        v retC          | j        |         ¦  «        dk    rG| j        |         d         }t          |t          j        ¦  «        r|j        d
k    rt+          |¦  «        ‚|                      |¦  «         �Œ|r=|j         "                    ¦   «          |j         #                    d„ |D ¦   «         ¦  «         �Œx| S )a_  
    This peephole rewrites a bytecode sequence unique to Python 3.10
    where CALL_FUNCTION_EX is used instead of CALL_FUNCTION_KW because of
    stack limitations set by CPython. This limitation is imposed whenever
    a function call has too many arguments or keyword arguments.

    https://github.com/python/cpython/blob/a58ebcc701dd6c43630df941481475ff0f615a81/Python/compile.c#L55
    https://github.com/python/cpython/blob/a58ebcc701dd6c43630df941481475ff0f615a81/Python/compile.c#L4442

    In particular, this change is imposed whenever (n_args / 2) + n_kws > 15.

    Different bytecode is generated for args depending on if n_args > 30
    or n_args <= 30 and similarly if n_kws > 15 or n_kws <= 15.

    This function unwraps the *args and **kwargs in the function call
    and places these values directly into the args and kwargs of the call.
    aÀ  
        CALL_FUNCTION_EX with **kwargs not supported.
        If you are not using **kwargs this may indicate that
        you have a large number of kwargs and are using inlined control
        flow. You can resolve this issue by moving the control flow out of
        the function call. For example, if you have

            f(a=1 if flag else 0, ...)

        Replace that with:

            a_val = 1 if flag else 0
            f(a=a_val, ...)Fr[   NTrM   r   Ú	build_maprx   Úlist_to_tuple)rA   c                 ó   — g | ]}|®|‘ŒS r   r&   ©Ú.0Úxs     r   ú
<listcomp>zBpeep_hole_call_function_ex_to_call_function_kw.<locals>.<listcomp>ë  ó   € ÐBÐBÐB 1°A°M˜Q°M°M°Mr   )$ÚtextwrapÚdedentr+   r,   r/   ÚblocksÚvaluesÚ	enumerateÚbodyr]   r   r^   rB   r`   ra   Úvarkwargre   rT   ÚvarargrA   r2   r   rN   rW   rq   ru   rˆ   r[   rc   ÚlocrK   rC   r5   rd   ÚclearÚextend)rG   rh   rH   ÚblkÚblk_changedrR   ÚiÚstmtr[   re   rT   r™   r˜   Ústart_searchÚvarkwarg_locÚkeyword_defÚfoundÚ
vararg_locÚargs_defÚnew_callÚvararg_nameÚexprs                         r   Ú.peep_hole_call_function_ex_to_call_function_kwrª   ð  s"  € õ( Œ_ð ñ  ô  €Fõ 'Ô2µ3Ñ7Ô7ÐØŒ~×$Ò$Ñ&Ô&ð WDñ WDˆØˆØˆÝ  ¤Ñ*Ô*ð P	"ñ P	"‰GˆAˆtå˜4¥¤Ñ+Ô+ñM7å˜tœz­2¬7Ñ3Ô3ñM7ð ”J”M VÒ+Ñ+Ø”JÔ'Ñ3à"�Ø”z�Ø”y�Ø”h�ð œ�Øœ=�Ø  1™u�à+�Ø"�Ø�Ø" aÒ'Ð'°Ð'Ø"%¤(¨<Ô"8�Kå" ;µ´	Ñ:Ô:ð*à'Ô.Ô3°x´}ÒDÐDà $˜˜à$¨Ñ)˜ð # aÒ'Ð'°Ð'ð ð3à ð3õ # ;Ô#4µb´gÑ>Ô>ð	3ð
 (Ô-Ô0°KÒ?Ð?õ +¨6Ñ2Ô2Ð2àÔ$Ô*ð +õ >ØœØ#Ô)Ø Ø$ØØ,ñô �C�Cõ* >ØœØ œØ$Ø˜A™Ø ØØØ,ñ	ô 	�Cð  ,�àÑ%Øð 7õ /¨vÑ6Ô6Ð6Ø!-�JØ#�HØ!�EØ$¨š/˜/°%˜/Ø#&¤8¨JÔ#7˜å& xµ´Ñ;Ô;ð,à (¤Ô 4¸¼Ò CÐ Cà$(˜E˜Eà&¨!™O˜Jð %¨š/˜/°%˜/ð !ð 7õ /¨vÑ6Ô6Ð6å" 8¤>µ2´7Ñ;Ô;ð<à$œNÔ-°Ò>Ð>õ  DØœHØ$œNØ$Ø&Ø#Ø0ñ ô  ˜˜õ # 8¤>µ2´7Ñ;Ô;ð'à$œNÔ-°Ò@Ð@õ
 /¨vÑ6Ô6Ð6õ0  DØœHØ$Ø$Ø&Ø#Ø"Ø0ñ ô  ˜õ œ7Ÿ<š<Ø”I˜t S¨$¬(¸4¼;ð (ñ ô �õ .Ø”H˜a Ð*>ñô ð õ ”y ¨4¬;¸¼ÑAÔA�àÔ$ T¤[Ô%5Ô6×=Ò=¸hÑGÔGÐGÐGå˜4¥¤Ñ+Ô+ð7å˜tœz­2¬7Ñ3Ô3ð7ð ”J”M VÒ+Ð+Ø”JÔ%Ð1ð
 ”z�Ø"œkÔ.�à 7Ô#7Ð7Ð7Ý˜GÔ0°Ô=Ñ>Ô>À!ÒCÐCð #Ô/°Ô<¸QÔ?�DÝ! $­¬Ñ0Ô0ð 7°T´WÀÒ5OÐ5OÝ.¨vÑ6Ô6Ð6à�OŠO˜DÑ!Ô!Ð!Ñ!àð 	DØŒH�NŠNÑÔÐØŒH�OŠOÐBÐB¨ÐBÑBÔBÑCÔCÐCùØ€Nr   c           	      óÊ  ‡ ‡‡— d}‰ j                              ¦   «         D �]Â\  }Š	 ˆfd„} |¦   «         }|��¦‰j        |d         d         |d         d         …         }|r2t          d¦  «         |D ]}t          |¦  «         Œt          d¦  «         g }g }|d         d         }	|	j        j        }
|D ]µ}t          |t          j        ¦  «        r™t          |j	        t          j
        ¦  «        rz|j	        }|j        d	k    rh|j	        j        |
k    rX|j        d
k    r |                     |j        j        ¦  «         Œˆ|j        dk    r |                     |j        j        ¦  «         Œ³J ‚Œ¶g Šˆ ˆfd„}|	j        }|r#t          d¦  «         ‰                     ¦   «          |d         d         }|}|D �];}t          |t          j        ¦  «        �rt          |j	        t          j
        ¦  «        �rÑ|j	        }|j        d	k    rW|j        j        |v s|j        j        |v r%‰ j                             |j        j        ¦  «         Œ‘‰                     |¦  «         Œ§|j        dk    �rÓ|j        j        }||v s||v �r§|j        d         }t          |t          j        ¦  «        �r|›d|j        ›�}||v r't          j
                             |g|j        ¦  «        }nšt          j        dt.          |j        ¬¦  «        }|j                             d|j        ¬¦  «        }‰                     t          j        |||j        ¬¦  «        ¦  «         t          j
                             ||fd|j        ¬¦  «        }t          j        |j        ||j        ¦  «        }t          j        |||j        ¦  «        } ||¦  «         |}t          j
                             t8          j        |||j        ¬¦  «        }t          j        ||j        |j        ¦  «        } ||¦  «         |j        }�Œo‰                     |¦  «         �Œ†|j        dk    rg|j        j        |
k    rWt          j
                             |j        |j        ¦  «        }t          j        ||j        |j        ¦  «        } ||¦  «         �Œø‰                     |¦  «         �Œ‰                     |¦  «         �Œ&‰                     |¦  «         �Œ= |t          j        ||j        |j        ¦  «        ¦  «         |r#t          d¦  «         ‰D ]}t          |¦  «         Œ‰j        dd…         }|d|d         d         …         }‰j        |d         d         dz   d…         }|‰z   |z   }‰j                             ¦   «          ‰j                             |¦  «         |r#t          d¦  «         ‰                     ¦   «          nn�Œ»�ŒÄ‰ S )aÃ  
    This peephole rewrites a bytecode sequence new to Python 3.9 that looks
    like e.g.:

    def foo(a):
        return (*a,)

    41          0 BUILD_LIST               0
                2 LOAD_FAST                0 (a)
                4 LIST_EXTEND              1
                6 LIST_TO_TUPLE
                8 RETURN_VAL

    essentially, the unpacking of tuples is written as a list which is appended
    to/extended and then "magicked" into a tuple by the new LIST_TO_TUPLE
    opcode.

    This peephole repeatedly analyses the bytecode in a block looking for a
    window between a `LIST_TO_TUPLE` and `BUILD_LIST` and...

    1. Turns the BUILD_LIST into a BUILD_TUPLE
    2. Sets an accumulator's initial value as the target of the BUILD_TUPLE
    3. Searches for 'extend' on the original list and turns these into binary
       additions on the accumulator.
    4. Searches for 'append' on the original list and turns these into a
       `BUILD_TUPLE` which is then appended via binary addition to the
       accumulator.
    5. Assigns the accumulator to the variable that exits the peephole and the
       rest of the block/code refers to as the result of the unpack operation.
    6. Patches up
    FTc                  ó¦  •— d} t          t          t          ‰j        ¦  «        ¦  «        ¦  «        D ]ž}‰j        |         }t	          |t
          j        ¦  «        r?|j        }t	          |t
          j        ¦  «        r|j	        dk    r|j
        d         }d} ||f}| r4t	          |t
          j        ¦  «        r|j        j        |k    r
|||ff}|c S ŒŸd S )NFr‹   r   T)ÚreversedÚrangerd   r—   r]   r   r^   rB   r`   ra   ÚinforA   r2   )r¤   rF   r    rB   Útarget_listÚbtÚregionr�   s          €r   Úfind_postive_regionz4peep_hole_list_to_tuple.<locals>.find_postive_region  sÝ   ø€ Ø�Ý#¥E­#¨c¬h©-¬-Ñ$8Ô$8Ñ9Ô9ð .ð .�CØœ8 Cœ=�DÝ! $­¬	Ñ2Ô2ð -Ø $¤
˜Ý& u­b¬gÑ6Ô6ð -Ø %¤¨OÒ ;Ð ;Ø*/¬*°Q¬-˜KØ$(˜EØ"% t ˜BØð .Ý% d­B¬IÑ6Ô6ð .Ø#œ{Ô/°;Ò>Ð>Ø*,¨s°D¨kÐ): Ø'-   øð.ð .r   NrM   r   z
WINDOW:Ú rY   rœ   r5   c                 ó\  •— ‰                      | ¦  «         | j        j        ‰j        v rSt	          ‰j        | j        j                 ¦  «        dk    sJ ‚‰j        | j        j                                      ¦   «          ‰j        | j        j                                       | j        ¦  «         dS )z. Adds to the new_hole and fixes up definitionsrM   N)r5   rA   r2   rC   rd   r›   rB   )r�   rG   Únew_holes    €€r   Úappend_and_fixz/peep_hole_list_to_tuple.<locals>.append_and_fixJ  s”   ø€ à—O’O AÑ&Ô&Ð&Ø”x”}¨Ô(<Ð<Ð<õ  # 7Ô#7¸¼¼Ô#FÑGÔGÈ1ÒLÐLÐLÐLØÔ,¨Q¬X¬]Ô;×AÒAÑCÔCÐCØÔ(¨¬¬Ô7×>Ò>¸q¼wÑGÔGÐGÐGÐGr   z
BLOCK:r[   Ú_var_Útuple©r2   rB   rš   ú$_list_extend_gv_tuple©rš   )rA   rB   rš   r&   ©r}   rI   rJ   rš   Ú
build_listz

NEW HOLE:z
DUMP post hole:) r”   rN   r—   ÚprintrA   r2   r]   r   r^   rB   r`   ra   rb   r5   ÚdumprC   r3   rc   re   r{   rx   rš   ÚGlobalr¹   ÚscopeÚredefiner[   ry   r~   r6   r›   rœ   )rG   Ú_DEBUGÚoffsetr³   r²   Ú	peep_holer�   ÚappendsÚextendsÚinitÚ
const_listr©   r·   Úthe_build_listÚt2l_agnÚaccÚfnameÚargÚtmp_namer±   Úgv_tupleÚ	tuple_varÚvarÚasgnÚnewÚcpyÚheadÚtailÚtmpr�   r¶   s   `                            @@r   Úpeep_hole_list_to_tuplerÚ   ï  sZ  øøø€ ð@ €Fð ”~×+Ò+Ñ-Ô-ð vñ v‰ˆ�ðt	ð.ð .ð .ð .ð .ð" )Ð(Ñ*Ô*ˆFàÑ!ØœH V¨A¤Y¨q¤\°F¸1´I¸a´LÐ%@ÔA�	Øð Ý˜+Ñ&Ô&Ð&Ø&ð !ð !˜Ý˜a™œ˜˜Ý˜"‘I”I�Ià�Ø�Ø˜a”y ”|�Ø!œ[Ô-�
ð #ð -ð -�AÝ! !¥R¤YÑ/Ô/ð -Ý% a¤g­r¬wÑ7Ô7ð -Ø#$¤7˜DØ $¤¨9Ò 4Ð 4Ø$(¤J¤O°zÒ$AÐ$Að $(¤9°Ò#8Ð#8Ø$+§N¢N°1´8´=Ñ$AÔ$AÐ$AÐ$AØ%)¤Y°(Ò%:Ð%:Ø$+§N¢N°1´8´=Ñ$AÔ$AÐ$AÐ$Aà$, Høà�ð	Hð 	Hð 	Hð 	Hð 	Hð 	Hð "&¤�ð ð Ý˜*Ñ%Ô%Ð%Ø—H’H‘J”J�Jð ! œ) Aœ,�Ø$�Ø"ð M+ñ M+�AÝ! !¥R¤YÑ/Ô/ñ L+Ý% a¤g­r¬wÑ7Ô7ñ G/Ø#$¤7˜DØ#œw¨)Ò3Ð3Ø$%¤H¤M°WÐ$<Ð$<Ø()¬¬¸Ð(@Ð(@ð %,Ô$8×$<Ò$<¸Q¼X¼]Ñ$KÔ$KÐ$KØ$,ð %-§O¢O°AÑ$6Ô$6Ð$6Ð$6Ø!%¤¨FÒ!2Ñ!2Ø(,¬	¬ Ø#(¨GÐ#3Ð#3°uÀÐ7GÑ7GØ*.¬)°A¬, CÝ'1°#µr´vÑ'>Ô'>ñ %2ØBGÀ%À%ØBEÄ(À(ð4L¨à+0°GÐ+;Ð+;Ý13´×1DÒ1DÀcÀVØEIÄXñ2Oô 2O¨B¨Bõ 8:´yØ5<ÅEØ48´Hð8.ñ 8.ô 8.¨Hð 9<¼	×8JÒ8JØ0HØ48´Hð 9Kñ 9.ô 9.¨Ið -5¯OªOÝ02´	Ø;DØ:BØ8<¼ð12ñ 12ô 12ñ-.ô -.ð -.õ 24´·²Ø09¸C¸6À2Ø48´Hð 2>ñ 2.ô 2.¨Bõ /1¬f°S´YÀØ59´Xñ/?ô /?¨å/1¬y¸¸SÀ$Ä(Ñ/KÔ/K¨Ø(6¨°tÑ(<Ô(<Ð(<Ø.1¨õ +-¬'¯-ª-½8¼<Ø<?Ø<?Ø<=¼Eð +8ñ +Cô +C Cõ ,.¬9°S¸!¼(ÀDÄHÑ+MÔ+M DØ$2 N°4Ñ$8Ô$8Ð$8Ø*.¬+ C¡Cð %-§O¢O°AÑ$6Ô$6Ð$6Ñ$6Ø"&¤'¨\Ò"9Ð"9Ø$%¤H¤M°ZÒ$?Ð$?Ý&(¤g×&9Ò&9¸$¼*ÀdÄhÑ&OÔ&O Ý')¤y°°a´hÀÄÑ'IÔ'I à . ¨tÑ 4Ô 4Ð 4Ñ 4à (§¢°Ñ 2Ô 2Ð 2Ñ 2à$ŸOšO¨AÑ.Ô.Ð.Ñ.ð !Ÿš¨Ñ*Ô*Ð*Ñ*ð ��rœy¨¨g¬nØ)7Ô);ñ =ô  =ñ >ô >ð >àð !Ý˜-Ñ(Ô(Ð(Ø%ð !ð !˜Ý˜a™œ˜˜ð ”h˜q˜q˜q”k�Ø˜=˜F 1œI aœL˜=Ô)�Ø”x  q¤	¨!¤¨qÑ 0Ð 1Ð 1Ô2�Ø˜X‘o¨Ñ,�Ø”—’Ñ Ô Ð Ø”—’ Ñ$Ô$Ð$àð ÝÐ-Ñ.Ô.Ð.Ø—H’H‘J”J�Jøð ñit	ñh à€Nr   c                 ó~  — t          ¦   «         }| j                             ¦   «         D �]}|j        D ]�}t          |                     ¦   «         ¦  «        }|D ]1}|j                             d¦  «        r|                     |¦  «         Œ2||z  r4t          |t          j
        ¦  «        r|                     |j        ¦  «         Œ‘g }|j        D ];}t          |                     ¦   «         ¦  «        |z  s|                     |¦  «         Œ<|j                             ¦   «          |j                             |¦  «         �Œ| S )zh
    This rewrite removes variables used to store the `__exit__` function
    loaded by SETUP_WITH.
    z$setup_with_exitfn)r/   r”   r•   r—   Ú	list_varsr2   Ú
startswithr6   r]   r   r^   rA   r5   r›   rœ   )rG   Ú	dead_varsr�   r    ÚusedÚvrR   s          r   Úpeep_hole_delete_with_exitrá   Í  s=  € õ
 ‘”€IàŒ~×$Ò$Ñ&Ô&ð "ñ "ˆØ”Hð 	/ð 	/ˆDõ �t—~’~Ñ'Ô'Ñ(Ô(ˆDØð %ð %�Ø”6×$Ò$Ð%9Ñ:Ô:ð %Ø—M’M !Ñ$Ô$Ð$øð �iÑð /Ý˜d¥B¤IÑ.Ô.ð /Ø—M’M $¤+Ñ.Ô.Ð.øàˆØ”Hð 	&ð 	&ˆDå˜ŸšÑ(Ô(Ñ)Ô)¨IÑ5ð &Ø—’ Ñ%Ô%Ð%øØŒ�ŠÑÔÐØŒ�Š˜Ñ!Ô!Ð!Ñ!à€Nr   c           
      ó	  — t          j        d¦  «        }t          j        t          ¦  «        }| j                             ¦   «         D �]B}g }i }t          j        t          ¦  «        }i }d}t          |j	        ¦  «        D �]É\  }	}
|
}d}t          |
t          j        ¦  «        �rât          |
j        t          j        ¦  «        �rÂ|
j        j        dk    rm|
j        j        }|	||
j        j        <   ||
j        j                                      |	¦  «         |
j        j                             ¦   «         ||
j        j        <   �nE|
j        j        dk    �r4|	dk    �r-|
j        j        j        }|j	        |	dz
           }|
j        j        }t          |t          j        ¦  «        �rå|j        j        |k    �rÔt          |j        t          j        ¦  «        �r´|j        j        dk    �r£|j        j        d	v �r”|j        j        j        }|j        j        }|d
k    rA||v r=||                              |¦  «         ||                              |	dz
  |	g¦  «         �n0|dk    �r)|d         j        }||v �r||v �r||                              ||         ¦  «         ||                              ||         ¦  «         ||                              |	dz
  ¦  «         ||         D ]}t3          |j	        || |¦  «         d||<   Œ||= ||= ||= t3          |j	        |	| |¦  «         t5          | ||j	        ||         ||         ¦  «        }||                              ¦   «          ||                              |	¦  «         d}nt9          |¦  «        ‚t          |
t          j        ¦  «        rPt          |
j        t          j        ¦  «        r1|
j        j        dk    r!|
j        j        j        |v r|
j        j        d	v sC|
                     ¦   «         D ].}|j        |v r#|j        |k    r||j        = ||j        = ||j        = Œ/|                     |¦  «         �ŒË|r=|j	                             ¦   «          |j	                             d„ |D ¦   «         ¦  «         �ŒD| S )a“  
    This rewrite removes d1._update_from_bytecode(d2)
    calls that are between two dictionaries, d1 and d2,
    in the same basic block. This pattern can appear as a
    result of Python 3.10 bytecode emission changes, which
    prevent large constant literal dictionaries
    (> 15 elements) from being constant. If both dictionaries
    are constant dictionaries defined in the same block and
    neither is used between the update call, then we replace d1
    with a new definition that combines the two dictionaries. At
    the bytecode translation stage we convert DICT_UPDATE into
    _update_from_bytecode, so we know that _update_from_bytecode
    always comes from the bytecode change and not user code.

    Python 3.10 may also rewrite the individual dictionaries
    as an empty build_map + many map_add. Here we again look
    for an _update_from_bytecode, and if so we replace these
    with a single constant dictionary.

    When running this algorithm we can always safely remove d2.

    This is the relevant section of the CPython 3.10 that causes
    this bytecode change:
    https://github.com/python/cpython/blob/3.10/Python/compile.c#L4048
    aá  
        A DICT_UPDATE op-code was encountered that could not be replaced.
        If you have created a large constant dictionary, this may
        be an an indication that you are using inlined control
        flow. You can resolve this issue by moving the control flow out of
        the dicitonary constructor. For example, if you have

            d = {a: 1 if flag else 0, ...)

        Replace that with:

            a_val = 1 if flag else 0
            d = {a: a_val, ...)FNrŠ   r[   r   rM   rY   )rZ   Ú_update_from_bytecoderZ   rã   Tc                 ó   — g | ]}|®|‘ŒS r   r&   r�   s     r   r�   z3peep_hole_fuse_dict_add_updates.<locals>.<listcomp>Æ  r‘   r   )r’   r“   r+   r,   r/   r”   r•   r-   r–   r—   r]   r   r^   rB   r`   ra   rA   r2   r5   rN   rO   rc   re   rb   rœ   rK   Ú_build_new_build_mapr›   r   rÜ   )rG   rh   rH   r�   rR   Úlit_map_def_idxÚlit_map_use_idxÚmap_updatesrž   rŸ   r    Únew_instÚstmt_build_map_outÚ	func_namern   re   Úupdate_map_namerb   Úd2_map_nameÚlinenumrÓ   s                        r   Úpeep_hole_fuse_dict_add_updatesrï   í  sé  € õD Œ_ð #ñ $ô $€Fõ 'Ô2µ3Ñ7Ô7ÐØŒ~×$Ò$Ñ&Ô&ð HDñ HDˆØˆàˆõ
 &Ô1µ$Ñ7Ô7ˆàˆØˆå  ¤Ñ*Ô*ð v	&ñ v	&‰GˆAˆtàˆHð "&ÐÝ˜$¥¤	Ñ*Ô*ñ U?­z¸$¼*ÅbÄgÑ/NÔ/Nñ U?Ø”:”= KÒ/Ð/à)-¬Ô)9Ð&ð 9:�O D¤KÔ$4Ñ5Ø# D¤KÔ$4Ô5×<Ò<¸QÑ?Ô?Ð?Ø48´JÔ4D×4IÒ4IÑ4KÔ4K�K ¤Ô 0Ñ1Ñ1Ø”Z”] fÒ,Ñ,°°Q²±ð !%¤
¤Ô 4�Ið $'¤8¨A°©E¤?�LØœ:œ?�Då" <µ´Ñ;Ô;ñD?à(Ô/Ô4¸	ÒAÑAÝ& |Ô'9½2¼7ÑCÔCñ Bà(Ô.Ô1°YÒ>Ñ>Ø(Ô.Ô3ð 8ð ñ ð +7Ô*<Ô*BÔ*G˜Ø+Ô1Ô6˜Ø  MÒ1Ð1Ø.°/ÐAÐAà'¨Ô8×?Ò?ÀÑEÔEÐEð ,¨OÔ<×CÒCÀQÈÁUÈAÀJÑOÔOÐOÑOØ!Ð%<Ò<Ñ<Ø*.¨q¬'¬,˜KØ /°?Ð BÑ BØ#.°/Ð#AÑ#Að !,¨OÔ <× CÒ CØ$/°Ô$<ñ!"ô !"ð !"ð !0°Ô @× GÒ GØ$3°KÔ$@ñ!"ô !"ð !"ð !0°Ô @× GÒ GÈÈAÉÑ NÔ NÐ NØ/>¸Ô/Oð 	!=ð 	!= Gå$AØ(+¬Ø(/Ø(/Ø(<ñ	%&ô %&ð %&ð 9= H¨WÑ$5Ð$5à$3°KÐ$@Ø$3°KÐ$@Ø$/°Ð$<õ !>Ø$'¤H¨a°Ð:Nñ!"ô !"ð !"õ ,@Ø$+Ø$3Ø$'¤HØ$3°OÔ$DØ$/°Ô$@ñ,"ô ," ð !0°Ô @× FÒ FÑ HÔ HÐ HØ /°Ô @× GÒ GÈÑ JÔ JÐ Jà.2  õ '7°vÑ&>Ô&>Ð >õ ˜4¥¤Ñ+Ô+ð2å˜tœz­2¬7Ñ3Ô3ð2ð ”J”M YÒ.Ð.Ø”JÔ$Ô)¨_Ð<Ð<Ø”J”OÐ'OÐOÐOàŸ>š>Ñ+Ô+ð 
2ð 
2�Cð
 œ OÐ3Ð3ØœHÐ(:Ò:Ð:à+¨C¬HÐ5Ø+¨C¬HÐ5Ø'¨¬Ð1øð �OŠO˜HÑ%Ô%Ð%Ñ%àð 	DàŒH�NŠNÑÔÐØŒH�OŠOÐBÐB¨ÐBÑBÔBÑCÔCÐCùà€Nr   c                 óˆ  — i }t          | j                             ¦   «         ¦  «        }t          |¦  «        D �]î\  }\  }}g }t          |j        ¦  «        D ]4\  }}t          |t          j        ¦  «        r|                     |¦  «         Œ5|�r—g }	|D ]¸}t          j	        |j
        |j        ¬¦  «        }
|
j                             |j        d|…         ¦  «         |	                     |
¦  «         t          j	        |j
        |j        ¬¦  «        }|j                             |j        |         ¦  «         |	                     |¦  «         Œ¹|}|	D ]A}|||<   |dz   }|j                             t          j        ||j        ¬¦  «        ¦  «         |}ŒB|dz   t          |¦  «        k     r)|||dz            d         k    rt          j        d¦  «        ‚t          j	        |j
        |j        ¬¦  «        }|j                             |j        |d         dz   d…         ¦  «         |||<   �Œð| j                             |¦  «         | S )z”
    Split blocks that contain ir.PopBlock.

    This rewrite restores the IR structure to pre 3.11 so that withlifting
    can work correctly.
    r¼   NrM   r   zPOP_BLOCK peephole failedrz   )Úsortedr”   rN   r–   r—   r]   r   ÚPopBlockr5   ÚBlockrÂ   rš   rœ   ÚJumprd   r   ÚInternalErrorÚupdate)rG   Únew_block_mapÚsorted_blocksÚblk_idxÚlabelr�   Úpop_block_locsrŸ   ÚinstÚ
new_blocksÚ
before_blkÚ
popblk_blkÚ
prev_labelÚnewblkÚ
next_labelÚtail_blks                   r   Úpeep_hole_split_at_pop_blockr  Ë  sF  € ð €MÝ˜7œ>×/Ò/Ñ1Ô1Ñ2Ô2€MÝ!*¨=Ñ!9Ô!9ð "1ñ "1Ñˆ‘�%˜àˆÝ  ¤Ñ*Ô*ð 	)ð 	)‰GˆAˆtÝ˜$¥¤Ñ,Ô,ð )Ø×%Ò% aÑ(Ô(Ð(øàñ 	1ØˆJØ#ð .ð .�ÝœX c¤i°S´WÐ=Ñ=Ô=�
Ø”×&Ò& s¤x°°°¤|Ñ4Ô4Ð4Ø×!Ò! *Ñ-Ô-Ð-åœX c¤i°S´WÐ=Ñ=Ô=�
Ø”×&Ò& s¤x°¤{Ñ3Ô3Ð3Ø×!Ò! *Ñ-Ô-Ð-Ð-àˆJØ$ð (ð (�Ø,2�˜jÑ)Ø'¨!™^�
Ø”×"Ò"¥2¤7¨:¸3¼7Ð#CÑ#CÔ#CÑDÔDÐDØ'�
�
à˜‰{�S Ñ/Ô/Ò/Ð/Ø ¨w¸©{Ô!;¸AÔ!>Ò>Ð>õ !Ô.Ð/JÑKÔKÐKå”x ¤	¨s¬wÐ7Ñ7Ô7ˆHØŒM× Ò  ¤¨.¸Ô*<¸qÑ*@Ð*AÐ*AÔ!BÑCÔCÐCØ(0ˆM˜*Ñ%ùà„N×Ò˜-Ñ(Ô(Ð(Ø€Nr   c                 óî  — ||         }|j         }|j        }g }g }	|D ]ñ}
|
\  }}t          t          | |¦  «        }t	          |t
          j        t
          j        t
          j        f¦  «        r| 	                    |j        ¦  «         t          t          | |¦  «        }t	          |t
          j        t
          j        t
          j        f¦  «        r|	 	                    |j        ¦  «         ŒÊ|	 	                    t          |j        ¦  «        ¦  «         Œòi }t          |¦  «        t          |¦  «        k    r5d„ t          ||	¦  «        D ¦   «         }t          |¦  «        D ]
\  }}|||<   Œnd}t
          j                             |t          |¦  «        |||j        ¬¦  «        }| j        |          	                    |¦  «         t          j        |t          j        |j        ||j        ¦  «        |j        ¦  «        S )zg
    Create a new build_map with a new set of key/value items
    but all the other info the same.
    c                 ó   — i | ]\  }}||“Œ	S r&   r&   ©rŽ   r�   Úys      r   ú
<dictcomp>z(_build_new_build_map.<locals>.<dictcomp>  s   € ÐDÐDÐD¡$ ! Q˜˜AÐDÐDÐDr   N©rN   ÚsizeÚliteral_valuerP   rš   )rA   rB   r
   r	   r]   r   r_   rÁ   ÚFreeVarr5   r   r2   rd   Úzipr–   r`   rŠ   rš   rC   r^   r{   rÂ   )rG   r2   rE   Ú
old_linenoÚ	new_itemsÚ
old_assignÚ
old_targetÚold_bmÚliteral_keysr•   ÚpairÚkrà   Úkey_defÚ	value_defrP   r  rŸ   Únew_bms                      r   rå   rå   ü  sä  € ð
 ˜*Ô%€JØÔ"€JØÔ€Fà€Lð €FØð 
2ð 
2ˆØ‰ˆˆ1Ý�¨°Ñ3Ô3ˆÝ�g¥¤­"¬)µR´ZÐ@ÑAÔAð 	/Ø×Ò ¤Ñ.Ô.Ð.Ý�.¨'°1Ñ5Ô5ˆ	Ý�i¥"¤(­B¬Iµr´zÐ!BÑCÔCð 	2Ø�MŠM˜)œ/Ñ*Ô*Ð*Ð*ð �MŠM�.¨¬Ñ0Ô0Ñ1Ô1Ð1Ð1à€MÝ
ˆ<ÑÔ�C 	™NœNÒ*Ð*àDÐD­#¨l¸FÑ*CÔ*CÐDÑDÔDˆÝ˜lÑ+Ô+ð 	!ð 	!‰DˆAˆqØ ˆM˜!ÑÐð	!ð ˆõ ŒW×ÒØÝ�‰^Œ^Ø#Ø#ØŒJð ñ ô €Fð Ô˜Ô×%Ò% fÑ-Ô-Ð-õ Œ9Ø•”�zÔ'¨¨z¬~Ñ>Ô>ÀÄ
ñô ð r   c                   óf  — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd³d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd´d„Z d„ Z!dµd „Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*d)„ Z+d*„ Z,d+„ Z-d,„ Z.d-„ Z/d.„ Z0d/„ Z1d0„ Z2d1„ Z3d2„ Z4d3„ Z5d4„ Z6d5„ Z7d6„ Z8d7„ Z9d8„ Z:d9„ Z;d:„ Z<d;„ Z=d<„ Z>e>Z?e>Z@d=„ ZAd>„ ZBd?„ ZCd@„ ZDeEdAk    rdB„ ZFneEdAk     rdC„ ZFn eGeE¦  «        ‚dD„ ZHeEdAk    rdE„ ZIneEdAk     rdF„ ZIn eGeE¦  «        ‚eEdAk    rdG„ ZJdH„ ZKneEdAk     rdI„ ZKn eGeE¦  «        ‚dJ„ ZLd³dK„ZMdL„ ZNdM„ ZOdN„ ZPdO„ ZQdP„ ZRdQ„ ZSdR„ ZTdS„ ZUdT„ ZVdU„ ZWdV„ ZXdW„ ZYdX„ ZZdY„ Z[dZ„ Z\d[„ Z]d\„ Z^d]„ Z_d^„ Z`d_„ Zad`„ Zbda„ Zcdb„ Zddc„ Zedd„ Zfde„ Zgdf„ Zhdg„ Zidh„ Zjdi„ Zkdj„ Zldk„ Zmdl„ Zndm„ Zodn„ Zpdo„ Zqdp„ Zrdq„ Zsdr„ Ztds„ Zudt„ Zvdu„ Zwdv„ Zxdw„ Zydx„ Zzdy„ Z{dz„ Z|d{„ Z}d|„ Z~d}„ Zd~„ Z€d„ Z�d€„ Z‚d�„ Zƒd‚„ Z„dƒ„ Z…d„„ Z†d…„ Z‡d†„ Zˆd‡„ Z‰dˆ„ ZŠd‰„ Z‹dŠ„ ZŒd‹„ Z�dŒ„ ZŽd�„ Z�d³dŽ„Z�d�„ Z‘d�„ Z’d‘„ Z“d’„ Z”d³d“„Z•d”„ Z–d•„ Z—d–„ Z˜d—„ Z™d˜„ Zšd™„ Z›dš„ Zœd›„ Z�dœ„ Zžd�„ ZŸdž„ Z dŸ„ Z¡d „ Z¢d¡„ Z£d¢„ Z¤d£„ Z¥d¤„ Z¦d¥„ Z§d¦„ Z¨d§„ Z©d¨„ Zªd©„ Z«dª„ Z¬eEdAk    rd«„ Z­neEdAk     rd¬„ Z­n eGeE¦  «        ‚d­„ Z®d®„ Z¯d¯„ Z°d°„ Z±d±„ Z²d²„ Z³dS )¶ÚInterpreterz2A bytecode interpreter that builds up the IR.
    Fc                 óX  — || _         | j        rt          |j        ¦  «         |j        | _        |j        | _        t          j                             |¦  «        x| _	        | _
        |j        | _        i | _        t          j        t          ¦  «        | _        t#          ¦   «         | _        d S r   )Úfunc_idÚ_DEBUG_PRINTr¿   rc   Ú	arg_countÚ	arg_namesr   ÚLocÚfrom_function_idrš   Ú	first_locÚis_generatorr”   r+   r,   r-   Údefinitionsr/   Ú_exception_vars)r   r  s     r   r   zInterpreter.__init__7  s‘   € ØˆŒØÔð 	 Ý�'”,ÑÔÐØ Ô*ˆŒØ Ô*ˆŒÝ$&¤F×$;Ò$;¸GÑ$DÔ$DÐDˆŒ�4”>Ø#Ô0ˆÔð ˆŒå&Ô2µ4Ñ8Ô8ˆÔõ  #™uœuˆÔÐÐr   c           	      óZ  — || _         g | _        t          j        d| j        ¬¦  «        }| j                             |¦  «         t          |¦  «        }|                     ¦   «          t          |¦  «        | _	        t          |¦  «        | _        t          j        r| j                             ¦   «          d| _        d| _        g | _        d| _        | j                             t          j        | j        | j        ¬¦  «        ¦  «         |                      ¦   «         D ]\  }}|                      ||¦  «         Œt,          dk    r|                      ¦   «          nt,          dk    rt1          t,          ¦  «        ‚|                      ¦   «          t          j        | j        | j        | j        | j        | j        | j         | j!        ¦  «        }tD           #                    | $                    ¦   «         ¦  «         g }t,          dk    r|                     tJ          ¦  «         t,          dv r|                     tL          ¦  «         |                     tN          ¦  «         t,          dv r4|                     tP          ¦  «         |                     tR          ¦  «         |  *                    ||¦  «        }|S )z0
        Generate IR for this bytecode.
        N)Úparentrš   ©é   é   ))r*  é	   ©r*  é
   r)  )r-  r)  )+ÚbytecodeÚscopesr   ÚScoperš   r5   r   Úrunr   Údfar   Úcfar   ÚDUMP_CFGrÀ   Úcurrent_blockÚcurrent_block_offsetÚsyntax_blocksÚdfainfoÚcurrent_scopeÚ
_iter_instÚ	_dispatchr   Ú_end_try_blocksÚNotImplementedErrorÚ_legalize_exception_varsÚ
FunctionIRr”   r$  r  r#  r%  r  r   Ú_loggerÚdebugÚdump_to_stringr  rÚ   rá   rª   rï   Úpost_process)	r   r/  Úglobal_scopeÚflowrü   rT   rG   Ú	peepholesÚpost_processed_irs	            r   Ú	interpretzInterpreter.interpretH  sY  € ð !ˆŒàˆŒÝ”x t°´Ð:Ñ:Ô:ˆØŒ×Ò˜<Ñ(Ô(Ð(å�H‰~Œ~ˆØ�Š‰
Œ
ˆ
Ý˜D‘>”>ˆŒÝ˜D‘>”>ˆŒÝŒ?ð 	ØŒH�MŠM‰OŒOˆOð "ˆÔØ$(ˆÔ!ØˆÔØˆŒàŒ×Ò�2œ8¨4Ô+=À4Ä8ÐLÑLÔLÑMÔMÐMð ŸšÑ*Ô*ð 	&ð 	&‰IˆD�#Ø�NŠN˜4 Ñ%Ô%Ð%Ð%Ý˜ÒÐà× Ò Ñ"Ô"Ð"Ð"Ý˜Ò Ð Ý%¥iÑ0Ô0Ð0Ø×%Ò%Ñ'Ô'Ð'å”- ¤¨TÔ->ÀÄØ $¤°Ô0@Ø $¤°´ñ@ô @ˆõ 	�Š�g×,Ò,Ñ.Ô.Ñ/Ô/Ð/ð ˆ	Ý˜ÒÐØ×ÒÕ9Ñ:Ô:Ð:ÝÐ2Ð2Ð2Ø×ÒÕ4Ñ5Ô5Ð5Ø×ÒÕ3Ñ4Ô4Ð4ÝÐ*Ð*Ð*ð
 ×ÒÕKÑLÔLÐLØ×ÒÕ<Ñ=Ô=Ð=à ×-Ò-¨i¸ÑAÔAÐà Ð r   c                 ó&   — |D ]} ||¦  «        }Œ|S r   r&   )r   rG  rG   Úpeeps       r   rD  zInterpreter.post_process„  s%   € Øð 	$ð 	$ˆDØ�d˜7‘m”mˆGˆGØˆr   c           	      ó  ‡ ‡— t           dk    sJ ‚‰ j        j        }‰ j                             ¦   «         D ]Î\  }Š‰ j        j        |         j        }|                     |¦  «        D ]œ\  }}‰ j        j        |         j        }t          t          ||¦  «        ¦  «        D ]\  }\  }}	||	k    r n+Œt          t          |¦  «        t          |¦  «        ¦  «        }ˆˆ fd„}
 |
t          ||d…         ¦  «        ¦  «        r nŒ�ŒÏdS )a=  Closes all try blocks by inserting the required marker at the
        exception handler

        This is only needed for py3.11 because of the changes in exception
        handling. This merely maps the new py3.11 semantics back to the old way.

        What the code does:

        - For each block, compute the difference of blockstack to its incoming
          blocks' blockstack.
        - If the incoming blockstack has an extra TRY, the current block must
          be the EXCEPT block and we need to insert a marker.

        See also: _insert_try_block_end
        r)  c                 ó6  •— | r•|                       ¦   «         }|d         t          d¦  «        k    rd‰‰_        t          ‰j        ¦  «        }‰j                             ¦   «          ‰                     ¦   «          ‰j                             |¦  «         dS | °“d S d S )NÚkindÚTRYT)r3   r   r6  r-   r—   r›   Ú_insert_try_block_endrœ   )ÚremainÚentÚoldbodyÚblockr   s      €€r   Ú	do_changez.Interpreter._end_try_blocks.<locals>.do_change©  s¥   ø€ Ø ð 	(Ø$Ÿjšj™lœl˜Ø˜vœ;­)°EÑ*:Ô*:Ò:Ð:à16˜DÔ.Ý&*¨5¬:Ñ&6Ô&6˜GØ!œJ×,Ò,Ñ.Ô.Ð.Ø ×6Ò6Ñ8Ô8Ð8Ø!œJ×-Ò-¨gÑ6Ô6Ð6Ø#' 4ð !ð 	(ð 	(ð 	(ð 	(ð 	(r   N)r   r4  Úgraphr”   rN   r3  ÚinfosÚ
blockstackÚpredecessorsr–   r  Úminrd   r-   )r   rV  rÅ   Úcur_bsÚincÚ_Úinc_bsrŸ   r�   r  rU  rT  s   `          @r   r=  zInterpreter._end_try_blocks‰  s6  øø€ õ  ˜GÒ#Ð#Ð#Ð#Ø””ˆØ!œ[×.Ò.Ñ0Ô0ð 	ð 	‰MˆF�Eà”X”^ FÔ+Ô6ˆFà×,Ò,¨VÑ4Ô4ð ð ‘��QØœœ¨Ô,Ô7�õ "+­3¨v°vÑ+>Ô+>Ñ!?Ô!?ð 6ð 6‘I�A‘v˜˜1Ø˜A’v�vØ˜ð õ �C ™KœK­¨V©¬Ñ5Ô5�Að
(ð 
(ð 
(ð 
(ð 
(ð 
(ð �9�T &¨¨¨¤*Ñ-Ô-Ñ.Ô.ð Ø�Eðøð5	ð 	r   c                 óØ  — | j                              ¦   «         }| j                             ¦   «         D ]D\  }}|D ]<}t	          |t
          j        ¦  «        r |j        }||v r|                     |¦  «         Œ=ŒEt          t          d„ |¦  «        ¦  «        }|rR|d         }| j                             |¦  «        j        }d}	t          j        |	                     |¦  «        |¬¦  «        ‚dS )zsSearch for unsupported use of exception variables.
        Note, they cannot be stored into user variable.
        c                 ó.   — |                       d¦  «         S )Nú$)rÝ   )r�   s    r   ú<lambda>z6Interpreter._legalize_exception_vars.<locals>.<lambda>Æ  s   € ¨A¯LªL¸Ñ,=Ô,=Ð(=€ r   r   z5Exception object cannot be stored into variable ({}).r¼   N)r&  rO   r%  rN   r]   r   r{   r2   r6   r-   Úfilterr:  Úgetrš   r   r   r   )
r   Úexcvarsr   Údefnvarsrà   r  ÚuservarÚfirstrš   Úmsgs
             r   r?  z$Interpreter._legalize_exception_vars¸  s  € ð
 Ô&×+Ò+Ñ-Ô-ˆà!%Ô!1×!7Ò!7Ñ!9Ô!9ð 	-ð 	-ÑˆG�XØð -ð -�Ý˜a¥¤Ñ(Ô(ð -Øœ�AØ˜G�|�|ØŸš GÑ,Ô,Ð,øð	-õ •vÐ=Ð=¸wÑGÔGÑHÔHˆØð 	Fà˜A”JˆEØÔ$×(Ò(¨Ñ/Ô/Ô3ˆCØIˆCÝÔ)¨#¯*ª*°UÑ*;Ô*;ÀÐEÑEÔEÐEð	Fð 	Fr   c                 óž   — t          | j        ¦  «        D ]7\  }}t          j        ||| j        ¬¦  «        }|                      ||¦  «         Œ8d S )N)rV   r2   rš   )r–   r   r   ÚArgrš   Ústore)r   rV   r2   Úvals       r   Úinit_first_blockzInterpreter.init_first_blockÎ  sX   € å$ T¤^Ñ4Ô4ð 	"ð 	"‰KˆE�4Ý”&˜u¨4°T´XÐ>Ñ>Ô>ˆCØ�JŠJ�s˜DÑ!Ô!Ð!Ð!ð	"ð 	"r   c              #   óð  K  — t          | j                             ¦   «         ¦  «        D ]Ì\  }}| j        |j                 }| j                             |j        ¦  «        | _        |                      |j        ¦  «         |dk    r|  	                    ¦   «          | j
        j        D ]<\  }}| j        |         }| j                             |j        ¦  «        | _        ||fV — Œ=|                      ¦   «          ŒÍd S )Nr   )r–   r4  Úiterliveblocksr/  rÅ   rš   Úwith_linenoÚlinenoÚ_start_new_blockrn  r9  ÚinstsÚ_end_current_block)r   ÚblkctrT  Ú	firstinstrÅ   rT   rü   s          r   r;  zInterpreter._iter_instÔ  só   è è € Ý% d¤h×&=Ò&=Ñ&?Ô&?Ñ@Ô@ð 	&ð 	&‰LˆE�5Øœ e¤lÔ3ˆIØ”x×+Ò+¨IÔ,<Ñ=Ô=ˆDŒHØ×!Ò! %¤,Ñ/Ô/Ð/Ø˜Šzˆzà×%Ò%Ñ'Ô'Ð'Ø#œ|Ô1ð  ð  ‘�˜Ø”} VÔ,�Øœ8×/Ò/°´Ñ<Ô<�”Ø˜C�i����Ø×#Ò#Ñ%Ô%Ð%Ð%ð	&ð 	&r   c                 ód  — | j         }|                      |¦  «         | j        r| j        j        nd }|�«|j        s¤|�r|d         | j        j                             ¦   «         v rLt          j	        |  
                    d¦  «        |d         || j        ¬¦  «        }|                     |¦  «         n0t          j        || j        ¬¦  «        }|                     |¦  «         | j        j        | j                 | _        t#          ¦   «         | _        t&          dk    r¶| j        rƒ|| j        d         j        k    re| j                             ¦   «         }t/          |t          j        ¦  «        r1| j                              t          j        | j        ¦  «        ¦  «         nn| j        °ƒ| j        j        }|�||ur|                      ¦   «          d S d S d S t&          dk     rD| j        r;|| j        d         j        k    r| j                             ¦   «          nd S | j        °9d S d S t7          t&          ¦  «        ‚)NÚendú$exception_check©ÚcondÚtruebrÚfalsebrrš   r¼   r)  rz   )r6  Úinsert_blockr9  Úactive_try_blockÚis_terminatedr4  rV  Únodesr   ÚBranchrd  rš   r5   rô   r3  rW  r7  r(   Úassignerr   r8  Úexitr3   r]   ÚWithrò   Ú_insert_try_block_beginr>  )r   rÅ   ÚoldblockÚtryblkÚbranchÚjmpÚsynblkÚ	newtryblks           r   rs  zInterpreter._start_new_blockâ  sF  € ØÔ%ˆØ×Ò˜&Ñ!Ô!Ð!à26´,ÐH�”Ô.Ð.ÀDˆàÐ¨Ô(>Ðð Ð! f¨U¤m°t´x´~×7KÒ7KÑ7MÔ7MÐ&MÐ&Mõ œØŸšÐ"4Ñ5Ô5Ø! %œ=Ø"Øœð	ñ ô �ð —’ Ñ'Ô'Ð'Ð'õ ”g˜f¨$¬(Ð3Ñ3Ô3�Ø—’ Ñ$Ô$Ð$ð ”x”~ dÔ&?Ô@ˆŒÝ ™
œ
ˆŒå˜ÒÐàÔ$ð Ø˜TÔ/°Ô3Ô8Ò8Ð8Ø!Ô/×3Ò3Ñ5Ô5�FÝ! &­"¬'Ñ2Ô2ð IØÔ*×1Ò1µ"´+¸d¼hÑ2GÔ2GÑHÔHÐHøàð Ô$ð ð œÔ5ˆIØÐ$Ø FÐ*Ð*Ø×0Ò0Ñ2Ô2Ð2Ð2Ð2ð %Ð$Ø*Ð*å˜Ò Ð ØÔ$ð Ø˜TÔ/°Ô3Ô8Ò8Ð8ØÔ&×*Ò*Ñ,Ô,Ð,Ð,à�Eð	 Ô$ð ð ð ð ð õ &¥iÑ0Ô0Ð0r   c                 ó²   — | j         j        s"| j        j        }|�|                      ¦   «          |                      ¦   «          |                      ¦   «          d S r   )r6  r�  r9  r€  Ú_insert_exception_checkÚ_remove_unused_temporariesÚ_insert_outgoing_phis)r   r‰  s     r   ru  zInterpreter._end_current_block  s\   € àÔ!Ô/ð 	/Ø”\Ô2ˆFØÐ!Ø×,Ò,Ñ.Ô.Ð.à×'Ò'Ñ)Ô)Ð)Ø×"Ò"Ñ$Ô$Ð$Ð$Ð$r   Nc                 óB  — t          j        ||| j        ¬¦  «        }|                      ||d¬¦  «         t           j                             |                      |¦  «        dd| j        ¬¦  «        }|pd                     |¦  «        }|                      ||d¬¦  «         dS )aÀ  A helper function to inject a call to *func* which is a python
        function.
        Parameters
        ----------
        func : callable
            The function object to be called.
        gv_name : str
            The variable name to be used to store the function object.
        res_name : str; optional
            The variable name to be used to store the call result.
            If ``None``, a name is created automatically.
        r¼   T©rB   r2   rÃ   r&   z$callres_{}N)r   rÁ   rš   rl  r`   r[   rd  r   )r   rc   Úgv_nameÚres_nameÚgv_fnÚcallress         r   Ú_inject_callzInterpreter._inject_call   s“   € õ ”	˜' 4¨T¬XÐ6Ñ6Ô6ˆØ�
Š
˜ W°tˆ
Ñ<Ô<Ð<Ý”'—,’,˜tŸxšx¨Ñ0Ô0°"°b¸d¼h�,ÑGÔGˆØÐ<˜}×3Ò3°GÑ<Ô<ˆØ�
Š
˜ x¸$ˆ
Ñ?Ô?Ð?Ð?Ð?r   c                 óF   — |                       t          j        d¦  «         dS )z<Insert IR-nodes to mark the start of a `try` block.
        Úmark_try_blockN)r˜  r   rš  r    s    r   r‡  z#Interpreter._insert_try_block_begin3  s$   € ð 	×Ò�"Ô+Ð-=Ñ>Ô>Ð>Ð>Ð>r   c                 óF   — |                       t          j        d¦  «         dS )z:Insert IR-nodes to mark the end of a `try` block.
        Úend_try_blockN)r˜  r   rœ  r    s    r   rP  z!Interpreter._insert_try_block_end8  s#   € ð 	×Ò�"Ô*¨OÑ<Ô<Ð<Ð<Ð<r   c                 óF  — | j         j        }|d         }| j         j                             |¦  «        }|rit	          j        d| j        ¬¦  «        }|D ]M}|| j        v rt          d¦  «        ‚|  	                    ||¬¦  «         | j
                             |¦  «         ŒLdS dS )z?Insert IR-nodes to initialize the exception variables.
        ry  N©rB   rš   z2exception variable CANNOT be defined by other code©rB   r2   )r9  r€  Úoutgoing_edgepushedrd  r   r_   rš   r%  r|   rl  r&  r6   )r   r‰  ÚendblkÚ
edgepushedÚ
const_nonerÓ   s         r   Ú_insert_exception_variablesz'Interpreter._insert_exception_variables=  sÇ   € ð ”Ô.ˆà˜”ˆØ”\Ô5×9Ò9¸&ÑAÔAˆ
ð ð 		.Ýœ¨°$´(Ð;Ñ;Ô;ˆJà!ð .ð .�Ø˜$Ô*Ð*Ð*Ý(ØLñô ð ð —
’
 °#�
Ñ6Ô6Ð6ØÔ$×(Ò(¨Ñ-Ô-Ð-Ð-ð		.ð 		.ð.ð .r   c                 óp   — |                       ¦   «          |                      t          j        dd¦  «         dS )zECalled before the end of a block to inject checks if raised.
        Úexception_checkrz  N)r¤  r˜  r   r¦  r    s    r   r�  z#Interpreter._insert_exception_checkQ  sC   € ð 	×(Ò(Ñ*Ô*Ð*à×Ò�"Ô,Ð.?Ø,ñ	.ô 	.ð 	.ð 	.ð 	.r   c                 óœ  — g }i }| j         j        D �]­}t          |t          j        t          j        f¦  «        r'|j        j        |v r||j        j                 |_        �nHt          |t          j        ¦  «        �r-|j	        j
        r|j	        j        | j        j        v rŒ�t          |j        t          j        ¦  «        r;|j        j        |v r-||j        j                 |_        |                     |¦  «         Œêt          |j        t          j        ¦  «        r[|j        j        dk    rK|j        j        j        |v r8||j        j        j                 |j        _        |                     |¦  «         �Œdt          |j        t          j        ¦  «        �r|j        j
        �r|�rt          |d         t          j        ¦  «        rä|d         }|j	        j        |j        j        k    rÂ|                      |j	        j        |j        ¦  «        s�|j	        ||j        j        <   |j	        |_	        | j        |j	        j                                      |j        ¦  «         | j        |j	        j                                      | j                             |j        j        ¦  «        ¦  «         �Œ˜|                     |¦  «         �Œ¯|| j         _        dS )zb
        Remove assignments to unused temporary variables from the
        current block.
        Úexhaust_iterrz   N)r6  r—   r]   r   ÚSetItemÚSetAttrrB   r2   r^   rA   r4   r„  r0   r{   r5   r`   ra   Ú_var_used_in_binopr%  rD   rœ   r3   )r   rR   Úreplaced_varrü   Úprev_assigns        r   r�  z&Interpreter._remove_unused_temporariesY  s  € ð
 ˆØˆØÔ&Ô+ð 2	"ñ 2	"ˆDõ ˜4¥"¤*­b¬jÐ!9Ñ:Ô:ð ,!Øœ
œ¨<Ð7Ð7Ø)¨$¬*¬/Ô:�”
‘
Ý˜D¥"¤)Ñ,Ô,ñ )!Ø”KÔ'ð Ø œKÔ,°´Ô0JÐJÐJØõ ˜tœz­2¬6Ñ2Ô2ð Ø œJœO¨|Ð;Ð;Ø!-¨d¬j¬oÔ!>�D”JØ—O’O DÑ)Ô)Ð)Øõ ˜tœz­2¬7Ñ3Ô3ð Ø œJœM¨^Ò;Ð;Ø œJÔ,Ô1°\ÐAÐAØ'3°D´JÔ4DÔ4IÔ'J�D”JÔ$Ø—O’O DÑ)Ô)Ð)Ùõ ˜tœz­2¬6Ñ2Ô2ñ !°t´zÔ7Iñ !Ø$ñ!Ý)3°H¸R´LÅ"Ä)Ñ)LÔ)Lð!à"*¨2¤,�Kð $Ô*Ô/°4´:´?ÒBÐBØ$(×$;Ò$;Ø $¤Ô 0°+Ô2Cñ%Eô %Eð Cð 9=¼˜ T¤Z¤_Ñ5Ø-1¬[˜Ô*àÔ(¨¬Ô)9Ô:×AÒAÀ$Ä*ÑMÔMÐMØÔ(¨¬Ô)9Ô:×AÒAØ Ô,×0Ò0°´´ÑAÔAñô ð ñ !à�OŠO˜DÑ!Ô!Ð!Ñ!à"*ˆÔÔÐÐr   c                 óˆ   — t          |t          j        ¦  «        o(|j        dv o||j        j        k    p||j        j        k    S )zhreturn True if 'expr' is a binary expression and 'varname' is used
        in it as an argument
        )ry   Úinplace_binop)r]   r   r`   ra   rI   r2   rJ   )r   r   r©   s      r   r«  zInterpreter._var_used_in_binop–  sJ   € õ ˜4¥¤Ñ)Ô)ð KØ”GÐ9Ð9ðKà ¤¤Ò-ÐI°¸D¼H¼MÒ1Ið	Lr   c                 óZ  — | j         j                             ¦   «         D �]
\  }}| j                             || j        ¬¦  «        }	 |                      |¦  «        }nE# t          j        $ r3 t          dk    s
J d¦   «         ‚t          j
        d| j        ¬¦  «        }Y nw xY wt          j        ||| j        ¬¦  «        }| j        |j                                      |j        ¦  «         | j        j        s| j                             |¦  «         Œð| j                             |¦  «         �ŒdS )zd
        Add assignments to forward requested outgoing values
        to subsequent blocks.
        r¼   r)  zunexpected missing definitionNrž  ©rB   rA   rš   )r9  Úoutgoing_phisrN   r:  Úget_or_definerš   rd  r   r   r   r_   r^   r%  r2   r5   rB   r6  r�  Úinsert_before_terminator)r   Úphinamer   rA   rm  r    s         r   r‘  z!Interpreter._insert_outgoing_phisž  sK  € ð
 !%¤Ô :× @Ò @Ñ BÔ Bð 	Bñ 	BÑˆG�WØÔ'×5Ò5°gØ:>¼(ð 6ñ Dô DˆFð9Ø—h’h˜wÑ'Ô'��øÝÔ%ð 9ð 9ð 9å  GÒ+Ð+Ð+Ð-LÑ+Ô+Ð+Ý”h T¨t¬xÐ8Ñ8Ô8���ð9øøøõ ”9 3¨vØ!%¤ð+ñ +ô +ˆDàÔ˜Vœ[Ô)×0Ò0°´Ñ<Ô<Ð<ØÔ%Ô3ð BØÔ"×)Ò)¨$Ñ/Ô/Ð/Ð/àÔ"×;Ò;¸DÑAÔAÐAÑAð	Bð 	Bs   ÁAÁ?BÂBc                 ó’   — 	 | j         j        j        |         S # t          $ r# t	          t
          |t          j        ¦  «        cY S w xY w)zŒ
        Get a global value from the func_global (first) or
        as a builtins (second).  If both failed, return a ir.UNDEFINED.
        )r  rc   Ú__globals__ÚKeyErrorrY   Úbuiltinsr   Ú	UNDEFINED)r   r2   s     r   Úget_global_valuezInterpreter.get_global_value´  sO   € ð
	9Ø”<Ô$Ô0°Ô6Ð6øÝð 	9ð 	9ð 	9Ý�8 T­2¬<Ñ8Ô8Ð8Ð8Ð8ð	9øøøs   ‚ ™*AÁAc                 óx   — | j         j        j        |         }	 |j        S # t          $ r t
          j        cY S w xY w)z|
        Get a value from the cell contained in this function's closure.
        If not set, return a ir.UNDEFINED.
        )r  rc   Ú__closure__Úcell_contentsÚ
ValueErrorr   rº  )r   rV   Úcells      r   Úget_closure_valuezInterpreter.get_closure_value¾  sM   € ð
 Œ|Ô Ô,¨UÔ3ˆð	 ØÔ%Ð%øÝð 	 ð 	 ð 	 Ý”<ÐÐÐð	 øøøs   ™   9¸9c                 ó   — | j         d         S )Nrz   )r0  r    s    r   r:  zInterpreter.current_scopeÉ  s   € àŒ{˜2ŒÐr   c                 ó   — | j         j        S r   )r/  Ú	co_constsr    s    r   Úcode_constszInterpreter.code_constsÍ  s   € àŒ}Ô&Ð&r   c                 ó   — | j         j        S r   )r/  Úco_varnamesr    s    r   Úcode_localszInterpreter.code_localsÑ  ó   € àŒ}Ô(Ð(r   c                 ó   — | j         j        S r   )r/  Úco_namesr    s    r   Ú
code_nameszInterpreter.code_namesÕ  s   € àŒ}Ô%Ð%r   c                 ó   — | j         j        S r   )r/  Úco_cellvarsr    s    r   Úcode_cellvarszInterpreter.code_cellvarsÙ  rÉ  r   c                 ó   — | j         j        S r   )r/  Úco_freevarsr    s    r   Úcode_freevarszInterpreter.code_freevarsÝ  rÉ  r   c                 ó  — | j         rt          |¦  «         | j        €J ‚t          dk    rŠ| j        r‚| j        d         }t          |t          j        ¦  «        r[|j        |j	        k    rK| j         
                    t          j        | j        ¬¦  «        ¦  «         | j                             ¦   «          nt          dk    rt          t          ¦  «        ‚d|j                             dd¦  «        z  }	 t#          | |¦  «        }	  ||fi |¤ŽS # t$          j        $ rG}|j        €| j        }n|j        }t%          j        |j        |¬¦  «        }t*          j        s|d ‚|‚d }~ww xY w# t.          $ r t          |¦  «        ‚w xY w)Nr)  rz   r¼   zop_%sú+r]  )r  r¿   r6  r   r8  r]   r   r†  rÅ   r…  r5   rò   rš   r3   r>  ÚopnameÚreplacerY   r   r   r2   r   ÚFULL_TRACEBACKSÚAttributeError)	r   rü   rT   ÚtoprÎ   r}   Úerš   Úerrs	            r   r<  zInterpreter._dispatchá  sž  € ØÔð 	Ý�$‰KŒKˆKØÔ!Ð-Ð-Ð-Ý˜ÒÐØÔ!ð 1ØÔ(¨Ô,�Ý˜c¥2¤7Ñ+Ô+ð 1Ø”{ c¤hÒ.Ð.ØÔ*×1Ò1µ"´+À$Ä(Ð2KÑ2KÔ2KÑLÔLÐLØÔ*×.Ò.Ñ0Ô0Ð0øÝ˜Ò Ð Ý%¥iÑ0Ô0Ð0à˜$œ+×-Ò-¨c°3Ñ7Ô7Ñ7ˆð	Ý˜˜uÑ%Ô%ˆBðØ�r˜$�� #��Ð&øÝÔ)ð 
ð 
ð 
Ø”5�=Øœ(�C�Càœ%�CåÔ,¨Q¬V¸Ð=Ñ=Ô=�ÝÔ-ð Ø 4Ð'à�Iøøøøð
øøøøõ ð 	,ð 	,ð 	,Ý% dÑ+Ô+Ð+ð	,øøøs%   Ã3E& ÄD ÄE#ÄAEÅE#Å&F c                 óê  — |s| j         | j        j        v r,|| j        v}| j                             || j        |¬¦  «        }n!| j                             || j        ¬¦  «        }t          |t          j
        ¦  «        r| j                             ||¦  «        }t          j        ||| j        ¬¦  «        }| j                             |¦  «         | j        |j                                      |¦  «         |S )zŒ
        Store *value* (a Expr or Var instance) into the variable named *name*
        (a str object). Returns the target variable.
        )rš   Úrenamer¼   r±  )r7  r4  ÚbackbonerÏ  r:  rÃ   rš   r³  r]   r   r{   r„  r<   r^   r6  r5   r%  r2   )r   rB   r2   rÃ   rÝ  rA   r    s          r   rl  zInterpreter.store  sò   € ð
 ð 	J�tÔ0°D´HÔ4EÐEÐEØ $Ô"4Ð4ˆFØÔ'×0Ò0°¸4¼8Ø8>ð 1ñ @ô @ˆFˆFð Ô'×5Ò5°dÀÄÐ5ÑIÔIˆFÝ�e�RœVÑ$Ô$ð 	8Ø”M×(Ò(¨°Ñ7Ô7ˆEÝŒy˜u¨V¸¼ÐBÑBÔBˆØÔ×!Ò! $Ñ'Ô'Ð'ØÔ˜œÔ%×,Ò,¨UÑ3Ô3Ð3Øˆr   c                 óü   — |d         dk    r9|dd…                               ¦   «         rd                     |dd…         ¦  «        }| j                             |¦  «        }|€| j                             |¦  «        }|S )zJ
        Get the variable (a Var instance) with the given *name*.
        r   ú.rM   Nz
implicit{})Úisdigitr   r„  r?   r:  rd  )r   r2   rÓ   s      r   rd  zInterpreter.get  s{   € ð �Œ7�cŠ>ˆ>˜d 1 2 2œh×.Ò.Ñ0Ô0ˆ>Ø×&Ò& t¨A¨B¨B¤xÑ0Ô0ˆDð Œm×1Ò1°$Ñ7Ô7ˆØˆ;ØÔ$×(Ò(¨Ñ.Ô.ˆCØˆ
r   c                 ó†   — |p| j         }|p| j        }t          j        ||¬¦  «        }|| j        |<   || _        || _        |S )N)rÂ   rš   )r:  rš   r   ró   r”   r6  r7  )r   rÅ   rÂ   rš   r�   s        r   r  zInterpreter.insert_block)  sO   € ØÐ+˜Ô+ˆØˆo�T”XˆÝŒh˜U¨Ð,Ñ,Ô,ˆØ!ˆŒ�FÑØ ˆÔØ$*ˆÔ!Øˆ
r   c                 ó   — d S r   r&   ©r   rü   s     r   Úop_NOPzInterpreter.op_NOP4  ó   € Øˆr   c                 ó   — d S r   r&   rä  s     r   Ú	op_RESUMEzInterpreter.op_RESUME7  ræ  r   c                 ó   — d S r   r&   rä  s     r   Úop_CACHEzInterpreter.op_CACHE:  ræ  r   c                 ó   — d S r   r&   rä  s     r   Ú
op_PRECALLzInterpreter.op_PRECALL=  ræ  r   c                 ó   — d S r   r&   rä  s     r   Úop_PUSH_NULLzInterpreter.op_PUSH_NULL@  ræ  r   c                 ó   — d S r   r&   rä  s     r   Úop_RETURN_GENERATORzInterpreter.op_RETURN_GENERATORC  ræ  r   c                 óF  — |                       |¦  «        }t          j        dt          | j        ¬¦  «        }|                      ||¬¦  «         t          j                             |                       |¦  «        |fd| j        ¬¦  «        }|                      ||¬¦  «         d S ©Nr¿   r¼   rŸ  r&   )rd  r   rÁ   r¿   rš   rl  r`   r[   )r   rü   ÚitemÚprintvarÚresÚprintgvr[   s          r   Úop_PRINT_ITEMzInterpreter.op_PRINT_ITEMF  s†   € Ø�xŠx˜‰~Œ~ˆÝ”)˜G¥U°´Ð9Ñ9Ô9ˆØ�
Š
˜ xˆ
Ñ0Ô0Ð0ÝŒw�|Š|˜DŸHšH XÑ.Ô.°°¸ÀÄˆ|ÑJÔJˆØ�
Š
˜ Cˆ
Ñ(Ô(Ð(Ð(Ð(r   c                 ó  — t          j        dt          | j        ¬¦  «        }|                      ||¬¦  «         t           j                             |                      |¦  «        dd| j        ¬¦  «        }|                      ||¬¦  «         d S rò  )r   rÁ   r¿   rš   rl  r`   r[   rd  )r   rü   rô  rõ  rö  r[   s         r   Úop_PRINT_NEWLINEzInterpreter.op_PRINT_NEWLINEM  su   € Ý”)˜G¥U°´Ð9Ñ9Ô9ˆØ�
Š
˜ xˆ
Ñ0Ô0Ð0ÝŒw�|Š|˜DŸHšH XÑ.Ô.°°B¸D¼Hˆ|ÑEÔEˆØ�
Š
˜ Cˆ
Ñ(Ô(Ð(Ð(Ð(r   c                 ó’  — t          |¦  «        }t          j                             |                      |¦  «        | j        |¬¦  «        }|                      ||¬¦  «         t          |¦  «        D ]V\  }}t          j                             |                      |¦  «        |d | j        ¬¦  «        }	|                      |	|¦  «         ŒWd S )N)rB   rš   Úcount)r2   rB   )rV   Ú	index_varrš   )	rd   r   r`   r¨  rd  rš   rl  r–   Ústatic_getitem)
r   rü   ÚiterableÚstoresÚtupleobjrû  ÚtuprŸ   Ústr©   s
             r   Úop_UNPACK_SEQUENCEzInterpreter.op_UNPACK_SEQUENCES  sÈ   € Ý�F‘”ˆåŒg×"Ò"¨¯ª°(Ñ);Ô);ÀÄØ).ð #ñ 0ô 0ˆà�
Š
˜¨ˆ
Ñ,Ô,Ð,õ ˜vÑ&Ô&ð 	!ð 	!‰EˆAˆrÝ”7×)Ò)¨$¯(ª(°8Ñ*<Ô*<Ø01¸TØ.2¬hð *ñ 8ô 8ˆDð �JŠJ�t˜RÑ Ô Ð Ð ð		!ð 	!r   c                 óF  — |                       |¦  «        }t          j        dt          | j        ¬¦  «        }|                      ||¬¦  «         t          j                             |                       |¦  «        |fd| j        ¬¦  «        }|                      ||¬¦  «         dS )zæ
        FORMAT_VALUE(flags): flags argument specifies format spec which is not
        supported yet. Currently, str() is simply called on the value.
        https://docs.python.org/3/library/dis.html#opcode-FORMAT_VALUE
        Ústrr¼   rŸ  r&   N)rd  r   rÁ   r  rš   rl  r`   r[   )r   rü   rB   rõ  ÚstrvarÚstrgvr[   s          r   Úop_FORMAT_VALUEzInterpreter.op_FORMAT_VALUEa  sˆ   € ð —’˜‘”ˆÝ”	˜%¥¨$¬(Ð3Ñ3Ô3ˆØ�
Š
˜ Vˆ
Ñ,Ô,Ð,ÝŒw�|Š|˜DŸHšH VÑ,Ô,¨u¨h¸ÀÄˆ|ÑIÔIˆØ�
Š
˜ Cˆ
Ñ(Ô(Ð(Ð(Ð(r   c                 óè  — |j         }|dk    r9t          j        d| j        ¬¦  «        }|                      ||d         ¦  «         dS |                      |d         ¦  «        }t          |dd…         |¦  «        D ]w\  }}|                      |¦  «        }t          j                             t          j
        ||| j        ¬¦  «        }	|                      |	|¦  «         |                      |¦  «        }ŒxdS )z´
        BUILD_STRING(count): Concatenates count strings.
        Required for supporting f-strings.
        https://docs.python.org/3/library/dis.html#opcode-BUILD_STRING
        r   r´   r¼   rz   NrM   ©rI   rJ   rš   )rÏ   r   r_   rš   rl  rd  r  r`   ry   r~   r6   )
r   rü   ÚstringsÚtmpsrû  ÚconstÚprevÚotherrÙ   r©   s
             r   Úop_BUILD_STRINGzInterpreter.op_BUILD_STRINGm  sè   € ð ”ˆà�AŠ:ˆ:Ý”H˜R T¤XÐ.Ñ.Ô.ˆEØ�JŠJ�u˜d 2œhÑ'Ô'Ð'ØˆFà�xŠx˜ œ
Ñ#Ô#ˆÝ˜g a b bœk¨4Ñ0Ô0ð 	!ð 	!‰JˆE�3Ø—H’H˜U‘O”OˆEÝ”7—=’=Ý” $¨E°t´xð !ñ ô ˆDð �JŠJ�t˜SÑ!Ô!Ð!Ø—8’8˜C‘=”=ˆDˆDð	!ð 	!r   c                 ó  — |                       |¦  «        }|                       |¦  «        }t          j        dt          | j        ¬¦  «        }|                      ||¬¦  «         |€>t          j                             |                       |¦  «        ||fd| j        ¬¦  «        }nS|                       |¦  «        }t          j                             |                       |¦  «        |||fd| j        ¬¦  «        }|                      ||¬¦  «         d S ©NÚslicer¼   rŸ  r&   )rd  r   rÁ   r  rš   rl  r`   r[   )	r   rü   ÚstartÚstopÚsteprõ  ÚslicevarÚslicegvÚ	sliceinsts	            r   Úop_BUILD_SLICEzInterpreter.op_BUILD_SLICEƒ  sï   € Ø—’˜‘”ˆØ�xŠx˜‰~Œ~ˆå”)˜G¥U°´Ð9Ñ9Ô9ˆØ�
Š
˜ xˆ
Ñ0Ô0Ð0àˆ<ÝœŸš T§X¢X¨hÑ%7Ô%7¸%À¸ÈØ)-¬ð %ñ 3ô 3ˆIˆIð —8’8˜D‘>”>ˆDÝœŸš T§X¢X¨hÑ%7Ô%7¸%ÀÀtÐ9LØ%'¨T¬Xð %ñ 7ô 7ˆIà�
Š
˜¨ˆ
Ñ-Ô-Ð-Ð-Ð-r   c                 óx  — |                       |¦  «        }t          j        dt          | j        ¬¦  «        }|                      ||¬¦  «         t          j        d | j        ¬¦  «        }|                      ||¬¦  «         |                       |¦  «        }	t          j                             |                       |¦  «        |	|	fd| j        ¬¦  «        }
|                      |
|¬¦  «         t          j         	                    ||                       |¦  «        | j        ¬¦  «        }|                      ||¬¦  «         d S r  )
rd  r   rÁ   r  rš   rl  r_   r`   r[   Úgetitem)r   rü   Úbaserõ  r  ÚindexvarÚnonevarr  ÚnonegvÚnonerV   r©   s               r   Ú
op_SLICE_0zInterpreter.op_SLICE_0“  s  € Ø�xŠx˜‰~Œ~ˆå”)˜G¥U°´Ð9Ñ9Ô9ˆØ�
Š
˜ xˆ
Ñ0Ô0Ð0å”˜$ D¤HÐ-Ñ-Ô-ˆØ�
Š
˜ gˆ
Ñ.Ô.Ð.Ø�xŠx˜Ñ Ô ˆå”—’˜TŸXšX hÑ/Ô/°$¸°¸rÀtÄx�ÑPÔPˆØ�
Š
˜ Xˆ
Ñ.Ô.Ð.åŒw�Š˜t T§X¢X¨hÑ%7Ô%7¸T¼XˆÑFÔFˆØ�
Š
˜ Cˆ
Ñ(Ô(Ð(Ð(Ð(r   c                 ó¢  — |                       |¦  «        }|                       |¦  «        }t          j        d | j        ¬¦  «        }|                      ||¬¦  «         |                       |¦  «        }	t          j        dt          | j        ¬¦  «        }
|                      |
|¬¦  «         t          j                             |                       |¦  «        ||	fd| j        ¬¦  «        }|                      ||¬¦  «         t          j         	                    ||                       |¦  «        | j        ¬¦  «        }|                      ||¬¦  «         d S ©Nr¼   rŸ  r  r&   ©
rd  r   r_   rš   rl  rÁ   r  r`   r[   r  )r   rü   r  r  r  rõ  r  r  r   r!  r  rV   r©   s                r   Ú
op_SLICE_1zInterpreter.op_SLICE_1£  s  € Ø�xŠx˜‰~Œ~ˆØ—’˜‘”ˆå”˜$ D¤HÐ-Ñ-Ô-ˆØ�
Š
˜ gˆ
Ñ.Ô.Ð.Ø�xŠx˜Ñ Ô ˆå”)˜G¥U°´Ð9Ñ9Ô9ˆØ�
Š
˜ xˆ
Ñ0Ô0Ð0å”—’˜TŸXšX hÑ/Ô/°%¸°ÀØ!%¤ð ñ +ô +ˆà�
Š
˜ Xˆ
Ñ.Ô.Ð.åŒw�Š˜t T§X¢X¨hÑ%7Ô%7¸T¼XˆÑFÔFˆØ�
Š
˜ Cˆ
Ñ(Ô(Ð(Ð(Ð(r   c                 ó¢  — |                       |¦  «        }|                       |¦  «        }t          j        d | j        ¬¦  «        }|                      ||¬¦  «         |                       |¦  «        }	t          j        dt          | j        ¬¦  «        }
|                      |
|¬¦  «         t          j                             |                       |¦  «        |	|fd| j        ¬¦  «        }|                      ||¬¦  «         t          j         	                    ||                       |¦  «        | j        ¬¦  «        }|                      ||¬¦  «         d S r$  r%  )r   rü   r  r  r  rõ  r  r  r   r!  r  rV   r©   s                r   Ú
op_SLICE_2zInterpreter.op_SLICE_2µ  s  € Ø�xŠx˜‰~Œ~ˆØ�xŠx˜‰~Œ~ˆå”˜$ D¤HÐ-Ñ-Ô-ˆØ�
Š
˜ gˆ
Ñ.Ô.Ð.Ø�xŠx˜Ñ Ô ˆå”)˜G¥U°´Ð9Ñ9Ô9ˆØ�
Š
˜ xˆ
Ñ0Ô0Ð0å”—’˜TŸXšX hÑ/Ô/°$¸°ÀØ!%¤ð ñ +ô +ˆà�
Š
˜ Xˆ
Ñ.Ô.Ð.åŒw�Š˜t T§X¢X¨hÑ%7Ô%7¸T¼XˆÑFÔFˆØ�
Š
˜ Cˆ
Ñ(Ô(Ð(Ð(Ð(r   c                 ó>  — |                       |¦  «        }|                       |¦  «        }|                       |¦  «        }t          j        dt          | j        ¬¦  «        }|                      ||¬¦  «         t          j                             |                       |¦  «        ||fd| j        ¬¦  «        }	|                      |	|¬¦  «         t          j                             ||                       |¦  «        | j        ¬¦  «        }
|                      |
|¬¦  «         d S r  )	rd  r   rÁ   r  rš   rl  r`   r[   r  )r   rü   r  r  r  rõ  r  r  r  rV   r©   s              r   Ú
op_SLICE_3zInterpreter.op_SLICE_3Ç  së   € Ø�xŠx˜‰~Œ~ˆØ—’˜‘”ˆØ�xŠx˜‰~Œ~ˆå”)˜G¥U°´Ð9Ñ9Ô9ˆØ�
Š
˜ xˆ
Ñ0Ô0Ð0å”—’˜TŸXšX hÑ/Ô/°%¸°ÀØ!%¤ð ñ +ô +ˆà�
Š
˜ Xˆ
Ñ.Ô.Ð.åŒw�Š˜t T§X¢X¨hÑ%7Ô%7¸T¼XˆÑFÔFˆØ�
Š
˜ Cˆ
Ñ(Ô(Ð(Ð(Ð(r   c                 ó�  — |                       |¦  «        }t          j        dt          | j        ¬¦  «        }|                      ||¬¦  «         t          j        d | j        ¬¦  «        }|                      ||¬¦  «         |                       |¦  «        }	t          j                             |                       |¦  «        |	|	fd| j        ¬¦  «        }
|                      |
|¬¦  «         t          j	        ||                       |¦  «        |                       |¦  «        | j        ¬¦  «        }| j
                             |¦  «         d S r  )rd  r   rÁ   r  rš   rl  r_   r`   r[   r©  r6  r5   )r   rü   r  rB   r  r  r  r  r   r!  rV   r    s               r   Úop_STORE_SLICE_0zInterpreter.op_STORE_SLICE_0Ö  s  € Ø�xŠx˜‰~Œ~ˆå”)˜G¥U°´Ð9Ñ9Ô9ˆØ�
Š
˜ xˆ
Ñ0Ô0Ð0å”˜$ D¤HÐ-Ñ-Ô-ˆØ�
Š
˜ gˆ
Ñ.Ô.Ð.Ø�xŠx˜Ñ Ô ˆå”—’˜TŸXšX hÑ/Ô/°$¸°¸rÀtÄx�ÑPÔPˆØ�
Š
˜ Xˆ
Ñ.Ô.Ð.åŒz˜$ §¢¨Ñ 2Ô 2°D·H²H¸U±O´OØ"œhð(ñ (ô (ˆàÔ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r   c                 óº  — |                       |¦  «        }|                       |¦  «        }t          j        d | j        ¬¦  «        }|                      ||¬¦  «         |                       |¦  «        }	t          j        dt          | j        ¬¦  «        }
|                      |
|¬¦  «         t          j                             |                       |¦  «        ||	fd| j        ¬¦  «        }|                      ||¬¦  «         t          j	        ||                       |¦  «        |                       |¦  «        | j        ¬¦  «        }| j
                             |¦  «         d S r$  ©rd  r   r_   rš   rl  rÁ   r  r`   r[   r©  r6  r5   )r   rü   r  r  r  rB   r  r  r   r!  r  rV   r    s                r   Úop_STORE_SLICE_1zInterpreter.op_STORE_SLICE_1ç  s*  € à�xŠx˜‰~Œ~ˆØ—’˜‘”ˆå”˜$ D¤HÐ-Ñ-Ô-ˆØ�
Š
˜ gˆ
Ñ.Ô.Ð.Ø�xŠx˜Ñ Ô ˆå”)˜G¥U°´Ð9Ñ9Ô9ˆØ�
Š
˜ xˆ
Ñ0Ô0Ð0å”—’˜TŸXšX hÑ/Ô/°%¸°ÀØ!%¤ð ñ +ô +ˆà�
Š
˜ Xˆ
Ñ.Ô.Ð.åŒz˜$ §¢¨Ñ 2Ô 2°D·H²H¸U±O´OØ"œhð(ñ (ô (ˆàÔ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r   c                 óº  — |                       |¦  «        }|                       |¦  «        }t          j        d | j        ¬¦  «        }|                      ||¬¦  «         |                       |¦  «        }	t          j        dt          | j        ¬¦  «        }
|                      |
|¬¦  «         t          j                             |                       |¦  «        |	|fd| j        ¬¦  «        }|                      ||¬¦  «         t          j	        ||                       |¦  «        |                       |¦  «        | j        ¬¦  «        }| j
                             |¦  «         d S r$  r.  )r   rü   r  r  r  rB   r  r  r   r!  r  rV   r    s                r   Úop_STORE_SLICE_2zInterpreter.op_STORE_SLICE_2û  s*  € à�xŠx˜‰~Œ~ˆØ�xŠx˜‰~Œ~ˆå”˜$ D¤HÐ-Ñ-Ô-ˆØ�
Š
˜ gˆ
Ñ.Ô.Ð.Ø�xŠx˜Ñ Ô ˆå”)˜G¥U°´Ð9Ñ9Ô9ˆØ�
Š
˜ xˆ
Ñ0Ô0Ð0å”—’˜TŸXšX hÑ/Ô/°$¸°ÀØ!%¤ð ñ +ô +ˆà�
Š
˜ Xˆ
Ñ.Ô.Ð.åŒz˜$ §¢¨Ñ 2Ô 2°D·H²H¸U±O´OØ"œhð(ñ (ô (ˆàÔ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r   c                 óV  — |                       |¦  «        }|                       |¦  «        }|                       |¦  «        }t          j        dt          | j        ¬¦  «        }|                      ||¬¦  «         t          j                             |                       |¦  «        ||fd| j        ¬¦  «        }	|                      |	|¬¦  «         t          j        ||                       |¦  «        |                       |¦  «        | j        ¬¦  «        }
| j	         
                    |
¦  «         d S r  )rd  r   rÁ   r  rš   rl  r`   r[   r©  r6  r5   )r   rü   r  r  r  rB   r  r  r  rV   r    s              r   Úop_STORE_SLICE_3zInterpreter.op_STORE_SLICE_3  sü   € à�xŠx˜‰~Œ~ˆØ—’˜‘”ˆØ�xŠx˜‰~Œ~ˆå”)˜G¥U°´Ð9Ñ9Ô9ˆØ�
Š
˜ xˆ
Ñ0Ô0Ð0å”—’˜TŸXšX hÑ/Ô/°%¸°ÀØ!%¤ð ñ +ô +ˆà�
Š
˜ Xˆ
Ñ.Ô.Ð.ÝŒz˜$ §¢¨Ñ 2Ô 2°D·H²H¸U±O´OØ"œhð(ñ (ô (ˆàÔ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r   c                 óh  — |                       |¦  «        }t          j        dt          | j        ¬¦  «        }|                      ||¬¦  «         t          j        d | j        ¬¦  «        }|                      ||¬¦  «         |                       |¦  «        }t          j                             |                       |¦  «        ||fd| j        ¬¦  «        }	|                      |	|¬¦  «         t          j	        ||                       |¦  «        | j        ¬¦  «        }
| j
                             |
¦  «         d S r  )rd  r   rÁ   r  rš   rl  r_   r`   r[   ÚDelItemr6  r5   )r   rü   r  r  r  r  r  r   r!  rV   r    s              r   Úop_DELETE_SLICE_0zInterpreter.op_DELETE_SLICE_0  s   € Ø�xŠx˜‰~Œ~ˆå”)˜G¥U°´Ð9Ñ9Ô9ˆØ�
Š
˜ xˆ
Ñ0Ô0Ð0å”˜$ D¤HÐ-Ñ-Ô-ˆØ�
Š
˜ gˆ
Ñ.Ô.Ð.Ø�xŠx˜Ñ Ô ˆå”—’˜TŸXšX hÑ/Ô/°$¸°¸rÀtÄx�ÑPÔPˆØ�
Š
˜ Xˆ
Ñ.Ô.Ð.åŒz˜$ §¢¨Ñ 2Ô 2¸¼ÐAÑAÔAˆØÔ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r   c                 ó’  — |                       |¦  «        }|                       |¦  «        }t          j        d | j        ¬¦  «        }|                      ||¬¦  «         |                       |¦  «        }t          j        dt          | j        ¬¦  «        }	|                      |	|¬¦  «         t          j                             |                       |¦  «        ||fd| j        ¬¦  «        }
|                      |
|¬¦  «         t          j	        ||                       |¦  «        | j        ¬¦  «        }| j
                             |¦  «         d S r$  ©rd  r   r_   rš   rl  rÁ   r  r`   r[   r5  r6  r5   )r   rü   r  r  r  r  r  r   r!  r  rV   r    s               r   Úop_DELETE_SLICE_1zInterpreter.op_DELETE_SLICE_1/  s  € Ø�xŠx˜‰~Œ~ˆØ—’˜‘”ˆå”˜$ D¤HÐ-Ñ-Ô-ˆØ�
Š
˜ gˆ
Ñ.Ô.Ð.Ø�xŠx˜Ñ Ô ˆå”)˜G¥U°´Ð9Ñ9Ô9ˆØ�
Š
˜ xˆ
Ñ0Ô0Ð0å”—’˜TŸXšX hÑ/Ô/°%¸°ÀØ!%¤ð ñ +ô +ˆà�
Š
˜ Xˆ
Ñ.Ô.Ð.åŒz˜$ §¢¨Ñ 2Ô 2¸¼ÐAÑAÔAˆØÔ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r   c                 ó’  — |                       |¦  «        }|                       |¦  «        }t          j        d | j        ¬¦  «        }|                      ||¬¦  «         |                       |¦  «        }t          j        dt          | j        ¬¦  «        }	|                      |	|¬¦  «         t          j                             |                       |¦  «        ||fd| j        ¬¦  «        }
|                      |
|¬¦  «         t          j	        ||                       |¦  «        | j        ¬¦  «        }| j
                             |¦  «         d S r$  r8  )r   rü   r  r  r  r  r  r   r!  r  rV   r    s               r   Úop_DELETE_SLICE_2zInterpreter.op_DELETE_SLICE_2A  s  € Ø�xŠx˜‰~Œ~ˆØ�xŠx˜‰~Œ~ˆå”˜$ D¤HÐ-Ñ-Ô-ˆØ�
Š
˜ gˆ
Ñ.Ô.Ð.Ø�xŠx˜Ñ Ô ˆå”)˜G¥U°´Ð9Ñ9Ô9ˆØ�
Š
˜ xˆ
Ñ0Ô0Ð0å”—’˜TŸXšX hÑ/Ô/°$¸°ÀØ!%¤ð ñ +ô +ˆà�
Š
˜ Xˆ
Ñ.Ô.Ð.åŒz˜$ §¢¨Ñ 2Ô 2¸¼ÐAÑAÔAˆØÔ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r   c                 ó.  — |                       |¦  «        }|                       |¦  «        }|                       |¦  «        }t          j        dt          | j        ¬¦  «        }|                      ||¬¦  «         t          j                             |                       |¦  «        ||fd| j        ¬¦  «        }|                      ||¬¦  «         t          j        ||                       |¦  «        | j        ¬¦  «        }	| j	         
                    |	¦  «         d S r  )rd  r   rÁ   r  rš   rl  r`   r[   r5  r6  r5   )
r   rü   r  r  r  r  r  r  rV   r    s
             r   Úop_DELETE_SLICE_3zInterpreter.op_DELETE_SLICE_3S  sé   € Ø�xŠx˜‰~Œ~ˆØ—’˜‘”ˆØ�xŠx˜‰~Œ~ˆå”)˜G¥U°´Ð9Ñ9Ô9ˆØ�
Š
˜ xˆ
Ñ0Ô0Ð0å”—’˜TŸXšX hÑ/Ô/°%¸°ÀØ!%¤ð ñ +ô +ˆà�
Š
˜ Xˆ
Ñ.Ô.Ð.ÝŒz˜$ §¢¨Ñ 2Ô 2¸¼ÐAÑAÔAˆØÔ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r   c                 ó~   — | j         |j                 }|                      |                      |¦  «        |¬¦  «         d S ©NrŸ  )rÈ  rÏ   rl  rd  )r   rü   rõ  r9   s       r   Úop_LOAD_FASTzInterpreter.op_LOAD_FASTa  s9   € ØÔ" 4¤8Ô,ˆØ�
Š
˜Ÿš 'Ñ*Ô*°ˆ
Ñ5Ô5Ð5Ð5Ð5r   c                 ó‚   — | j         |j                 }|                      |¦  «        }|                      ||¬¦  «         d S r?  )rÈ  rÏ   rd  rl  )r   rü   rB   Údstnames       r   Úop_STORE_FASTzInterpreter.op_STORE_FASTe  s<   € ØÔ" 4¤8Ô,ˆØ—’˜‘”ˆØ�
Š
˜ Wˆ
Ñ-Ô-Ð-Ð-Ð-r   c                 ó�   — | j         |j                 }| j                             t	          j        || j        ¬¦  «        ¦  «         d S ©Nr¼   )rÈ  rÏ   r6  r5   r   ÚDelrš   )r   rü   rB  s      r   Úop_DELETE_FASTzInterpreter.op_DELETE_FASTj  s?   € ØÔ" 4¤8Ô,ˆØÔ×!Ò!¥"¤&¨°d´hÐ"?Ñ"?Ô"?Ñ@Ô@Ð@Ð@Ð@r   c                 ó†   — t          ||¦  «        D ]/\  }}|                      |                      |¦  «        |¬¦  «         Œ0d S r?  )r  rl  rd  )r   rü   ÚorigÚdupedÚsrcÚdsts         r   Úop_DUP_TOPXzInterpreter.op_DUP_TOPXn  sL   € Ý˜D %Ñ(Ô(ð 	6ð 	6‰HˆC�Ø�JŠJ˜TŸXšX c™]œ]°ˆJÑ5Ô5Ð5Ð5ð	6ð 	6r   c                 óä   — | j         |j                 }t          j        |                      |¦  «        |                      |¦  «        || j        ¬¦  «        }| j                             |¦  «         d S )N)rA   rB   rb   rš   )rÌ  rÏ   r   rª  rd  rš   r6  r5   )r   rü   rA   rB   rb   Úsas         r   Úop_STORE_ATTRzInterpreter.op_STORE_ATTRu  sd   € ØŒ˜tœxÔ(ˆÝŒZ˜tŸxšx¨Ñ/Ô/°t·x²xÀ±´Ø! t¤xð1ñ 1ô 1ˆàÔ×!Ò! "Ñ%Ô%Ð%Ð%Ð%r   c                 ó¼   — | j         |j                 }t          j        |                      |¦  «        || j        ¬¦  «        }| j                             |¦  «         d S )N)rA   rb   rš   )rÌ  rÏ   r   ÚDelAttrrd  rš   r6  r5   )r   rü   rA   rb   rO  s        r   Úop_DELETE_ATTRzInterpreter.op_DELETE_ATTR{  sQ   € ØŒ˜tœxÔ(ˆÝŒZ˜tŸxšx¨Ñ/Ô/°dÀÄÐIÑIÔIˆØÔ×!Ò! "Ñ%Ô%Ð%Ð%Ð%r   c                 óÎ   — |                       |¦  «        }| j        |j                 }t          j                             ||| j        ¬¦  «        }|                      ||¦  «         d S rE  )rd  rÌ  rÏ   r   r`   rY   rš   rl  )r   rü   ró  rõ  rb   rY   s         r   Úop_LOAD_ATTRzInterpreter.op_LOAD_ATTR€  sT   € Ø�xŠx˜‰~Œ~ˆØŒ˜tœxÔ(ˆÝ”'—/’/ $¨°$´(�/Ñ;Ô;ˆØ�
Š
�7˜CÑ Ô Ð Ð Ð r   c                 ó   — | j         |j                 }t          |t          ¦  «        rˆg }|D ]\}dt	          |¦  «        z  }t          j        || j        ¬¦  «        }|                      ||d¬¦  «        }| 	                    |¦  «         Œ]t
          j
                             || j        ¬¦  «        }	n¸t          |t          ¦  «        rˆg }|D ]\}dt	          |¦  «        z  }t          j        || j        ¬¦  «        }|                      ||d¬¦  «        }| 	                    |¦  «         Œ]t
          j
                             || j        ¬¦  «        }	nt          j        || j        ¬¦  «        }	|                      |	|¦  «         d S )Nz	$const_%sr¼   T)r2   rÃ   )rÅ  rÏ   r]   r¹   r  r   r_   rš   rl  r5   r`   rx   Ú	frozensetÚ	build_set)
r   rü   rõ  rB   r  r�   ÚnmÚ	val_constrA   r  s
             r   Úop_LOAD_CONSTzInterpreter.op_LOAD_CONST†  sm  € ØÔ  ¤Ô*ˆÝ�e�UÑ#Ô#ð 	2ØˆBØð "ð "�Ø ¥3 q¡6¤6Ñ)�ÝœH Q¨D¬HÐ5Ñ5Ô5�	ØŸš I°BÀ˜ÑFÔF�Ø—	’	˜&Ñ!Ô!Ð!Ð!Ý”G×'Ò'¨°´Ð'Ñ9Ô9ˆEˆEÝ˜�yÑ)Ô)ð 		2ØˆBØð "ð "�Ø ¥3 q¡6¤6Ñ)�ÝœH Q¨D¬HÐ5Ñ5Ô5�	ØŸš I°BÀ˜ÑFÔF�Ø—	’	˜&Ñ!Ô!Ð!Ð!Ý”G×%Ò% b¨d¬hÐ%Ñ7Ô7ˆEˆEå”H˜U¨¬Ð1Ñ1Ô1ˆEØ�
Š
�5˜#ÑÔÐÐÐr   r)  c                 ó®   — | j         |         }|                      |¦  «        }t          j        ||| j        ¬¦  «        }|                      ||¦  «         d S rE  )rÌ  r»  r   rÁ   rš   rl  )r   rü   rF   rõ  r2   rB   Úgls          r   Úop_LOAD_GLOBALzInterpreter.op_LOAD_GLOBAL�  sS   € Ø”? 3Ô'ˆDØ×)Ò)¨$Ñ/Ô/ˆEÝ”˜4 ¨D¬HÐ5Ñ5Ô5ˆBØ�JŠJ�r˜3ÑÔÐÐÐr   c                 ó¸   — | j         |j                 }|                      |¦  «        }t          j        ||| j        ¬¦  «        }|                      ||¦  «         d S rE  )rÌ  rÏ   r»  r   rÁ   rš   rl  )r   rü   rõ  r2   rB   r]  s         r   r^  zInterpreter.op_LOAD_GLOBAL£  sU   € Ø”? 4¤8Ô,ˆDØ×)Ò)¨$Ñ/Ô/ˆEÝ”˜4 ¨D¬HÐ5Ñ5Ô5ˆBØ�JŠJ�r˜3ÑÔÐÐÐr   c                 ó   — d S r   r&   rä  s     r   Úop_COPY_FREE_VARSzInterpreter.op_COPY_FREE_VARS«  ræ  r   c                 ól  — | j         j        j                             |j        ¦  «        }|| j        v r|                      |¦  «        }nU|| j        v rL| j                             |¦  «        }|  	                    |¦  «        }t          j        |||| j        ¬¦  «        }|                      ||¦  «         d S rE  )r  rc   Ú__code__Ú_varname_from_opargrÏ   rÏ  rd  rÒ  rV   rÁ  r   r  rš   rl  )r   rü   rõ  r2   r]  rF   rB   s          r   Úop_LOAD_DEREFzInterpreter.op_LOAD_DEREF¯  s©   € Ø”<Ô$Ô-×AÒAÀ$Ä(ÑKÔKˆDØ�tÔ)Ð)Ð)Ø—X’X˜d‘^”^��Ø˜Ô+Ð+Ð+ØÔ(×.Ò.¨tÑ4Ô4�Ø×.Ò.¨sÑ3Ô3�Ý”Z  T¨5°d´hÐ?Ñ?Ô?�Ø�JŠJ�r˜3ÑÔÐÐÐr   c                 óR  — t          | j        ¦  «        }|j        |k     r(| j        |j                 }|                      |¦  «        }nI|j        |z
  }| j        |         }|                      |¦  «        }t          j        |||| j        ¬¦  «        }|  	                    ||¦  «         d S rE  )
rd   rÏ  rÏ   rd  rÒ  rÁ  r   r  rš   rl  )r   rü   rõ  Ú
n_cellvarsr2   r]  rF   rB   s           r   re  zInterpreter.op_LOAD_DEREF¹  sŸ   € Ý˜TÔ/Ñ0Ô0ˆJØŒx˜*Ò$Ð$ØÔ)¨$¬(Ô3�Ø—X’X˜d‘^”^��à”h Ñ+�ØÔ)¨#Ô.�Ø×.Ò.¨sÑ3Ô3�Ý”Z  T¨5°d´hÐ?Ñ?Ô?�Ø�JŠJ�r˜3ÑÔÐÐÐr   c                 ó   — d S r   r&   rä  s     r   Úop_MAKE_CELLzInterpreter.op_MAKE_CELLÈ  s   € ØˆDr   c                 ó°   — | j         j        j                             |j        ¦  «        }|                      |¦  «        }|                      ||¬¦  «         d S r?  )r  rc   rc  rd  rÏ   rd  rl  )r   rü   rB   r2   s       r   Úop_STORE_DEREFzInterpreter.op_STORE_DEREFË  sJ   € Ø”<Ô$Ô-×AÒAÀ$Ä(ÑKÔKˆDØ—H’H˜U‘O”OˆEØ�JŠJ˜U¨ˆJÑ.Ô.Ð.Ð.Ð.r   c                 óì   — t          | j        ¦  «        }|j        |k     r| j        |j                 }n| j        |j        |z
           }|                      |¦  «        }|                      ||¬¦  «         d S r?  )rd   rÏ  rÏ   rÒ  rd  rl  )r   rü   rB   rg  rB  s        r   rk  zInterpreter.op_STORE_DEREFÐ  so   € Ý˜TÔ/Ñ0Ô0ˆJØŒx˜*Ò$Ð$ØÔ,¨T¬XÔ6��àÔ,¨T¬X¸
Ñ-BÔC�Ø—H’H˜U‘O”OˆEØ�JŠJ˜U¨ˆJÑ1Ô1Ð1Ð1Ð1r   c                 óÀ   — | j         |j                 | j        u sJ ‚t          j        |j        |j        |j        z   ¬¦  «        }| j                             |¦  «         d S )N©r…  )	r”   rÅ   r6  r   ÚLoopÚnextrÏ   r8  r5   )r   rü   Úloops      r   Úop_SETUP_LOOPzInterpreter.op_SETUP_LOOPÛ  s[   € ØŒ{˜4œ;Ô'¨4Ô+=Ð=Ð=Ð=Ð=ÝŒw�t”{¨$¬)°d´hÑ*>Ð@Ñ@Ô@ˆØÔ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r   c                 óÆ  — | j         |j                 | j        u sJ ‚|j        |j        z   }t          j        |j        |¬¦  «        }| j                             |¦  «         |  	                    |¦  «        }| j                             t          j
        ||j        || j        ¬¦  «        ¦  «         t          j        d | j        ¬¦  «        }|                      ||¬¦  «         d S ©Nrn  )ÚcontextmanagerÚbeginry  rš   r¼   rŸ  )r”   rÅ   r6  rp  rÏ   r   r†  r8  r5   rd  Ú	EnterWithrš   r_   rl  )r   rü   ru  ÚexitfnÚexitptÚwthÚctxmgrÚexit_fn_objs           r   Úop_SETUP_WITHzInterpreter.op_SETUP_WITHà  sá   € ØŒ{˜4œ;Ô'¨4Ô+=Ð=Ð=Ð=Ð=à”˜TœXÑ%ˆÝŒg�d”k¨Ð/Ñ/Ô/ˆØÔ×!Ò! #Ñ&Ô&Ð&Ø—’˜.Ñ)Ô)ˆØÔ×!Ò!¥"¤,¸fØ59´[Ø39¸t¼xð#Jñ #Jô #Jñ 	Kô 	Kð 	Kõ
 ”h˜t¨¬Ð2Ñ2Ô2ˆØ�
Š
˜¨6ˆ
Ñ2Ô2Ð2Ð2Ð2r   c                 ó¨  — | j         |j                 | j        u sJ ‚t          j        |j        |¬¦  «        }| j                             |¦  «         |                      |¦  «        }| j                             t          j        ||j        || j	        ¬¦  «        ¦  «         t          j
        d | j	        ¬¦  «        }|                      ||¬¦  «         d S rt  )r”   rÅ   r6  r   r†  r8  r5   rd  rw  rš   r_   rl  )r   rü   ru  rx  ry  rz  r{  r|  s           r   Úop_BEFORE_WITHzInterpreter.op_BEFORE_WITHï  sÓ   € ØŒ{˜4œ;Ô'¨4Ô+=Ð=Ð=Ð=Ð=åŒg�d”k¨Ð,Ñ,Ô,ˆØÔ×!Ò! #Ñ&Ô&Ð&Ø—’˜.Ñ)Ô)ˆØÔ×!Ò!¥"¤,¸fØ59´[Ø36¸D¼Hð#Gñ #Gô #Gñ 	Hô 	Hð 	Hõ
 ”h˜t¨¬Ð2Ñ2Ô2ˆØ�
Š
˜¨6ˆ
Ñ2Ô2Ð2Ð2Ð2r   c                 ó.   — |                       ¦   «          d S r   )r‡  rä  s     r   Úop_SETUP_FINALLYzInterpreter.op_SETUP_FINALLYý  s   € à×$Ò$Ñ&Ô&Ð&Ð&Ð&r   c                 ó   — dS ©zno-opNr&   rä  s     r   Úop_WITH_CLEANUPzInterpreter.op_WITH_CLEANUP	  ó   € € € r   c                 ó   — dS rƒ  r&   rä  s     r   Úop_WITH_CLEANUP_STARTz!Interpreter.op_WITH_CLEANUP_START	  r…  r   c                 ó   — dS rƒ  r&   rä  s     r   Úop_WITH_CLEANUP_FINISHz"Interpreter.op_WITH_CLEANUP_FINISH	  r…  r   c                 ó   — dS rƒ  r&   rä  s     r   Úop_END_FINALLYzInterpreter.op_END_FINALLY
	  r…  r   c                 ó¨   — t          j        d | j        ¬¦  «        }|D ]3}|                      ||¬¦  «         | j                             |¦  «         Œ4d S )Nr¼   )r2   )r   r_   rš   rl  r&  r6   )r   rü   Útempsr£  rÙ   s        r   Úop_BEGIN_FINALLYzInterpreter.op_BEGIN_FINALLY	  sa   € å”X˜d¨¬Ð1Ñ1Ô1ˆ
Øð 	*ð 	*ˆCà�JŠJ�z¨ˆJÑ,Ô,Ð,ØÔ ×$Ò$ SÑ)Ô)Ð)Ð)ð	*ð 	*r   c           	      ó„  ‡ — ‰                       |¦  «        }ˆ fd„|D ¦   «         }|�Y‰ j        |         }t          t          ||t	          |¦  «         d …         ¦  «        ¦  «        }|d t	          |¦  «         …         }nd}t
          j                             |||‰ j        ¬¦  «        }‰  	                    ||¦  «         d S )Nc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r&   ©rd  ©rŽ   r�   r   s     €r   r�   z'Interpreter.op_CALL.<locals>.<listcomp>	  ó#   ø€ Ð*Ð*Ð* �—’˜‘”Ð*Ð*Ð*r   r&   r¼   )
rd  rÅ  r-   r  rd   r   r`   r[   rš   rl  )	r   rü   rc   re   Úkw_namesrõ  ÚnamesÚkwargsr©   s	   `        r   Úop_CALLzInterpreter.op_CALL	  sº   ø€ Ø�xŠx˜‰~Œ~ˆØ*Ð*Ð*Ð* TÐ*Ñ*Ô*ˆØÐØÔ$ XÔ.ˆEÝ�#˜e T­3¨u©:¬:¨+¨,¨,Ô%7Ñ8Ô8Ñ9Ô9ˆFØ˜�#˜e™*œ*˜˜Ô%ˆDˆDàˆFÝŒw�|Š|˜D $¨°D´Hˆ|Ñ=Ô=ˆØ�
Š
�4˜ÑÔÐÐÐr   c                 óÊ   ‡ — ‰                       |¦  «        }ˆ fd„|D ¦   «         }t          j                             ||d‰ j        ¬¦  «        }‰                      ||¦  «         d S )Nc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r&   r‘  r’  s     €r   r�   z0Interpreter.op_CALL_FUNCTION.<locals>.<listcomp>#	  r“  r   r&   r¼   ©rd  r   r`   r[   rš   rl  )r   rü   rc   re   rõ  r©   s   `     r   Úop_CALL_FUNCTIONzInterpreter.op_CALL_FUNCTION!	  sb   ø€ Ø�xŠx˜‰~Œ~ˆØ*Ð*Ð*Ð* TÐ*Ñ*Ô*ˆÝŒw�|Š|˜D $¨°´ˆ|Ñ9Ô9ˆØ�
Š
�4˜ÑÔÐÐÐr   c                 óö  ‡ — ‰                       |¦  «        }ˆ fd„|D ¦   «         }‰                       |¦  «        }‰ j        j        D ]²}t          |t          j        ¦  «        r–|j        |u r�‰ j                             |¦  «         g }|j        j	        D ]`}‰ j        j        d d d…         D ]H}||j        k    r;‰ j                             |¦  «         | 
                    |j        j        ¦  «          nŒIŒa|}	 nŒ³t          |	¦  «        }
|d |
 …         }||
 d …         }t          t          |	|¦  «        ¦  «        }t          j                             |||‰ j        ¬¦  «        }‰                      ||¦  «         d S )Nc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r&   r‘  r’  s     €r   r�   z3Interpreter.op_CALL_FUNCTION_KW.<locals>.<listcomp>)	  r“  r   rz   r¼   )rd  r6  r—   r]   r   r^   rA   rD   rB   rN   r5   rd   r-   r  r`   r[   rš   rl  )r   rü   rc   re   r•  rõ  Únamed_itemsr�   r  ÚkeysÚnkeysÚposvalsÚkwvalsÚ	keyvaluesr©   s   `              r   Úop_CALL_FUNCTION_KWzInterpreter.op_CALL_FUNCTION_KW'	  sŠ  ø€ Ø�xŠx˜‰~Œ~ˆØ*Ð*Ð*Ð* TÐ*Ñ*Ô*ˆà—’˜‘”ˆØÔ&Ô+ð 	ð 	ˆDÝ˜$¥¤	Ñ*Ô*ð ¨t¬{¸eÐ/CÐ/CØÔ"×)Ò)¨$Ñ/Ô/Ð/ð !�ØœÔ)ð "ð "�AØ!Ô/Ô4°T°T°r°TÔ:ð "ð "˜Ø ¤š=˜=Ø Ô.×5Ò5°aÑ8Ô8Ð8Ø'×.Ò.¨q¬w¬}Ñ=Ô=Ð=Ø!˜Eð )øð #�Ø�øå�D‘	”	ˆØ�w˜˜�w”-ˆØ�u�f�g�g”ˆÝ�˜T 6Ñ*Ô*Ñ+Ô+ˆ	åŒw�|Š|˜D '¨9¸$¼(ˆ|ÑCÔCˆØ�
Š
�4˜ÑÔÐÐÐr   c                 ó  — |                       |¦  «        }|                       |¦  «        }|�|                       |¦  «        }t          j                             |g g | j        ||¬¦  «        }|                      ||¦  «         d S )N)rš   r™   r˜   rš  )r   rü   rc   r™   r˜   rõ  r©   s          r   Úop_CALL_FUNCTION_EXzInterpreter.op_CALL_FUNCTION_EXC	  s~   € Ø�xŠx˜‰~Œ~ˆØ—’˜&Ñ!Ô!ˆØÐØ—x’x Ñ)Ô)ˆHÝŒw�|Š|Ø�"�b˜dœh¨vÀð ñ 
ô 
ˆð 	�
Š
�4˜ÑÔÐÐÐr   c                 ó¤  — |                       |d         ¦  «        }|r•d}t          j        |t          | j        ¬¦  «        }|                      ||d¬¦  «         t          j                             |                       |¦  «        |fd| j        ¬¦  «        }|                      ||d         ¦  «         d S | j        }	t          t          | j         |dd …         ¦  «        |¦  «        D ]ê\  }
}t          j        d	t          |	¬
¦  «        }|                      |dd¬¦  «        }t          j                             ||
fd|	¬¦  «        }|                      |dd¬¦  «        }t          j                             t          j        ||                       |j        ¦  «        | j        ¬¦  «        }|                      ||¦  «         |                       |¦  «        }Œëd S )Nr   r   r¼   Tr“  r&   ©re   rT   rš   rM   r¹   rº   r»   )rÃ   z	$_tuplifyr½   )rd  r   rÁ   r   rš   rl  r`   r[   r  Úmapr¹   ry   r~   r6   r2   )r   rü   Útuplesr�  Ú	is_assignrh  r”  r–  Úexcrš   r  rÙ   rÑ   rÒ   Útuplify_valÚtuplify_varÚouts                    r   Ú_build_tuple_unpackzInterpreter._build_tuple_unpackM	  sÑ  € Ø—’˜ œÑ#Ô#ˆØð  	&ð ,ˆGÝ”I˜gÕ':ÀÄÐJÑJÔJˆEØ�JŠJ˜U¨¸4ˆJÑ@Ô@Ð@Ý”'—,’,˜tŸxšx¨Ñ0Ô0¸°xÀRØ#'¤8ð ñ .ô .ˆCà�JŠJ�s˜E !œHÑ%Ô%Ð%Ð%Ð%à”(ˆCÝ!¥# d¤h°°q°r°r´
Ñ";Ô";¸UÑCÔCð &ð &‘
��såœ9Ø ­Øðñ ô �ð !ŸJšJØÐ6Àð 'ñ ô �	õ !œgŸlšlØ ˜x¨Øð +ñ ô �ð #Ÿjšj¨°kØ26ð )ñ 8ô 8�å”g—m’mÝ”|¨°D·H²H¸[Ô=MÑ4NÔ4NØœð $ñ ô �ð —
’
˜3 Ñ$Ô$Ð$ØŸš ™œ��ð)&ð &r   c                 ó6   — |                       ||||¦  «         d S r   ©r°  ©r   rü   rª  r�  r«  s        r   Úop_BUILD_TUPLE_UNPACK_WITH_CALLz+Interpreter.op_BUILD_TUPLE_UNPACK_WITH_CALLq	  s"   € à× Ò   v¨u°iÑ@Ô@Ð@Ð@Ð@r   c                 ó6   — |                       ||||¦  «         d S r   r²  r³  s        r   Úop_BUILD_TUPLE_UNPACKz!Interpreter.op_BUILD_TUPLE_UNPACKu	  s"   € Ø× Ò   v¨u°iÑ@Ô@Ð@Ð@Ð@r   c                 ó‚   — t           j                             d|f| j        ¬¦  «        }|                      ||¦  «         d S )Nr‹   r¼   )r   r`   Údummyrš   rl  )r   rü   rÊ   rõ  r©   s        r   Úop_LIST_TO_TUPLEzInterpreter.op_LIST_TO_TUPLEx	  s9   € ÝŒw�}Š}˜_¨z¨mÀÄˆ}ÑJÔJˆØ�
Š
�4˜ÑÔÐÐÐr   c           	      ó,  ‡ ‡— ‰                       |¦  «        }‰ j        j        D ]²}t          |t          j        ¦  «        r–|j        |u r�‰ j                             |¦  «         g }|j        j	        D ]`}‰ j        j        d d d…         D ]H}	||	j        k    r;‰ j                             |	¦  «         | 
                    |	j        j        ¦  «          nŒIŒa|}
 nŒ³t          |
¦  «        t          |¦  «        k    sJ ‚ˆ fd„|
D ¦   «         }t          ||¦  «        D ]\  }}‰                      ||¦  «         Œt          t          t          ‰ j         |¦  «        t          ‰ j         |¦  «        ¦  «        ¦  «        }g }|D ]b}‰ j        |         }t          |¦  «        dk    r n?|d         }t          |t          j        ¦  «        s n| 
                    |j        ¦  «         Œcˆ fd„Št          |¦  «        t          |¦  «        k    rˆfd„t          |
|¦  «        D ¦   «         }nd„ t          |
|¦  «        D ¦   «         }i }t%          |
¦  «        D ]
\  }}|||<   Œt          j                             |d||‰ j        ¬	¦  «        }‰                      ||¦  «         d S )
Nrz   c                 óF   •— g | ]}t          j        |‰j        ¬ ¦  «        ‘ŒS )rž  )r   r_   rš   r’  s     €r   r�   z6Interpreter.op_BUILD_CONST_KEY_MAP.<locals>.<listcomp>�	  s*   ø€ ÐEÐEÐE¸•R”X A¨4¬8Ð4Ñ4Ô4ÐEÐEÐEr   rM   r   c                 ó2  •— ‰j         |          }t          |¦  «        dk    r't          ‰                     | ¦  «        j        ¦  «        S |d         }t          |t          j        ¦  «        s't          ‰                     | ¦  «        j        ¦  «        S |j        S )NrM   r   )	r%  rd   r   rd  r2   r]   r   r_   rB   )rà   ÚdefnsÚdefnr   s      €r   Úresolve_constz9Interpreter.op_BUILD_CONST_KEY_MAP.<locals>.resolve_const 	  sz   ø€ ØÔ$ QÔ'ˆEÝ�5‰zŒz˜QŠˆÝ% d§h¢h¨q¡k¤kÔ&6Ñ7Ô7Ð7Ø˜”8ˆDÝ˜d¥B¤HÑ-Ô-ð 8Ý% d§h¢h¨q¡k¤kÔ&6Ñ7Ô7Ð7Ø”:Ðr   c                 ó.   •— i | ]\  }}| ‰|¦  «        “ŒS r&   r&   )rŽ   r�   r  r¿  s      €r   r	  z6Interpreter.op_BUILD_CONST_KEY_MAP.<locals>.<dictcomp>ª	  s5   ø€ ð 1ð 1ð 1±D°A°q˜A˜}˜}¨QÑ/Ô/ð 1ð 1ð 1r   c                 ó   — i | ]\  }}||“Œ	S r&   r&   r  s      r   r	  z6Interpreter.op_BUILD_CONST_KEY_MAP.<locals>.<dictcomp>­	  s   € ÐGÐGÐG¡D A q˜A˜aÐGÐGÐGr   r\   r
  )rd  r6  r—   r]   r   r^   rA   rD   rB   rN   r5   rd   r  rl  r-   r©  r%  r_   r–   r`   rŠ   rš   )r   rü   rŸ  Úkeytmpsr•   rõ  Úkeyvarrž  r�   r  ÚkeytupÚ	keyconstsÚkvalrÙ   rN   Úliteral_itemsrà   r½  r¾  Úliteral_dictrP   rŸ   r  r©   r¿  s   `                       @r   Úop_BUILD_CONST_KEY_MAPz"Interpreter.op_BUILD_CONST_KEY_MAP|	  sø  øø€ ð —’˜$‘”ˆàÔ&Ô+ð 	ð 	ˆDÝ˜$¥¤	Ñ*Ô*ð ¨t¬{¸fÐ/DÐ/DØÔ"×)Ò)¨$Ñ/Ô/Ð/ð !�ØœÔ)ð "ð "�AØ!Ô/Ô4°T°T°r°TÔ:ð "ð "˜Ø ¤š=˜=Ø Ô.×5Ò5°aÑ8Ô8Ð8Ø'×.Ò.¨q¬w¬}Ñ=Ô=Ð=Ø!˜Eð )øð %�Ø�øÝ�6‰{Œ{�c &™kœkÒ)Ð)Ð)Ð)ØEÐEÐEÐE¸fÐEÑEÔEˆ	Ý˜Y¨Ñ0Ô0ð 	"ð 	"‰IˆD�#Ø�JŠJ�t˜SÑ!Ô!Ð!Ð!Ý•S�˜TœX wÑ/Ô/µ°T´X¸vÑ1FÔ1FÑGÔGÑHÔHˆð ˆØð 	-ð 	-ˆAØÔ$ QÔ'ˆEÝ�5‰zŒz˜QŠˆØ�Ø˜”8ˆDÝ˜d¥B¤HÑ-Ô-ð Ø�Ø× Ò  ¤Ñ,Ô,Ð,Ð,ð	ð 	ð 	ð 	ð 	õ ˆ}ÑÔ¥ V¡¤Ò,Ð,ð1ð 1ð 1ð 1Ý ¨Ñ/Ô/ð1ñ 1ô 1ˆLˆLð HÐG­C°¸Ñ,FÔ,FÐGÑGÔGˆLð ˆÝ˜fÑ%Ô%ð 	!ð 	!‰DˆAˆqØ ˆM˜!ÑÐåŒw× Ò  uØ&'Ø/;Ø/<Ø%)¤Xð	 !ñ /ô /ˆð 	�
Š
�4˜ÑÔÐÐÐr   c                 ó¤   — t           j                             |                      |¦  «        | j        ¬¦  «        }|                      ||¦  «         d S )Nrž  )r   r`   Úgetiterrd  rš   rl  ©r   rü   rB   rõ  r©   s        r   Úop_GET_ITERzInterpreter.op_GET_ITER¿	  s?   € ÝŒw�Š T§X¢X¨e¡_¤_¸$¼(ˆÑCÔCˆØ�
Š
�4˜ÑÔÐÐÐr   c                 óÖ  — |j         | j        v s
J d¦   «         ‚|                      |¦  «        }t          j                             || j        ¬¦  «        }|                      ||¦  «         t          j                             |                      |¦  «        | j        ¬¦  «        }|                      ||¦  «         t          j         	                    |                      |¦  «        | j        ¬¦  «        }	|                      |	|¦  «         t          j
        |                      |¦  «        |j        |                     ¦   «         | j        ¬¦  «        }
| j                             |
¦  «         dS )z:
        Assign new block other this instruction.
        zFOR_ITER must be block headrž  r{  N)rÅ   r”   rd  r   r`   Úiternextrš   rl  Ú
pair_firstÚpair_secondrƒ  rp  Úget_jump_targetr6  r5   )r   rü   Úiteratorr  ÚindvalÚpredrm  ÚpairvalrÏ  ÚisvalidÚbrs              r   Úop_FOR_ITERzInterpreter.op_FOR_ITERÃ	  s4  € ð Œ{˜dœkÐ)Ð)Ð)Ð+HÑ)Ô)Ð)ð �hŠh�xÑ Ô ˆå”'×"Ò"¨°$´(Ð"Ñ;Ô;ˆØ�
Š
�7˜DÑ!Ô!Ð!å”7×%Ò%¨D¯HªH°T©N¬NÀÄÐ%ÑIÔIˆØ�
Š
�8˜VÑ$Ô$Ð$å”'×%Ò%¨D¯HªH°T©N¬NÀÄÐ%ÑIÔIˆØ�
Š
�7˜DÑ!Ô!Ð!õ ŒY˜DŸHšH T™NœN°4´9Ø#×3Ò3Ñ5Ô5Øœ8ð%ñ %ô %ˆð 	Ô×!Ò! "Ñ%Ô%Ð%Ð%Ð%r   c                 óÔ   — |                       |¦  «        }|                       |¦  «        }t          j                             ||| j        ¬¦  «        }|                      ||¦  «         d S )N)rV   rš   )rd  r   r`   r  rš   rl  )r   rü   rA   rV   rõ  r©   s         r   Úop_BINARY_SUBSCRzInterpreter.op_BINARY_SUBSCRÛ	  sW   € Ø—’˜‘”ˆØ—’˜&Ñ!Ô!ˆÝŒw�Š˜v¨U¸¼ˆÑAÔAˆØ�
Š
�4˜ÑÔÐÐÐr   c                 óò   — |                       |¦  «        }|                       |¦  «        }|                       |¦  «        }t          j        |||| j        ¬¦  «        }| j                             |¦  «         d S )N)rA   rV   rB   rš   )rd  r   r©  rš   r6  r5   )r   rü   rA   rV   rB   r    s         r   Úop_STORE_SUBSCRzInterpreter.op_STORE_SUBSCRá	  so   € Ø—’˜‘”ˆØ—’˜&Ñ!Ô!ˆØ—’˜‘”ˆÝŒz ¨u¸EØ"œhð(ñ (ô (ˆàÔ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r   c                 óÆ   — |                       |¦  «        }|                       |¦  «        }t          j        ||| j        ¬¦  «        }| j                             |¦  «         d S )N)rA   rV   rš   )rd  r   r5  rš   r6  r5   )r   rü   rA   rV   r    s        r   Úop_DELETE_SUBSCRzInterpreter.op_DELETE_SUBSCRé	  sW   € Ø—’˜‘”ˆØ—’˜&Ñ!Ô!ˆÝŒz ¨u¸$¼(ÐCÑCÔCˆØÔ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r   c                 ó˜   ‡ — t           j                             ˆ fd„|D ¦   «         ‰ j        ¬¦  «        }‰                      ||¦  «         d S )Nc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r&   r‘  r’  s     €r   r�   z.Interpreter.op_BUILD_TUPLE.<locals>.<listcomp>ð	  s#   ø€ Ð)EÐ)EÐ)E¸!¨$¯(ª(°1©+¬+Ð)EÐ)EÐ)Er   ©rN   rš   )r   r`   rx   rš   rl  ©r   rü   rN   rõ  r©   s   `    r   Úop_BUILD_TUPLEzInterpreter.op_BUILD_TUPLEï	  sU   ø€ ÝŒw×"Ò"Ð)EÐ)EÐ)EÐ)E¸uÐ)EÑ)EÔ)EØ'+¤xð #ñ 1ô 1ˆà�
Š
�4˜ÑÔÐÐÐr   c                 ó˜   ‡ — t           j                             ˆ fd„|D ¦   «         ‰ j        ¬¦  «        }‰                      ||¦  «         d S )Nc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r&   r‘  r’  s     €r   r�   z-Interpreter.op_BUILD_LIST.<locals>.<listcomp>õ	  s#   ø€ Ð(DÐ(DÐ(D¸¨¯ª°!©¬Ð(DÐ(DÐ(Dr   râ  )r   r`   r¾   rš   rl  rã  s   `    r   Úop_BUILD_LISTzInterpreter.op_BUILD_LISTô	  sU   ø€ ÝŒw×!Ò!Ð(DÐ(DÐ(DÐ(D¸eÐ(DÑ(DÔ(DØ&*¤hð "ñ 0ô 0ˆà�
Š
�4˜ÑÔÐÐÐr   c                 ó˜   ‡ — t           j                             ˆ fd„|D ¦   «         ‰ j        ¬¦  «        }‰                      ||¦  «         d S )Nc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r&   r‘  r’  s     €r   r�   z,Interpreter.op_BUILD_SET.<locals>.<listcomp>ú	  s#   ø€ Ð'CÐ'CÐ'C¸¨¯ª°©¬Ð'CÐ'CÐ'Cr   râ  )r   r`   rX  rš   rl  rã  s   `    r   Úop_BUILD_SETzInterpreter.op_BUILD_SETù	  sU   ø€ ÝŒw× Ò Ð'CÐ'CÐ'CÐ'C¸UÐ'CÑ'CÔ'CØ%)¤Xð !ñ /ô /ˆà�
Š
�4˜ÑÔÐÐÐr   c                 ó|  — |                       |¦  «        }|                       |¦  «        }t          j                             |d| j        ¬¦  «        }|                      ||¬¦  «         t          j                             |                       |¦  «        |fd| j        ¬¦  «        }|                      ||¬¦  «         d S )Nrö   r¼   rŸ  r&   ©rd  r   r`   rY   rš   rl  r[   ©r   rü   rA   rB   Ú	updatevarrõ  Ú
updateattrÚ
updateinsts           r   Úop_SET_UPDATEzInterpreter.op_SET_UPDATEþ	  ó¢   € Ø—’˜&Ñ!Ô!ˆØ—’˜‘”ˆÝ”W—_’_ V¨X¸4¼8�_ÑDÔDˆ
Ø�
Š
˜¨)ˆ
Ñ4Ô4Ð4Ý”W—\’\ $§(¢(¨9Ñ"5Ô"5¸°xÀØ&*¤hð "ñ 0ô 0ˆ
à�
Š
˜¨#ˆ
Ñ.Ô.Ð.Ð.Ð.r   c                 ó|  — |                       |¦  «        }|                       |¦  «        }t          j                             |d| j        ¬¦  «        }|                      ||¬¦  «         t          j                             |                       |¦  «        |fd| j        ¬¦  «        }|                      ||¬¦  «         d S )Nrã   r¼   rŸ  r&   rì  rí  s           r   Úop_DICT_UPDATEzInterpreter.op_DICT_UPDATE
  s¯   € Ø—’˜&Ñ!Ô!ˆØ—’˜‘”ˆõ ”W—_’_ØÐ+°´ð %ñ 
ô 
ˆ
ð 	�
Š
˜¨)ˆ
Ñ4Ô4Ð4Ý”W—\’\ $§(¢(¨9Ñ"5Ô"5¸°xÀØ&*¤hð "ñ 0ô 0ˆ
à�
Š
˜¨#ˆ
Ñ.Ô.Ð.Ð.Ð.r   c                 ól  ‡ — ˆ fd„|D ¦   «         }ˆ fd„} |d„ |D ¦   «         ¦  «        } |d„ |D ¦   «         ¦  «        }t          |¦  «        t          |¦  «        k    }	t          |¦  «        t          |¦  «        k    }
i }|	s|
sd }nm|	r7|
s5d„ t          ||¦  «        D ¦   «         }t          |¦  «        D ]
\  }}|||<   Œn4d„ t          ||¦  «        D ¦   «         }t          |¦  «        D ]
\  }}|||<   Œt          j                             ||||‰ j        ¬¦  «        }‰                      ||¦  «         d S )Nc                 ój   •— g | ]/\  }}‰                      |¦  «        ‰                      |¦  «        f‘Œ0S r&   r‘  )rŽ   r  rà   r   s      €r   r�   z,Interpreter.op_BUILD_MAP.<locals>.<listcomp>
  s6   ø€ ÐBÐBÐB±D°A°q�d—h’h˜q‘k”k 4§8¢8¨A¡;¤;Ð/ÐBÐBÐBr   c                 óü   •— g }ˆfd„| D ¦   «         }|D ]g}‰j         |j                 }t          |¦  «        dk    r n?|d         }t          |t          j        ¦  «        s n|                     |j        ¦  «         Œh|S )Nc                 óD   •— g | ]}‰                      |j        ¦  «        ‘ŒS r&   )rd  r2   )rŽ   rà   r   s     €r   r�   zBInterpreter.op_BUILD_MAP.<locals>.get_literals.<locals>.<listcomp>
  s'   ø€ Ð7Ð7Ð7¨1�d—h’h˜qœvÑ&Ô&Ð7Ð7Ð7r   rM   r   )r%  r2   rd   r]   r   r_   r5   rB   )rA   rÇ  r•   rà   r½  r¾  r   s         €r   Úget_literalsz.Interpreter.op_BUILD_MAP.<locals>.get_literals
  s”   ø€ ØˆMØ7Ð7Ð7Ð7°Ð7Ñ7Ô7ˆFØð 1ð 1�ØÔ(¨¬Ô0�Ý�u‘:”: ’?�?Ø�EØ˜Q”x�Ý! $­¬Ñ1Ô1ð Ø�EØ×$Ò$ T¤ZÑ0Ô0Ð0Ð0Ø Ð r   c              3   ó&   K  — | ]}|d          V — ŒdS )r   Nr&   r�   s     r   ú	<genexpr>z+Interpreter.op_BUILD_MAP.<locals>.<genexpr>*
  s&   è è € Ð#<Ð#<¨Q A a¤DÐ#<Ð#<Ð#<Ð#<Ð#<Ð#<r   c              3   ó&   K  — | ]}|d          V — ŒdS )rM   Nr&   r�   s     r   rû  z+Interpreter.op_BUILD_MAP.<locals>.<genexpr>+
  s&   è è € Ð%>Ð%>¨q a¨¤dÐ%>Ð%>Ð%>Ð%>Ð%>Ð%>r   c                 ó@   — i | ]\  }}|t          |d          ¦  «        “ŒS )rM   )r   r  s      r   r	  z,Interpreter.op_BUILD_MAP.<locals>.<dictcomp>4
  s6   € ð :ð :ð :¹¸¸1˜A�~¨a°¬dÑ3Ô3ð :ð :ð :r   c                 ó   — i | ]\  }}||“Œ	S r&   r&   r  s      r   r	  z,Interpreter.op_BUILD_MAP.<locals>.<dictcomp>9
  s   € ÐOÐOÐO¡T Q¨˜A˜qÐOÐOÐOr   r
  )rd   r  r–   r   r`   rŠ   rš   rl  )r   rü   rN   r  rõ  Ú	got_itemsrù  r  Úliteral_valuesÚhas_literal_keysÚhas_literal_valuesrP   rÈ  rŸ   r  r©   s   `               r   Úop_BUILD_MAPzInterpreter.op_BUILD_MAP
  sµ  ø€ ØBÐBÐBÐB¸EÐBÑBÔBˆ	ð
	!ð 	!ð 	!ð 	!ð 	!ð $�|Ð#<Ð#<°)Ð#<Ñ#<Ô#<Ñ<Ô<ˆØ%˜Ð%>Ð%>°IÐ%>Ñ%>Ô%>Ñ>Ô>ˆå˜|Ñ,Ô,µ°I±´Ò>ÐÝ  Ñ0Ô0µC¸	±N´NÒBÐàˆØð 
	%Ð(:ð 
	%ØˆLˆLØð 	%Ð&8ð 	%ð:ð :Ý ¨iÑ8Ô8ð:ñ :ô :ˆLå! ,Ñ/Ô/ð %ð %‘��1Ø#$�˜aÑ Ð ð%ð PÐO­S°¸~Ñ-NÔ-NÐOÑOÔOˆLÝ! ,Ñ/Ô/ð %ð %‘��1Ø#$�˜aÑ Ð åŒw× Ò  y°tØ/;Ø/<Ø%)¤Xð !ñ /ô /ˆð 	�
Š
�4˜ÑÔÐÐÐr   c                 óæ   — t          j        |                      |¦  «        |                      |¦  «        |                      |¦  «        | j        ¬¦  «        }| j                             |¦  «         d S )N)ÚdctrU   rB   rš   )r   ÚStoreMaprd  rš   r6  r5   )r   rü   r  rU   rB   r    s         r   Úop_STORE_MAPzInterpreter.op_STORE_MAPC
  sa   € ÝŒ{˜tŸxšx¨™}œ}°$·(²(¸3±-´-Ø!%§¢¨%¡¤°d´hð@ñ @ô @ˆàÔ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r   c                 ó¦   — |                       |¦  «        }t          j                             d|| j        ¬¦  «        }|                      ||¦  «        S )Nú-rž  ©rd  r   r`   Úunaryrš   rl  rÌ  s        r   Úop_UNARY_NEGATIVEzInterpreter.op_UNARY_NEGATIVEH
  ó@   € Ø—’˜‘”ˆÝŒw�}Š}˜S¨°4´8ˆ}Ñ<Ô<ˆØ�zŠz˜$ Ñ$Ô$Ð$r   c                 ó¦   — |                       |¦  «        }t          j                             d|| j        ¬¦  «        }|                      ||¦  «        S )NrÔ  rž  r
  rÌ  s        r   Úop_UNARY_POSITIVEzInterpreter.op_UNARY_POSITIVEM
  r  r   c                 ó¦   — |                       |¦  «        }t          j                             d|| j        ¬¦  «        }|                      ||¦  «        S )Nú~rž  r
  rÌ  s        r   Úop_UNARY_INVERTzInterpreter.op_UNARY_INVERTR
  r  r   c                 ó¦   — |                       |¦  «        }t          j                             d|| j        ¬¦  «        }|                      ||¦  «        S )NÚnotrž  r
  rÌ  s        r   Úop_UNARY_NOTzInterpreter.op_UNARY_NOTW
  s@   € Ø—’˜‘”ˆÝŒw�}Š}˜U¨%°T´Xˆ}Ñ>Ô>ˆØ�zŠz˜$ Ñ$Ô$Ð$r   c                 óð   — t           |         }|                      |¦  «        }|                      |¦  «        }t          j                             |||| j        ¬¦  «        }|                      ||¦  «         d S )Nr
  )r   rd  r   r`   ry   rš   rl  )r   ra   rI   rJ   rõ  r©   s         r   Ú_binopzInterpreter._binop\
  sa   € Ý  Ô$ˆØ�hŠh�s‰mŒmˆØ�hŠh�s‰mŒmˆÝŒw�}Š}˜R S¨c°t´xˆ}Ñ@Ô@ˆØ�
Š
�4˜ÑÔÐÐÐr   c                 ó  — t           |         }t          |dz            }|                      |¦  «        }|                      |¦  «        }t          j                             ||||| j        ¬¦  «        }|                      ||¦  «         d S )Nú=r
  )r   r   rd  r   r`   r¯  rš   rl  )r   ra   rI   rJ   rõ  Úimmuopr©   s          r   Ú_inplace_binopzInterpreter._inplace_binopc
  s{   € Ý$ RÔ(ˆÝ(¨¨c©Ô2ˆØ�hŠh�s‰mŒmˆØ�hŠh�s‰mŒmˆÝŒw×$Ò$ R¨°S¸cØ)-¬ð %ñ 3ô 3ˆà�
Š
�4˜ÑÔÐÐÐr   c                 ó‚   — d|v r"|                       |d d…         |||¦  «         d S |                      ||||¦  «         d S )Nr  rz   )r  r  )r   rü   ra   rI   rJ   rõ  s         r   Úop_BINARY_OPzInterpreter.op_BINARY_OPl
  sQ   € Ø�"ˆ9ˆ9Ø×Ò  3 B 3¤¨¨c°3Ñ7Ô7Ð7Ð7Ð7à�KŠK˜˜C  cÑ*Ô*Ð*Ð*Ð*r   c                 ó6   — |                       d|||¦  «         d S ©NrÔ  ©r  ©r   rü   rI   rJ   rõ  s        r   Úop_BINARY_ADDzInterpreter.op_BINARY_ADDr
  ó    € Ø�Š�C˜˜c 3Ñ'Ô'Ð'Ð'Ð'r   c                 ó6   — |                       d|||¦  «         d S ©Nr	  r   r!  s        r   Úop_BINARY_SUBTRACTzInterpreter.op_BINARY_SUBTRACTu
  r#  r   c                 ó6   — |                       d|||¦  «         d S ©NÚ*r   r!  s        r   Úop_BINARY_MULTIPLYzInterpreter.op_BINARY_MULTIPLYx
  r#  r   c                 ó6   — |                       d|||¦  «         d S ©Nz/?r   r!  s        r   Úop_BINARY_DIVIDEzInterpreter.op_BINARY_DIVIDE{
  ó    € Ø�Š�D˜#˜s CÑ(Ô(Ð(Ð(Ð(r   c                 ó6   — |                       d|||¦  «         d S ©Nú/r   r!  s        r   Úop_BINARY_TRUE_DIVIDEz!Interpreter.op_BINARY_TRUE_DIVIDE~
  r#  r   c                 ó6   — |                       d|||¦  «         d S ©Nz//r   r!  s        r   Úop_BINARY_FLOOR_DIVIDEz"Interpreter.op_BINARY_FLOOR_DIVIDE�
  r.  r   c                 ó6   — |                       d|||¦  «         d S ©Nú%r   r!  s        r   Úop_BINARY_MODULOzInterpreter.op_BINARY_MODULO„
  r#  r   c                 ó6   — |                       d|||¦  «         d S ©Nz**r   r!  s        r   Úop_BINARY_POWERzInterpreter.op_BINARY_POWER‡
  r.  r   c                 ó6   — |                       d|||¦  «         d S ©Nú@r   r!  s        r   Úop_BINARY_MATRIX_MULTIPLYz%Interpreter.op_BINARY_MATRIX_MULTIPLYŠ
  r#  r   c                 ó6   — |                       d|||¦  «         d S ©Nz<<r   r!  s        r   Úop_BINARY_LSHIFTzInterpreter.op_BINARY_LSHIFT�
  r.  r   c                 ó6   — |                       d|||¦  «         d S ©Nz>>r   r!  s        r   Úop_BINARY_RSHIFTzInterpreter.op_BINARY_RSHIFT�
  r.  r   c                 ó6   — |                       d|||¦  «         d S ©Nú&r   r!  s        r   Úop_BINARY_ANDzInterpreter.op_BINARY_AND“
  r#  r   c                 ó6   — |                       d|||¦  «         d S ©Nú|r   r!  s        r   Úop_BINARY_ORzInterpreter.op_BINARY_OR–
  r#  r   c                 ó6   — |                       d|||¦  «         d S ©Nú^r   r!  s        r   Úop_BINARY_XORzInterpreter.op_BINARY_XOR™
  r#  r   c                 ó6   — |                       d|||¦  «         d S r  ©r  r!  s        r   Úop_INPLACE_ADDzInterpreter.op_INPLACE_ADDœ
  ó"   € Ø×Ò˜C  c¨3Ñ/Ô/Ð/Ð/Ð/r   c                 ó6   — |                       d|||¦  «         d S r%  rT  r!  s        r   Úop_INPLACE_SUBTRACTzInterpreter.op_INPLACE_SUBTRACTŸ
  rV  r   c                 ó6   — |                       d|||¦  «         d S r(  rT  r!  s        r   Úop_INPLACE_MULTIPLYzInterpreter.op_INPLACE_MULTIPLY¢
  rV  r   c                 ó6   — |                       d|||¦  «         d S r,  rT  r!  s        r   Úop_INPLACE_DIVIDEzInterpreter.op_INPLACE_DIVIDE¥
  ó"   € Ø×Ò˜D # s¨CÑ0Ô0Ð0Ð0Ð0r   c                 ó6   — |                       d|||¦  «         d S r0  rT  r!  s        r   Úop_INPLACE_TRUE_DIVIDEz"Interpreter.op_INPLACE_TRUE_DIVIDE¨
  rV  r   c                 ó6   — |                       d|||¦  «         d S r4  rT  r!  s        r   Úop_INPLACE_FLOOR_DIVIDEz#Interpreter.op_INPLACE_FLOOR_DIVIDE«
  r]  r   c                 ó6   — |                       d|||¦  «         d S r7  rT  r!  s        r   Úop_INPLACE_MODULOzInterpreter.op_INPLACE_MODULO®
  rV  r   c                 ó6   — |                       d|||¦  «         d S r;  rT  r!  s        r   Úop_INPLACE_POWERzInterpreter.op_INPLACE_POWER±
  r]  r   c                 ó6   — |                       d|||¦  «         d S r>  rT  r!  s        r   Úop_INPLACE_MATRIX_MULTIPLYz&Interpreter.op_INPLACE_MATRIX_MULTIPLY´
  rV  r   c                 ó6   — |                       d|||¦  «         d S rB  rT  r!  s        r   Úop_INPLACE_LSHIFTzInterpreter.op_INPLACE_LSHIFT·
  r]  r   c                 ó6   — |                       d|||¦  «         d S rE  rT  r!  s        r   Úop_INPLACE_RSHIFTzInterpreter.op_INPLACE_RSHIFTº
  r]  r   c                 ó6   — |                       d|||¦  «         d S rH  rT  r!  s        r   Úop_INPLACE_ANDzInterpreter.op_INPLACE_AND½
  rV  r   c                 ó6   — |                       d|||¦  «         d S rL  rT  r!  s        r   Úop_INPLACE_ORzInterpreter.op_INPLACE_ORÀ
  rV  r   c                 ó6   — |                       d|||¦  «         d S rP  rT  r!  s        r   Úop_INPLACE_XORzInterpreter.op_INPLACE_XORÃ
  rV  r   c                 ó”   — t          j        |                     ¦   «         | j        ¬¦  «        }| j                             |¦  «         d S rE  ©r   rô   rÒ  rš   r6  r5   ©r   rü   r‹  s      r   Úop_JUMP_ABSOLUTEzInterpreter.op_JUMP_ABSOLUTEÆ
  óA   € ÝŒg�d×*Ò*Ñ,Ô,°$´(Ð;Ñ;Ô;ˆØÔ×!Ò! #Ñ&Ô&Ð&Ð&Ð&r   c                 ó”   — t          j        |                     ¦   «         | j        ¬¦  «        }| j                             |¦  «         d S rE  rs  rt  s      r   Úop_JUMP_FORWARDzInterpreter.op_JUMP_FORWARDÊ
  rv  r   c                 ó”   — t          j        |                     ¦   «         | j        ¬¦  «        }| j                             |¦  «         d S rE  rs  rt  s      r   Úop_JUMP_BACKWARDzInterpreter.op_JUMP_BACKWARDÎ
  rv  r   c                 óð   — |€| j                              ¦   «          d S |dk    r6t          j        | j        ¬¦  «        }| j                             |¦  «         d S |dk    r|                      ¦   «          d S d S )NÚwithr¼   Útry)r8  r3   r   rò   rš   r6  r5   rP  )r   rü   rN  r;   s       r   Úop_POP_BLOCKzInterpreter.op_POP_BLOCKÒ
  s„   € Øˆ<ØÔ×"Ò"Ñ$Ô$Ð$Ð$Ð$Ø�VŠ^ˆ^Ý” ¤Ð)Ñ)Ô)ˆAØÔ×%Ò% aÑ(Ô(Ð(Ð(Ð(Ø�UŠ]ˆ]Ø×&Ò&Ñ(Ô(Ð(Ð(Ð(ð ˆ]r   c                 ó0  — |                       t          j                             |                      |¦  «        | j        ¬¦  «        |¦  «         t          j        |                      |¦  «        | j        ¬¦  «        }| j                             |¦  «         d S rE  )	rl  r   r`   Úcastrd  rš   ÚReturnr6  r5   )r   rü   ÚretvalÚcastvalÚrets        r   Úop_RETURN_VALUEzInterpreter.op_RETURN_VALUEÛ
  su   € Ø�
Š
•2”7—<’< §¢¨Ñ 0Ô 0°d´h�<Ñ?Ô?ÀÑIÔIÐIÝŒi˜Ÿš Ñ)Ô)¨t¬xÐ8Ñ8Ô8ˆØÔ×!Ò! #Ñ&Ô&Ð&Ð&Ð&r   c                 óò  — t           j        |j                 }|dk    s|dk    r||}}|dk    rl|                      d|||¦  «         |                      |¦  «        }t
          j                             d|| j        ¬¦  «        }|  	                    ||¦  «         d S |dk    r¿t          j
        dt          j        | j        ¬¦  «        }d}	|  	                    ||	d	¬
¦  «         |                      |¦  «        }|                      |¦  «        }t
          j                             |                      |	¦  «        ||fd| j        ¬¦  «        }
|  	                    |
|¦  «         d S |                      ||||¦  «         d S )NÚinznot inr  rž  zexception matchÚexception_matchr¼   ú
$exc_matchTr“  r&   r¨  )ÚdisÚcmp_oprÏ   r  rd  r   r`   r  rš   rl  rÁ   r   rˆ  r[   )r   rü   rI   rJ   rõ  ra   rÙ   r¯  r–  Úexc_match_namer¬  s              r   Úop_COMPARE_OPzInterpreter.op_COMPARE_OPà
  si  € ÝŒZ˜œÔ!ˆØ�Š:ˆ:˜˜xš˜Ø˜C�ˆCà�Š>ˆ>Ø�KŠK˜˜c 3¨Ñ,Ô,Ð,Ø—(’(˜3‘-”-ˆCÝ”'—-’- ¨S°d´h�-Ñ?Ô?ˆCØ�JŠJ�s˜CÑ Ô Ð Ð Ð ØÐ$Ò$Ð$Ý”IØ!¥2Ô#5¸4¼8ðñ ô ˆEð *ˆNØ�JŠJ˜U¨À$ˆJÑGÔGÐGØ—(’(˜3‘-”-ˆCØ—(’(˜3‘-”-ˆCÝ”'—,’,Ø—’˜Ñ(Ô(°°S¨z¸rÀtÄxð ñ ô ˆCð �JŠJ�s˜CÑ Ô Ð Ð Ð à�KŠK˜˜C  cÑ*Ô*Ð*Ð*Ð*r   c                 óT   — |j         dk    rdnd}|                      ||||¦  «         d S )NrM   úis notÚis)rÏ   r  )r   rü   rI   rJ   rõ  ra   s         r   Úop_IS_OPzInterpreter.op_IS_OPù
  s3   € àœ Qš˜ˆXˆX¨DˆØ�Š�B˜˜S #Ñ&Ô&Ð&Ð&Ð&r   c                 óü   — ||}}|                       d|||¦  «         |j        dk    rT|                      |¦  «        }t          j                             d|| j        ¬¦  «        }|                      ||¦  «         d S d S )Nr‡  rM   r  rž  )r  rÏ   rd  r   r`   r  rš   rl  )r   rü   rI   rJ   rõ  rÙ   r¯  s          r   Úop_CONTAINS_OPzInterpreter.op_CONTAINS_OPþ
  sy   € Ø˜ˆSˆØ�Š�D˜#˜s CÑ(Ô(Ð(àŒ8�qŠ=ˆ=Ø—(’(˜3‘-”-ˆCÝ”'—-’- ¨S°d´h�-Ñ?Ô?ˆCØ�JŠJ�s˜CÑ Ô Ð Ð Ð ð ˆ=r   c                 óÔ   — |€0| j         d         }t          |t          j        ¦  «        sJ ‚|j        }t          j        || j        ¬¦  «        }| j                             |¦  «         d S )Nrz   )rA   rš   )	r8  r]   r   ro  r…  rô   rš   r6  r5   )r   rü   ry  rq  r‹  s        r   Úop_BREAK_LOOPzInterpreter.op_BREAK_LOOP  sf   € Øˆ;ØÔ% bÔ)ˆDÝ˜d¥B¤GÑ,Ô,Ð,Ð,Ð,Ø”)ˆCÝŒg˜S d¤hÐ/Ñ/Ô/ˆØÔ×!Ò! #Ñ&Ô&Ð&Ð&Ð&r   c                 ó2  — |                      ¦   «         |j        dœ}||         }||          }d|j        z  }t          j        dt
          | j        ¬¦  «        }|                      ||¬¦  «         t          j         	                    |  
                    |¦  «        |  
                    |¦  «        fd| j        ¬¦  «        }	d|j        z  }
|                      |	|
¬¦  «        }t          j        |||| j        ¬¦  «        }| j                             |¦  «         d S )	N)TFzbool%sÚboolr¼   rŸ  r&   z$%spredr{  )rÒ  rp  rÅ   r   rÁ   r—  rš   rl  r`   r[   rd  rƒ  r6  r5   )r   rü   rÕ  ÚiftrueÚbrsr}  r~  r2   r–  r—  ÚpnameÚ	predicateÚbras                r   Ú_op_JUMP_IFzInterpreter._op_JUMP_IF  s  € à×&Ò&Ñ(Ô(Ø”9ð
ð 
ˆð �V”ˆØ˜&�j”/ˆà˜4œ;Ñ'ˆÝ”	˜&¥$¨D¬HÐ5Ñ5Ô5ˆØ�
Š
˜ Tˆ
Ñ*Ô*Ð*å”'—,’,˜tŸxšx¨™~œ~°·²¸±´Ð/@À"Ø#'¤8ð ñ -ô -ˆð ˜Tœ[Ñ)ˆØ—J’J W°5�JÑ9Ô9ˆ	ÝŒi˜Y¨v¸wØ œHð&ñ &ô &ˆàÔ×!Ò! #Ñ&Ô&Ð&Ð&Ð&r   c                 ó6   — |                       ||d¬¦  «         d S ©NF©rÕ  r˜  ©r�  ©r   rü   rÕ  s      r   Úop_JUMP_IF_FALSEzInterpreter.op_JUMP_IF_FALSE$  ó#   € Ø×Ò˜ D°ÐÑ7Ô7Ð7Ð7Ð7r   c                 ó6   — |                       ||d¬¦  «         d S ©NTr   r¡  r¢  s      r   Úop_JUMP_IF_TRUEzInterpreter.op_JUMP_IF_TRUE'  ó#   € Ø×Ò˜ D°ÐÑ6Ô6Ð6Ð6Ð6r   c                 ót  — |j         }|                     ¦   «         }|st          d         }nt          d         }|                      t	          j        d | j        ¬¦  «        d|j        › �¬¦  «        }|                      |¦  «        }t          j	         
                    |||| j        ¬¦  «        }	d|j        › �}
|                      |	|
¬¦  «         d|j        › �}t	          j        d	t          | j        ¬¦  «        }|                      ||¬¦  «         t          j	                             |                      |¦  «        |                      |
¦  «        fd
| j        ¬¦  «        }d|j        › �}|                      ||¬¦  «        }t	          j        |||| j        ¬¦  «        }| j                             |¦  «         d S )Nr�  r�  r¼   z
$constNonerŸ  r
  z
$maybeNonez$boolr—  r&   z$predr{  )rp  rÒ  r   rl  r   r_   rš   rÅ   rd  r`   ry   rÁ   r—  r[   rƒ  r6  r5   )r   rü   rÕ  r˜  r}  r~  ra   rJ   rI   ÚisnoneÚ	maybeNoner2   r–  r—  rš  r›  rŠ  s                    r   Ú_jump_if_nonezInterpreter._jump_if_none*  s¦  € à”ˆØ×&Ò&Ñ(Ô(ˆð ð 	/Ý$ TÔ*ˆBˆBå$ XÔ.ˆBà�jŠj�rœx¨°$´(Ð;Ñ;Ô;Ø8¨4¬;Ð8Ð8ð ñ :ô :ˆà�hŠh�t‰nŒnˆÝ”—’˜r s°¸¼�ÑBÔBˆà. ¤Ð.Ð.ˆ	Ø�
Š
˜ iˆ
Ñ0Ô0Ð0à$�t”{Ð$Ð$ˆÝ”	˜&¥$¨D¬HÐ5Ñ5Ô5ˆØ�
Š
˜ Tˆ
Ñ*Ô*Ð*å”'—,’,˜tŸxšx¨™~œ~°·²¸Ñ0CÔ0CÐ/EÀrØ#'¤8ð ñ -ô -ˆð &˜œÐ%Ð%ˆØ—J’J W°5�JÑ9Ô9ˆ	Ý” 	Ø"(Ø#*Ø#œxð)ñ )ô )ˆð 	Ô×!Ò! &Ñ)Ô)Ð)Ð)Ð)r   c                 ó4   — |                       ||d¦  «         d S ©NT©r¬  r¢  s      r   Úop_POP_JUMP_FORWARD_IF_NONEz'Interpreter.op_POP_JUMP_FORWARD_IF_NONEL  ó    € Ø×Ò˜4  tÑ,Ô,Ð,Ð,Ð,r   c                 ó4   — |                       ||d¦  «         d S ©NFr¯  r¢  s      r   Úop_POP_JUMP_FORWARD_IF_NOT_NONEz+Interpreter.op_POP_JUMP_FORWARD_IF_NOT_NONEO  ó    € Ø×Ò˜4  uÑ-Ô-Ð-Ð-Ð-r   c                 ó4   — |                       ||d¦  «         d S r®  r¯  r¢  s      r   Úop_POP_JUMP_BACKWARD_IF_NONEz(Interpreter.op_POP_JUMP_BACKWARD_IF_NONER  r±  r   c                 ó4   — |                       ||d¦  «         d S r³  r¯  r¢  s      r   Ú op_POP_JUMP_BACKWARD_IF_NOT_NONEz,Interpreter.op_POP_JUMP_BACKWARD_IF_NOT_NONEU  rµ  r   c                 ó6   — |                       ||d¬¦  «         d S rŸ  r¡  r¢  s      r   Úop_POP_JUMP_FORWARD_IF_FALSEz(Interpreter.op_POP_JUMP_FORWARD_IF_FALSEX  r¤  r   c                 ó6   — |                       ||d¬¦  «         d S r¦  r¡  r¢  s      r   Úop_POP_JUMP_FORWARD_IF_TRUEz'Interpreter.op_POP_JUMP_FORWARD_IF_TRUE[  r¨  r   c                 ó6   — |                       ||d¬¦  «         d S rŸ  r¡  r¢  s      r   Úop_POP_JUMP_BACKWARD_IF_FALSEz)Interpreter.op_POP_JUMP_BACKWARD_IF_FALSE^  r¤  r   c                 ó6   — |                       ||d¬¦  «         d S r¦  r¡  r¢  s      r   Úop_POP_JUMP_BACKWARD_IF_TRUEz(Interpreter.op_POP_JUMP_BACKWARD_IF_TRUEa  r¨  r   c                 ó6   — |                       ||d¬¦  «         d S rŸ  r¡  r¢  s      r   Úop_POP_JUMP_IF_FALSEz Interpreter.op_POP_JUMP_IF_FALSEd  r¤  r   c                 ó6   — |                       ||d¬¦  «         d S r¦  r¡  r¢  s      r   Úop_POP_JUMP_IF_TRUEzInterpreter.op_POP_JUMP_IF_TRUEg  r¨  r   c                 ó6   — |                       ||d¬¦  «         d S rŸ  r¡  r¢  s      r   Úop_JUMP_IF_FALSE_OR_POPz#Interpreter.op_JUMP_IF_FALSE_OR_POPj  r¤  r   c                 ó6   — |                       ||d¬¦  «         d S r¦  r¡  r¢  s      r   Úop_JUMP_IF_TRUE_OR_POPz"Interpreter.op_JUMP_IF_TRUE_OR_POPm  r¨  r   c                 ó€  — t          j        dt          j        | j        ¬¦  «        }d}|                      ||d¬¦  «         |                      |¦  «        }|                      |¦  «        }t           j                             |                      |¦  «        ||fd| j        ¬¦  «        }	|                      |	|¦  «         d S )Nrˆ  r¼   r‰  Tr“  r&   r¨  )	r   rÁ   r   rˆ  rš   rl  rd  r`   r[   )
r   rü   rÕ  ÚtosÚtos1r–  rŒ  rI   rJ   r¬  s
             r   Úop_CHECK_EXC_MATCHzInterpreter.op_CHECK_EXC_MATCHp  s²   € Ý”	Ø�rÔ1°t´xð
ñ 
ô 
ˆð &ˆØ�
Š
˜ ^¸dˆ
ÑCÔCÐCØ�hŠh�t‰nŒnˆØ�hŠh�s‰mŒmˆÝŒg�lŠlØ�HŠH�^Ñ$Ô$¨C°¨:¸2À4Ä8ð ñ 
ô 
ˆð 	�
Š
�3˜ÑÔÐÐÐr   c                 ó$  — |j         }|                     ¦   «         }t          j        dt          j        | j        ¬¦  «        }d}|                      ||d¬¦  «         |                      |¦  «        }	|                      |¦  «        }
t          j	         
                    |                      |¦  «        |	|
fd| j        ¬¦  «        }|                      ||¦  «        }t          j        |||| j        ¬¦  «        }| j                             |¦  «         d S )	Nrˆ  r¼   r‰  Tr“  r&   r¨  r{  )rp  rÒ  r   rÁ   r   rˆ  rš   rl  rd  r`   r[   rƒ  r6  r5   )r   rü   rÕ  rË  rÌ  r}  r~  r–  rŒ  rI   rJ   r¬  r›  rœ  s                 r   Úop_JUMP_IF_NOT_EXC_MATCHz$Interpreter.op_JUMP_IF_NOT_EXC_MATCH}  s  € Ø”ˆØ×&Ò&Ñ(Ô(ˆÝ”	Ø�rÔ1°t´xð
ñ 
ô 
ˆð &ˆØ�
Š
˜ ^¸dˆ
ÑCÔCÐCØ�hŠh�t‰nŒnˆØ�hŠh�s‰mŒmˆÝŒg�lŠlØ�HŠH�^Ñ$Ô$¨C°¨:¸2À4Ä8ð ñ 
ô 
ˆð —J’J˜s DÑ)Ô)ˆ	ÝŒi˜Y¨v¸wØ œHð&ñ &ô &ˆàÔ×!Ò! #Ñ&Ô&Ð&Ð&Ð&r   c                 óÀ  — | j         j        }|�„t          j        d | j        ¬¦  «        }| j                             |¦  «         |                      ¦   «          | j                             t          j        |d         | j        ¬¦  «        ¦  «         d S dt          d         › �}t          j
        t          |f| j        ¦  «        }| j                             |¦  «         d S )N©Ú	exceptionrš   ry  r¼   z8Unreachable condition reached (op code RERAISE executed)Ú
reportable)r9  r€  r   ÚTryRaiserš   r6  r5   rP  rô   r   ÚStaticRaiser|   )r   rü   r¬  r‰  r    ri  s         r   Ú
op_RERAISEzInterpreter.op_RERAISE�  sÐ   € Ø”Ô.ˆØÐÝ”;¨°4´8Ð<Ñ<Ô<ˆDØÔ×%Ò% dÑ+Ô+Ð+Ø×&Ò&Ñ(Ô(Ð(ØÔ×%Ò%¥b¤g¨f°U¬mÀÄÐ&JÑ&JÔ&JÑKÔKÐKÐKÐKð3Ý" <Ô0ð3ð 3ˆCå”>¥.°3°&¸$¼(ÑCÔCˆDØÔ×%Ò% dÑ+Ô+Ð+Ð+Ð+r   c                 óÂ  — |�|                       |¦  «        }| j        j        }|�„t          j        || j        ¬¦  «        }| j                             |¦  «         |                      ¦   «          | j                             t          j	        |d         | j        ¬¦  «        ¦  «         d S t          j
        || j        ¬¦  «        }| j                             |¦  «         d S )NrÑ  ry  r¼   )rd  r9  r€  r   rÔ  rš   r6  r5   rP  rô   ÚRaise)r   rü   r¬  r‰  r    s        r   Úop_RAISE_VARARGSzInterpreter.op_RAISE_VARARGSž  sÌ   € Øˆ?Ø—(’(˜3‘-”-ˆCØ”Ô.ˆØÐå”;¨°$´(Ð;Ñ;Ô;ˆDØÔ×%Ò% dÑ+Ô+Ð+Ø×&Ò&Ñ(Ô(Ð(ØÔ×%Ò%¥b¤g¨f°U¬mÀÄÐ&JÑ&JÔ&JÑKÔKÐKÐKÐKõ ”8 c¨t¬xÐ8Ñ8Ô8ˆDØÔ×%Ò% dÑ+Ô+Ð+Ð+Ð+r   c                 ó�   — d }t          j        |                      |¦  «        || j        ¬¦  «        }|                      ||¦  «        S )N)rB   rV   rš   )r   ÚYieldrd  rš   rl  )r   rü   rB   rõ  rV   s        r   Úop_YIELD_VALUEzInterpreter.op_YIELD_VALUE­  s=   € àˆÝŒx˜dŸhšh u™oœo°UÀÄÐIÑIÔIˆØ�zŠz˜$ Ñ$Ô$Ð$r   c	                 ó8  ‡ — |�d}	t          |	¦  «        ‚|rFt          |t          ¦  «        rt          ˆ fd„|D ¦   «         ¦  «        }n‰                      |¦  «        }‰ j        |         d         }
t          |
t
          j        ¦  «        sd}	t          j        |	‰ j	        ¬¦  «        ‚|
j
        }|r‰                      |¦  «        }|r‰                      |¦  «        }t
          j                             ||||‰ j	        ¦  «        }‰                      ||¦  «         d S )Nz3op_MAKE_FUNCTION with kwdefaults is not implementedc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r&   r‘  )rŽ   r2   r   s     €r   r�   z0Interpreter.op_MAKE_FUNCTION.<locals>.<listcomp>¼  s#   ø€ Ð!FÐ!FÐ!F°T $§(¢(¨4¡.¤.Ð!FÐ!FÐ!Fr   r   z_Unsupported use of closure. Probably caused by complex control-flow constructs; e.g. try-exceptr¼   )r>  r]   r¹   rd  r%  r   r_   r   r   rš   rB   r`   Úmake_functionrl  )r   rü   r2   ÚcodeÚclosureÚannotationsÚ
kwdefaultsÚdefaultsrõ  ri  Úassume_code_constÚfcoder©   s   `            r   Úop_MAKE_FUNCTIONzInterpreter.op_MAKE_FUNCTION³  s*  ø€ ð Ð!ØGˆCÝ% cÑ*Ô*Ð*Øð 	.Ý˜(¥EÑ*Ô*ð .Ý Ð!FÐ!FÐ!FÐ!F¸XÐ!FÑ!FÔ!FÑGÔG��àŸ8š8 HÑ-Ô-�à Ô,¨TÔ2°1Ô5ÐÝÐ+­R¬XÑ6Ô6ð 	=ð"ð õ
 Ô)¨#°4´8Ð<Ñ<Ô<Ð<Ø!Ô'ˆØð 	"Ø—8’8˜D‘>”>ˆDØð 	(Ø—h’h˜wÑ'Ô'ˆGÝŒw×$Ò$ T¨5°'¸8ÀTÄXÑNÔNˆØ�
Š
�4˜ÑÔÐÐÐr   c	           
      ó>   — |                       ||||||||¦  «         d S r   )rç  )	r   rü   r2   rà  rá  râ  rã  rä  rõ  s	            r   Úop_MAKE_CLOSUREzInterpreter.op_MAKE_CLOSUREÐ  s5   € à×Ò˜d D¨$°¸Ø(¨(°Cñ	9ô 	9ð 	9ð 	9ð 	9r   c                 óÂ  — | j         j        j                             |j        ¦  «        }|| j        v r6	 |                      |¦  «        }n# t          $ r d}t          |¦  «        ‚w xY w|| j	        v rM| j	         
                    |¦  «        }|                      |¦  «        }t          j        |||| j        ¬¦  «        }n
J d¦   «         ‚|                      ||¦  «         d S )Nú.Unsupported use of op_LOAD_CLOSURE encounteredr¼   r   rw   )r  rc   rc  rd  rÏ   rÏ  rd  r   r>  rÒ  rV   rÁ  r   r  rš   rl  )r   rü   rõ  r2   r]  ri  rF   rB   s           r   Úop_LOAD_CLOSUREzInterpreter.op_LOAD_CLOSURE×  sî   € Ø”<Ô$Ô-×AÒAÀ$Ä(ÑKÔKˆDØ�tÔ)Ð)Ð)ð3ØŸš $™œ�B�BøÝ&ð 3ð 3ð 3ØJ�CÝ-¨cÑ2Ô2Ð2ð3øøøð ˜Ô+Ð+Ð+ØÔ(×.Ò.¨tÑ4Ô4�Ø×.Ò.¨sÑ3Ô3�Ý”Z  T¨5°d´hÐ?Ñ?Ô?��à'˜-Ñ'Ô'Ð'Ø�JŠJ�r˜3ÑÔÐÐÐs   ´A
 Á
A&c                 ó’  — t          | j        ¦  «        }|j        |k     rH| j        |j                 }	 |                      |¦  «        }nh# t          $ r d}t          |¦  «        ‚w xY w|j        |z
  }| j        |         }|                      |¦  «        }t          j	        |||| j
        ¬¦  «        }|                      ||¦  «         d S )Nrë  r¼   )rd   rÏ  rÏ   rd  r   r>  rÒ  rÁ  r   r  rš   rl  )	r   rü   rõ  rg  r2   r]  ri  rF   rB   s	            r   rì  zInterpreter.op_LOAD_CLOSUREè  sÔ   € Ý˜TÔ/Ñ0Ô0ˆJØŒx˜*Ò$Ð$ØÔ)¨$¬(Ô3�ð3ØŸš $™œ�B�BøÝ&ð 3ð 3ð 3ØJ�CÝ-¨cÑ2Ô2Ð2ð3øøøð ”h Ñ+�ØÔ)¨#Ô.�Ø×.Ò.¨sÑ3Ô3�Ý”Z  T¨5°d´hÐ?Ñ?Ô?�Ø�JŠJ�r˜3ÑÔÐÐÐs   ³A	 Á	A%c                 ó|  — |                       |¦  «        }|                       |¦  «        }t          j                             |d| j        ¬¦  «        }|                      ||¬¦  «         t          j                             |                       |¦  «        |fd| j        ¬¦  «        }|                      ||¬¦  «         d S )Nr5   r¼   rŸ  r&   rì  )r   rü   rA   rB   Ú	appendvarrõ  Ú
appendattrÚ
appendinsts           r   Úop_LIST_APPENDzInterpreter.op_LIST_APPENDú  rò  r   c                 ó¦  — |                       |¦  «        }|                       |¦  «        }d}| j        j        st          j        |¦  «        ‚| j        j        d         }t          |j        t          j        ¦  «        o|j        j	        dk    }d }	|rŸt          | j        j        d d…         ¦  «        D ]}}t          |t          j        ¦  «        sd} n^t          |j        t          j        ¦  «        rŒ@t          |j        t          j        ¦  «        r|j        |k    r|}	|j        j         } nd} |r|	€t          j        |¦  «        ‚|ru| j        j        }
| j        j        d         }|
                     |
                     |
                     |	¦  «        ¦  «        ¦  «         |j        }|	j        }|j        |_        d S t          j                             |d| j        ¬¦  «        }|                      ||¬¦  «         t          j                             |                       |¦  «        |fd| j        ¬¦  «        }|                      ||¬¦  «         d S )	Nz¨An unsupported bytecode sequence has been encountered: op_LIST_EXTEND at the start of a block.

This could be due to the use of a branch in a tuple unpacking statement.rz   rx   Frœ   r¼   rŸ  r&   )rd  r6  r—   r   r   r]   rB   r   r`   ra   r­   r^   r_   rA   rN   r5   r3   rV   rY   rš   rl  r[   )r   rü   rA   rB   Ú	extendvarrõ  ri  r    ÚokÚbuild_empty_listÚstmtsÚbuild_tuple_asgnrx   r¾   Ú
extendattrÚ
extendinsts                   r   Úop_LIST_EXTENDzInterpreter.op_LIST_EXTEND  sD  € Ø—’˜&Ñ!Ô!ˆØ—’˜‘”ˆðLˆð Ô!Ô&ð 	/ÝÔ)¨#Ñ.Ô.Ð.ð Ô!Ô& rÔ*ˆÝ˜œ
¥B¤GÑ,Ô,ÐO°´´À-Ò1Oˆð  ÐØð 	Ý  Ô!3Ô!8¸¸"¸Ô!=Ñ>Ô>ð ð �Ý! $­¬	Ñ2Ô2ð Ø�BØ�Eõ ˜dœj­"¬(Ñ3Ô3ð Øõ   ¤
­B¬GÑ4Ô4ð ¸¼ÈÒ9NÐ9NØ'+Ð$ð "œZÔ-Ð-�BØ�Eà�BØØð 	/Ð"Ð*ÝÔ)¨#Ñ.Ô.Ð.Øð 	3ØÔ&Ô+ˆEØ#Ô1Ô6°rÔ:Ðà�LŠL˜Ÿš 5§;¢;Ð/?Ñ#@Ô#@ÑAÔAÑBÔBÐBà*Ô0ˆKØ)Ô/ˆJØ*Ô0ˆJÔÐÐõ œŸš¨°¸t¼x˜ÑHÔHˆJØ�JŠJ˜Z¨iˆJÑ8Ô8Ð8ÝœŸš d§h¢h¨yÑ&9Ô&9¸E¸8ÀRØ*.¬(ð &ñ 4ô 4ˆJà�JŠJ˜Z¨cˆJÑ2Ô2Ð2Ð2Ð2r   c                 ó¨  — |                       |¦  «        }|                       |¦  «        }|                       |¦  «        }t          j                             |d| j        ¬¦  «        }|                      ||¬¦  «         t          j                             |                       |¦  «        ||fd| j        ¬¦  «        }|                      ||¬¦  «         d S )NrZ   r¼   rŸ  r&   rì  )	r   rü   rA   rU   rB   Ú
setitemvarrõ  Úsetitemattrrñ  s	            r   Ú
op_MAP_ADDzInterpreter.op_MAP_ADDD  s³   € Ø—’˜&Ñ!Ô!ˆØ�hŠh�s‰mŒmˆØ—’˜‘”ˆÝ”g—o’o f¨mÀÄ�oÑJÔJˆØ�
Š
˜¨:ˆ
Ñ6Ô6Ð6Ý”W—\’\ $§(¢(¨:Ñ"6Ô"6¸¸e¸ÀrØ&*¤hð "ñ 0ô 0ˆ
à�
Š
˜¨#ˆ
Ñ.Ô.Ð.Ð.Ð.r   c                 óv   — t          j        dt          | j        ¬¦  «        }|                      ||¬¦  «         d S )Nr|   r¼   rŸ  )r   rÁ   r|   rš   rl  )r   rü   rõ  r–  s       r   Úop_LOAD_ASSERTION_ERRORz#Interpreter.op_LOAD_ASSERTION_ERRORN  s7   € Ý”	Ð*­NÀÄÐIÑIÔIˆØ�
Š
˜ Sˆ
Ñ)Ô)Ð)Ð)Ð)r   c                 ó    —  | j         |i |¤Ž d S r   )rU  ©r   re   rT   s      r   Úop_LOAD_METHODzInterpreter.op_LOAD_METHODZ  s    € ØˆÔ˜4Ð' 3Ð'Ð'Ð'Ð'Ð'r   c                 ó    —  | j         |i |¤Ž d S r   )r›  r  s      r   Úop_CALL_METHODzInterpreter.op_CALL_METHOD]  s    € ØˆÔ˜tÐ+ sÐ+Ð+Ð+Ð+Ð+r   r   )F)NN)´r"   r#   r$   r%   r  r   rI  rD  r=  r?  rn  r;  rs  ru  r˜  r‡  rP  r¤  r�  r�  r«  r‘  r»  rÁ  Úpropertyr:  rÅ  rÈ  rÌ  rÏ  rÒ  r<  rl  rd  r  rå  rè  rê  rì  rî  rð  r÷  rù  r  r  r  r  r"  r&  r(  r*  r,  r/  r1  r3  r6  r9  r;  r=  r@  rC  rG  rM  Ú
op_DUP_TOPÚop_DUP_TOP_TWOrP  rS  rU  r[  r   r^  r>  ra  re  ri  rk  rr  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  r  r  r  r  r  r  r  r"  r&  r*  r-  r2  r5  r9  r<  r@  rC  rF  rJ  rN  rR  rU  rX  rZ  r\  r_  ra  rc  re  rg  ri  rk  rm  ro  rq  ru  rx  rz  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é  rì  rò  rû  rÿ  r  r  r  r&   r   r   r  r  1  sÆ  € € € € € ðð ð €Lð%ð %ð %ð":!ð :!ð :!ðxð ð ð
-ð -ð -ð^Fð Fð Fð,"ð "ð "ð&ð &ð &ð21ð 21ð 21ðh%ð %ð %ð@ð @ð @ð @ð&?ð ?ð ?ð
=ð =ð =ð
.ð .ð .ð(.ð .ð .ð;+ð ;+ð ;+ðzLð Lð LðBð Bð Bð,9ð 9ð 9ð	 ð 	 ð 	 ð ðð ñ „Xðð ð'ð 'ñ „Xð'ð ð)ð )ñ „Xð)ð ð&ð &ñ „Xð&ð ð)ð )ñ „Xð)ð ð)ð )ñ „Xð)ð ð  ð  ðHð ð ð ð$ð ð ð$ð ð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð)ð )ð )ð)ð )ð )ð!ð !ð !ð
)ð 
)ð 
)ð!ð !ð !ð,.ð .ð .ð )ð )ð )ð )ð )ð )ð$)ð )ð )ð$)ð )ð )ð(ð (ð (ð"(ð (ð (ð((ð (ð (ð((ð (ð (ð (ð (ð (ð (ð (ð (ð$(ð (ð (ð$(ð (ð (ð6ð 6ð 6ð.ð .ð .ð
Að Að Að6ð 6ð 6ð €JØ €Nð&ð &ð &ð&ð &ð &ð
!ð !ð !ðð ð ð, �GÒÐð	 ð 	 ð 	 ð 	 ð
 
�WÒ	Ð	ð	 ð 	 ð 	 ð 	 ð "Ð! )Ñ,Ô,Ð,ðð ð ð �GÒÐð	 ð 	 ð 	 ð 	 ð 
�WÒ	Ð	ð
	 ð 
	 ð 
	 ð 
	 ð "Ð! )Ñ,Ô,Ð,à�GÒÐð	ð 	ð 	ð	/ð 	/ð 	/ð 	/ð 
�WÒ	Ð	ð	2ð 	2ð 	2ð 	2ð "Ð! )Ñ,Ô,Ð,ð(ð (ð (ð
3ð 3ð 3ð 3ð3ð 3ð 3ð'ð 'ð 'ðð ð ðð ð ðð ð ðð ð ð*ð *ð *ð
ð 
ð 
ðð ð ðð ð ð8ð ð ð"&ð "&ð "&ðHAð Að AðAð Að Aðð ð ðAð Að AðFð ð ð&ð &ð &ð0ð ð ð(ð (ð (ð(ð (ð (ðð ð ð
ð ð ð
ð ð ð
/ð /ð /ð/ð /ð /ð *ð *ð *ðX(ð (ð (ð
%ð %ð %ð
%ð %ð %ð
%ð %ð %ð
%ð %ð %ð
ð ð ðð ð ð+ð +ð +ð(ð (ð (ð(ð (ð (ð(ð (ð (ð)ð )ð )ð(ð (ð (ð)ð )ð )ð(ð (ð (ð)ð )ð )ð(ð (ð (ð)ð )ð )ð)ð )ð )ð(ð (ð (ð(ð (ð (ð(ð (ð (ð0ð 0ð 0ð0ð 0ð 0ð0ð 0ð 0ð1ð 1ð 1ð0ð 0ð 0ð1ð 1ð 1ð0ð 0ð 0ð1ð 1ð 1ð0ð 0ð 0ð1ð 1ð 1ð1ð 1ð 1ð0ð 0ð 0ð0ð 0ð 0ð0ð 0ð 0ð'ð 'ð 'ð'ð 'ð 'ð'ð 'ð 'ð)ð )ð )ð )ð'ð 'ð 'ð
+ð +ð +ð2'ð 'ð 'ð
!ð !ð !ð'ð 'ð 'ð 'ð'ð 'ð 'ð*8ð 8ð 8ð7ð 7ð 7ð *ð  *ð  *ðD-ð -ð -ð.ð .ð .ð-ð -ð -ð.ð .ð .ð8ð 8ð 8ð7ð 7ð 7ð8ð 8ð 8ð7ð 7ð 7ð8ð 8ð 8ð7ð 7ð 7ð8ð 8ð 8ð7ð 7ð 7ðð ð ð'ð 'ð 'ð$,ð ,ð ,ð,ð ,ð ,ð%ð %ð %ðð ð ð:9ð 9ð 9ð
 �GÒÐð	 ð 	 ð 	 ð 	 ð  
�WÒ	Ð	ð	 ð 	 ð 	 ð 	 ð  "Ð! )Ñ,Ô,Ð,ð/ð /ð /ð?3ð ?3ð ?3ðB/ð /ð /ð*ð *ð *ð(ð (ð (ð,ð ,ð ,ð ,ð ,r   r  )0r¹  r+   rŠ  r~   Úloggingr’   Ú
numba.corer   r   r   Únumba.core.errorsr   r   r   Únumba.core.ir_utilsr	   r
   Únumba.core.utilsr   r   r   Únumba.core.byteflowr   r   r   r   Únumba.core.unsafer   Únumba.cpython.unsafe.tupler   Úobjectr   Ú	getLoggerr"   rA  r(   rK   rW   rq   ru   rˆ   rª   rÚ   rá   rï   r  rå   r  r&   r   r   ú<module>r     sq  ðØ €€€Ø Ð Ð Ð Ø 
€
€
€
Ø €€€Ø €€€Ø €€€à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5ð<ð <ð <ð <ð <ð <ð <ð <ð <ð <à CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ  Ð  Ð  Ð  Ð  Ð  Ø :Ð :Ð :Ð :Ð :Ð :ð:ð :ð :ð :ð :�Vñ :ô :ð :ð ˆ'Ô
˜HÑ
%Ô
%€ð1ð 1ð 1ð 1ð 1ˆvñ 1ô 1ð 1ðh
ð 
ð 
ð2&ð &ð &ðRHð Hð HðV ð  ð  ðFið ið iðX|ð |ð |ð~[ð [ð [ð|ð ð ð@[ð [ð [ð|.ð .ð .ðb2ð 2ð 2ðjm,ð m,ð m,ð m,ð m,�&ñ m,ô m,ð m,ð m,ð m,r   