§
    1@Äj/S ã                   óè  — 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mZ d dlmZmZmZmZ d dlmZ d dlmZ ed	v rd d
lmZ  nedv rn e!e¦  «        ‚ 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„ Z0d„ Z1d„ Z2 G d„ de"¦  «        Z3ed	v r G d„ de4¦  «        Z5dS edv rdS  e!e¦  «        ‚)é    N)ÚerrorsÚirÚconfig)ÚNotDefinedErrorÚUnsupportedBytecodeErrorÚerror_extras)Úget_definitionÚguard)Ú	PYVERSIONÚBINOPS_TO_OPERATORSÚINPLACE_BINOPS_TO_OPERATORSÚ_lazy_pformat)ÚFlowÚAdaptDFAÚAdaptCFAÚ	BlockKind)Úeh)Úunpack_single_tuple©©é   é   ©r   é   ©r   é   ©r   é   )ÚCALL_INTRINSIC_1_Operand©©r   é
   ©r   é   c                   ó   — 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     úGC:\Projects\Historical\venv\Lib\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-   r2   © 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_destsr1   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ÚappendrA   Úadd)r*   ÚsrcvarÚdestvarÚsrcnameÚdestnameÚds         r,   ÚassignzAssigner.assignB   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;   rA   Údiscard)r*   rK   s     r,   Úget_assignment_sourcezAssigner.get_assignment_sourceV   s<   € ð
 �tÔ'Ð'Ð'ØÔ# HÔ-Ð-ØÔ×!Ò! (Ñ+Ô+Ð+Øˆtr.   N)r3   r4   r5   r6   r-   rM   rP   r7   r.   r,   r9   r9   -   sK   € € € € € ð
ð 
ð"ð "ð "ðð ð ð(ð ð ð ð r.   r9   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)ÚtargetrC   ÚvalueÚ_definitionsÚremoverG   r   )Úold_bodyÚidxÚfunc_irÚalready_deleted_defsÚlhsÚrhss         r,   Ú_remove_assignment_definitionr\   a   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_indexesr\   )
rV   Úkeyword_exprÚnew_bodyÚbuildmap_idxrX   rY   Úkwsra   ÚkeyÚindexs
             r,   Ú#_call_function_ex_replace_kws_smallrh   z   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.
    Nr^   FÚgetattrÚ__setitem__TÚcallé   r   )r\   Ú
isinstancer   ÚAssignrS   ÚConstr   rR   rC   ÚExprÚopÚattrÚfuncÚlenÚargsrF   )rV   Úbuildmap_namerd   Ú
search_endrc   rX   ÚerrmsgrY   re   Úsearch_startÚ
const_stmtÚkey_var_nameÚkey_valÚfound_getattrÚgetattr_stmtÚsetitem_stmtÚarg_vars                    r,   Ú#_call_function_ex_replace_kws_larger‚   £   sß  € ðN "€Hˆ\Ñå!Ø�, Ð)=ñô ð ð €CØ !Ñ#€LØ
˜*Ò
$Ñ
$à˜lÔ+ˆ
å�z¥2¤9Ñ-Ô-ð	3å˜:Ô+­R¬XÑ6Ô6ð	3õ +¨6Ñ2Ô2Ð2Ø!Ô(Ô-ˆØÔ"Ô(ˆØ˜Ñˆàˆà˜JÒ&Ð&Ø!ð 'ð $ LÔ1ˆLå˜<­¬Ñ3Ô3ð"å˜|Ô1µ2´7Ñ;Ô;ð"ð !Ô&Ô)¨YÒ6Ð6à Ô&Ô,Ô1Ø$ò%ð %ð !Ô&Ô+¨}Ò<Ð<à $��ð$  Ñ!�ðA ˜JÒ&Ð&Ø!ð 'ðD ð	3à˜zÒ)Ð)õ +¨6Ñ2Ô2Ð2Ø ¨qÑ 0Ô1ˆå�|¥R¤YÑ/Ô/ð	3å˜<Ô-­r¬wÑ7Ô7ð	3ð Ô"Ô%¨Ò/Ð/àÔ"Ô'Ô,ØÔ&Ô+ò,ð ,õ �LÔ&Ô+Ñ,Ô,°Ò1Ð1àÔ"Ô'¨Ô*Ô/Øò ð  õ +¨6Ñ2Ô2Ð2ØÔ$Ô)¨!Ô,ˆà�
Š
�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)r\   r_   )rV   Ú
tuple_exprrc   Úbuildtuple_idxrX   rY   s         r,   Ú$_call_function_ex_replace_args_smallr†   .  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   Nr^   ÚunreachableÚbuild_tupleÚbinoprm   TFéÿÿÿÿ)rn   r   ro   rS   ÚVarrC   r\   ÚAssertionErrorrR   rq   rr   r_   ÚfnÚoperatorrG   r   rZ   r[   ru   rF   )rV   Úvararg_stmtrc   rx   rX   ry   rY   rz   Ú
total_argsÚtarget_nameÚconcat_stmtÚlhs_nameÚrhs_nameÚarg_tuple_stmtÚkeep_lookingÚ	next_stmts                   r,   Ú$_call_function_ex_replace_args_larger™   Q  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Ñ6Ô6Ð6Ø"Ô(Ô,Ô1ˆHØ"Ô(Ô,Ô1ˆHð & j°1¡nÔ5ˆNå˜>­2¬9Ñ5Ô5ð7åØ"Ô(­"¬'ñô ð7ð #Ô(Ô+Ø$ò%ð %õ ˜Ô,Ô2Ñ3Ô3°qÒ8Ð8õ /¨vÑ6Ô6Ð6ØÔ$Ô)¨XÒ5Ð5å$ ]Ñ3Ô3Ð3ØÔ&Ô+¨xÒ7Ð7Ø&��õ /¨vÑ6Ô6Ð6Ø×ÒØÔ$Ô*¨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, ...)Frl   NTr^   r   Ú	build_mapr‰   Úlist_to_tuple©rR   c                 ó   — g | ]}|®|‘ŒS r(   r7   ©Ú.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Úbodyrn   r   ro   rS   rq   rr   Úvarkwargrv   re   ÚvarargrR   rC   r   r_   rh   r‚   r†   r™   rl   rt   Úlocr\   rT   rF   ru   ÚclearÚextend)rX   ry   rY   ÚblkÚblk_changedrc   ÚiÚstmtrl   rv   re   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?å˜tœz­2¬7Ñ3Ô3ñM?ð ”J”M VÒ+Ñ+Ø”JÔ'Ñ3à"�Ø”z�Ø”y�Ø”h�ð œ�Øœ=�Ø  1™u�à+�Ø"�Ø�Ø" aÒ'Ð'°Ð'Ø"%¤(¨<Ô"8�Kå" ;µ´	Ñ:Ô:ð*à'Ô.Ô3°x´}ÒDÐDà $˜˜à$¨Ñ)˜ð # aÒ'Ð'°Ð'ð ð;à ð;õ # ;Ô#4µb´gÑ>Ô>ð	;ð
 (Ô-Ô0°KÒ?Ð?õ 3°6Ñ:Ô:Ð:àÔ$Ô*ð +õ >ØœØ#Ô)Ø Ø$ØØ,ñô �C�Cõ* >ØœØ œØ$Ø˜A™Ø ØØØ,ñ	ô 	�Cð  ,�àÑ%Øð ?õ 7°vÑ>Ô>Ð>Ø!-�JØ#�HØ!�EØ$¨š/˜/°%˜/Ø#&¤8¨JÔ#7˜å& xµ´Ñ;Ô;ð,à (¤Ô 4¸¼Ò CÐ Cà$(˜E˜Eà&¨!™O˜Jð %¨š/˜/°%˜/ð !ð ?õ 7°vÑ>Ô>Ð>å" 8¤>µ2´7Ñ;Ô;ð<à$œNÔ-°Ò>Ð>õ  DØœHØ$œNØ$Ø&Ø#Ø0ñ ô  ˜˜õ # 8¤>µ2´7Ñ;Ô;ð'à$œNÔ-°Ò@Ð@õ
 7°vÑ>Ô>Ð>õ0  DØœHØ$Ø$Ø&Ø#Ø"Ø0ñ ô  ˜õ œ7Ÿ<š<Ø”I˜t S¨$¬(¸4¼;ð (ñ ô �õ .Ø”H˜a Ð*>ñô ð õ ”y ¨4¬;¸¼ÑAÔA�àÔ$ T¤[Ô%5Ô6×=Ò=¸hÑGÔGÐGÐGå˜4¥¤Ñ+Ô+ð?å˜tœz­2¬7Ñ3Ô3ð?ð ”J”M VÒ+Ð+Ø”JÔ%Ð1ð
 ”z�Ø"œkÔ.�à 7Ô#7Ð7Ð7Ý˜GÔ0°Ô=Ñ>Ô>À!ÒCÐCð #Ô/°Ô<¸QÔ?�DÝ! $­¬Ñ0Ô0ð ?°T´WÀÒ5OÐ5OÝ6°vÑ>Ô>Ð>à�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        Š g Šdˆˆˆˆ fd„	}|r#t          d¦  «         ‰                     ¦   «          |d         d         }‰ }|D �]¦}t          |t          j        ¦  «        �rst          |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         }||v rVt          |t          j        ¦  «        r<‰                     |¦  «         ‰ j                             |j        j        d¦  «         �Œ/ |||j        ¦  «        }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        }�ŒÚ‰                     |¦  «         �Œñ|
j        dk    rg|j        j        |	k    rWt          j
                             |
j        |
j        ¦  «        }t          j        ||j        |
j        ¦  «        } ‰|¦  «         �Œc‰                     |¦  «         �Œz‰                     |¦  «         �Œ‘‰                     |¦  «         �Œ¨ ||‰ 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, collecting runs of them
       into a single `BUILD_TUPLE` which is then appended via binary addition
       to the accumulator (an append-only window becomes the result itself).
    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

    Step 4 coalesces because CPython emits this bytecode for every call with
    more than 30 arguments, and a `BUILD_TUPLE` per item leaves a tuple of
    every prefix length, i.e. IR (and LLVM lowered from it) quadratic in the
    item count. For `f(x[0], x[1], ..., x[30])` the emitted IR used to be::

        $14build_list.2 = build_tuple(items=[])
        $20binary_subscr.5 = getitem(value=x, index=$const18.4.1)
        $24list_append.6_var = build_tuple(items=[$20binary_subscr.5])
        $24list_append.7 = $14build_list.2 + $24list_append.6_var
        $30binary_subscr.10 = getitem(value=x, index=$const28.9.2)
        $34list_append.11_var = build_tuple(items=[$30binary_subscr.10])
        $34list_append.12 = $24list_append.7 + $34list_append.11_var
        ...                    # 29 more tuples, of widths 3, 4, ..., 31
        $326call_intrinsic_1.158 = $324list_append.157
        $328call_function_ex.159 = call $4load_global.0(
            *$326call_intrinsic_1.158, vararg=$326call_intrinsic_1.158)

    and is now a single tuple, built once and passed straight to the call::

        $20binary_subscr.5 = getitem(value=x, index=$const18.4.1)
        $30binary_subscr.10 = getitem(value=x, index=$const28.9.2)
        ...
        $326call_intrinsic_1.158 = build_tuple(items=[$20binary_subscr.5,
            $30binary_subscr.10, ..., $320binary_subscr.155])
        $328call_function_ex.159 = call $4load_global.0(
            *$326call_intrinsic_1.158, vararg=$326call_intrinsic_1.158)
    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Úrangeru   r©   rn   r   ro   rS   rq   rr   ÚinforR   rC   )r¶   rW   r²   rS   Ú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.   Nr^   r   z
WINDOW:Ú rj   r®   rF   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 definitionsr^   N)rF   rR   rC   rT   ru   r­   rS   )r¡   rX   Únew_holes    €€r,   Úappend_and_fixz/peep_hole_list_to_tuple.<locals>.append_and_fixr  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.   c           
      óü  •— ‰
�rTt          ‰
¦  «        }‰
                     ¦   «          |d         j        }t          j                             ||¦  «        }| ‰u rg‰	j        j        s[|�! ‰t          j        |||¦  «        ¦  «         |S | 	                    d|¬¦  «        }  ‰t          j        || |¦  «        ¦  «         | S | 	                    d|¬¦  «        } ‰t          j        |||¦  «        ¦  «         | 	                    d|¬¦  «        } ‰t          j        t          j         
                    t          j        | ||¬¦  «        ||¦  «        ¦  «         |} |�! ‰t          j        | ||¦  «        ¦  «         |S | S )aY  Emit pending appends as one build_tuple. When `target`
                    is given, an append-only window is written to it as a
                    plain build_tuple (which the CALL_FUNCTION_EX peephole
                    requires for calls with kwargs); any other shape keeps
                    the assignment of the accumulator to `target`.r   Nz$_list_append_tuple©r¬   z$_list_append_acc©rŽ   rZ   r[   r¬   )r>   r­   Úscoper   rq   r‰   rS   r_   ro   ÚredefinerŠ   r�   rG   )Úaccr¬   rR   r_   rÍ   ÚtupÚtup_varÚacc_varrÉ   ÚinitÚpending_appendsÚthe_build_lists           €€€€r,   Úflush_pending_appendsz6peep_hole_list_to_tuple.<locals>.flush_pending_appends‡  s¡  ø€ ð 'ñ &Ý $ _Ñ 5Ô 5˜Ø'×-Ò-Ñ/Ô/Ð/Ø % a¤¤˜Ý œg×1Ò1°%¸Ñ=Ô=˜Ø .Ð0Ð0¸¼Ô9IÐ0à%Ð1Ø . ­r¬y¸¸fÀcÑ/JÔ/JÑ KÔ KÐ KØ'- Ø"'§.¢.Ð1FØ58ð #1ñ #:ô #:˜Cà*˜N­2¬9°S¸#¸sÑ+CÔ+CÑDÔDÐDØ#&˜JØ"'§.¢.Ð1FØ58ð #1ñ #:ô #:˜à&˜¥r¤y°°g¸sÑ'CÔ'CÑDÔDÐDØ"'§.¢.Ð1DÈ# .Ñ"NÔ"N˜Ø&˜ÝœIÝ "¤§¢µ´À3Ø29¸sð !.ñ !Dô !Dà '¨ñô ñô ð ð &˜ØÐ)Ø&˜¥r¤y°°f¸cÑ'BÔ'BÑCÔCÐCØ%˜Ø�Jr.   z
BLOCK:rl   Ú_var_Útuple©rC   rS   r¬   ú$_list_extend_gv_tuplerË   )rR   rS   r¬   r7   rÌ   Ú
build_listr�   z

NEW HOLE:z
DUMP post hole:r(   ) r¦   r_   r©   ÚprintrR   rC   rn   r   ro   rS   rq   rr   rs   rF   ÚdumprT   rD   rt   rv   rŒ   r¬   r‰   ÚGlobalrØ   rÍ   rÎ   rl   rŠ   r�   rG   r­   r®   )!rX   Ú_DEBUGÚoffsetrÅ   rÄ   Ú	peep_holer¡   ÚappendsÚextendsÚ
const_listr»   rÖ   Út2l_agnrÏ   ÚfnameÚargÚtmp_namerÃ   Úgv_tupleÚ	tuple_varÚvarÚasgnÚnewÚcpyÚheadÚtailÚtmprÉ   r¯   rÓ   rÈ   rÔ   rÕ   s!   `                          @@@@@@r,   Úpeep_hole_list_to_tuplerò   ü  sü  øøøøøøø€ ðv €Fð ”~×+Ò+Ñ-Ô-ð lñ l‰ˆ�ðj	ð.ð .ð .ð .ð .ð" )Ð(Ñ*Ô*ˆ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à$,¨1øà�ð	Hð 	Hð 	Hð 	Hð 	Hð 	Hð "&¤�ð #%�ð#ð #ð #ð #ð #ð #ð #ð #ð #ðL ð Ý˜*Ñ%Ô%Ð%Ø—H’H‘J”J�Jð ! œ) Aœ,�Ø$�Ø"ð T+ñ T+�AÝ! !¥R¤YÑ/Ô/ñ S+Ý% a¤g­r¬wÑ7Ô7ñ N/Ø#$¤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Ø(-°Ð(8Ð(8Ý0:¸3ÅÄÑ0GÔ0Gð )9à(7×(>Ò(>¸sÑ(CÔ(CÐ(CØ(/Ô(<×(@Ò(@ÀÄÄØAEñ)Gô )Gð )Gá(0Ø*?Ð*?ÀÀQÄUÑ*KÔ*K 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Ñ.Ô.Ð.Ñ.ð !Ÿš¨Ñ*Ô*Ð*Ñ*ð
 &Ð% c¨>Ô+=Ø-4¬^ð=ñ =ô =ð =àð !Ý˜-Ñ(Ô(Ð(Ø%ð !ð !˜Ý˜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øð ñUj	ñT à€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_varsrC   Ú
startswithrG   rn   r   ro   rR   rF   r­   r®   )rX   Ú	dead_varsr¯   r²   ÚusedÚvrc   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›   rl   r   r^   rj   )rk   Ú_update_from_bytecoderk   rû   Tc                 ó   — g | ]}|®|‘ŒS r(   r7   rŸ   s     r,   r¢   z3peep_hole_fuse_dict_add_updates.<locals>.<listcomp>$  r£   r.   )r¤   r¥   r<   r=   r@   r¦   r§   r>   r¨   r©   rn   r   ro   rS   rq   rr   rR   rC   rF   r_   r`   rt   rv   rs   r®   r\   Ú_build_new_build_mapr­   r   rô   )rX   ry   rY   r¯   rc   Úlit_map_def_idxÚlit_map_use_idxÚmap_updatesr°   r±   r²   Únew_instÚstmt_build_map_outÚ	func_namer   rv   Úupdate_map_namers   Úd2_map_nameÚlinenumrë   s                        r,   Úpeep_hole_fuse_dict_add_updatesr  K  sì  € õD Œ_ð #ñ $ô $€Fõ 'Ô2µ3Ñ7Ô7ÐØŒ~×$Ò$Ñ&Ô&ð HDñ HDˆØˆàˆõ
 &Ô1µ$Ñ7Ô7ˆàˆØˆå  ¤Ñ*Ô*ð v	&ñ v	&‰GˆAˆtàˆHð "&ÐÝ˜$¥¤	Ñ*Ô*ñ UG­z¸$¼*ÅbÄgÑ/NÔ/Nñ UGØ”:”= 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Gà(Ô/Ô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  õ '?¸vÑ&FÔ&FÐ Fõ ˜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Ë   Nr^   r   zPOP_BLOCK peephole failedr‹   )Úsortedr¦   r_   r¨   r©   rn   r   ÚPopBlockrF   ÚBlockrÍ   r¬   r®   ÚJumpru   r   ÚInternalErrorÚupdate)rX   Ú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 r7   r7   ©r    r¡   Úys      r,   ú
<dictcomp>z(_build_new_build_map.<locals>.<dictcomp>v  s   € ÐDÐDÐD¡$ ! Q˜˜AÐDÐDÐDr.   N©r_   ÚsizeÚliteral_valuera   r¬   )rR   rS   r
   r	   rn   r   rp   rÞ   ÚFreeVarrF   r&   rC   ru   Úzipr¨   rq   r›   r¬   rT   ro   rŒ   rÍ   )rX   rC   rV   Ú
old_linenoÚ	new_itemsÚ
old_assignÚ
old_targetÚold_bmÚliteral_keysr§   ÚpairÚkrø   Úkey_defÚ	value_defra   r$  r±   Únew_bms                      r,   rý   rý   Z  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                   ó˜  — 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#e$d"v re#Z%ne$d#v rn e&e$¦  «        ‚d$„ Z'd%„ Z(d&„ Z)d'„ Z*d(„ Z+d)„ Z,d*„ Z-d+„ Z.d,„ Z/d-„ Z0d.„ Z1d/„ Z2e$d0v rd1„ Z3ne$d2v rn e&e$¦  «        ‚e$d0v rd3„ Z4ne$d2v rn e&e$¦  «        ‚d4„ Z5d5„ Z6d6„ Z7d7„ Z8d8„ Z9d9„ Z:d:„ Z;d;„ Z<d<„ Z=d=„ Z>d>„ Z?d?„ Z@d@„ ZAe$dAv rdÎdB„ZBneAZBe$dAv r
dC„ ZCdD„ ZDdE„ ZEne$dFv rn e&e$¦  «        ‚e$d0v reBZFdG„ ZGne$d2v rn e&e$¦  «        ‚e$d"v reBZHeCZIne$d#v rn e&e$¦  «        ‚dH„ ZJdI„ ZKdJ„ ZLeLZMeLZNdK„ ZOdL„ ZPdM„ ZQdN„ ZRe$d"v rdO„ ZSne$d#v rn e&e$¦  «        ‚e$dPv rdQ„ ZTne$dRv rdS„ ZTn e&e$¦  «        ‚dT„ ZUe$dPv rdU„ ZVne$dRv rdV„ ZVn e&e$¦  «        ‚e$dPv rdW„ ZWe$dPv rdX„ ZXne$dRv rdY„ ZXn e&e$¦  «        ‚dZ„ ZYdÍd[„ZZe$d"v rne$d#v rd\„ Z[n e&e$¦  «        ‚d]„ Z\d^„ Z]d_„ Z^d`„ Z_da„ Z`db„ Zadc„ Zbe$dAv rdd„ Zcne$dek     sJ ‚df„ Zddg„ Zedh„ Zfdi„ Zgdj„ Zhdk„ Zidl„ Zjdm„ Zkdn„ Zldo„ Zme$d"v rne$d#v rdp„ Znn e&e$¦  «        ‚dq„ Zodr„ Zpds„ Zqdt„ Zrdu„ Zsdv„ Ztdw„ Zudx„ Zvdy„ Zwdz„ Zxd{„ Zyd|„ Zzd}„ 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’d•„ Z“d–„ Z”d—„ Z•d˜„ Z–d™„ Z—dš„ Z˜d›„ Z™dœ„ Zšd�„ Z›dž„ ZœdŸ„ Z�d „ ZžežZŸdÍd¡„Z d¢„ Z¡e$d0v rd£„ Z¢ne$d2v rn e&e$¦  «        ‚e$dAv rd¤„ Z£ne$dFv rn e&e$¦  «        ‚d¥„ Z¤d¦„ Z¥d§„ Z¦dÍd¨„Z§d©„ Z¨dª„ Z©d«„ Zªd¬„ Z«d­„ Z¬d®„ Z­e$d0v rd¯„ Z®d°„ Z¯ne$d2v rn e&e$¦  «        ‚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Àe$dPv rdÂ„ ZÁne$dRv rdÃ„ ZÁn e&e$¦  «        ‚dÄ„ ZÂdÅ„ ZÃdÆ„ ZÄe$d"v rne$d#v rdÇ„ ZÅn e&e$¦  «        ‚dÈ„ ZÆdÉ„ ZÇe$d0v rdÊ„ ZÈne$d2v rn e&e$¦  «        ‚e$d"v rdË„ ZÉne$d#v rn e&e$¦  «        ‚e$d"v rdÌ„ ZÊdS e$d#v rdS  e&e$¦  «        ‚)ÐÚ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Ü   rt   Ú	arg_countÚ	arg_namesr   ÚLocÚfrom_function_idr¬   Ú	first_locÚis_generatorr¦   r<   r=   r>   Údefinitionsr@   Ú_exception_vars)r*   r5  s     r,   r-   zInterpreter.__init__•  s‘   € ØˆŒØÔð 	 Ý�'”,ÑÔÐØ Ô*ˆŒØ Ô*ˆŒÝ$&¤F×$;Ò$;¸GÑ$DÔ$DÐDˆŒ�4”>Ø#Ô0ˆÔð ˆŒå&Ô2µ4Ñ8Ô8ˆÔõ  #™uœuˆÔÐÐr.   c           	      óž  ‡ — |‰ _         g ‰ _        t          j        d‰ j        ¬¦  «        }‰ j                             |¦  «         t          |¦  «        }|                     ¦   «          t          |¦  «        ‰ _	        t          |¦  «        ‰ _        t          j        r‰ j                             ¦   «          d‰ _        d‰ _        d}‰ j        j                             ¦   «         D ].\  }}|j        r"t)          |t)          |j        ¦  «        ¦  «        }Œ/|‰ _        t,          dv r+t/          ˆ fd„‰ j         j        D ¦   «         ¦  «        ‰ _        nt,          dv rnt5          t,          ¦  «        ‚g ‰ _        d‰ _        ‰ j                             t          j        ‰ j        ‰ j        ¬¦  «        ¦  «         ‰                      ¦   «         D ]\  }}‰                      ||¦  «         Œt,          dv r‰                       ¦   «          nt,          dv rnt5          t,          ¦  «        ‚‰  !                    ¦   «          t          j"        ‰ j        ‰ j#        ‰ j$        ‰ j%        ‰ j&        ‰ j'        ‰ j(        ¦  «        }	tR           *                    tW          |	d	„ ¬
¦  «        ¦  «         g }
t,          dv r|
                     tX          ¦  «         t,          dv r|
                     tZ          ¦  «         |
                     t\          ¦  «         t,          dv r4|
                     t^          ¦  «         |
                     t`          ¦  «         ‰  1                    |
|	¦  «        }|S )z0
        Generate IR for this bytecode.
        N)Úparentr¬   r   r   c                 ó4   •— g | ]}|j         ‰j        k     ¯|‘ŒS r7   )ÚstartÚlast_active_offset)r    Úentryr*   s     €r,   r¢   z)Interpreter.interpret.<locals>.<listcomp>Ã  s2   ø€ ð ;ð ;ð ;˜5Ø”K $Ô"9Ò9Ð9ð Ø9Ð9Ð9r.   r    ©r#   r   r   r   r   ©r!   c                 ó*   — |                       ¦   «         S r(   )Údump_to_string©r¡   s    r,   ú<lambda>z'Interpreter.interpret.<locals>.<lambda>Þ  s   € ¸×8HÒ8HÑ8JÔ8J€ r.   )Ú	lazy_func)r!   r#   r   r   r   r   )2ÚbytecodeÚscopesr   ÚScoper¬   rF   r   Úrunr   Údfar   Úcfar   ÚDUMP_CFGrÝ   Úcurrent_blockÚcurrent_block_offsetr¦   r_   r©   ÚmaxrC  r   rØ   Úexception_entriesÚactive_exception_entriesÚNotImplementedErrorÚsyntax_blocksÚdfainfoÚcurrent_scopeÚ
_iter_instÚ	_dispatchÚ_end_try_blocksÚ_legalize_exception_varsÚ
FunctionIRr<  r5  r;  r=  r7  r8  Ú_loggerÚdebugr   r  rò   rù   r¼   r  Úpost_process)r*   rL  Úglobal_scopeÚflowrC  Ú_Úinst_blocksr  re   rX   Ú	peepholesÚpost_processed_irs   `           r,   Ú	interpretzInterpreter.interpret¦  sC  ø€ ð !ˆŒàˆŒÝ”x t°´Ð:Ñ:Ô:ˆØŒ×Ò˜<Ñ(Ô(Ð(å�H‰~Œ~ˆØ�Š‰
Œ
ˆ
Ý˜D‘>”>ˆŒÝ˜D‘>”>ˆŒÝŒ?ð 	ØŒH�MŠM‰OŒOˆOð "ˆÔØ$(ˆÔ!ØÐØ"œhœo×3Ò3Ñ5Ô5ð 	@ð 	@‰NˆAˆ{ØÔð @Ý%(Ð);Ý),¨[Ô-=Ñ)>Ô)>ñ&@ô &@Ð"øà"4ˆÔåÐ<Ð<Ð<Ý,1ð;ð ;ð ;ð ; D¤MÔ$Cð ;ñ ;ô ;ñ-<ô -<ˆDÔ)Ð)õ Ð,Ð,Ð,Øå%¥iÑ0Ô0Ð0ØˆÔØˆŒàŒ×Ò�2œ8¨4Ô+=À4Ä8ÐLÑLÔLÑMÔMÐMð ŸšÑ*Ô*ð 	&ð 	&‰IˆD�#Ø�NŠN˜4 Ñ%Ô%Ð%Ð%ÝÐEÐEÐEà× Ò Ñ"Ô"Ð"Ð"Ý˜*Ð$Ð$Øå%¥iÑ0Ô0Ð0Ø×%Ò%Ñ'Ô'Ð'å”- ¤¨TÔ->ÀÄØ $¤°Ô0@Ø $¤°´ñ@ô @ˆõ 	�Š•m GØ.JÐ.JðLñ Lô Lñ 	Mô 	Mð 	Mð
 ˆ	ÝÐEÐEÐEØ×ÒÕ9Ñ:Ô:Ð:ÝÐNÐNÐNØ×ÒÕ4Ñ5Ô5Ð5Ø×ÒÕ3Ñ4Ô4Ð4ÝÐNÐNÐNð
 ×ÒÕKÑLÔLÐLØ×ÒÕ<Ñ=Ô=Ð=à ×-Ò-¨i¸ÑAÔAÐà Ð r.   c                 ó&   — |D ]} ||¦  «        }Œ|S r(   r7   )r*   rh  rX   Úpeeps       r,   rc  zInterpreter.post_processô  s%   € Øð 	$ð 	$ˆDØ�d˜7‘m”mˆGˆGØˆr.   c           	      ó  ‡ ‡— t           dv 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
        rE  c                 ó6  •— | r•|                       ¦   «         }|d         t          d¦  «        k    rd‰‰_        t          ‰j        ¦  «        }‰j                             ¦   «          ‰                     ¦   «          ‰j                             |¦  «         dS | °“d S d S )NÚkindÚTRYT)rD   r   rS  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   rQ  Úgraphr¦   r_   rP  ÚinfosÚ
blockstackÚpredecessorsr¨   r&  Úminru   r>   )r*   rw  rà   Úcur_bsÚincrf  Úinc_bsr±   r¡   r   rv  ru  s   `          @r,   r^  zInterpreter._end_try_blocksù  s7  øø€ õ  ÐIÐIÐIÐIÐIØ””ˆØ!œ[×.Ò.Ñ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õ   rI  s    r,   rJ  z6Interpreter._legalize_exception_vars.<locals>.<lambda>6  s   € ¨A¯LªL¸Ñ,=Ô,=Ð(=€ r.   r   z5Exception object cannot be stored into variable ({}).rË   N)r>  r`   r=  r_   rn   r   rŒ   rC   rG   r>   Úfilterr[  Úgetr¬   r   r   r0   )
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ˆØð 	Nà˜A”JˆEØÔ$×(Ò(¨Ñ/Ô/Ô3ˆCØIˆCÝÔ1°#·*²*¸UÑ2CÔ2CÈÐMÑMÔMÐMð	Nð 	Nr.   c                 óž   — t          | j        ¦  «        D ]7\  }}t          j        ||| j        ¬¦  «        }|                      ||¦  «         Œ8d S )N)rg   rC   r¬   )r¨   r8  r   ÚArgr¬   Ústore)r*   rg   rC   Ú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        dk    r| j        |j                 }| j                             |j	        ¦  «        | _        |  
                    |j        ¦  «         |dk    r|                      ¦   «          | j        j        D ]<\  }}| j        |         }| j                             |j	        ¦  «        | _        ||fV — Œ=|                      ¦   «          Œêd S )NÚEND_FORr   )r¨   rQ  ÚiterliveblocksrL  rà   ÚopnameÚnextr¬   Úwith_linenoÚlinenoÚ_start_new_blockr�  rZ  ÚinstsÚ_end_current_block)r*   Úblkctru  Ú	firstinstrà   re   r  s          r,   r\  zInterpreter._iter_instD  s  è è € Ý% d¤h×&=Ò&=Ñ&?Ô&?Ñ@Ô@ð 	&ð 	&‰LˆE�5Øœ e¤lÔ3ˆIð
 Ô 9Ò,Ð,Ø œM¨)¬.Ô9�	Ø”x×+Ò+¨IÔ,<Ñ=Ô=ˆDŒHØ×!Ò! %¤,Ñ/Ô/Ð/Ø˜Šzˆzà×%Ò%Ñ'Ô'Ð'Ø#œ|Ô1ð  ð  ‘�˜Ø”} VÔ,�Øœ8×/Ò/°´Ñ<Ô<�”Ø˜C�i����Ø×#Ò#Ñ%Ô%Ð%Ð%ð#	&ð 	&r.   c                 ó\  — | 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v 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v 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Ë   rE  r‹   rF  )rS  Úinsert_blockrZ  Úactive_try_blockÚis_terminatedrQ  rw  Únodesr   ÚBranchrƒ  r¬   rF   r  rP  rx  rT  r9   Úassignerr   rY  ÚexitrD   rn   ÚWithr
  Ú_insert_try_block_beginrX  )r*   rà   ÚoldblockÚtryblkÚbranchÚjmpÚsynblkÚ	newtryblks           r,   r•  zInterpreter._start_new_blockX  sG  € ØÔ%ˆØ×Ò˜&Ñ!Ô!Ð!à26´,ÐH�”Ô.Ð.ÀDˆàÐ¨Ô(>Ðð Ð! f¨U¤m°t´x´~×7KÒ7KÑ7MÔ7MÐ&MÐ&Mõ œØŸšÐ"4Ñ5Ô5Ø! %œ=Ø"Øœð	ñ ô �ð —’ Ñ'Ô'Ð'Ð'õ ”g˜f¨$¬(Ð3Ñ3Ô3�Ø—’ Ñ$Ô$Ð$ð ”x”~ dÔ&?Ô@ˆŒÝ ™
œ
ˆŒåÐEÐEÐEàÔ$ð Ø˜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(   )rS  r£  rZ  r¢  Ú_insert_exception_checkÚ_remove_unused_temporariesÚ_insert_outgoing_phis)r*   r«  s     r,   r—  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©rS   rC   rÎ   r7   z$callres_{}N)r   rÞ   r¬   r‹  rq   rl   rƒ  r0   )r*   rt   Ú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¼  r1   s    r,   r©  z#Interpreter._insert_try_block_begin©  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¾  r1   s    r,   rq  z!Interpreter._insert_try_block_end®  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.
        r›  N©rS   r¬   z2exception variable CANNOT be defined by other code©rS   rC   )rZ  r¢  Úoutgoing_edgepushedrƒ  r   rp   r¬   r=  r�   r‹  r>  rG   )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_checkrœ  N)rÆ  rº  r   rÈ  r1   s    r,   r±  z#Interpreter._insert_exception_checkÇ  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_iterr‹   N)rS  r©   rn   r   ÚSetItemÚSetAttrrS   rC   ro   rR   rE   r¦  rA   rŒ   rF   rq   rr   Ú_var_used_in_binopr=  rU   r®   rD   )r*   rc   Úreplaced_varr  Úprev_assigns        r,   r²  z&Interpreter._remove_unused_temporariesÏ  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
        )rŠ   Úinplace_binop)rn   r   rq   rr   rZ   rC   r[   )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                 óV  — | j         j                             ¦   «         D �]\  }}| j                             || j        ¬¦  «        }	 |                      |¦  «        }nC# t          j        $ r1 t          dv 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Ë   rE  zunexpected missing definitionNrÀ  ©rS   rR   r¬   )rZ  Úoutgoing_phisr_   r[  Úget_or_definer¬   rƒ  r   r   r   rp   ro   r=  rC   rF   rS   rS  r£  Úinsert_before_terminator)r*   Úphinamer+   rR   rŒ  r²   s         r,   r³  z!Interpreter._insert_outgoing_phis  s\  € ð
 !%¤Ô :× @Ò @Ñ BÔ Bð 	Bñ 	BÑˆG�WØÔ'×5Ò5°gØ:>¼(ð 6ñ Dô DˆFð9Ø—h’h˜wÑ'Ô'��øÝÔ%ð 9ð 9ð 9å ð %7ð 7ð 7ð 7à6ñ7ô 7ð 7õ ”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.
        )r5  rt   Ú__globals__ÚKeyErrorrj   Úbuiltinsr   Ú	UNDEFINED)r*   rC   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.
        )r5  rt   Ú__closure__Úcell_contentsÚ
ValueErrorr   rÜ  )r*   rg   Úcells      r,   Úget_closure_valuezInterpreter.get_closure_value6  sM   € ð
 Œ|Ô Ô,¨UÔ3ˆð	 ØÔ%Ð%øÝð 	 ð 	 ð 	 Ý”<ÐÐÐð	 øøøs   ™   9¸9c                 ó   — | j         d         S )Nr‹   )rM  r1   s    r,   r[  zInterpreter.current_scopeA  s   € àŒ{˜2ŒÐr.   c                 ó   — | j         j        S r(   )rL  Ú	co_constsr1   s    r,   Úcode_constszInterpreter.code_constsE  s   € àŒ}Ô&Ð&r.   c                 ó   — | j         j        S r(   )rL  Úco_varnamesr1   s    r,   Úcode_localszInterpreter.code_localsI  ó   € àŒ}Ô(Ð(r.   c                 ó   — | j         j        S r(   )rL  Úco_namesr1   s    r,   Ú
code_nameszInterpreter.code_namesM  s   € àŒ}Ô%Ð%r.   c                 ó   — | j         j        S r(   )rL  Úco_cellvarsr1   s    r,   Úcode_cellvarszInterpreter.code_cellvarsQ  rë  r.   c                 ó   — | j         j        S r(   )rL  Úco_freevarsr1   s    r,   Úcode_freevarszInterpreter.code_freevarsU  rë  r.   c                 óœ  — | j         rt          |¦  «         | j        €J ‚t          dv rŠ| j        r‚| j        d         }t          |t          j        ¦  «        r[|j        |j	        k    rK| j         
                    t          j        | j        ¬¦  «        ¦  «         | j                             ¦   «          nt          dv rnt          t          ¦  «        ‚d|j                             dd¦  «        z  }	 t#          | |¦  «        }	  ||fi |¤ŽS # t$          j        $ r•}|j        €| j        }n|j        }t%          j        |j        |¬¦  «        }t*          j        s|d ‚d|› d	|j        › �}	|                     |	¦  «         |                     | j                             ¦   «         ¦  «         |‚d }~ww xY w# t4          $ r t          |¦  «        ‚w xY w)
NrE  r‹   rË   rF  zop_%sú+rf  zhandling op: z | offset: )r6  rÜ   rS  r   rY  rn   r   r¨  rà   r§  rF   r
  r¬   rD   rX  r‘  Úreplacerj   r   r   rC   r   ÚFULL_TRACEBACKSÚadd_contextrL  rÝ   ÚAttributeError)
r*   r  re   Útopræ   rŽ   Úer¬   ÚerrÚms
             r,   r]  zInterpreter._dispatchY  së  € ØÔð 	Ý�$‰KŒKˆKØÔ!Ð-Ð-Ð-ÝÐEÐEÐEØÔ!ð 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Ð'àF¨ÐFÐF¸¼ÐFÐF�AØ—O’O AÑ&Ô&Ð&Ø—O’O D¤M×$6Ò$6Ñ$8Ô$8Ñ9Ô9Ð9Ø�Iøøøøðøøøøõ ð 	,ð 	,ð 	,Ý% dÑ+Ô+Ð+ð	,øøøs%   Ã0F1 ÄD
 Ä
F.ÄBF)Æ)F.Æ1G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Ó  )rT  rQ  Úbackbonerñ  r[  rÎ   r¬   rÕ  rn   r   rŒ   r¦  rM   ro   rS  rF   r=  rC   )r*   rS   rC   rÎ   r   rR   r²   s          r,   r‹  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   ú.r^   Nz
implicit{})Úisdigitr0   r¦  rP   r[  rƒ  )r*   rC   rë   s      r,   rƒ  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¦   rS  rT  )r*   rà   rÍ   r¬   r¯   s        r,   r¡  zInterpreter.insert_block¦  sO   € ØÐ+˜Ô+ˆØˆo�T”XˆÝŒh˜U¨Ð,Ñ,Ô,ˆØ!ˆŒ�FÑØ ˆÔØ$*ˆÔ!Øˆ
r.   c                 ó   — d S r(   r7   ©r*   r  s     r,   Úop_NOPzInterpreter.op_NOP±  ó   € Øˆr.   )r   r   )r!   r#   r   r   c                 ó   — d S r(   r7   r  s     r,   Ú	op_RESUMEzInterpreter.op_RESUME¼  r	  r.   c                 ó   — d S r(   r7   r  s     r,   Úop_CACHEzInterpreter.op_CACHE¿  r	  r.   c                 ó   — d S r(   r7   r  s     r,   Ú
op_PRECALLzInterpreter.op_PRECALLÂ  r	  r.   c                 ó   — d S r(   r7   r  s     r,   Úop_PUSH_NULLzInterpreter.op_PUSH_NULLÅ  r	  r.   c                 ó   — d S r(   r7   r  s     r,   Úop_RETURN_GENERATORzInterpreter.op_RETURN_GENERATORÈ  r	  r.   c                 óF  — |                       |¦  «        }t          j        dt          | j        ¬¦  «        }|                      ||¬¦  «         t          j                             |                       |¦  «        |fd| j        ¬¦  «        }|                      ||¬¦  «         d S ©NrÜ   rË   rÁ  r7   )rƒ  r   rÞ   rÜ   r¬   r‹  rq   rl   )r*   r  ÚitemÚprintvarÚresÚprintgvrl   s          r,   Úop_PRINT_ITEMzInterpreter.op_PRINT_ITEMË  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¬   r‹  rq   rl   rƒ  )r*   r  r  r  r  rl   s         r,   Úop_PRINT_NEWLINEzInterpreter.op_PRINT_NEWLINEÒ  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)rS   r¬   Úcount)rC   rS   )rg   Ú	index_varr¬   )	ru   r   rq   rÊ  rƒ  r¬   r‹  r¨   Ústatic_getitem)
r*   r  ÚiterableÚstoresÚtupleobjr  rÐ   r±   Ústr»   s
             r,   Úop_UNPACK_SEQUENCEzInterpreter.op_UNPACK_SEQUENCEØ  sÈ   € Ý�F‘”ˆåŒg×"Ò"¨¯ª°(Ñ);Ô);ÀÄØ).ð #ñ 0ô 0ˆà�
Š
˜¨ˆ
Ñ,Ô,Ð,õ ˜vÑ&Ô&ð 	!ð 	!‰EˆAˆrÝ”7×)Ò)¨$¯(ª(°8Ñ*<Ô*<Ø01¸TØ.2¬hð *ñ 8ô 8ˆDð �JŠJ�t˜RÑ Ô Ð Ð ð		!ð 	!r.   c                 ó2   — |                       ||||¦  «        S r(   )Úop_FORMAT_VALUE)r*   r  rS   r  Ústrvars        r,   Úop_FORMAT_SIMPLEzInterpreter.op_FORMAT_SIMPLEæ  s   € à×#Ò# D¨%°°fÑ=Ô=Ð=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Á  r7   N)rƒ  r   rÞ   r+  r¬   r‹  rq   rl   )r*   r  rS   r  r(  Ústrgvrl   s          r,   r'  zInterpreter.op_FORMAT_VALUEê  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Ë   r‹   Nr^   ©rZ   r[   r¬   )rç   r   rp   r¬   r‹  rƒ  r&  rq   rŠ   r�   rG   )
r*   r  ÚstringsÚtmpsr  ÚconstÚprevÚotherrñ   r»   s
             r,   Úop_BUILD_STRINGzInterpreter.op_BUILD_STRINGö  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Á  r7   )rƒ  r   rÞ   r7  r¬   r‹  rq   rl   )	r*   r  rB  Ú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.   r   c                 ó@  — |                       |¦  «        }|                       |¦  «        }t          j        dt          | j        ¬¦  «        }|                      ||¬¦  «         t          j                             |                       |¦  «        ||fd| j        ¬¦  «        }	|                      |	|¬¦  «         |                       |¦  «        }
|                       |¦  «        }t          j                             ||
| j        ¬¦  «        }|                      ||¦  «         d S )Nr7  rË   rÁ  r7   ©rg   r¬   ©	rƒ  r   rÞ   r7  r¬   r‹  rq   rl   Úgetitem)r*   r  rB  r›  Ú	containerr  r:  Útemp_resr;  r<  rg   rR   r»   s                r,   Úop_BINARY_SLICEzInterpreter.op_BINARY_SLICE  sð   € à—H’H˜U‘O”OˆEØ—(’(˜3‘-”-ˆCÝ”i ­°D´HÐ=Ñ=Ô=ˆGØ�JŠJ˜W¨8ˆJÑ4Ô4Ð4ÝœŸš T§X¢X¨hÑ%7Ô%7¸%À¸ÀrØ)-¬ð %ñ 3ô 3ˆIà�JŠJ˜Y¨XˆJÑ6Ô6Ð6Ø—H’H˜XÑ&Ô&ˆEØ—X’X˜iÑ(Ô(ˆFÝ”7—?’? 6°¸D¼H�?ÑEÔEˆDØ�JŠJ�t˜SÑ!Ô!Ð!Ð!Ð!r.   r    c                 ó^  — |                       |¦  «        }|                       |¦  «        }t          j        dt          | j        ¬¦  «        }|                      ||¬¦  «         t          j                             |                       |¦  «        ||fd| j        ¬¦  «        }	|                      |	|¬¦  «         |                       |¦  «        }
|                       |¦  «        }|                       |¦  «        }t          j        ||
|| j        ¬¦  «        }| j	         
                    |¦  «         d S )Nr7  rË   rÁ  r7   ©rR   rg   rS   r¬   ©rƒ  r   rÞ   r7  r¬   r‹  rq   rl   rË  rS  rF   )r*   r  rB  r›  rB  rS   r  r:  r;  r<  rg   rR   r²   s                r,   Úop_STORE_SLICEzInterpreter.op_STORE_SLICE0  s  € à—H’H˜U‘O”OˆEØ—(’(˜3‘-”-ˆCÝ”i ­°D´HÐ=Ñ=Ô=ˆGØ�JŠJ˜W¨8ˆJÑ4Ô4Ð4ÝœŸš T§X¢X¨hÑ%7Ô%7¸%À¸ÀrØ)-¬ð %ñ 3ô 3ˆIà�JŠJ˜Y¨SˆJÑ1Ô1Ð1Ø—H’H˜S‘M”MˆEØ—X’X˜iÑ(Ô(ˆFØ—H’H˜U‘O”OˆEå”: V°5ÀØ"&¤(ð,ñ ,ô ,ˆDàÔ×%Ò% dÑ+Ô+Ð+Ð+Ð+r.   c                 óx  — |                       |¦  «        }t          j        dt          | j        ¬¦  «        }|                      ||¬¦  «         t          j        d | j        ¬¦  «        }|                      ||¬¦  «         |                       |¦  «        }	t          j                             |                       |¦  «        |	|	fd| j        ¬¦  «        }
|                      |
|¬¦  «         t          j         	                    ||                       |¦  «        | j        ¬¦  «        }|                      ||¬¦  «         d S r6  )
rƒ  r   rÞ   r7  r¬   r‹  rp   rq   rl   rA  )r*   r  Úbaser  r:  ÚindexvarÚnonevarr;  ÚnonegvÚnonerg   r»   s               r,   Ú
op_SLICE_0zInterpreter.op_SLICE_0E  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Á  r7  r7   ©
rƒ  r   rp   r¬   r‹  rÞ   r7  rq   rl   rA  )r*   r  rJ  rB  rL  r  r:  rK  rM  rN  r;  rg   r»   s                r,   Ú
op_SLICE_1zInterpreter.op_SLICE_1U  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 rQ  rR  )r*   r  rJ  rL  r8  r  r:  rK  rM  rN  r;  rg   r»   s                r,   Ú
op_SLICE_2zInterpreter.op_SLICE_2g  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 r6  r@  )r*   r  rJ  rB  r8  r  r:  rK  r;  rg   r»   s              r,   Ú
op_SLICE_3zInterpreter.op_SLICE_3y  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 r6  )rƒ  r   rÞ   r7  r¬   r‹  rp   rq   rl   rË  rS  rF   )r*   r  rJ  rS   r:  rK  rL  r;  rM  rN  rg   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 rQ  ©rƒ  r   rp   r¬   r‹  rÞ   r7  rq   rl   rË  rS  rF   )r*   r  rJ  rB  rL  rS   r:  rK  rM  rN  r;  rg   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 rQ  r[  )r*   r  rJ  rL  r8  rS   r:  rK  rM  rN  r;  rg   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 r6  rG  )r*   r  rJ  rB  r8  rS   r:  rK  r;  rg   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 r6  )rƒ  r   rÞ   r7  r¬   r‹  rp   rq   rl   ÚDelItemrS  rF   )r*   r  rJ  r:  rK  rL  r;  rM  rN  rg   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 rQ  ©rƒ  r   rp   r¬   r‹  rÞ   r7  rq   rl   rb  rS  rF   )r*   r  rJ  rB  rL  r:  rK  rM  rN  r;  rg   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 rQ  re  )r*   r  rJ  rL  r8  r:  rK  rM  rN  r;  rg   r²   s               r,   Úop_DELETE_SLICE_2zInterpreter.op_DELETE_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¸¼ÐAÑAÔAˆØÔ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r.   c                 ó.  — |                       |¦  «        }|                       |¦  «        }|                       |¦  «        }t          j        dt          | j        ¬¦  «        }|                      ||¬¦  «         t          j                             |                       |¦  «        ||fd| j        ¬¦  «        }|                      ||¬¦  «         t          j        ||                       |¦  «        | j        ¬¦  «        }	| j	         
                    |	¦  «         d S r6  )rƒ  r   rÞ   r7  r¬   r‹  rq   rl   rb  rS  rF   )
r*   r  rJ  rB  r8  r:  rK  r;  rg   r²   s
             r,   Úop_DELETE_SLICE_3zInterpreter.op_DELETE_SLICE_3	  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ç   r‹  rƒ  )r*   r  r  rJ   s       r,   Ú_op_LOAD_FASTzInterpreter._op_LOAD_FAST	  s9   € ØÔ" 4¤8Ô,ˆØ�
Š
˜Ÿš 'Ñ*Ô*°ˆ
Ñ5Ô5Ð5Ð5Ð5r.   ©r   r   r   c                 óf   — |r|                       ||¦  «         d S |                      ||¦  «         d S r(   )Úop_LOAD_DEREFrm  )r*   r  r  Úas_load_derefs       r,   Úop_LOAD_FASTzInterpreter.op_LOAD_FAST	  sB   € Øð .Ø×"Ò" 4¨Ñ-Ô-Ð-Ð-Ð-à×"Ò" 4¨Ñ-Ô-Ð-Ð-Ð-r.   c                 ó  — |j         }|dz	  }|dz  }|                      | j        |         ¦  «        }|                      | j        |         ¦  «        }|                      ||¬¦  «         |                      ||¬¦  «         d S ©Né   r   rÁ  )rç   rƒ  rê  r‹  )	r*   r  Úres1Úres2ÚopargÚoparg1Úoparg2Úsrc1Úsrc2s	            r,   Úop_LOAD_FAST_LOAD_FASTz"Interpreter.op_LOAD_FAST_LOAD_FAST"	  s   € Ø”HˆEØ˜a‘ZˆFØ˜R‘ZˆFØ—8’8˜DÔ,¨VÔ4Ñ5Ô5ˆDØ—8’8˜DÔ,¨VÔ4Ñ5Ô5ˆDØ�JŠJ˜T¨ˆJÑ-Ô-Ð-Ø�JŠJ˜T¨ˆJÑ-Ô-Ð-Ð-Ð-r.   c                 ó  — |j         }|dz	  }|dz  }| j        |         }|                      |¦  «        }|                      ||¬¦  «         |                      | j        |         ¦  «        }	|                      |	|¬¦  «         d S rt  )rç   rê  rƒ  r‹  )
r*   r  Ústore_valueÚload_resrx  ry  rz  ÚdstnameÚ	dst_valueÚ	src_values
             r,   Úop_STORE_FAST_LOAD_FASTz#Interpreter.op_STORE_FAST_LOAD_FAST+	  s„   € Ø”HˆEØ˜a‘ZˆFØ˜R‘ZˆFàÔ& vÔ.ˆGØŸš Ñ-Ô-ˆIØ�JŠJ˜Y¨WˆJÑ5Ô5Ð5àŸš Ô!1°&Ô!9Ñ:Ô:ˆIØ�JŠJ˜Y¨XˆJÑ6Ô6Ð6Ð6Ð6r.   c                 ó  — |j         }|dz	  }|dz  }| j        |         }|                      |                      |¦  «        |¬¦  «         | j        |         }|                      |                      |¦  «        |¬¦  «         d S rt  )rç   rê  r‹  rƒ  )r*   r  Úvalue1Úvalue2rx  ry  rz  r�  s           r,   Úop_STORE_FAST_STORE_FASTz$Interpreter.op_STORE_FAST_STORE_FAST7	  s   € Ø”HˆEØ˜a‘ZˆFØ˜R‘ZˆFàÔ& vÔ.ˆGØ�JŠJ˜TŸXšX fÑ-Ô-°GˆJÑ<Ô<Ð<ØÔ& vÔ.ˆGØ�JŠJ˜TŸXšX fÑ-Ô-°GˆJÑ<Ô<Ð<Ð<Ð<r.   )r!   r#   r   c                 ó  — 	 | j         |j                 }|                      |                      |¦  «        |¬¦  «         d S # t          $ r@ t
          j                             | j        ¬¦  «        }|                      ||¬¦  «         Y d S w xY w)NrÁ  rË   ©rC   )	rê  rç   r‹  rƒ  r   r   rq   Úundefr¬   )r*   r  r  rJ   r‹  s        r,   Úop_LOAD_FAST_AND_CLEARz"Interpreter.op_LOAD_FAST_AND_CLEARI	  s�   € ð,àÔ*¨4¬8Ô4�Ø—
’
 §¢¨'Ñ!2Ô!2¸�
Ñ=Ô=Ð=Ð=Ð=øÝ"ð ,ð ,ð ,åœŸš¨$¬(˜Ñ3Ô3�Ø—
’
˜5 s�
Ñ+Ô+Ð+Ð+Ð+Ð+ð,øøøs   ‚<A  Á AB
Â	B
c                 ó‚   — | j         |j                 }|                      |¦  «        }|                      ||¬¦  «         d S rl  )rê  rç   rƒ  r‹  )r*   r  rS   r�  s       r,   Úop_STORE_FASTzInterpreter.op_STORE_FASTb	  s<   € ØÔ" 4¤8Ô,ˆØ—’˜‘”ˆØ�
Š
˜ Wˆ
Ñ-Ô-Ð-Ð-Ð-r.   c                 ó�   — | j         |j                 }| j                             t	          j        || j        ¬¦  «        ¦  «         d S ©NrË   )rê  rç   rS  rF   r   ÚDelr¬   )r*   r  r�  s      r,   Úop_DELETE_FASTzInterpreter.op_DELETE_FASTg	  s?   € ØÔ" 4¤8Ô,ˆØÔ×!Ò!¥"¤&¨°d´hÐ"?Ñ"?Ô"?Ñ@Ô@Ð@Ð@Ð@r.   c                 ó†   — t          ||¦  «        D ]/\  }}|                      |                      |¦  «        |¬¦  «         Œ0d S rl  )r&  r‹  rƒ  )r*   r  ÚorigÚdupedÚsrcÚdsts         r,   Úop_DUP_TOPXzInterpreter.op_DUP_TOPXk	  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)rR   rS   rs   r¬   )rî  rç   r   rÌ  rƒ  r¬   rS  rF   )r*   r  rR   rS   rs   Úsas         r,   Úop_STORE_ATTRzInterpreter.op_STORE_ATTRr	  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)rR   rs   r¬   )rî  rç   r   ÚDelAttrrƒ  r¬   rS  rF   )r*   r  rR   rs   rš  s        r,   Úop_DELETE_ATTRzInterpreter.op_DELETE_ATTRx	  sQ   € ØŒ˜tœxÔ(ˆÝŒZ˜tŸxšx¨Ñ/Ô/°dÀÄÐIÑIÔIˆØÔ×!Ò! "Ñ%Ô%Ð%Ð%Ð%r.   c                 óH  — |                       |¦  «        }t          dv r| j        |j        dz	           }n0t          dv r| j        |j                 }nt	          t          ¦  «        ‚t
          j                             ||| j        ¬¦  «        }|  	                    ||¦  «         d S )Nr   r^   r    rË   )
rƒ  r   rî  rç   rX  r   rq   rj   r¬   r‹  )r*   r  r  r  rs   rj   s         r,   Úop_LOAD_ATTRzInterpreter.op_LOAD_ATTR}	  s�   € Ø�xŠx˜‰~Œ~ˆÝÐ<Ð<Ð<Ø”? 4¤8¨q¡=Ô1ˆDˆDÝÐ,Ð,Ð,Ø”? 4¤8Ô,ˆDˆDå%¥iÑ0Ô0Ð0Ý”'—/’/ $¨°$´(�/Ñ;Ô;ˆØ�
Š
�7˜CÑ Ô Ð Ð Ð r.   c                 óü  ‡ ‡— ˆ fd„Šˆˆ fd„}‰ j         |j                 }t          |t          ¦  «        r0t          j                              ||¦  «        ‰ j        ¬¦  «        }n�t          |t          ¦  «        r0t          j         	                     ||¦  «        ‰ j        ¬¦  «        }n<t          |t          ¦  «        r ‰|¦  «        }nt	          j        |‰ j        ¬¦  «        }‰                      ||¦  «         d S )Nc                 óX  •— ‰                      t          j        | j        ‰j        ¬¦  «        d| j        › �d¬¦  «        }‰                      t          j        | j        ‰j        ¬¦  «        d| j        › �d¬¦  «        }‰                      t          j        dt          ‰j        ¬¦  «        dd¬¦  «        }| j        €||f}nC‰                      t          j        | j        ‰j        ¬¦  «        d| j        › �d¬¦  «        }|||f}t          j	         
                    ||d‰j        ¬¦  «        S )	NrË   ú$const_T©rC   rÎ   r7  z$const_slicerµ  r7   )r‹  r   rp   rB  r¬   r8  rÞ   r7  r9  rq   rl   )rS   rB  r8  r:  Úparamsr9  r*   s         €r,   Úprocess_slicez0Interpreter.op_LOAD_CONST.<locals>.process_slice�	  s<  ø€ Ø—J’J�rœx¨¬¸¼ÐBÑBÔBØ$;¨e¬kÐ$;Ð$;Àdð ñ Lô LˆEà—:’:�bœh u¤z°t´xÐ@Ñ@Ô@Ø#9¨U¬ZÐ#9Ð#9ÀDð ñ Jô JˆDð —z’z­¬	°'½5Ø6:´hð)@ñ )@ô )@à'5Àð "ñ Fô FˆHð ŒzÐ!Ø ˜��à—z’z¥"¤(¨5¬:¸4¼8Ð"DÑ"DÔ"DØ'=°´Ð'=Ð'=Èð "ñ Nô N�à  tÐ,�å”7—<’< ¨&°"¸$¼(�<ÑCÔCÐCr.   c           	      ó8  •— g }| D ]“}t          |t          ¦  «        r5|                     ‰                      ‰|¦  «        dd¬¦  «        ¦  «         ŒL|                     ‰                     t	          j        |‰j        ¬¦  «        d|› �d¬¦  «        ¦  «         Œ”|S )Nz$const_my_sliceTr¤  rË   r£  )rn   r7  rF   r‹  r   rp   r¬   )rS   r$  r¡   r¦  r*   s      €€r,   Úprocess_argsz/Interpreter.op_LOAD_CONST.<locals>.process_args 	  sÃ   ø€ ØˆBØð 9ð 9�Ý˜a¥Ñ'Ô'ð 9Ø—I’I˜dŸjšj¨¨°qÑ)9Ô)9Ø.?Ø26ð )ñ 8ô 8ñ 9ô 9ð 9ð 9ð —I’I˜dŸjšj­¬°!¸¼Ð)BÑ)BÔ)BØ.;¸¨m¨mØ26ð )ñ 8ô 8ñ 9ô 9ð 9ð 9ð ˆIr.   rË   )rç  rç   rn   rØ   r   rq   r‰   r¬   Ú	frozensetÚ	build_setr7  rp   r‹  )r*   r  r  r¨  rS   r1  r¦  s   `     @r,   Úop_LOAD_CONSTzInterpreter.op_LOAD_CONSTˆ	  s  øø€ ð
	Dð 	Dð 	Dð 	Dð 	Dð&	ð 	ð 	ð 	ð 	ð 	ð Ô  ¤Ô*ˆå�e�UÑ#Ô#ð 	2Ý”G×'Ò'¨¨°UÑ(;Ô(;ÀÄÐ'ÑJÔJˆEˆEÝ˜�yÑ)Ô)ð 	2Ý”G×%Ò% l l°5Ñ&9Ô&9¸t¼xÐ%ÑHÔHˆEˆEÝ˜�uÑ%Ô%ð 	2Ø!�M %Ñ(Ô(ˆEˆEå”H˜U¨¬Ð1Ñ1Ô1ˆEØ�
Š
�5˜#ÑÔÐÐÐr.   c                 óv   — |j         }t          j        || j        ¬¦  «        }|                      ||¦  «         d S r�  )rç   r   rp   r¬   r‹  )r*   r  r  rS   r1  s        r,   Úop_LOAD_SMALL_INTzInterpreter.op_LOAD_SMALL_INT»	  s9   € Ø”HˆEÝ”H˜U¨¬Ð1Ñ1Ô1ˆEØ�JŠJ�u˜cÑ"Ô"Ð"Ð"Ð"r.   rE  c                 ó®   — | j         |         }|                      |¦  «        }t          j        ||| j        ¬¦  «        }|                      ||¦  «         d S r�  )rî  rÝ  r   rÞ   r¬   r‹  )r*   r  rW   r  rC   rS   Ú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.   rF  c                 ó¸   — | j         |j                 }|                      |¦  «        }t          j        ||| j        ¬¦  «        }|                      ||¦  «         d S r�  )rî  rç   rÝ  r   rÞ   r¬   r‹  )r*   r  r  rC   rS   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(   r7   r  s     r,   Úop_COPY_FREE_VARSzInterpreter.op_COPY_FREE_VARSÓ	  r	  r.   c                 ó¬  — | j         j        j                             |j        ¦  «        }|| j        v r6	 |                      |¦  «        }nt# t          $ r d}t          |¦  «        ‚w xY w|| j	        v rL| j	         
                    |¦  «        }|                      |¦  «        }t          j        |||| j        ¬¦  «        }|                      ||¦  «         d S ©Nú,Unsupported use of cell variable encounteredrË   ©r5  rt   Ú__code__Ú_varname_from_opargrç   rñ  rƒ  r   rX  rô  rg   rã  r   r%  r¬   r‹  ©r*   r  r  rC   r¯  rˆ  rW   rS   s           r,   rp  zInterpreter.op_LOAD_DEREF×	  sÞ   € Ø”<Ô$Ô-×AÒAÀ$Ä(ÑKÔKˆDØ�tÔ)Ð)Ð)ð3ØŸš $™œ�B�BøÝ&ð 3ð 3ð 3ØH�CÝ-¨cÑ2Ô2Ð2ð3øøøð ˜Ô+Ð+Ð+ØÔ(×.Ò.¨tÑ4Ô4�Ø×.Ò.¨sÑ3Ô3�Ý”Z  T¨5°d´hÐ?Ñ?Ô?�Ø�JŠJ�r˜3ÑÔÐÐÐó   ´A
 Á
A&c                 óR  — t          | j        ¦  «        }|j        |k     r(| j        |j                 }|                      |¦  «        }nI|j        |z
  }| j        |         }|                      |¦  «        }t          j        |||| j        ¬¦  «        }|  	                    ||¦  «         d S r�  )
ru   rñ  rç   rƒ  rô  rã  r   r%  r¬   r‹  )r*   r  r  Ú
n_cellvarsrC   r¯  rW   rS   s           r,   rp  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(   r7   r  s     r,   Úop_MAKE_CELLzInterpreter.op_MAKE_CELLô	  s   € ØˆDr.   c                 ó°   — | j         j        j                             |j        ¦  «        }|                      |¦  «        }|                      ||¬¦  «         d S rl  )r5  rt   r¸  r¹  rç   rƒ  r‹  )r*   r  rS   rC   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 rl  )ru   rñ  rç   rô  rƒ  r‹  )r*   r  rS   r½  r�  s        r,   rÁ  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à   rS  r   ÚLoopr’  rç   rY  rF   )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 )NrÄ  ©ÚcontextmanagerÚbeginr›  r¬   rË   rÁ  )r¦   rà   rS  r’  rç   r   r¨  rY  rF   rƒ  Ú	EnterWithr¬   rp   r‹  )r*   r  rÊ  Ú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                 óP  ‡— | j         |j                 | j        u sJ ‚t          dv r,‰| j        k    r t          ˆfd„| j        D ¦   «         ¦  «        Šnt          dv rnt          t          ¦  «        ‚t          j	        |j        ‰¬¦  «        }| j
                             |¦  «         |                      |¦  «        }| j                             t          j        ||j        ‰| j        ¬¦  «        ¦  «         t          j        d | j        ¬¦  «        }|                      ||¬¦  «         d S )N)r   r   c                 ó4   •— g | ]}|j         ‰k    ¯|j        ‘ŒS r7   ©rR   r›  )r    Úexr›  s     €r,   r¢   z.Interpreter.op_BEFORE_WITH.<locals>.<listcomp>'
  s1   ø€ ð 4ð 4ð 4¨"Ø"$¤)¨sÒ"2Ð"2ð  "œvØ"2Ð"2Ð"2r.   r    rÄ  rÉ  rË   rÁ  )r¦   rà   rS  r   rC  rU  rW  rX  r   r¨  rY  rF   rƒ  rÌ  r¬   rp   r‹  )r*   r  rÊ  rÍ  r›  rÏ  rÐ  rÑ  s       `   r,   Úop_BEFORE_WITHzInterpreter.op_BEFORE_WITH!
  sC  ø€ Ø”;˜tœ{Ô+¨tÔ/AÐAÐAÐAÐAÝÐ.Ð.Ð.à˜Ô0Ò0Ð0åð 4ð 4ð 4ð 4°Ô0Mð 4ñ 4ô 4ñ 5ô 5�CøåÐ0Ð0Ð0Øå)­)Ñ4Ô4Ð4å”'˜$œ+¨CÐ0Ñ0Ô0ˆCØÔ×%Ò% cÑ*Ô*Ð*Ø—X’X˜nÑ-Ô-ˆFØÔ×%Ò%¥b¤lÀ&Ø9=¼Ø7:ÀÄð'Kñ 'Kô 'Kñ Lô Lð Lõ
 œ( 4¨T¬XÐ6Ñ6Ô6ˆKØ�JŠJ˜[¨vˆJÑ6Ô6Ð6Ð6Ð6r.   c                 ó.   — |                       ¦   «          d S r(   )r©  r  s     r,   Úop_SETUP_FINALLYzInterpreter.op_SETUP_FINALLY;
  s   € à×$Ò$Ñ&Ô&Ð&Ð&Ð&r.   c                 ó   — dS ©zno-opNr7   r  s     r,   Úop_WITH_CLEANUPzInterpreter.op_WITH_CLEANUP?
  ó   € € € r.   c                 ó   — dS rÛ  r7   r  s     r,   Úop_WITH_CLEANUP_STARTz!Interpreter.op_WITH_CLEANUP_STARTB
  rÝ  r.   c                 ó   — dS rÛ  r7   r  s     r,   Úop_WITH_CLEANUP_FINISHz"Interpreter.op_WITH_CLEANUP_FINISHE
  rÝ  r.   c                 ó   — dS rÛ  r7   r  s     r,   Úop_END_FINALLYzInterpreter.op_END_FINALLYH
  rÝ  r.   c                 ó¨   — t          j        d | j        ¬¦  «        }|D ]3}|                      ||¬¦  «         | j                             |¦  «         Œ4d S )NrË   rŠ  )r   rp   r¬   r‹  r>  rG   )r*   r  ÚtempsrÅ  rñ   s        r,   Úop_BEGIN_FINALLYzInterpreter.op_BEGIN_FINALLYK
  sa   € å”X˜d¨¬Ð1Ñ1Ô1ˆ
Øð 	*ð 	*ˆCà�JŠJ�z¨ˆJÑ,Ô,Ð,ØÔ ×$Ò$ SÑ)Ô)Ð)Ð)ð	*ð 	*r.   c           	      óž  ‡ — ‰                       |¦  «        }ˆ fd„|D ¦   «         }|�ft          dk     sJ ‚‰ j        |         }t          t	          ||t          |¦  «         d …         ¦  «        ¦  «        }|d t          |¦  «         …         }nd}t          j                             |||‰ j	        ¬¦  «        }‰  
                    ||¦  «         d S )Nc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r7   ©rƒ  ©r    r¡   r*   s     €r,   r¢   z'Interpreter.op_CALL.<locals>.<listcomp>U
  ó#   ø€ Ð*Ð*Ð* �—’˜‘”Ð*Ð*Ð*r.   r   r7   rË   )rƒ  r   rç  r>   r&  ru   r   rq   rl   r¬   r‹  )	r*   r  rt   rv   Úkw_namesr  ÚnamesÚkwargsr»   s	   `        r,   Úop_CALLzInterpreter.op_CALLS
  sË   ø€ Ø�xŠx˜‰~Œ~ˆØ*Ð*Ð*Ð* TÐ*Ñ*Ô*ˆØÐÝ˜wÒ&Ð&Ð&Ð&ØÔ$ 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          |                     dd¦  «        d         ¦  «        }‰ j        |         }t	          t          ||t          |¦  «         d …         ¦  «        ¦  «        }|d t          |¦  «         …         }t          j         	                    |||‰ j
        ¬¦  «        }	‰                      |	|¦  «         d S )Nc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r7   ré  rê  s     €r,   r¢   z*Interpreter.op_CALL_KW.<locals>.<listcomp>c
  s#   ø€ Ð.Ð.Ð. A�D—H’H˜Q‘K”KÐ.Ð.Ð.r.   r  rm   r‹   rË   )rƒ  ÚintÚrsplitrç  r>   r&  ru   r   rq   rl   r¬   r‹  )
r*   r  rt   rv   rì  r  Úconstirí  rî  r»   s
   `         r,   Ú
op_CALL_KWzInterpreter.op_CALL_KWa
  sÍ   ø€ Ø—8’8˜D‘>”>ˆDØ.Ð.Ð.Ð.¨Ð.Ñ.Ô.ˆDÝ˜Ÿš¨¨aÑ0Ô0°Ô4Ñ5Ô5ˆFØÔ$ VÔ,ˆEÝ�#˜e T­3¨u©:¬:¨+¨,¨,Ô%7Ñ8Ô8Ñ9Ô9ˆFØ˜�#˜e™*œ*˜˜Ô%ˆDÝ”7—<’<  d¨F¸¼�<ÑAÔAˆDØ�JŠJ�t˜SÑ!Ô!Ð!Ð!Ð!r.   r   c                 óÊ   ‡ — ‰                       |¦  «        }ˆ fd„|D ¦   «         }t          j                             ||d‰ j        ¬¦  «        }‰                      ||¦  «         d S )Nc                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r7   ré  rê  s     €r,   r¢   z0Interpreter.op_CALL_FUNCTION.<locals>.<listcomp>o
  rë  r.   r7   rË   ©rƒ  r   rq   rl   r¬   r‹  )r*   r  rt   rv   r  r»   s   `     r,   Úop_CALL_FUNCTIONzInterpreter.op_CALL_FUNCTIONm
  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 r7   ré  rê  s     €r,   r¢   z3Interpreter.op_CALL_FUNCTION_KW.<locals>.<listcomp>u
  rë  r.   r‹   rË   )rƒ  rS  r©   rn   r   ro   rR   rU   rS   r_   rF   ru   r>   r&  rq   rl   r¬   r‹  )r*   r  rt   rv   rí  r  Únamed_itemsr¡   r   ÚkeysÚnkeysÚposvalsÚkwvalsÚ	keyvaluesr»   s   `              r,   Úop_CALL_FUNCTION_KWzInterpreter.op_CALL_FUNCTION_KWs
  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  rt   r«   rª   r  r»   s          r,   Úop_CALL_FUNCTION_EXzInterpreter.op_CALL_FUNCTION_EX�
  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µ  r7   ©rv   re   r¬   r^   rØ   rÙ   rÚ   )rÎ   z	$_tuplifyrÌ   )rƒ  r   rÞ   r   r¬   r‹  rq   rl   r&  ÚmaprØ   rŠ   r�   rG   rC   )r*   r  Útuplesrå  Ú	is_assignr‡  r¶  r¸  Úexcr¬   r3  rñ   ré   rê   Útuplify_valÚtuplify_varÚouts                    r,   Ú_build_tuple_unpackzInterpreter._build_tuple_unpack™
  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_CALL½
  s"   € à× Ò   v¨u°iÑ@Ô@Ð@Ð@Ð@r.   c                 ó6   — |                       ||||¦  «         d S r(   r  r  s        r,   Úop_BUILD_TUPLE_UNPACKz!Interpreter.op_BUILD_TUPLE_UNPACKÁ
  s"   € Ø× Ò   v¨u°iÑ@Ô@Ð@Ð@Ð@r.   c                 ó‚   — t           j                             d|f| j        ¬¦  «        }|                      ||¦  «         d S )Nrœ   rË   )r   rq   Údummyr¬   r‹  )r*   r  rä   r  r»   s        r,   Úop_LIST_TO_TUPLEzInterpreter.op_LIST_TO_TUPLEÄ
  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 )
Nr‹   c                 óF   •— g | ]}t          j        |‰j        ¬ ¦  «        ‘ŒS )rÀ  )r   rp   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.   r^   r   c                 ó2  •— ‰j         |          }t          |¦  «        dk    r't          ‰                     | ¦  «        j        ¦  «        S |d         }t          |t          j        ¦  «        s't          ‰                     | ¦  «        j        ¦  «        S |j        S )Nr^   r   )	r=  ru   r&   rƒ  rC   rn   r   rp   rS   )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 r7   r7   )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 r7   r7   r  s      r,   r!  z6Interpreter.op_BUILD_CONST_KEY_MAP.<locals>.<dictcomp>ù
  s   € ÐGÐGÐG¡D A q˜A˜aÐGÐGÐGr.   rm   r"  )rƒ  rS  r©   rn   r   ro   rR   rU   rS   r_   rF   ru   r&  r‹  r>   r  r=  rp   r¨   rq   r›   r¬   )r*   r  rý  Úkeytmpsr§   r  Úkeyvarrü  r¡   r   ÚkeytupÚ	keyconstsÚkvalrñ   r_   Úliteral_itemsrø   r  r  Úliteral_dictra   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   rq   Úgetiterrƒ  r¬   r‹  ©r*   r  rS   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¦   rƒ  r   rq   Úiternextr¬   r‹  Ú
pair_firstÚpair_secondr¥  r’  Úget_jump_targetrS  rF   )r*   r  Úiteratorr-  ÚindvalÚpredrŒ  Ú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 )Nr?  )rƒ  r   rq   rA  r¬   r‹  )r*   r  rR   rg   r  r»   s         r,   Úop_BINARY_SUBSCRzInterpreter.op_BINARY_SUBSCR+  sW   € Ø—H’H˜U‘O”OˆEØ—X’X˜fÑ%Ô%ˆFÝ”7—?’? 6°¸D¼H�?ÑEÔEˆDØ�JŠJ�t˜SÑ!Ô!Ð!Ð!Ð!r.   c                 óò   — |                       |¦  «        }|                       |¦  «        }|                       |¦  «        }t          j        |||| j        ¬¦  «        }| j                             |¦  «         d S )NrF  )rƒ  r   rË  r¬   rS  rF   )r*   r  rR   rg   rS   r²   s         r,   Úop_STORE_SUBSCRzInterpreter.op_STORE_SUBSCR3  so   € Ø—’˜‘”ˆØ—’˜&Ñ!Ô!ˆØ—’˜‘”ˆÝŒz ¨u¸EØ"œhð(ñ (ô (ˆàÔ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r.   c                 óÆ   — |                       |¦  «        }|                       |¦  «        }t          j        ||| j        ¬¦  «        }| j                             |¦  «         d S )N)rR   rg   r¬   )rƒ  r   rb  r¬   rS  rF   )r*   r  rR   rg   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 r7   ré  rê  s     €r,   r¢   z.Interpreter.op_BUILD_TUPLE.<locals>.<listcomp>B  s#   ø€ Ð)EÐ)EÐ)E¸!¨$¯(ª(°1©+¬+Ð)EÐ)EÐ)Er.   ©r_   r¬   )r   rq   r‰   r¬   r‹  ©r*   r  r_   r  r»   s   `    r,   Úop_BUILD_TUPLEzInterpreter.op_BUILD_TUPLEA  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 r7   ré  rê  s     €r,   r¢   z-Interpreter.op_BUILD_LIST.<locals>.<listcomp>G  s#   ø€ Ð(DÐ(DÐ(D¸¨¯ª°!©¬Ð(DÐ(DÐ(Dr.   r@  )r   rq   rÛ   r¬   r‹  rA  s   `    r,   Úop_BUILD_LISTzInterpreter.op_BUILD_LISTF  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 r7   ré  rê  s     €r,   r¢   z,Interpreter.op_BUILD_SET.<locals>.<listcomp>L  s#   ø€ Ð'CÐ'CÐ'C¸¨¯ª°©¬Ð'CÐ'CÐ'Cr.   r@  )r   rq   rª  r¬   r‹  rA  s   `    r,   Úop_BUILD_SETzInterpreter.op_BUILD_SETK  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 )NrG   rË   rÁ  r7   ©rƒ  r   rq   rj   r¬   r‹  rl   )r*   r  rS   rR   Úaddvarr  ÚaddattrÚaddinsts           r,   Ú
op_SET_ADDzInterpreter.op_SET_ADDP  sš   € Ø—’˜‘”ˆØ—’˜&Ñ!Ô!ˆÝ”'—/’/ &¨%°T´X�/Ñ>Ô>ˆØ�
Š
˜ vˆ
Ñ.Ô.Ð.Ý”'—,’,˜tŸxšx¨Ñ/Ô/°%°¸BÀDÄH�,ÑMÔMˆØ�
Š
˜ sˆ
Ñ+Ô+Ð+Ð+Ð+r.   c                 ó|  — |                       |¦  «        }|                       |¦  «        }t          j                             |d| j        ¬¦  «        }|                      ||¬¦  «         t          j                             |                       |¦  «        |fd| j        ¬¦  «        }|                      ||¬¦  «         d S )Nr  rË   rÁ  r7   rJ  ©r*   r  rR   rS   Ú	updatevarr  Ú
updateattrÚ
updateinsts           r,   Úop_SET_UPDATEzInterpreter.op_SET_UPDATEX  ó¢   € Ø—’˜&Ñ!Ô!ˆØ—’˜‘”ˆÝ”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Á  r7   rJ  rP  s           r,   Úop_DICT_UPDATEzInterpreter.op_DICT_UPDATEa  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 r7   ré  )r    r.  rø   r*   s      €r,   r¢   z,Interpreter.op_BUILD_MAP.<locals>.<listcomp>r  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 r7   )rƒ  rC   )r    rø   r*   s     €r,   r¢   zBInterpreter.op_BUILD_MAP.<locals>.get_literals.<locals>.<listcomp>y  s'   ø€ Ð7Ð7Ð7¨1�d—h’h˜qœvÑ&Ô&Ð7Ð7Ð7r.   r^   r   )r=  rC   ru   rn   r   rp   rF   rS   )rR   r%  r§   rø   r  r  r*   s         €r,   Úget_literalsz.Interpreter.op_BUILD_MAP.<locals>.get_literalsw  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   Nr7   rŸ   s     r,   ú	<genexpr>z+Interpreter.op_BUILD_MAP.<locals>.<genexpr>„  s&   è è € Ð#<Ð#<¨Q A a¤DÐ#<Ð#<Ð#<Ð#<Ð#<Ð#<r.   c              3   ó&   K  — | ]}|d          V — ŒdS )r^   Nr7   rŸ   s     r,   r^  z+Interpreter.op_BUILD_MAP.<locals>.<genexpr>…  s&   è è € Ð%>Ð%>¨q a¨¤dÐ%>Ð%>Ð%>Ð%>Ð%>Ð%>r.   c                 ó@   — i | ]\  }}|t          |d          ¦  «        “ŒS )r^   )r&   r  s      r,   r!  z,Interpreter.op_BUILD_MAP.<locals>.<dictcomp>Ž  s6   € ð :ð :ð :¹¸¸1˜A�~¨a°¬dÑ3Ô3ð :ð :ð :r.   c                 ó   — i | ]\  }}||“Œ	S r7   r7   r  s      r,   r!  z,Interpreter.op_BUILD_MAP.<locals>.<dictcomp>“  s   € ÐOÐOÐO¡T Q¨˜A˜qÐOÐOÐOr.   r"  )ru   r&  r¨   r   rq   r›   r¬   r‹  )r*   r  r_   r#  r  Ú	got_itemsr\  r,  Úliteral_valuesÚhas_literal_keysÚhas_literal_valuesra   r&  r±   r.  r»   s   `               r,   Úop_BUILD_MAPzInterpreter.op_BUILD_MAPq  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)Údctrf   rS   r¬   )r   ÚStoreMaprƒ  r¬   rS  rF   )r*   r  rh  rf   rS   r²   s         r,   Úop_STORE_MAPzInterpreter.op_STORE_MAP�  sa   € ÝŒ{˜tŸxšx¨™}œ}°$·(²(¸3±-´-Ø!%§¢¨%¡¤°d´hð@ñ @ô @ˆàÔ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r.   c                 ó¦   — |                       |¦  «        }t          j                             d|| j        ¬¦  «        }|                      ||¦  «        S )Nú-rÀ  ©rƒ  r   rq   Úunaryr¬   r‹  r*  s        r,   Úop_UNARY_NEGATIVEzInterpreter.op_UNARY_NEGATIVE¢  ó@   € Ø—’˜‘”ˆÝŒw�}Š}˜S¨°4´8ˆ}Ñ<Ô<ˆØ�zŠz˜$ Ñ$Ô$Ð$r.   c                 ó¦   — |                       |¦  «        }t          j                             d|| j        ¬¦  «        }|                      ||¦  «        S )Nrö  rÀ  rm  r*  s        r,   Úop_UNARY_POSITIVEzInterpreter.op_UNARY_POSITIVE§  rp  r.   c                 ó¦   — |                       |¦  «        }t          j                             d|| j        ¬¦  «        }|                      ||¦  «        S )Nú~rÀ  rm  r*  s        r,   Úop_UNARY_INVERTzInterpreter.op_UNARY_INVERT¬  rp  r.   c                 ó¦   — |                       |¦  «        }t          j                             d|| j        ¬¦  «        }|                      ||¦  «        S )NÚnotrÀ  rm  r*  s        r,   Úop_UNARY_NOTzInterpreter.op_UNARY_NOT±  s@   € Ø—’˜‘”ˆÝŒw�}Š}˜U¨%°T´Xˆ}Ñ>Ô>ˆØ�zŠz˜$ Ñ$Ô$Ð$r.   c                 óð   — t           |         }|                      |¦  «        }|                      |¦  «        }t          j                             |||| j        ¬¦  «        }|                      ||¦  «         d S )Nr.  )r   rƒ  r   rq   rŠ   r¬   r‹  )r*   rr   rZ   r[   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   rƒ  r   rq   rÑ  r¬   r‹  )r*   rr   rZ   r[   r  Úimmuopr»   s          r,   Ú_inplace_binopzInterpreter._inplace_binop½  s{   € Ý$ RÔ(ˆÝ(¨¨c©Ô2ˆØ�hŠh�s‰mŒmˆØ�hŠh�s‰mŒmˆÝŒw×$Ò$ R¨°S¸cØ)-¬ð %ñ 3ô 3ˆà�
Š
�4˜ÑÔÐÐÐr.   c                 ó`  — |dk    ri|                       |¦  «        }|                       |¦  «        }t          j                             ||| j        ¬¦  «        }|                      ||¦  «         d S d|v r"|                      |d d…         |||¦  «         d S |                      ||||¦  «         d S )Nz[]r?  r|  r‹   )rƒ  r   rq   rA  r¬   r‹  r~  rz  )r*   r  rr   rZ   r[   r  r»   s          r,   Úop_BINARY_OPzInterpreter.op_BINARY_OPÆ  s­   € Ø�Š:ˆ:à—(’(˜3‘-”-ˆCØ—(’(˜3‘-”-ˆCÝ”7—?’? 3¨c°t´x�?Ñ@Ô@ˆDØ�JŠJ�t˜SÑ!Ô!Ð!Ð!Ð!Ø�BˆYˆYØ×Ò  3 B 3¤¨¨c°3Ñ7Ô7Ð7Ð7Ð7à�KŠK˜˜C  cÑ*Ô*Ð*Ð*Ð*r.   c                 ó6   — |                       d|||¦  «         d S ©Nrö  ©rz  ©r*   r  rZ   r[   r  s        r,   Úop_BINARY_ADDzInterpreter.op_BINARY_ADDÒ  ó    € Ø�Š�C˜˜c 3Ñ'Ô'Ð'Ð'Ð'r.   c                 ó6   — |                       d|||¦  «         d S ©Nrl  rƒ  r„  s        r,   Úop_BINARY_SUBTRACTzInterpreter.op_BINARY_SUBTRACTÕ  r†  r.   c                 ó6   — |                       d|||¦  «         d S ©NÚ*rƒ  r„  s        r,   Úop_BINARY_MULTIPLYzInterpreter.op_BINARY_MULTIPLYØ  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ˆ  r·  r„  s        r,   Úop_INPLACE_SUBTRACTzInterpreter.op_INPLACE_SUBTRACTÿ  r¹  r.   c                 ó6   — |                       d|||¦  «         d S r‹  r·  r„  s        r,   Úop_INPLACE_MULTIPLYzInterpreter.op_INPLACE_MULTIPLY  r¹  r.   c                 ó6   — |                       d|||¦  «         d S r�  r·  r„  s        r,   Úop_INPLACE_DIVIDEzInterpreter.op_INPLACE_DIVIDE  ó"   € Ø×Ò˜D # s¨CÑ0Ô0Ð0Ð0Ð0r.   c                 ó6   — |                       d|||¦  «         d S r“  r·  r„  s        r,   Úop_INPLACE_TRUE_DIVIDEz"Interpreter.op_INPLACE_TRUE_DIVIDE  r¹  r.   c                 ó6   — |                       d|||¦  «         d S r—  r·  r„  s        r,   Úop_INPLACE_FLOOR_DIVIDEz#Interpreter.op_INPLACE_FLOOR_DIVIDE  rÀ  r.   c                 ó6   — |                       d|||¦  «         d S rš  r·  r„  s        r,   Úop_INPLACE_MODULOzInterpreter.op_INPLACE_MODULO  r¹  r.   c                 ó6   — |                       d|||¦  «         d S rž  r·  r„  s        r,   Úop_INPLACE_POWERzInterpreter.op_INPLACE_POWER  rÀ  r.   c                 ó6   — |                       d|||¦  «         d S r¡  r·  r„  s        r,   Úop_INPLACE_MATRIX_MULTIPLYz&Interpreter.op_INPLACE_MATRIX_MULTIPLY  r¹  r.   c                 ó6   — |                       d|||¦  «         d S r¥  r·  r„  s        r,   Úop_INPLACE_LSHIFTzInterpreter.op_INPLACE_LSHIFT  rÀ  r.   c                 ó6   — |                       d|||¦  «         d S r¨  r·  r„  s        r,   Úop_INPLACE_RSHIFTzInterpreter.op_INPLACE_RSHIFT  rÀ  r.   c                 ó6   — |                       d|||¦  «         d S r«  r·  r„  s        r,   Úop_INPLACE_ANDzInterpreter.op_INPLACE_AND  r¹  r.   c                 ó6   — |                       d|||¦  «         d S r¯  r·  r„  s        r,   Úop_INPLACE_ORzInterpreter.op_INPLACE_OR   r¹  r.   c                 ó6   — |                       d|||¦  «         d S r³  r·  r„  s        r,   Úop_INPLACE_XORzInterpreter.op_INPLACE_XOR#  r¹  r.   c                 ó”   — t          j        |                     ¦   «         | j        ¬¦  «        }| j                             |¦  «         d S r�  ©r   r  r0  r¬   rS  rF   ©r*   r  r­  s      r,   Úop_JUMP_ABSOLUTEzInterpreter.op_JUMP_ABSOLUTE&  óA   € ÝŒg�d×*Ò*Ñ,Ô,°$´(Ð;Ñ;Ô;ˆØÔ×!Ò! #Ñ&Ô&Ð&Ð&Ð&r.   c                 ó”   — t          j        |                     ¦   «         | j        ¬¦  «        }| j                             |¦  «         d S r�  rÖ  r×  s      r,   Úop_JUMP_FORWARDzInterpreter.op_JUMP_FORWARD*  rÙ  r.   c                 ó”   — t          j        |                     ¦   «         | j        ¬¦  «        }| j                             |¦  «         d S r�  rÖ  r×  s      r,   Úop_JUMP_BACKWARDzInterpreter.op_JUMP_BACKWARD.  rÙ  r.   c                 óð   — |€| j                              ¦   «          d S |dk    r6t          j        | j        ¬¦  «        }| j                             |¦  «         d S |dk    r|                      ¦   «          d S d S )NÚwithrË   Útry)rY  rD   r   r
  r¬   rS  rF   rq  )r*   r  ro  rL   s       r,   Úop_POP_BLOCKzInterpreter.op_POP_BLOCK4  s„   € Øˆ<ØÔ×"Ò"Ñ$Ô$Ð$Ð$Ð$Ø�VŠ^ˆ^Ý” ¤Ð)Ñ)Ô)ˆAØÔ×%Ò% aÑ(Ô(Ð(Ð(Ð(Ø�UŠ]ˆ]Ø×&Ò&Ñ(Ô(Ð(Ð(Ð(ð ˆ]r.   c                 ó0  — |                       t          j                             |                      |¦  «        | j        ¬¦  «        |¦  «         t          j        |                      |¦  «        | j        ¬¦  «        }| j                             |¦  «         d S r�  )	r‹  r   rq   Úcastrƒ  r¬   ÚReturnrS  rF   )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                 ó¶  — | j         |j                 }t          j        || j        ¬¦  «        }|                      ||¦  «         |                      t          j                             |                      |¦  «        | j        ¬¦  «        |¦  «         t          j	        |                      |¦  «        | j        ¬¦  «        }| j
                             |¦  «         d S r�  )rç  rç   r   rp   r¬   r‹  rq   rã  rƒ  rä  rS  rF   )r*   r  rå  ræ  rS   r1  rç  s          r,   Úop_RETURN_CONSTzInterpreter.op_RETURN_CONSTC  s®   € ØÔ$ T¤XÔ.ˆEÝ”H˜U¨¬Ð1Ñ1Ô1ˆEØ�JŠJ�u˜fÑ%Ô%Ð%Ø�JŠJ•r”w—|’| D§H¢H¨VÑ$4Ô$4¸$¼(�|ÑCÔCÀWÑMÔMÐMÝ”)˜DŸHšH WÑ-Ô-°4´8Ð<Ñ<Ô<ˆCØÔ×%Ò% cÑ*Ô*Ð*Ð*Ð*r.   c                 óX   — |                       |                      |¦  «        |¦  «         d S r(   )r‹  rƒ  )r*   r  rŒ  r  s       r,   Ú
op_TO_BOOLzInterpreter.op_TO_BOOLP  s&   € Ø�JŠJ�t—x’x ‘}”} cÑ*Ô*Ð*Ð*Ð*r.   c                 ó¾  — t           dv rt          j        |j        dz	           }nYt           dv rt          j        |j        dz	           }n5t           dv rt          j        |j                 }nt	          t           ¦  «        ‚|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 )Nrn  é   )r   ru  r    Úinznot inrw  rÀ  zexception matchÚexception_matchrË   ú
$exc_matchTrµ  r7   r  )r   ÚdisÚcmp_oprç   rX  rz  rƒ  r   rq   rn  r¬   r‹  rÞ   r   rð  rl   )r*   r  rZ   r[   r  rr   rñ   r  r¸  Úexc_match_namer
  s              r,   Úop_COMPARE_OPzInterpreter.op_COMPARE_OPX  sÄ  € ÝÐ3Ð3Ð3Ý”˜DœH¨™MÔ*ˆBˆBå˜*Ð$Ð$Ý”˜DœH¨™MÔ*ˆBˆBÝÐ,Ð,Ð,Ý”˜DœHÔ%ˆBˆBå%¥iÑ0Ô0Ð0Ø�Š:ˆ:˜˜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 )Nr^   úis notÚis)rç   rz  )r*   r  rZ   r[   r  rr   s         r,   Úop_IS_OPzInterpreter.op_IS_OPy  s3   € àœ Qš˜ˆXˆX¨DˆØ�Š�B˜˜S #Ñ&Ô&Ð&Ð&Ð&r.   c                 óü   — ||}}|                       d|||¦  «         |j        dk    rT|                      |¦  «        }t          j                             d|| j        ¬¦  «        }|                      ||¦  «         d S d S )Nrï  r^   rw  rÀ  )rz  rç   rƒ  r   rq   rn  r¬   r‹  )r*   r  rZ   r[   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 )Nr‹   )rR   r¬   )	rY  rn   r   rÅ  r§  r  r¬   rS  rF   )r*   r  r›  rÆ  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Á  r7   z$%spredr�  )r0  r’  rà   r   rÞ   rÿ  r¬   r‹  rq   rl   rƒ  r¥  rS  rF   )r*   r  r3  ÚiftrueÚbrsrŸ  r   rC   r¸  r¹  ÚpnameÚ	predicateÚbras                r,   Ú_op_JUMP_IFzInterpreter._op_JUMP_IF�  s  € à×&Ò&Ñ(Ô(Ø”9ð
ð 
ˆð �V”ˆØ˜&�j”/ˆà˜DœKÑ(ˆÝ”	˜&¥$¨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©r3  r   ©r  ©r*   r  r3  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ÿ  r7   z$predr�  )r’  r0  r   r‹  r   rp   r¬   rà   rƒ  rq   rŠ   rÞ   rÿ  rl   r¥  rS  rF   )r*   r  r3  r   rŸ  r   rr   r[   rZ   ÚisnoneÚ	maybeNonerC   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_NONEÌ  ó    € Ø×Ò˜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_NONEÏ  ó    € Ø×Ò˜4  uÑ-Ô-Ð-Ð-Ð-r.   c                 ó4   — |                       ||d¦  «         d S r  r  r
  s      r,   Úop_POP_JUMP_IF_NONEzInterpreter.op_POP_JUMP_IF_NONEÓ  s    € Ø×Ò˜t T¨4Ñ0Ô0Ð0Ð0Ð0r.   c                 ó4   — |                       ||d¦  «         d S r  r  r
  s      r,   Úop_POP_JUMP_IF_NOT_NONEz#Interpreter.op_POP_JUMP_IF_NOT_NONEÖ  s    € Ø×Ò˜t T¨5Ñ1Ô1Ð1Ð1Ð1r.   c                 ó4   — |                       ||d¦  «         d S r  r  r
  s      r,   Úop_POP_JUMP_BACKWARD_IF_NONEz(Interpreter.op_POP_JUMP_BACKWARD_IF_NONEÝ  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_NONEà  r  r.   c                 ó6   — |                       ||d¬¦  «         d S r  r	  r
  s      r,   Úop_POP_JUMP_FORWARD_IF_FALSEz(Interpreter.op_POP_JUMP_FORWARD_IF_FALSEã  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_TRUEì  r  r.   c                 ó6   — |                       ||d¬¦  «         d S r  r	  r
  s      r,   Úop_POP_JUMP_IF_FALSEz Interpreter.op_POP_JUMP_IF_FALSEï  r  r.   c                 ó6   — |                       ||d¬¦  «         d S r  r	  r
  s      r,   Úop_POP_JUMP_IF_TRUEzInterpreter.op_POP_JUMP_IF_TRUEò  r  r.   c                 ó6   — |                       ||d¬¦  «         d S r  r	  r
  s      r,   Úop_JUMP_IF_FALSE_OR_POPz#Interpreter.op_JUMP_IF_FALSE_OR_POPõ  r  r.   c                 ó6   — |                       ||d¬¦  «         d S r  r	  r
  s      r,   Úop_JUMP_IF_TRUE_OR_POPz"Interpreter.op_JUMP_IF_TRUE_OR_POPø  r  r.   c                 ó€  — t          j        dt          j        | j        ¬¦  «        }d}|                      ||d¬¦  «         |                      |¦  «        }|                      |¦  «        }t           j                             |                      |¦  «        ||fd| j        ¬¦  «        }	|                      |	|¦  «         d S )Nrð  rË   rñ  Trµ  r7   r  )	r   rÞ   r   rð  r¬   r‹  rƒ  rq   rl   )
r*   r  r3  ÚtosÚtos1r¸  rô  rZ   r[   r
  s
             r,   Úop_CHECK_EXC_MATCHzInterpreter.op_CHECK_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ð ñ 
ô 
ˆð 	�
Š
�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µ  r7   r  r�  )r’  r0  r   rÞ   r   rð  r¬   r‹  rƒ  rq   rl   r¥  rS  rF   )r*   r  r3  r7  r8  rŸ  r   r¸  rô  rZ   r[   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¬   r›  rË   z8Unreachable condition reached (op code RERAISE executed)Ú
reportable)rZ  r¢  r   ÚTryRaiser¬   rS  rF   rq  r  r   ÚStaticRaiser�   )r*   r  r
  r«  r²   rˆ  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=  r›  rË   )rƒ  rZ  r¢  r   r@  r¬   rS  rF   rq  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)rS   rg   r¬   )r   ÚYieldrƒ  r¬   r‹  )r*   r  rS   r  rg   s        r,   Úop_YIELD_VALUEzInterpreter.op_YIELD_VALUE8  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 r7   ré  )r    rC   r*   s     €r,   r¢   z0Interpreter.op_MAKE_FUNCTION.<locals>.<listcomp>I  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Ë   )rX  rn   rØ   rƒ  r=  r   rp   r   r   r¬   rS   rq   Úmake_functionr‹  )r*   r  rC   ÚcodeÚclosureÚannotationsÚannotateÚ
kwdefaultsÚdefaultsr  rˆ  Ú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ð 	Eð"ð õ
 Ô1°#¸4¼8ÐDÑDÔDÐDØ!Ô'ˆØð 	"Ø—8’8˜D‘>”>ˆDØð 	(Ø—h’h˜wÑ'Ô'ˆGÝŒw×$Ò$ T¨5°'¸8ÀTÄXÑNÔNˆØ�
Š
�4˜ÑÔÐÐÐr.   c	           
      ó>   — |                       ||||||||¦  «         d S r(   )rT  )	r*   r  rC   rL  rM  rN  rP  rQ  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 )Nr¶  rË   r   rˆ   r·  rº  s           r,   Úop_LOAD_CLOSUREzInterpreter.op_LOAD_CLOSUREc  sí   € Ø”<Ô$Ô-×AÒAÀ$Ä(ÑKÔKˆDØ�tÔ)Ð)Ð)ð3ØŸš $™œ�B�BøÝ&ð 3ð 3ð 3ØH�CÝ-¨cÑ2Ô2Ð2ð3øøøð ˜Ô+Ð+Ð+ØÔ(×.Ò.¨tÑ4Ô4�Ø×.Ò.¨sÑ3Ô3�Ý”Z  T¨5°d´hÐ?Ñ?Ô?��à'˜-Ñ'Ô'�qØ�JŠJ�r˜3ÑÔÐÐÐr»  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 rµ  )ru   rñ  rç   rƒ  r   rX  rô  rã  r   r%  r¬   r‹  )	r*   r  r  r½  rC   r¯  rˆ  rW   rS   s	            r,   rX  zInterpreter.op_LOAD_CLOSUREt  sÔ   € Ý˜TÔ/Ñ0Ô0ˆJØŒx˜*Ò$Ð$ØÔ)¨$¬(Ô3�ð3ØŸš $™œ�B�BøÝ&ð 3ð 3ð 3ØH�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 )NrF   rË   rÁ  r7   rJ  )r*   r  rR   rS   Ú	appendvarr  Ú
appendattrÚ
appendinsts           r,   Úop_LIST_APPENDzInterpreter.op_LIST_APPEND†  rU  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.r‹   r‰   Fr®   rË   rÁ  r7   )rƒ  rS  r©   r   r   rn   rS   r   rq   rr   r¿   ro   rp   rR   r_   rF   rD   rg   rj   r¬   r‹  rl   )r*   r  rR   rS   Ú	extendvarr  rˆ  r²   ÚokÚbuild_empty_listÚstmtsÚbuild_tuple_asgnr‰   rÛ   Ú
extendattrÚ
extendinsts                   r,   Úop_LIST_EXTENDzInterpreter.op_LIST_EXTEND�  sD  € Ø—’˜&Ñ!Ô!ˆØ—’˜‘”ˆðLˆð Ô!Ô&ð 	7ÝÔ1°#Ñ6Ô6Ð6ð Ô!Ô& 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ØØð 	7Ð"Ð*ÝÔ1°#Ñ6Ô6Ð6Øð 	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 )Nrk   rË   rÁ  r7   rJ  )	r*   r  rR   rf   rS   Ú
setitemvarr  Úsetitemattrr]  s	            r,   Ú
op_MAP_ADDzInterpreter.op_MAP_ADDÐ  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¬   r‹  )r*   r  r  r¸  s       r,   Úop_LOAD_ASSERTION_ERRORz#Interpreter.op_LOAD_ASSERTION_ERRORÞ  s7   € Ý”IÐ.µÀDÄHÐMÑMÔMˆEØ�JŠJ˜U¨ˆJÑ-Ô-Ð-Ð-Ð-r.   c                 ó    —  | j         |i |¤Ž d S r(   )r   ©r*   rv   re   s      r,   Úop_LOAD_METHODzInterpreter.op_LOAD_METHODì  s    € ØˆÔ˜4Ð' 3Ð'Ð'Ð'Ð'Ð'r.   c                 ó    —  | j         |i |¤Ž d S r(   )rù  ro  s      r,   Úop_CALL_METHODzInterpreter.op_CALL_METHODï  s    € ØˆÔ˜tÐ+ sÐ+Ð+Ð+Ð+Ð+r.   c                 ó8  — |t           j        k    r<t          j        t          d| j        ¦  «        }| j                             |¦  «         d S |t           j        k    r | j        |fi |¤Ž d S |t           j	        k    r | j
        |fi |¤Ž d S t          |¦  «        ‚)Nr7   )Úci1opÚINTRINSIC_STOPITERATION_ERRORr   rA  r¬   rS  rF   ÚUNARY_POSITIVErr  ÚINTRINSIC_LIST_TO_TUPLEr  rX  )r*   r  Úoperandrî  r²   s        r,   Úop_CALL_INTRINSIC_1zInterpreter.op_CALL_INTRINSIC_1ó  s±   € Ø�%Ô=Ò=Ð=Ý”~Õ&CÀRØ&*¤hñ0ô 0�àÔ"×)Ò)¨$Ñ/Ô/Ð/Ø�Ø�EÔ0Ò0Ð0Ø&�Ô& tÐ6Ð6¨vÐ6Ð6Ð6Ø�Ø�EÔ9Ò9Ð9Ø%�Ô% dÐ5Ð5¨fÐ5Ð5Ð5Ø�å)¨'Ñ2Ô2Ð2r.   c                 ó   ‡— | j         |j                 | j        u sJ ‚‰| j        k    r t	          ˆfd„| j        D ¦   «         ¦  «        Št          j        |j        ‰¬¦  «        }| j         	                    |¦  «         |  
                    |¦  «        }| j         	                    t          j        ||j        ‰| j        ¬¦  «        ¦  «         t          j        d | j        ¬¦  «        }|                      ||¬¦  «         d S )Nc                 ó4   •— g | ]}|j         ‰k    ¯|j        ‘ŒS r7   rÕ  )r    rÖ  Ú	block_ends     €r,   r¢   z/Interpreter.op_LOAD_SPECIAL.<locals>.<listcomp>  s1   ø€ ð !<ð !<ð !<¨BØ$&¤I°Ò$:Ð$:ð "$¤Ø$:Ð$:Ð$:r.   rÄ  rÉ  rË   rÁ  )r¦   rà   rS  rC  rU  rW  r   r¨  rY  rF   rƒ  rÌ  r¬   rp   r‹  )r*   r  rÊ  Úexit_methodr|  rÏ  rÐ  rÑ  s       `   r,   Úop_LOAD_SPECIALzInterpreter.op_LOAD_SPECIAL  s  ø€ Ø”;˜tœ{Ô+¨tÔ/AÐAÐAÐAÐAð ˜4Ô2Ò2Ð2åð !<ð !<ð !<ð !<°$Ô2Oð !<ñ !<ô !<ñ =ô =�	õ ”'˜$œ+¨IÐ6Ñ6Ô6ˆCØÔ×%Ò% cÑ*Ô*Ð*Ø—X’X˜nÑ-Ô-ˆFØÔ×%Ò%Ý”¨FØ#'¤;Ø!*°´ð;ñ ;ô ;ñ<ô <ð <õ œ( 4¨T¬XÐ6Ñ6Ô6ˆKØ�JŠJ˜[¨{ˆJÑ;Ô;Ð;Ð;Ð;r.   c                 óV  — t           j        |         }|t          t          t          t
          t          t          t          fv r"t          j
        |j        || j        ¬¦  «        }n/|dv rt          j        || j        ¬¦  «        }nt          |¦  «        ‚|                      ||¬¦  «         d S )NrË   )NrÆ   TFr‹   rÁ  )rò  Ú_common_constantsr�   rX  rØ   ÚallÚanyr>   r@   r   rÞ   r3   r¬   rp   r‹  )r*   r  r  rW   r1  rS   s         r,   Úop_LOAD_COMMON_CONSTANTz#Interpreter.op_LOAD_COMMON_CONSTANT$  s�   € õ
 Ô)¨#Ô.ˆEØ�Õ)<Ý¥¥S­$µð5ð 5ð 5åœ	 %¤.°%¸T¼XÐFÑFÔF��ØÐ5Ð5Ð5Ýœ ¨D¬HÐ5Ñ5Ô5��å)¨%Ñ0Ô0Ð0Ø�JŠJ˜U¨ˆJÑ-Ô-Ð-Ð-Ð-r.   r(   )F)NN)Ër3   r4   r5   r6   r6  r-   rj  rc  r^  r_  r�  r\  r•  r—  rº  r©  rq  rÆ  r±  r²  rÍ  r³  rÝ  rã  Úpropertyr[  rç  rê  rî  rñ  rô  r]  r‹  rƒ  r¡  r  r   Úop_NOT_TAKENrX  r  r  r  r  r  r  r  r%  r)  r'  r4  r=  rD  rH  rO  rS  rU  rW  rY  r\  r^  r`  rc  rf  rh  rj  rm  rr  r}  r„  rˆ  Úop_LOAD_FAST_CHECKrŒ  Úop_LOAD_FAST_BORROWÚ$op_LOAD_FAST_BORROW_LOAD_FAST_BORROWrŽ  r’  r˜  Ú
op_DUP_TOPÚop_DUP_TOP_TWOr›  rž  r   r«  r­  r°  r³  rp  r¿  rÁ  rÇ  rÒ  r×  rÙ  rÜ  rß  rá  rã  ræ  rï  rõ  rù  r  r  r  r  r  r  r'  r+  r7  r9  r;  r=  rB  rE  rH  rN  rT  rW  rf  rj  ro  rr  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Ý  Úop_JUMP_BACKWARD_NO_INTERRUPTrá  rè  rê  rì  rõ  rù  rû  rý  r  r  r  r  r  r  r  r!  r#  r%  r'  r)  r+  r-  r/  r1  r3  r5  r9  r;  rB  rE  rH  rT  rV  rX  r^  rg  rk  rm  rp  rr  ry  r~  rƒ  r7   r.   r,   r3  r3  �  s�  € € € € € ðð ð €Lð%ð %ð %ð"L!ð L!ð L!ð\ð ð ð
-ð -ð -ð^Nð Nð Nð,"ð "ð "ð&ð &ð &ð(21ð 21ð 21ðh%ð %ð %ð@ð @ð @ð @ð&?ð ?ð ?ð
=ð =ð =ð
.ð .ð .ð(.ð .ð .ð;+ð ;+ð ;+ðzLð Lð LðBð Bð Bð09ð 9ð 9ð	 ð 	 ð 	 ð ðð ñ „Xðð ð'ð 'ñ „Xð'ð ð)ð )ñ „Xð)ð ð&ð &ñ „Xð&ð ð)ð )ñ „Xð)ð ð)ð )ñ „Xð)ð%ð %ð %ðRð ð ð ð$ð ð ð$ð ð ð ðð ð ð Ð&Ð&Ð&àˆˆØ	Ð:Ð	:Ð	:Øà!Ð! )Ñ,Ô,Ð,ðð ð ðð ð ðð ð ðð ð ðð ð ð)ð )ð )ð)ð )ð )ð!ð !ð !ð>ð >ð >ð
)ð 
)ð 
)ð!ð !ð !ð,.ð .ð .ð  Ð8Ð8Ð8ð	"ð 	"ð 	"ð 	"ð 
Ð(Ð	(Ð	(Øà!Ð! )Ñ,Ô,Ð,àÐ8Ð8Ð8ð	,ð 	,ð 	,ð 	,ð  
Ð(Ð	(Ð	(Øà!Ð! )Ñ,Ô,Ð,ð)ð )ð )ð )ð )ð )ð$)ð )ð )ð$)ð )ð )ð(ð (ð (ð"(ð (ð (ð((ð (ð (ð((ð (ð (ð (ð (ð (ð (ð (ð (ð$(ð (ð (ð$(ð (ð (ð6ð 6ð 6ð Ð/Ð/Ð/ð	.ð 	.ð 	.ð 	.ð 	.ð %ˆàÐ/Ð/Ð/ð	.ð 	.ð 	.ð
	7ð 
	7ð 
	7ð	=ð 	=ð 	=ð 	=ð 
Ð1Ð	1Ð	1Øà!Ð! )Ñ,Ô,Ð,àÐ8Ð8Ð8Ø)Ðð	,ð 	,ð 	,ð 	,ð 
Ð(Ð	(Ð	(Øà!Ð! )Ñ,Ô,Ð,àÐ&Ð&Ð&à*ÐØ/EÐ,Ð,à	Ð:Ð	:Ð	:Øà!Ð! )Ñ,Ô,Ð,ð.ð .ð .ð
Að Að Að6ð 6ð 6ð €JØ €Nð&ð &ð &ð&ð &ð &ð
	!ð 	!ð 	!ð/ð /ð /ðb Ð&Ð&Ð&ð	#ð 	#ð 	#ð 	#ð 
Ð:Ð	:Ð	:Øà!Ð! )Ñ,Ô,Ð,àÐAÐAÐAð	 ð 	 ð 	 ð 	 ð
 
�jÐ	 Ð	 ð	 ð 	 ð 	 ð 	 ð "Ð! )Ñ,Ô,Ð,ðð ð ð ÐAÐAÐAð	 ð 	 ð 	 ð 	 ð 
�jÐ	 Ð	 ð
	 ð 
	 ð 
	 ð 
	 ð "Ð! )Ñ,Ô,Ð,àÐAÐAÐAð	ð 	ð 	ð ÐAÐAÐAð	/ð 	/ð 	/ð 	/ð 
�jÐ	 Ð	 ð	2ð 	2ð 	2ð 	2ð "Ð! )Ñ,Ô,Ð,ð(ð (ð (ð
3ð 3ð 3ð 3ð  Ð&Ð&Ð&àØ	Ð:Ð	:Ð	:ð	7ð 	7ð 	7ð 	7ð0 "Ð! )Ñ,Ô,Ð,ð'ð 'ð 'ðð ð ðð ð ðð ð ðð ð ð*ð *ð *ðð ð ð Ð/Ð/Ð/ð	"ð 	"ð 	"ð 	"ð ˜7Ò"Ð"Ð"Ð"ðð ð ðð ð ð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ð'ð 'ð 'ð'ð 'ð 'ð'ð 'ð 'ð %5Ð!ð)ð )ð )ð )ð'ð 'ð 'ð
 Ð8Ð8Ð8ð	+ð 	+ð 	+ð 	+ð 
Ð(Ð	(Ð	(Øà!Ð! )Ñ,Ô,Ð,àÐ/Ð/Ð/ð	+ð 	+ð 	+ð 	+ð 
Ð1Ð	1Ð	1Øà!Ð! )Ñ,Ô,Ð,ð+ð +ð +ðB'ð 'ð 'ð
!ð !ð !ð'ð 'ð 'ð 'ð'ð 'ð 'ð*8ð 8ð 8ð7ð 7ð 7ð *ð  *ð  *ðD-ð -ð -ð.ð .ð .ð Ð8Ð8Ð8ð	1ð 	1ð 	1ð	2ð 	2ð 	2ð 	2à	Ð(Ð	(Ð	(Øà!Ð! )Ñ,Ô,Ð,ð-ð -ð -ð.ð .ð .ð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ð
 ÐAÐAÐAð	 ð 	 ð 	 ð 	 ð  
�jÐ	 Ð	 ð	 ð 	 ð 	 ð 	 ð  "Ð! )Ñ,Ô,Ð,ð/ð /ð /ð?3ð ?3ð ?3ðB/ð /ð /ð Ð&Ð&Ð&àØ	Ð:Ð	:Ð	:ð	.ð 	.ð 	.ð 	.ð "Ð! )Ñ,Ô,Ð,ð(ð (ð (ð,ð ,ð ,ð Ð8Ð8Ð8ð	3ð 	3ð 	3ð 	3ð 
Ð(Ð	(Ð	(Øà!Ð! )Ñ,Ô,Ð,àÐ&Ð&Ð&ð	<ð 	<ð 	<ð 	<ð, 
Ð:Ð	:Ð	:Øà!Ð! )Ñ,Ô,Ð,àÐ&Ð&Ð&ð	.ð 	.ð 	.ð 	.ð 	.ð 
Ð:Ð	:Ð	:Øˆà!Ð! )Ñ,Ô,Ð,r.   r3  c                   ó   — e Zd ZdS )ru  N)r3   r4   r5   r7   r.   r,   ru  ru  9  s   € € € € € Øˆr.   ru  )6rÛ  r<   rò  r�   Úloggingr¤   Ú
numba.corer   r   r   Únumba.core.errorsr   r   r   Únumba.core.ir_utilsr	   r
   Únumba.core.utilsr   r   r   r   Únumba.core.byteflowr   r   r   r   Únumba.core.unsafer   Únumba.cpython.unsafe.tupler   r   rt  rX  Úobjectr&   Ú	getLoggerr3   ra  r9   r\   rh   r‚   r†   r™   r¼   rò   rù   r  r  rý   r3  r�   ru  r7   r.   r,   ú<module>r—     s:  ðØ €€€Ø Ð Ð Ð Ø 
€
€
€
Ø €€€Ø €€€Ø €€€à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )ðð ð ð ð ð ð ð ð ð ð
 6Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5ðKð Kð Kð Kð Kð Kð Kð Kð Kð Kð Kð Kà CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ  Ð  Ð  Ð  Ð  Ð  Ø :Ð :Ð :Ð :Ð :Ð :ð Ð4Ð4Ð4àEÐEÐEÐEÐEÐEÐEØÐ$Ð$Ð$Øà
Ð
˜iÑ
(Ô
(Ð(ð:ð :ð :ð :ð :�Vñ :ô :ð :ð ˆ'Ô
˜HÑ
%Ô
%€ð1ð 1ð 1ð 1ð 1ˆvñ 1ô 1ð 1ðh
ð 
ð 
ð2&ð &ð &ðRHð Hð HðV ð  ð  ðFið ið iðX|ð |ð |ð~lð lð lð^	ð ð ð@[ð [ð [ð|.ð .ð .ðb2ð 2ð 2ðjf"-ð f"-ð f"-ð f"-ð f"-�&ñ f"-ô f"-ð f"-ðRE Ð4Ð4Ð4ðð ð ð ð ¨ñ ô ð ð ð àÐ$Ð$Ð$Ø€Dà
Ð
˜iÑ
(Ô
(Ð(r.   