+
    :i/                       ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtHtH	t	 ^ RI
HtHtHt ^ RIHtHt ^ RIHtHtHtHt ^ RIHtHtHtHt ^ RIHt ^ RIHt ]R9   d   ^ R	IHt  M]R9   d   M]!! ]4      h ! R
 R]"4      t#]PH                  ! ]%4      t& ! R R]"4      t'R t(R t)R t*R t+R t,R t-R t.R t/R t0R t1R t2 ! R R]"4      t3]R9   d    ! R R]44      t5R# ]R9   d   R# ]!! ]4      h)    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)CALL_INTRINSIC_1_Operandc                   0   a  ] tR t^t o RtR tR tRtV tR# )_UNKNOWN_VALUEzNRepresents an unknown value, this is for ease of debugging purposes only.
    c                    Wn         R # N_varname)selfvarnames   &&T/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/core/interpreter.py__init___UNKNOWN_VALUE.__init__#   s        c                8    R P                  V P                  4      # )z_UNKNOWN_VALUE({}))formatr   r   s   &r   __repr___UNKNOWN_VALUE.__repr__&   s    #**4==99r!   r   N)	__name__
__module____qualname____firstlineno____doc__r   r%   __static_attributes____classdictcell____classdict__s   @r   r   r      s      : :r!   r   c                   6   a  ] tR t^-t o RtR tR tR tRtV t	R# )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                p    / V n         \        P                  ! \        4      V n        \        4       V n        R # r   )dest_to_srccollectionsdefaultdictlistsrc_invalidatesetunused_destsr$   s   &r   r   Assigner.__init__:   s)     *55d;Er!   c                   VP                   pVP                   pW@P                  9   d>   V P                  P                  V4       F  pV P                  P                  V4       K   	  W0P                  9   d   V P                  V,          pVP                  '       dL   WP                  V&   V P                  V,          P                  V4       V P                  P                  V4       V# )z
Assign *srcvar* to *destvar*. Return either *srcvar* or a possible
simplified assignment source (earlier assigned to *srcvar*).
)namer7   popr3   is_tempappendr9   add)r   srcvardestvarsrcnamedestnameds   &&&   r   assignAssigner.assignB   s    
 ++<<*** ((,,X6  $$Q' 7&&&%%g.F???)/X&(//9!!(+r!   c                    WP                   9   d   V P                   V,          # V P                  P                  V4       R# )z]
Get a possible assignment source (a ir.Var instance) to replace
*destname*, otherwise None.
N)r3   r9   discard)r   rD   s   &&r   get_assignment_sourceAssigner.get_assignment_sourceV   s8    
 '''##H--!!(+r!   )r3   r7   r9   N)
r'   r(   r)   r*   r+   r   rF   rJ   r,   r-   r.   s   @r   r1   r1   -   s     
"( r!   r1   c                6   W,          P                   P                  pW,          P                  pWRP                  V,          9   d<   VP                  V,          P	                  V4       W4,          P                  V4       R# WSV,          9  d   \        R4      hR# )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.
zInconsistency found in the definitions while executing a peephole optimization. This suggests an internal error or inconsistency elsewhere in the compiler.N)targetr<   value_definitionsremover@   r   )old_bodyidxfunc_iralready_deleted_defslhsrhss   &&&&  r   _remove_assignment_definitionrW   a   s     -


#
#C
-

C
""3''S!((-!%%c*	-	-&A
 	
 
.r!   c                    VP                   P                  4       pVP                  pVP                  4        F  w  rWV	,          ^,          3Wi&   K  	  RW#&   \        WWE4       V# )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_indexesrW   )
rQ   keyword_exprnew_bodybuildmap_idxrS   rT   kwsr[   keyindexs
   &&&&&&    r   #_call_function_ex_replace_kws_smallrb   z   sj    2 


!
!
#C !..M#))+
u:a=)
 , "H! Jr!   c                   RWB&   \        WWW4       . pV^,           p	W8:  Ed   W	,          p
\        V
\        P                  4      '       d+   \        V
P                  \        P
                  4      '       g   \        V4      hV
P                  P                  pV
P                  P                  pV	^,          p	RpW8:  d   V'       g   W	,          p\        V\        P                  4      '       d   \        VP                  \        P                  4      '       d`   VP                  P                  R8X  dE   VP                  P                  P                  V8X  d    VP                  P                  R8X  d   RpK  V	^,          p	K  V'       d   W8X  d   \        V4      hW	^,           ,          p\        V\        P                  4      '       d   \        VP                  \        P                  4      '       d   VP                  P                  R8X  d   VP                  P                  P                  XP                  P                  8X  dQ   \        VP                  P                  4      ^8X  d-   VP                  P                  ^ ,          P                  V8X  g   \        V4      hVP                  P                  ^,          pVP                  VV34       RWI&   RWI^,           &   \        W	WW4       \        W	^,           WW4       V	^,          p	EK  V# )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.
NFgetattr__setitem__Tcall)rW   
isinstancer   AssignrN   Constr   rM   r<   Expropattrfunclenargsr?   )rQ   buildmap_namer^   
search_endr]   rS   errmsgrT   r_   search_start
const_stmtkey_var_namekey_valfound_getattrgetattr_stmtsetitem_stmtarg_vars   &&&&&&&&         r   #_call_function_ex_replace_kws_larger{      sp   N "H! C!#L

$+
z299--:++RXX66 +622!((--""((&!#1L<33|11277;; &&))Y6 &&,,11$% !&&++}< $$ !) +622q 01|RYY//<--rww77""%%/""'',,&&++, L&&++,1""''*//  +622$$))!,

GW%&!%%)!"%G	
 	&Q&	
 	Jr!   c                :    RW#&   \        WWE4       VP                  # )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)rW   rY   )rQ   
tuple_exprr]   buildtuple_idxrS   rT   s   &&&&&&r   $_call_function_ex_replace_args_smallr   .  s'    4  $H!' r!   c                6   ^ p. p\        V\        P                  4      '       d[   \        VP                  \        P                  4      '       d1   VP                  P
                  p	RW#&   \        WWF4       V^,          pM\        R4      hW78  Edn   W,          p
\        V
\        P                  4      '       d   V
P                  P
                  V	8X  dt   \        V
P                  \        P                  4      '       dJ   V
P                  P                  R8X  d/   V
P                  P                  '       g   RW#&   \        WWF4       EMW78X  g   \        V
\        P                  4      '       d   V
P                  P
                  V	8X  do   \        V
P                  \        P                  4      '       dE   V
P                  P                  R8X  d*   V
P                  P                  \        P                  8X  g   \        V4      hV
P                  P                   P
                  pV
P                  P"                  P
                  pW^,
          ,          p\        V\        P                  4      '       dj   \        VP                  \        P                  4      '       d@   VP                  P                  R8X  d%   \%        VP                  P                  4      ^8X  g   \        V4      hVP                  P
                  V8X  d   \        R4      hVP                  P
                  V8X  d   Tp	M\        V4      hVP'                  VP                  P                  ^ ,          4       RW#&   RW#^,
          &   \        WWF4       \        W^,
          WF4       V^,          pRpW78  g   EK  V'       g   EK"  W,          p\        V\        P                  4      '       d    VP                  P
                  V	8X  d   RpK[  V^,          pKf  W78X  d   \        V4      hVRRR1,          # )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
Nunreachablebuild_tuplebinopTF)rg   r   rh   rN   Varr<   rW   AssertionErrorrM   rj   rk   rY   fnoperatorr@   r   rU   rV   rn   r?   )rQ   vararg_stmtr]   rq   rS   rr   rT   rs   
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  sO   L LJ;		**{(("&&11!'',,#%'	
 	a

 ]++ 
$*{BII..""'';6;,,bgg66!!$$5%%+++#'H )g  *;		22&&++"# %%rww   %%((G3%%((HLL8 /v66"((,,11H"((,,11H &1n5N>29955"(("''  #((++$% ,,223q8 /v66$$))X5$]33&&++x7& /v66$$**1- $(H '+H!^$)g *q.' !OJL,$0	y"))44!((--&' $)L( !OJ! 'v..ddr!   c                   \         P                  ! R4      p\        P                  ! \        4      pV P
                  P                  4        EF  pRp. p\        VP                  4       EF  w  rg\        V\        P                  4      '       Ed,   \        VP                  \        P                  4      '       Ed   VP                  P                  R8X  Ed   VP                  P                  Ee   RpVP                  pVP                   p	VP"                  p
VP$                  pVP                  pV^,
          pTpRpRpV^ 8  dp   V'       gh   VP                  V,          p\        V\        P                  4      '       d*   VP&                  P(                  VP(                  8X  d   RpKk  V^,          pKv  V
'       gN   V'       dF   \        VP                  \        P                  4      '       d   VP                  P                  R8X  g   \+        V4      hVP                  P,                  '       d&   \/        VP                  VP                  VVV V4      p
M-\1        VP                  VP(                  VV^,
          VV VV4      p
TpVEex   V	'       d   \+        V4      hTpRpRpV^ 8  dp   V'       gh   VP                  V,          p\        V\        P                  4      '       d*   VP&                  P(                  VP(                  8X  d   RpKk  V^,          pKv  V'       g   \+        V4      h\        VP                  \        P                  4      '       dA   VP                  P                  R8X  d&   \3        VP                  VP                  VVV V4      p	Mk\        VP                  \        P                  4      '       d'   VP                  P                  R8X  d   \+        V4      h\5        VP                  VVVV VV4      p	\        P                  P7                  VP8                  WVP:                  VP&                  R	7      p\=        VP                  W`V4       \        P                  ! VVP&                  VP:                  4      pV P>                  VP&                  P(                  ,          PA                  V4       EM(\        V\        P                  4      '       Ed   \        VP                  \        P                  4      '       d   VP                  P                  R8X  d   VP                  P$                  e   VP                  pVP$                  P(                  pVV P>                  9   dx   \C        V P>                  V,          4      ^8X  dW   V P>                  V,          ^ ,          p\        V\        P                  4      '       d   VP                  R8X  d   \+        V4      hVPA                  V4       EK  	  V'       g   EK  VP                  PE                  4        VP                  PG                  V Uu. uF  pVf   K	  VNK  	  up4       EK  	  V # u upi )
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, ...)Frf   NT	build_mapr   list_to_tuple)rM   )$textwrapdedentr4   r5   r8   blocksvalues	enumeratebodyrg   r   rh   rN   rj   rk   varkwargro   r_   varargrM   r<   r   rY   rb   r{   r   r   rf   rm   locrW   rO   r?   rn   clearextend)rS   rr   rT   blkblk_changedr]   istmtrf   ro   r_   r   r   start_searchvarkwarg_lockeyword_deffound
vararg_locargs_defnew_callvararg_nameexprxs   &                      r   .peep_hole_call_function_ex_to_call_function_kwr     s   ( __   F '2237~~$$& *GA4++tzz27733JJMMV+JJ''3"zzyyhh == 1u+""a'"%((<"8K";		::'..33x}}D $$) ";#4#4bgg>>'--00K? 36::$$*** >#)) $,C* > $A ,	C  ,% 7v>>!-J#H!E$/%#&88J#7&x;; ( 4 4 C$(E&!OJ  7v>>"8>>277;;$NN-->  DHH$NN$&#0  #8>>277;;$NN--@
 7v>>0  DHH$$&#"0  77<<IIt$((4;; (  .HHa*> yy4;;A$$T[[%5%56==hG4++tzz27733JJMMV+JJ%%1
 zz"kk..7#7#77G00=>!C #//<Q?D!$00TWW5O6v>>OOD!a +d ;HHNNHHOOB1AQQBCo 'p N Cs   6Y
Y
c           
     X  a aa RpS P                   P                  4        EF  w  po V3R lpV! 4       pVEe   SP                  V^,          ^ ,          V^ ,          ^ ,           pV'       d+   \        R4       V F  p\        V4       K  	  \        R4       . p. pV^,          ^,          p	V	P                  P
                  p
V F  p\        V\        P                  4      '       g   K%  \        VP                  \        P                  4      '       g   KQ  VP                  pVP                  R8X  g   Kp  VP                  P
                  V
8X  g   K  VP                  R8X  d(   VP                  VP                  P
                  4       K  VP                  R8X  d(   VP                  VP                  P
                  4       K  Q h	  . oV V3R	 lpV	P                  pV'       d   \        R
4       SP                  4        V^ ,          ^,          pTpV EF   p\        V\        P                  4      '       Ed   \        VP                  \        P                  4      '       Ed   VP                  pVP                  R8X  d{   VP                  P
                  V9   g   VP                  P
                  V9   d2   S P                  P!                  VP                  P
                  4       K  SP                  V4       K  VP                  R8X  Ed8   VP"                  P
                  pVV9   g	   VV9   Ed   VP$                  ^ ,          p\        V\        P&                  4      '       EdM   V: RVP
                  : 2pVV9   d-   \        P                  P)                  V.VP*                  4      pM\        P,                  ! R\.        VP*                  R7      pVP0                  P3                  RVP*                  R7      pSP                  \        P                  ! VVVP*                  R7      4       \        P                  P5                  VV3RVP*                  R7      p\        P&                  ! VP0                  VVP*                  4      p\        P                  ! VVVP*                  4      pV! V4       Tp\        P                  P7                  \8        P:                  VVVP*                  R7      p\        P                  ! VVP                  VP*                  4      pV! V4       VP                  pEK  SP                  V4       EK0  VP                  R8X  d   VP                  P
                  V
8X  dl   \        P                  P)                  VP                  VP*                  4      p\        P                  ! VVP                  VP*                  4      pV! V4       EK  SP                  V4       EK  SP                  V4       EK  SP                  V4       EK  	  V! \        P                  ! WP                  VP*                  4      4       V'       d    \        R4       S F  p\        V4       K  	  SP                  R,          pVRV^,          ^ ,           pSP                  V^ ,          ^ ,          ^,           R pVS,           V,           pSP                  P=                  4        SP                  P?                  V4       V'       d   \        R4       SP                  4        EK  EK  EK  	  S # )a_  
This peephole rewrites a bytecode sequence new to Python 3.9 that looks
like e.g.:

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

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

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

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

1. Turns the BUILD_LIST into a BUILD_TUPLE
2. Sets an accumulator's initial value as the target of the BUILD_TUPLE
3. Searches for 'extend' on the original list and turns these into binary
   additions on the accumulator.
4. Searches for 'append' on the original list and turns these into a
   `BUILD_TUPLE` which is then appended via binary addition to the
   accumulator.
5. Assigns the accumulator to the variable that exits the peephole and the
   rest of the block/code refers to as the result of the unpack operation.
6. Patches up
Fc                    < R p \        \        \        SP                  4      4      4       F  pSP                  V,          p\	        V\
        P                  4      '       dV   VP                  p\	        V\
        P                  4      '       d*   VP                  R8X  d   VP                  ^ ,          pRp W3pV '       g   K  \	        V\
        P                  4      '       g   K  VP                  P                  X8X  g   K  XW33pVu # 	  R# )Fr   TN)reversedrangern   r   rg   r   rh   rN   rj   rk   inforM   r<   )r   rR   r   rN   target_listbtregionr   s          r   find_postive_region4peep_hole_list_to_tuple.<locals>.find_postive_region$  s    #E#chh-$89C88C=D!$		22 $

&ubgg66 %O ;*/**Q-K$(E"%Bu%dBII66#{{//;>*,sk):'- :r!   Nz
WINDOW: rd   r   r?   c                  < SP                  V 4       V P                  P                  SP                  9   dm   \	        SP                  V P                  P                  ,          4      ^8X  g   Q hSP                  V P                  P                  ,          P                  4        SP                  V P                  P                  ,          P                  V P                  4       R# )z-Adds to the new_hole and fixes up definitionsN)r?   rM   r<   rO   rn   r   rN   )r   rS   new_holes   &r   append_and_fix/peep_hole_list_to_tuple.<locals>.append_and_fixW  s    OOA&xx}}(<(<<  #7#7#7#FG1LLL,,QXX]];AAC((7>>qwwGr!   z
BLOCK:rf   _var_tupler<   rN   r   $_list_extend_gv_tupler   )rM   rN   r   r   rU   rV   r   
build_listz

NEW HOLE::NNNz
DUMP post hole: ) r   rY   r   printrM   r<   rg   r   rh   rN   rj   rk   rl   r?   dumprO   r=   rm   ro   r   r   r   Globalr   scoperedefinerf   r   r   r@   r   r   )rS   _DEBUGoffsetr   r   	peep_holer   appendsextendsinit
const_listr   r   the_build_listt2l_agnaccfnameargtmp_namer   gv_tuple	tuple_varvarasgnnewcpyheadtailtmpr   r   s   f                            @@r   peep_hole_list_to_tupler     s2   @ F ~~++-." )*F!HHVAYq\F1IaLA	+&&a '"Iay|![[--
 #A!!RYY//%aggrww77#$77D $9 4$(JJOOz$A $(99#8$+NN188==$A%)YY(%:$+NN188==$A$,1 #  	H "& *%HHJ !)A,$"A!!RYY//%aggrww77#$77D#ww)3$%HHMMW$<()(@ %,$8$8$<$<QXX]]$K$, %-OOA$6!%F!2(,		#(G#3u7G*.))A,C'1#rvv'>'>BGBE((4L+0G+;131D1DcVEIXX2OB 8:yy5<E48HH8.H 9<		8J8J0H48HH 9K 9.I -5OO02		;D:B8<12-. 2409C6248HH 2> 2.B /1ffSYY59XX/?/1yyS$((/K(6t(<.1 +-''--8<<<?<?<=EE +8 +CC ,.99S!((DHH+MD$24$8*.++C %-OOA$6"&''\"9$%HHMMZ$?&(gg&9&9$**dhh&O')yyahh'I .t 4 ( 2$OOA. !*[ #` ryynn)7);); = >-(%a & hhqk=F1IaL)xxq	!q 0 12Xo, $-.HHJ  m .p Nr!   c                   \        4       pV P                  P                  4        EF=  pVP                   F  p\        VP	                  4       4      pV F7  pVP
                  P                  R4      '       g   K&  VP                  V4       K9  	  WA,          '       g   Ki  \        V\        P                  4      '       g   K  VP                  VP                  4       K  	  . pVP                   F<  p\        VP	                  4       4      V,          '       d   K+  VP                  V4       K>  	  VP                  P                  4        VP                  P                  V4       EK@  	  V # )z\
This rewrite removes variables used to store the `__exit__` function
loaded by SETUP_WITH.
z$setup_with_exitfn)r8   r   r   r   	list_varsr<   
startswithr@   rg   r   rh   rM   r?   r   r   )rS   	dead_varsr   r   usedvr]   s   &      r   peep_hole_delete_with_exitr     s    
 I~~$$&HHD t~~'(D66$$%9::MM!$ 
 dBII..MM$++.  HHD()I55%  	!) ', Nr!   c           
        \         P                  ! R4      p\        P                  ! \        4      pV P
                  P                  4        EF  p. p/ p\        P                  ! \        4      p/ pRp\        VP                  4       EF  w  rT
pRp\        V
\        P                  4      '       Ed   \        V
P                  \        P                  4      '       Ed}   V
P                  P                  R8X  d   V
P                   P"                  pWV
P                   P"                  &   WjP                   P"                  ,          P%                  V	4       V
P                  P&                  P)                  4       WzP                   P"                  &   EMV
P                  P                  R8X  Ed   V	^ 8  Ed   V
P                  P*                  P"                  pVP                  V	^,
          ,          pV
P                  P,                  p\        V\        P                  4      '       Ed8   VP                   P"                  V8X  Ed   \        VP                  \        P                  4      '       Ed   VP                  P                  R8X  Ed   VP                  P.                  R
9   Ed   VP                  P                  P"                  pVP                  P.                  pVR8X  dC   VV9   d<   VV,          P%                  V4       VV,          P1                  V	^,
          V	.4       EM9VR8X  Ed2   V^ ,          P"                  pVV9   Ed   VV9   Ed   VV,          P1                  VV,          4       VV,          P1                  VV,          4       VV,          P%                  V	^,
          4       VV,           F   p\3        VP                  VV V4       RVV&   K"  	  VV VV VV \3        VP                  WV4       \5        V VVP                  VV,          VV,          4      pVV,          P7                  4        VV,          P%                  V	4       R	pM\9        V4      h\        V
\        P                  4      '       d   \        V
P                  \        P                  4      '       d\   V
P                  P                  R8X  dA   V
P                  P                  P"                  V9   d   V
P                  P.                  R
9   ge   V
P;                  4        FP  pVP"                  V9   g   K  VP"                  V8w  g   K)  VVP"                   VVP"                   VVP"                   KR  	  VP%                  V4       EK  	  V'       g   EK7  VP                  P7                  4        VP                  P1                  V Uu. uF  pVf   K	  VNK  	  up4       EK  	  V # u upi )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   rf   rd   re   _update_from_bytecodeT)re   r   )r   r   r4   r5   r8   r   r   r6   r   r   rg   r   rh   rN   rj   rk   rM   r<   r?   rY   rZ   rm   ro   rl   r   rW   _build_new_build_mapr   r   r   )rS   rr   rT   r   r]   lit_map_def_idxlit_map_use_idxmap_updatesr   r   r   new_inststmt_build_map_out	func_namerx   ro   update_map_namerl   d2_map_namelinenumr   r   s   &                     r   peep_hole_fuse_dict_add_updatesr     s   D __ # $F '2237~~$$&
 &11$7 *GAH "&$		**z$**bgg/N/N::==K/)-)9)9& 9:DKK$4$45#KK$4$45<<Q?48JJ4D4D4I4I4KK 0 01ZZ]]f,Q !%

 4 4I $'88AE?L::??D"<;;(//44	A&|'9'9277CC(..11Y>(..33 8  +7*<*<*B*B*G*G+1166 M1./A'8??E ,O<CCQUAJO!%<<*.q',,K /? B#./#A !,O < C C$/$<!" !0 @ G G$3K$@!" !0 @ G GA N/>/O/OG$A(+(/(/(<	%& 9=HW$5 0P %4K$@$3K$@$/$< !>$'HHa:N!" ,@$+$3$'HH$3O$D$/$@," !0 @ F F H / @ G G J.2 '?v&F F 4++tzz27733JJMMY.JJ$$))_<JJOO'OO>>+C
 O3HH(::+CHH5+CHH5'1 , OOH%m +p ;HHNNHHOOB1AQQBCQ 'T N Cs   5W
 W
c           	     (   / p\        V P                  P                  4       4      p\        V4       EFA  w  pw  rE. p\        VP                  4       F8  w  rx\        V\        P                  4      '       g   K'  VP                  V4       K:  	  V'       g   Kf  . p	V F  p\        P                  ! VP                  VP                  R7      p
V
P                  P                  VP                  RV 4       V	P                  V
4       \        P                  ! VP                  VP                  R7      pVP                  P                  VP                  V,          4       V	P                  V4       K  	  TpV	 FL  pWV&   V^,           pVP                  P                  \        P                  ! WP                  R7      4       TpKN  	  V^,           \        V4      8  d2   WV^,           ,          ^ ,          8  d   \        P                   ! R4      h\        P                  ! VP                  VP                  R7      pVP                  P                  VP                  VR,          ^,           R 4       WV&   EKD  	  V P                  P#                  V4       V # )z
Split blocks that contain ir.PopBlock.

This rewrite restores the IR structure to pre 3.11 so that withlifting
can work correctly.
r   NzPOP_BLOCK peephole failedr   )sortedr   rY   r   r   rg   r   PopBlockr?   Blockr   r   r   Jumprn   r   InternalErrorupdate)rS   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    s    M7>>//12M!*=!9% *GA$,,%%a( + >J#XXciiSWW=
&&sxx|4!!*-XXciiSWW=
&&sxx{3!!*- $ J$,2j)'!^
""277:77#CD'
	 % {S//w{!;A!>> !../JKKxx		sww7HMM  .*<q*@*A!BC(0*%E ":H NN-(Nr!   c                ^   W#,          pVP                   pVP                  p. p. p	V EF  p
V
w  r\        \        W4      p\	        V\
        P                  \
        P                  \
        P                  34      '       d   VP                  VP                  4       \        \        W4      p\	        V\
        P                  \
        P                  \
        P                  34      '       d   V	P                  VP                  4       K  V	P                  \        VP                  4      4       EK  	  / p\        V4      \        V4      8X  d;   \        W4       UUu/ uF	  w  ppVVbK  	  ppp\        V4       F
  w  ppVW&   K  	  MRp\
        P                  P!                  V\        V4      VVVP"                  R7      pV P$                  V,          P                  V4       \
        P&                  ! V\
        P(                  ! VP*                  WP"                  4      VP"                  4      # u uppi )z[
Create a new build_map with a new set of key/value items
but all the other info the same.
NrY   sizeliteral_valuer[   r   )rM   rN   r
   r	   rg   r   ri   r   FreeVarr?   r   r<   rn   zipr   rj   r   r   rO   rh   r   r   )rS   r<   rQ   
old_lineno	new_items
old_assign
old_targetold_bmliteral_keysr   pairkr   key_def	value_defr[   r   yr  r   new_bms   &&&&&                r   r   r   	  s   
 %J""JFL F3g"))RZZ@AA..'5	i"((BIIrzz!BCCMM)//* MM.01  M
<C	N**-l*CD*C$!QA*CDl+DAq M ,  WW^##JJ  F %%f- 99z''~~>

 ) Es   H)c                   (	  a  ] tR tRt o RtRtR tR tR tR t	R t
R	 tR
 tR tR tRR ltR tR tR tR tR tR tR tR tR t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       tR t RR lt!R  t"RR! lt#R" t$]%R9   d   ]$t&M]%R9   d   M]'! ]%4      hR# t(R$ t)R% t*R& t+R' t,R( t-R) t.R* t/R+ t0R, t1R- t2R. t3]%R9   d   R/ t4M]%R9   d   M]'! ]%4      h]%R9   d   R0 t5M]%R9   d   M]'! ]%4      hR1 t6R2 t7R3 t8R4 t9R5 t:R6 t;R7 t<R8 t=R9 t>R: t?R; t@R< tAR= tB]%R9   d   RR> ltCM]BtC]%R9   d   R? tDR@ tERA tFM]%R9   d   M]'! ]%4      h]%R9   d   ]CtGRB tHM]%R9   d   M]'! ]%4      h]%R9   d   ]CtI]DtJM]%R9   d   M]'! ]%4      hRC tKRD tLRE tM]MtN]MtORF tPRG tQRH tRRI tS]%R9   d   RJ tTM]%R9   d   M]'! ]%4      h]%R9   d   RK tUM]%R9   d   RL tUM]'! ]%4      hRM tV]%R9   d   RN tWM]%R9   d   RO tWM]'! ]%4      h]%R9   d   RP tX]%R9   d   RQ tYM]%R9   d   RR tYM]'! ]%4      hRS tZRRT lt[]%R9   d   M]%R9   d   RU t\M]'! ]%4      hRV t]RW t^RX t_RY t`RZ taR[ tbR\ tc]%R9   d   R] tdM	]%R8  g   Q hR^ teR_ tfR` tgRa thRb tiRc tjRd tkRe tlRf tmRg tn]%R9   d   M]%R9   d   Rh toM]'! ]%4      hRi tpRj tqRk trRl tsRm ttRn tuRo tvRp twRq txRr tyRs tzRt t{Ru t|Rv t}Rw t~Rx tRy tRz tR{ tR| tR} tR~ tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t]tRR ltR t]%R9   d   R tM]%R9   d   M]'! ]%4      h]%R9   d   R tM]%R9   d   M]'! ]%4      hR tR tR tRR ltR tR tR tR tR tR t]%R9   d   R tR tM]%R9   d   M]'! ]%4      hR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t]%R9   d   R tM]%R9   d   R tM]'! ]%4      hR tR tR t]%R9   d   M]%R9   d   R tM]'! ]%4      hR tR t]%R9   d   R tM]%R9   d   M]'! ]%4      h]%R9   d   R tM]%R9   d   M]'! ]%4      h]%R9   d
   R tRtV tR# ]%R9   d   RtV tR# ]'! ]%4      h)Interpreteri>  z2A bytecode interpreter that builds up the IR.
    Fc                   Wn         V P                  '       d   \        VP                  4       VP                  V n        VP
                  V n        \        P                  P                  V4      ;V n	        V n
        VP                  V n        / V n        \        P                  ! \        4      V n        \#        4       V n        R # r   )func_id_DEBUG_PRINTr   rm   	arg_count	arg_namesr   Locfrom_function_idr   	first_locis_generatorr   r4   r5   r6   definitionsr8   _exception_vars)r   r!  s   &&r   r   Interpreter.__init__D  s    ',, ** **$&FF$;$;G$DD4>#00 &2248  #ur!   c           	        Wn         . V n        \        P                  ! RV P                  R7      pV P                  P                  V4       \        V4      pVP                  4        \        V4      V n	        \        V4      V n        \        P                  '       d   V P                  P                  4        RV n        RV n        ^ pV P                  P"                  P%                  4        F8  w  rVVP&                  '       g   K  \)        V\)        VP&                  4      4      pK:  	  W@n        \,        R9   dS   \/        V P                   P0                   Uu. uF"  pVP2                  V P*                  8  g   K   VNK$  	  up4      V n        M\,        R9   d   M\7        \,        4      h. V n        RV n        V P                  P                  \        P                  ! V P<                  V P                  R7      4       V P?                  4        F  w  rV PA                  W4       K  	  \,        R9   d   V PC                  4        M\,        R9   d   M\7        \,        4      hV PE                  4        \        PF                  ! V P"                  V PH                  V PJ                  V PL                  V PN                  V PP                  V PR                  4      p
\T        PW                  \Y        V
R R7      4       . p\,        R9   d   VP                  \Z        4       \,        R	9   d   VP                  \\        4       VP                  \^        4       \,        R	9   d+   VP                  \`        4       VP                  \b        4       V Pe                  W4      pV# u upi )
z 
Generate IR for this bytecode.
N)parentr   c                 "    V P                  4       # r   )dump_to_stringr   s   &r   <lambda>'Interpreter.interpret.<locals>.<lambda>  s    8H8H8Jr!   )	lazy_func      r6     r6     r6  
   r6     r?  r5  r8  r:  r=  )r=  r?  r5  r8  r:  )3bytecodescopesr   Scoper   r?   r   runr   dfar   cfar   DUMP_CFGr   current_blockcurrent_block_offsetr   rY   r   maxlast_active_offsetr   r   exception_entriesstartactive_exception_entriesNotImplementedErrorsyntax_blocksdfainfocurrent_scope
_iter_inst	_dispatch_end_try_blocks_legalize_exception_vars
FunctionIRr(  r!  r'  r)  r#  r$  _loggerdebugr   r  r   r   r   r   post_process)r   rC  global_scopeflowrM  _inst_blocksentryr  r_   rS   	peepholespost_processed_irs   &&           r   	interpretInterpreter.interpretU  s    !xxt:<(H~
D>D>???HHMMO "$(!"hhoo335NA%();),[-=-=)>&@" 6 #533,1$(MM$C$C ;$C5KK$"9"99 $C ;-<D) ,,%i002884+=+=488LM *IDNN4% +<<  "*$%i00%%'--T->-> $0@0@ $@ 	mG.JL 	M
 	<<9:EE4534EE
 KL<= --iA  _;s   N
6N
c                (    V F  pV! V4      pK  	  V# r   r   )r   rb  rS   peeps   &&& r   r\  Interpreter.post_process  s    D7mG r!   c           	     :  a a \         R9   g   Q hS P                  P                  pS P                  P	                  4        F  w  poS P
                  P                  V,          P                  pVP                  V4       F  w  rES P
                  P                  V,          P                  p\        \        W64      4       F  w  pw  rW8w  g   K   M 	  \        \        V4      \        V4      4      pVV 3R lp
V
! \        WgR 4      4      '       g   K   K  	  K  	  R# )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
c                 0  < V '       d   V P                  4       pVR ,          \        R4      8X  g   K1  SSn        \        SP                  4      pSP                  P                  4        SP                  4        SP                  P                  V4       R# R# )kindTRYTN)r=   r   rJ  r6   r   r   _insert_try_block_endr   )remainentoldbodyblockr   s   &  r   	do_change.Interpreter._end_try_blocks.<locals>.do_change  sn     $jjlv;)E*::16D.&*5::&6G!JJ,,. 668!JJ--g6#' !r!   NrA  )r   rH  graphr   rY   rG  infos
blockstackpredecessorsr   r  minrn   r6   )r   rt  r   cur_bsincr_  inc_bsr   r   r  rr  rq  s   f          @r   rW  Interpreter._end_try_blocks  s      @@@@![[..0MFEXX^^F+66F,,V4,77 "+3v+>!?IAvv "@ CKV5A
( T&*-../ 5	 1r!   c                
   V P                   P                  4       pV P                  P                  4        FU  w  r#V FJ  p\	        V\
        P                  4      '       g   K%  VP                  pWQ9   g   K9  VP                  V4       KL  	  KW  	  \        \        R V4      4      pV'       dX   V^ ,          pV P                  P                  V4      P                  pRp	\        P                  ! V	P!                  V4      VR7      hR# )zcSearch for unsupported use of exception variables.
Note, they cannot be stored into user variable.
c                 .    V P                  R 4      '       * # )$)r   r0  s   &r   r1  6Interpreter._legalize_exception_vars.<locals>.<lambda>  s    ALL,=(=r!   z5Exception object cannot be stored into variable ({}).r   N)r*  rZ   r)  rY   rg   r   r   r<   r@   r6   filterrT  getr   r   r   r#   )
r   excvarsr   defnvarsr   r  uservarfirstr   msgs
   &         r   rX  $Interpreter._legalize_exception_vars  s    
 &&++-!%!1!1!7!7!9Ga((A|G,	  ": v=wGHAJE$$((/33CIC11#**U2CMM r!   c                    \        V P                  4       F8  w  r\        P                  ! WV P                  R 7      pV P                  W24       K:  	  R# ))ra   r<   r   N)r   r$  r   Argr   store)r   ra   r<   vals   &   r   init_first_blockInterpreter.init_first_block  s7    $T^^4KE&&uTXX>CJJs! 5r!   c              #    "   \        V P                  P                  4       4       EF  w  rV P                  VP                  ,          pVP
                  R 8X  d   V P                  VP                  ,          pV P                  P                  VP                  4      V n        V P                  VP                  4       V^ 8X  d   V P                  4        V P                  P                   FG  w  rEV P                  V,          pV P                  P                  VP                  4      V n        We3x  KI  	  V P                  4        EK!  	  R# 5i)END_FORN)r   rH  iterliveblocksrC  r   opnamenextr   with_linenolineno_start_new_blockr  rS  insts_end_current_block)r   blkctrq  	firstinstr   r_   r  s   &      r   rU  Interpreter._iter_inst  s     %dhh&=&=&?@LEell3I
 9, MM)..9	xx++I,<,<=DH!!%,,/z%%'#||11}}V,88//<i  2 ##%# As   E	Ec                F   V P                   pV P                  V4       V P                  '       d   V P                  P                  MR pVe   VP                  '       g   Ve}   VR,          V P
                  P                  P                  4       9   dM   \        P                  ! V P                  R4      VR,          VV P                  R7      pVP                  V4       M2\        P                  ! WP                  R7      pVP                  V4       V P                  P                  V P                   ,          V n        \#        4       V n        \&        R9   d   V P(                  '       d   WP(                  R,          P*                  8  dx   V P(                  P-                  4       p\/        V\        P0                  4      '       d<   V P                   P                  \        P2                  ! V P                  4      4       K  K   V P                  P                  pVe   WsJd   V P5                  4        R # R # R # \&        R9   dT   V P(                  '       d@   WP(                  R,          P*                  8  d   V P(                  P-                  4        KO  R # R # \7        \&        4      h)Nend$exception_checkcondtruebrfalsebrr   r   rA  r   rB  )rJ  insert_blockrS  active_try_blockis_terminatedrH  rt  nodesr   Branchr  r   r?   r   rG  ru  rK  r1   assignerr   rR  exitr=   rg   Withr   _insert_try_block_beginrQ  )r   r   oldblocktryblkbranchjmpsynblk	newtryblks   &&      r   r  Interpreter._start_new_block  s   %%&!26,,,..D(>(>(> !fUmtxx~~7K7K7M&M "45!%="	 ' ggf((3$ xx~~d&?&?@ 
<<$$$//3888!//335F!&"''22**11"++dhh2GH 3 55I$*002 + % *$$$$//3888&&**,	 % &i00r!   c                    V P                   P                  '       g+   V P                  P                  pVe   V P	                  4        V P                  4        V P                  4        R # r   )rJ  r  rS  r  _insert_exception_check_remove_unused_temporaries_insert_outgoing_phis)r   r  s   & r   r  Interpreter._end_current_block;  sM    !!///\\22F!,,.'')""$r!   Nc                D   \         P                  ! W!V P                  R7      pV P                  WBRR7       \         P                  P                  V P                  V4      RRV P                  R7      pT;'       g    RP                  V4      pV P                  WSRR7       R# )ah  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rN   r<   r   z$callres_{}Nr   )r   r   r   r  rj   rf   r  r#   )r   rm   gv_nameres_namegv_fncallress   &&&&  r   _inject_callInterpreter._inject_callE  sw     		'TXX6

t
<'',,txx0"bdhh,G<<}33G<

$
?r!   c                F    V P                  \        P                  R4       R# )z<Insert IR-nodes to mark the start of a `try` block.
        mark_try_blockN)r  r   r  r$   s   &r   r  #Interpreter._insert_try_block_beginX  s     	"++-=>r!   c                F    V P                  \        P                  R4       R# )z:Insert IR-nodes to mark the end of a `try` block.
        end_try_blockN)r  r   r  r$   s   &r   rm  !Interpreter._insert_try_block_end]  s     	"**O<r!   c                   V P                   P                  pVR,          pV P                   P                  P                  V4      pV'       dv   \        P
                  ! RV P                  R7      pV FK  pWPP                  9   d   \        R4      hV P                  WER7       V P                  P                  V4       KM  	  R# R# )z?Insert IR-nodes to initialize the exception variables.
        r  NrN   r   z2exception variable CANNOT be defined by other coderN   r<   )rS  r  outgoing_edgepushedr  r   ri   r   r)  r   r  r*  r@   )r   r  endblk
edgepushed
const_noner   s   &     r   _insert_exception_variables'Interpreter._insert_exception_variablesb  s     ..\\5599&A
 $((;J!***(L  


6$$((- " r!   c                h    V P                  4        V P                  \        P                  RR4       R# )zECalled before the end of a block to inject checks if raised.
        exception_checkr  N)r  r  r   r  r$   s   &r   r  #Interpreter._insert_exception_checkv  s,     	((*",,.?,	.r!   c                "   . p/ pV P                   P                   EF  p\        V\        P                  \        P
                  34      '       d?   VP                  P                  V9   d$   W#P                  P                  ,          Vn        EM\\        V\        P                  4      '       Ed<   VP                  P                  '       d2   VP                  P                  V P                  P                  9   d   K  \        VP                  \        P                  4      '       dQ   VP                  P                  V9   d6   W#P                  P                  ,          Vn        VP                  V4       EKZ  \        VP                  \        P                  4      '       d   VP                  P                   R8X  do   VP                  P                  P                  V9   dJ   W#P                  P                  P                  ,          VP                  n        VP                  V4       EK  \        VP                  \        P                  4      '       Ed   VP                  P                  '       Edz   V'       Edq   \        VR,          \        P                  4      '       EdI   VR,          pVP                  P                  VP                  P                  8X  Ed   V P#                  VP                  P                  VP                  4      '       g   VP                  W#P                  P                  &   VP                  Vn	        V P$                  VP                  P                  ,          P'                  VP                  4       V P$                  VP                  P                  ,          P)                  V P$                  P+                  VP                  P                  4      4       EK  VP                  V4       EK  	  WP                   n        R# )zJ
Remove assignments to unused temporary variables from the
current block.
exhaust_iterNr   )rJ  r   rg   r   SetItemSetAttrrN   r<   rh   rM   r>   r  r9   r   r?   rj   rk   _var_used_in_binopr)  rP   r   r=   )r   r]   replaced_varr  prev_assigns   &    r   r  &Interpreter._remove_unused_temporaries~  s   
 &&++D 4"**bjj!9::

<7)**//:
D")),,KK''' KK,,0J0JJ tzz26622 JJOO|;!-jjoo!>DJOOD) tzz27733 JJMM^; JJ,,11\A'3JJ4D4D4I4I'JDJJ$OOD) tzz26622tzz7I7I7I$HHRL")))L)L"*2,K $**//4::??B$($;$; $ 0 0+2C2C%E %E8<ZZ__5-1[[*(()9)9:AA$**M(()9)9:AA ,,00A !OOD!e ,h #+r!   c                    \        V\        P                  4      ;'       dP    VP                  R9   ;'       d9    WP                  P
                  8H  ;'       g    WP                  P
                  8H  # )zXreturn True if 'expr' is a binary expression and 'varname' is used
in it as an argument
)r   inplace_binop)rg   r   rj   rk   rU   r<   rV   )r   r   r   s   &&&r   r  Interpreter._var_used_in_binop  s^     4) K KGG99K K-IIHHMM1I	Lr!   c                   V P                   P                  P                  4        F  w  rV P                  P	                  VV P
                  R7      p V P                  V4      p\        P                  ! WCV P
                  R7      pV P                  VP                  ,          P                  VP                  4       V P                   P"                  '       g   V P                   P                  V4       K  V P                   P%                  V4       K  	  R#   \        P                   d8    \        R9   g   Q R4       h\        P                  ! RT P
                  R7      p Li ; i)zL
Add assignments to forward requested outgoing values
to subsequent blocks.
r   zunexpected missing definitionNr  rN   rM   r   rA  )rS  outgoing_phisrY   rT  get_or_definer   r  r   r   r   ri   rh   r)  r<   r?   rN   rJ  r  insert_before_terminator)r   phinamer   rM   r  r   s   &     r   r  !Interpreter._insert_outgoing_phis  s   
 !% : : @ @ BG''55g:>(( 6 DF9hhw' 993!%+DV[[)00<%%333""))$/"";;DA! !C
 %% 9 $HH 767HhhTtxx8	9s   DA	E! E!c                     V P                   P                  P                  V,          #   \         d#    \	        \
        T\        P                  4      u # i ; i)zt
Get a global value from the func_global (first) or
as a builtins (second).  If both failed, return a ir.UNDEFINED.
)r!  rm   __globals__KeyErrorrd   builtinsr   	UNDEFINED)r   r<   s   &&r   get_global_valueInterpreter.get_global_value  sD    
	9<<$$0066 	98T2<<88	9s   &) *AAc                    V P                   P                  P                  V,          p VP                  #   \         d    \
        P                  u # i ; i)zd
Get a value from the cell contained in this function's closure.
If not set, return a ir.UNDEFINED.
)r!  rm   __closure__cell_contents
ValueErrorr   r  )r   ra   cells   && r   get_closure_valueInterpreter.get_closure_value  sH    
 ||  ,,U3	 %%% 	 <<	 s   5 AAc                (    V P                   R,          # )   r   )rD  r$   s   &r   rT  Interpreter.current_scope  s    {{2r!   c                .    V P                   P                  # r   )rC  	co_constsr$   s   &r   code_constsInterpreter.code_consts  s    }}&&&r!   c                .    V P                   P                  # r   )rC  co_varnamesr$   s   &r   code_localsInterpreter.code_locals      }}(((r!   c                .    V P                   P                  # r   )rC  co_namesr$   s   &r   
code_namesInterpreter.code_names  s    }}%%%r!   c                .    V P                   P                  # r   )rC  co_cellvarsr$   s   &r   code_cellvarsInterpreter.code_cellvars  r  r!   c                .    V P                   P                  # r   )rC  co_freevarsr$   s   &r   code_freevarsInterpreter.code_freevars  r  r!   c                R   V P                   '       d   \        V4       V P                  f   Q h\        R9   d   V P                  '       d   V P                  R,          p\        V\        P                  4      '       dp   VP                  VP                  8  dU   V P                  P                  \        P                  ! V P                  R7      4       V P                  P                  4        M\        R	9   d   M\        \        4      hRVP                  P!                  RR4      ,          p \#        W4      p V! V3/ VB #   \$        P&                   d   pTP                  f   T P                  pMTP                  p\$        P&                  ! TP(                  TR7      p\*        P,                  '       g   TR hRT RTP                   2p	TP/                  T	4       TP/                  T P0                  P3                  4       4       ThR p?ii ; i  \4         d    \        T4      hi ; i)
Nr   zop_%s+r_  zhandling op: z | offset: rA  r   rB  )r"  r   rJ  r   rR  rg   r   r  r   r  r?   r   r   r=   rQ  r  replacerd   r   r   r<   r   FULL_TRACEBACKSadd_contextrC  r   AttributeError)
r   r  r_   topr   r   er   errms
   &&&       r   rV  Interpreter._dispatch  s   $K!!---<<!!!((,c277++{{chh.**11"++$((2KL**..0*$%i00$++--c377	%B$#&)) 55=((C%%C,,QVV=---4''v[FAOOA&OODMM$6$6$89I  	,%d++	,s,   -H 9E HAH6AHHH&c                `   V'       g&   V P                   V P                  P                  9   d7   W P                  9  pV P                  P                  W P                  VR7      pM&V P                  P                  W P                  R7      p\        V\        P                  4      '       d   V P                  P                  W4      p\        P                  ! WV P                  R7      pV P                  P                  V4       V P                   VP"                  ,          P                  V4       V# )zt
Store *value* (a Expr or Var instance) into the variable named *name*
(a str object). Returns the target variable.
)r   renamer   r  )rK  rH  backboner  rT  r   r   r  rg   r   r   r  rF   rh   rJ  r?   r)  r<   )r   rN   r<   r   r  rM   r   s   &&&&   r   r  Interpreter.store0  s    
 t00DHH4E4EE"4"45F''00888> 1 @F ''55d5IFeRVV$$MM((7EyyuB!!$'%,,U3r!   c                    V^ ,          R8X  d6   VR,          P                  4       '       d   RP                  VR,          4      pV P                  P                  V4      pVf   V P                  P                  V4      pV# )z:
Get the variable (a Var instance) with the given *name*.
.r  NNz
implicit{})isdigitr#   r  rJ   rT  r  )r   r<   r   s   && r   r  Interpreter.getB  sk     7c>d2h..00&&tBx0D mm11$7;$$((.C
r!   c                    T;'       g    V P                   pT;'       g    V P                  p\        P                  ! W#R 7      pW@P                  V&   W@n        Wn        V# ))r   r   )rT  r   r   r   r   rJ  rK  )r   r   r   r   r   s   &&&& r   r  Interpreter.insert_blockT  sO    ++++ooTXXhhU,!F $*!
r!   c                    R # r   r   r   r  s   &&r   op_NOPInterpreter.op_NOP_      r!   c                    R # r   r   r!  s   &&r   	op_RESUMEInterpreter.op_RESUMEj  r$  r!   c                    R # r   r   r!  s   &&r   op_CACHEInterpreter.op_CACHEm  r$  r!   c                    R # r   r   r!  s   &&r   
op_PRECALLInterpreter.op_PRECALLp  r$  r!   c                    R # r   r   r!  s   &&r   op_PUSH_NULLInterpreter.op_PUSH_NULLs  r$  r!   c                    R # r   r   r!  s   &&r   op_RETURN_GENERATORInterpreter.op_RETURN_GENERATORv  r$  r!   c                8   V P                  V4      p\        P                  ! R \        V P                  R7      pV P                  WSR7       \        P                  P                  V P                  V4      V3RV P                  R7      pV P                  WdR7       R# r   r   r  Nr   )r  r   r   r   r   r  rj   rf   )r   r  itemprintvarresprintgvrf   s   &&&&&  r   op_PRINT_ITEMInterpreter.op_PRINT_ITEMy  sj    xx~))GU9


0ww||DHHX.|J


(r!   c                   \         P                  ! R \        V P                  R7      pV P	                  WBR7       \         P
                  P                  V P                  V4      RRV P                  R7      pV P	                  WSR7       R# r5  )r   r   r   r   r  rj   rf   r  )r   r  r7  r8  r9  rf   s   &&&&  r   op_PRINT_NEWLINEInterpreter.op_PRINT_NEWLINE  s[    ))GU9


0ww||DHHX.BDHH|E


(r!   c                x   \        V4      p\        P                  P                  V P	                  V4      V P
                  VR 7      pV P                  WFR7       \        V4       FR  w  rx\        P                  P                  V P	                  V4      VRV P
                  R7      p	V P                  W4       KT  	  R# ))rN   r   count)r<   rN   N)ra   	index_varr   )	rn   r   rj   r  r  r   r  r   static_getitem)
r   r  iterablestorestupleobjr@  tupr   str   s
   &&&&&     r   op_UNPACK_SEQUENCEInterpreter.op_UNPACK_SEQUENCE  s    Fgg""();). # 0


, v&EA77))$((8*<01T.2hh * 8D JJt 	 'r!   c                &    V P                  WW44      # r   )op_FORMAT_VALUE)r   r  rN   r8  strvars   &&&&&r   op_FORMAT_SIMPLEInterpreter.op_FORMAT_SIMPLE  s    ##D==r!   c                8   V P                  V4      p\        P                  ! R\        V P                  R7      pV P                  WTR7       \        P                  P                  V P                  V4      V3RV P                  R7      pV P                  WcR7       R# )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  Nr   )r  r   r   rP  r   r  rj   rf   )r   r  rN   r8  rL  strgvrf   s   &&&&&  r   rK  Interpreter.op_FORMAT_VALUE  sl     		%$((3


,ww||DHHV,uh|I


(r!   c                   VP                   pV^ 8X  d=   \        P                  ! RV P                  R7      pV P	                  WSR,          4       R# V P                  V^ ,          4      p\        VR,          V4       Fr  w  rxV P                  V4      p\        P                  P                  \        P                  WgV P                  R7      p	V P	                  W4       V P                  V4      pKt  	  R# )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   Nr  rU   rV   r   r   )r   r   ri   r   r  r  r  rj   r   r   r@   )
r   r  stringstmpsr@  constprevotherr   r   s
   &&&&      r   op_BUILD_STRINGInterpreter.op_BUILD_STRING  s     A:HHRTXX.EJJu2h'xx
#gbk40JEHHUOE77==$txx ! D JJt!88C=D 1r!   c                   V P                  V4      pV P                  V4      p\        P                  ! R \        V P                  R7      pV P                  WvR7       Vf?   \        P                  P                  V P                  V4      W#3RV P                  R7      pMOV P                  V4      p\        P                  P                  V P                  V4      W#V3RV P                  R7      pV P                  WR7       R# slicer   r  Nr   )r  r   r   r^  r   r  rj   rf   )	r   r  rO  stopstepr8  slicevarslicegv	sliceinsts	   &&&&&&&  r   op_BUILD_SLICEInterpreter.op_BUILD_SLICE  s    xx~))GU9


0<TXXh%7%)- % 3I 88D>DTXXh%7%t9L%'TXX % 7I


-r!   c                   V P                  V4      pV P                  V4      p\        P                  ! R \        V P                  R7      pV P                  WR7       \        P                  P                  V P                  V4      W#3RV P                  R7      p	V P                  WR7       V P                  V4      p
V P                  V4      p\        P                  P                  WV P                  R7      pV P                  W4       R# )r^  r   r  ra   r   Nr   	r  r   r   r^  r   r  rj   rf   getitem)r   r  rO  r  	containerr8  ra  temp_resrb  rc  ra   rM   r   s   &&&&&&&&     r   op_BINARY_SLICEInterpreter.op_BINARY_SLICE  s    HHUOE((3-CiiDHH=GJJWJ4TXXh%7%r)- % 3IJJYJ6HHX&EXXi(F77??6DHH?EDJJt!r!   c                <   V P                  V4      pV P                  V4      p\        P                  ! R \        V P                  R7      pV P                  WR7       \        P                  P                  V P                  V4      W#3RV P                  R7      p	V P                  WR7       V P                  V4      p
V P                  V4      pV P                  V4      p\        P                  ! WVV P                  R7      pV P                  P                  V4       R# )r^  r   r  rM   ra   rN   r   Nr   r  r   r   r^  r   r  rj   rf   r  rJ  r?   )r   r  rO  r  rj  rN   r8  ra  rb  rc  ra   rM   r   s   &&&&&&&&     r   op_STORE_SLICEInterpreter.op_STORE_SLICE  s    HHUOE((3-CiiDHH=GJJWJ4TXXh%7%r)- % 3IJJYJ1HHSMEXXi(FHHUOE::V"&((,D%%d+r!   c                Z   V P                  V4      p\        P                  ! R \        V P                  R7      pV P                  WtR7       \        P                  ! RV P                  R7      pV P                  WR7       V P                  V4      p	\        P                  P                  V P                  V4      W3RV P                  R7      p
V P                  WR7       \        P                  P                  W P                  V4      V P                  R7      pV P                  WR7       R# r]  )
r  r   r   r^  r   r  ri   rj   rf   ri  )r   r  baser8  ra  indexvarnonevarrb  nonegvnonera   r   s   &&&&&&&     r   
op_SLICE_0Interpreter.op_SLICE_0  s    xx~))GU9


0$DHH-


.xx TXXh/$rtxxP


.wwtXXh%7TXXF


(r!   c                |   V P                  V4      pV P                  V4      p\        P                  ! R V P                  R7      pV P	                  WR7       V P                  V4      p	\        P
                  ! R\        V P                  R7      p
V P	                  WR7       \        P                  P                  V P                  V4      W93RV P                  R7      pV P	                  WR7       \        P                  P                  W P                  V4      V P                  R7      pV P	                  WR7       R # Nr   r  r^  r   
r  r   ri   r   r  r   r^  rj   rf   ri  )r   r  rt  rO  rv  r8  ra  ru  rw  rx  rb  ra   r   s   &&&&&&&&     r   
op_SLICE_1Interpreter.op_SLICE_1  s    xx~$DHH-


.xx ))GU9


0TXXh/%!%  +


.wwtXXh%7TXXF


(r!   c                |   V P                  V4      pV P                  V4      p\        P                  ! R V P                  R7      pV P	                  WR7       V P                  V4      p	\        P
                  ! R\        V P                  R7      p
V P	                  WR7       \        P                  P                  V P                  V4      W3RV P                  R7      pV P	                  WR7       \        P                  P                  W P                  V4      V P                  R7      pV P	                  WR7       R # r|  r}  )r   r  rt  rv  r_  r8  ra  ru  rw  rx  rb  ra   r   s   &&&&&&&&     r   
op_SLICE_2Interpreter.op_SLICE_2  s    xx~xx~$DHH-


.xx ))GU9


0TXXh/$!%  +


.wwtXXh%7TXXF


(r!   c                   V P                  V4      pV P                  V4      pV P                  V4      p\        P                  ! R \        V P                  R7      pV P                  WR7       \        P                  P                  V P                  V4      W43RV P                  R7      p	V P                  WR7       \        P                  P                  W P                  V4      V P                  R7      p
V P                  WR7       R# r]  rh  )r   r  rt  rO  r_  r8  ra  ru  rb  ra   r   s   &&&&&&&&   r   
op_SLICE_3Interpreter.op_SLICE_3'  s    xx~xx~))GU9


0TXXh/%!%  +


.wwtXXh%7TXXF


(r!   c                z   V P                  V4      p\        P                  ! R \        V P                  R7      pV P                  WtR7       \        P                  ! RV P                  R7      pV P                  WR7       V P                  V4      p	\        P                  P                  V P                  V4      W3RV P                  R7      p
V P                  WR7       \        P                  ! W P                  V4      V P                  V4      V P                  R7      pV P                  P                  V4       R# r]  )r  r   r   r^  r   r  ri   rj   rf   r  rJ  r?   )r   r  rt  rN   ra  ru  rv  rb  rw  rx  ra   r   s   &&&&&&&     r   op_STORE_SLICE_0Interpreter.op_STORE_SLICE_06  s    xx~))GU9


0$DHH-


.xx TXXh/$rtxxP


.zz$ 2DHHUO"hh(!!$'r!   c                   V P                  V4      pV P                  V4      p\        P                  ! R V P                  R7      pV P	                  WR7       V P                  V4      p	\        P
                  ! R\        V P                  R7      p
V P	                  WR7       \        P                  P                  V P                  V4      W93RV P                  R7      pV P	                  WR7       \        P                  ! W P                  V4      V P                  V4      V P                  R7      pV P                  P                  V4       R # r|  r  r   ri   r   r  r   r^  rj   rf   r  rJ  r?   )r   r  rt  rO  rv  rN   ra  ru  rw  rx  rb  ra   r   s   &&&&&&&&     r   op_STORE_SLICE_1Interpreter.op_STORE_SLICE_1G  s    xx~$DHH-


.xx ))GU9


0TXXh/%!%  +


.zz$ 2DHHUO"hh(!!$'r!   c                   V P                  V4      pV P                  V4      p\        P                  ! R V P                  R7      pV P	                  WR7       V P                  V4      p	\        P
                  ! R\        V P                  R7      p
V P	                  WR7       \        P                  P                  V P                  V4      W3RV P                  R7      pV P	                  WR7       \        P                  ! W P                  V4      V P                  V4      V P                  R7      pV P                  P                  V4       R # r|  r  )r   r  rt  rv  r_  rN   ra  ru  rw  rx  rb  ra   r   s   &&&&&&&&     r   op_STORE_SLICE_2Interpreter.op_STORE_SLICE_2[  s    xx~xx~$DHH-


.xx ))GU9


0TXXh/$!%  +


.zz$ 2DHHUO"hh(!!$'r!   c                4   V P                  V4      pV P                  V4      pV P                  V4      p\        P                  ! R \        V P                  R7      pV P                  WR7       \        P                  P                  V P                  V4      W43RV P                  R7      p	V P                  WR7       \        P                  ! W P                  V4      V P                  V4      V P                  R7      p
V P                  P                  V
4       R# r]  rp  )r   r  rt  rO  r_  rN   ra  ru  rb  ra   r   s   &&&&&&&&   r   op_STORE_SLICE_3Interpreter.op_STORE_SLICE_3o  s    xx~xx~))GU9


0TXXh/%!%  +


.zz$ 2DHHUO"hh(!!$'r!   c                Z   V P                  V4      p\        P                  ! R \        V P                  R7      pV P                  WcR7       \        P                  ! RV P                  R7      pV P                  WuR7       V P                  V4      p\        P                  P                  V P                  V4      W3RV P                  R7      p	V P                  WR7       \        P                  ! W P                  V4      V P                  R7      p
V P                  P                  V
4       R# r]  )r  r   r   r^  r   r  ri   rj   rf   DelItemrJ  r?   )r   r  rt  ra  ru  rv  rb  rw  rx  ra   r   s   &&&&&&     r   op_DELETE_SLICE_0Interpreter.op_DELETE_SLICE_0  s    xx~))GU9


0$DHH-


.xx TXXh/$rtxxP


.zz$ 2A!!$'r!   c                |   V P                  V4      pV P                  V4      p\        P                  ! R V P                  R7      pV P	                  WtR7       V P                  V4      p\        P
                  ! R\        V P                  R7      p	V P	                  WR7       \        P                  P                  V P                  V4      W83RV P                  R7      p
V P	                  WR7       \        P                  ! W P                  V4      V P                  R7      pV P                  P                  V4       R # r|  r  r   ri   r   r  r   r^  rj   rf   r  rJ  r?   )r   r  rt  rO  rv  ra  ru  rw  rx  rb  ra   r   s   &&&&&&&     r   op_DELETE_SLICE_1Interpreter.op_DELETE_SLICE_1  s    xx~$DHH-


.xx ))GU9


0TXXh/%!%  +


.zz$ 2A!!$'r!   c                |   V P                  V4      pV P                  V4      p\        P                  ! R V P                  R7      pV P	                  WsR7       V P                  V4      p\        P
                  ! R\        V P                  R7      p	V P	                  WR7       \        P                  P                  V P                  V4      W3RV P                  R7      p
V P	                  WR7       \        P                  ! W P                  V4      V P                  R7      pV P                  P                  V4       R # r|  r  )r   r  rt  rv  r_  ra  ru  rw  rx  rb  ra   r   s   &&&&&&&     r   op_DELETE_SLICE_2Interpreter.op_DELETE_SLICE_2  s    xx~xx~$DHH-


.xx ))GU9


0TXXh/$!%  +


.zz$ 2A!!$'r!   c                   V P                  V4      pV P                  V4      pV P                  V4      p\        P                  ! R \        V P                  R7      pV P                  WuR7       \        P                  P                  V P                  V4      W43RV P                  R7      pV P                  WR7       \        P                  ! W P                  V4      V P                  R7      p	V P                  P                  V	4       R# r]  )r  r   r   r^  r   r  rj   rf   r  rJ  r?   )
r   r  rt  rO  r_  ra  ru  rb  ra   r   s
   &&&&&&&   r   op_DELETE_SLICE_3Interpreter.op_DELETE_SLICE_3  s    xx~xx~))GU9


0TXXh/%!%  +


.zz$ 2A!!$'r!   c                    V P                   VP                  ,          pV P                  V P                  V4      VR 7       R# r  N)r  r   r  r  )r   r  r8  rC   s   &&& r   _op_LOAD_FASTInterpreter._op_LOAD_FAST  s/    ""488,

'*
5r!   c                ^    V'       d   V P                  W4       R # V P                  W4       R # r   )op_LOAD_DEREFr  )r   r  r8  as_load_derefs   &&&&r   op_LOAD_FASTInterpreter.op_LOAD_FAST  s!    ""4-""4-r!   c                   VP                   pV^,	          pV^,          pV P                  V P                  V,          4      pV P                  V P                  V,          4      pV P                  WrR7       V P                  WR7       R#    r  N)r   r  r  r  )	r   r  res1res2opargoparg1oparg2src1src2s	   &&&&     r   op_LOAD_FAST_LOAD_FAST"Interpreter.op_LOAD_FAST_LOAD_FAST  sk    HHEaZFRZF88D,,V45D88D,,V45DJJTJ-JJTJ-r!   c                   VP                   pV^,	          pV^,          pV P                  V,          pV P                  V4      pV P                  WR7       V P                  V P                  V,          4      p	V P                  WR7       R# r  )r   r  r  r  )
r   r  store_valueload_resr  r  r  dstname	dst_value	src_values
   &&&&      r   op_STORE_FAST_LOAD_FAST#Interpreter.op_STORE_FAST_LOAD_FAST  sp    HHEaZFRZF&&v.G-IJJYJ5!1!1&!9:IJJYJ6r!   c                   VP                   pV^,	          pV^,          pV P                  V,          pV P                  V P                  V4      VR7       V P                  V,          pV P                  V P                  V4      VR7       R# r  )r   r  r  r  )r   r  value1value2r  r  r  r  s   &&&&    r   op_STORE_FAST_STORE_FAST$Interpreter.op_STORE_FAST_STORE_FAST  so    HHEaZFRZF&&v.GJJTXXf-GJ<&&v.GJJTXXf-GJ<r!   c                "    V P                   VP                  ,          pV P                  V P                  V4      VR 7       R#   \         dA    \
        P                  P                  T P                  R7      pT P                  YBR7        R# i ; i)r  r   r<   N)	r  r   r  r  r   r   rj   undefr   )r   r  r8  rC   r  s   &&&  r   op_LOAD_FAST_AND_CLEAR"Interpreter.op_LOAD_FAST_AND_CLEAR  si    ,**4884

'!2
=" ,$((3

5
+,s   ?A ABBc                    V P                   VP                  ,          pV P                  V4      pV P                  W#R 7       R# r  )r  r   r  r  )r   r  rN   r  s   &&& r   op_STORE_FASTInterpreter.op_STORE_FAST	  s1    ""488,


-r!   c                    V P                   VP                  ,          pV P                  P                  \        P
                  ! W P                  R 7      4       R# r   N)r  r   rJ  r?   r   Delr   )r   r  r  s   && r   op_DELETE_FASTInterpreter.op_DELETE_FAST	  s7    ""488,!!"&&hh"?@r!   c                r    \        W#4       F'  w  rEV P                  V P                  V4      VR 7       K)  	  R# r  )r  r  r  )r   r  origdupedsrcdsts   &&&&  r   op_DUP_TOPXInterpreter.op_DUP_TOPX	  s+    D(HCJJTXXc]J5 )r!   c                    V P                   VP                  ,          p\        P                  ! V P	                  V4      V P	                  V4      W@P
                  R 7      pV P                  P                  V4       R# ))rM   rN   rl   r   N)r   r   r   r  r  r   rJ  r?   )r   r  rM   rN   rl   sas   &&&&  r   op_STORE_ATTRInterpreter.op_STORE_ATTR 	  sR    txx(ZZtxx/txx!xx1!!"%r!   c                    V P                   VP                  ,          p\        P                  ! V P	                  V4      W0P
                  R 7      pV P                  P                  V4       R# ))rM   rl   r   N)r   r   r   DelAttrr  r   rJ  r?   )r   r  rM   rl   r  s   &&&  r   op_DELETE_ATTRInterpreter.op_DELETE_ATTR&	  sE    txx(ZZtxx/dI!!"%r!   c                p   V P                  V4      p\        R9   d&   V P                  VP                  ^,	          ,          pM8\        R9   d   V P                  VP                  ,          pM\	        \        4      h\
        P                  P                  W$V P                  R7      pV P                  WS4       R# )r6  r   Nr4  r<  )
r  r   r   r   rQ  r   rj   rd   r   r  )r   r  r6  r8  rl   rd   s   &&&&  r   op_LOAD_ATTRInterpreter.op_LOAD_ATTR+	  sz    xx~33??488q=1D,,??488,D%i00''//$$((/;

7 r!   c                "  a a V 3R  loVV 3R lpS P                   VP                  ,          p\        V\        4      '       d3   \        P
                  P                  V! V4      S P                  R7      pM\        V\        4      '       d3   \        P
                  P                  V! V4      S P                  R7      pMA\        V\        4      '       d
   S! V4      pM"\        P                  ! VS P                  R7      pS P                  WR4       R# )c                   < SP                  \        P                  ! V P                  SP                  R 7      RV P                   2RR7      pSP                  \        P                  ! V P
                  SP                  R 7      RV P
                   2RR7      pSP                  \        P                  ! R\        SP                  R 7      RRR7      pV P                  f   W3pMOSP                  \        P                  ! V P                  SP                  R 7      RV P                   2RR7      pWV3p\        P                  P                  W4RSP                  R 7      # )r   $const_Tr<   r   r^  z$const_slicer  r   )r  r   ri   rO  r   r_  r   r^  r`  rj   rf   )rN   rO  r_  ra  paramsr`  r   s   &     r   process_slice0Interpreter.op_LOAD_CONST.<locals>.process_slice;	  s   JJrxxB&-ekk]$;d  LE::bhhuzztxx@%,UZZL#9D  JD zz		'56:hh)@'5 " FH zz!zz"((5::488"D)0'= " Nt,77<<"$((<CCr!   c           
      ,  < . pV  F  p\        V\        4      '       d,   VP                  SP                  S! V4      R RR7      4       KD  VP                  SP                  \        P
                  ! VSP                  R7      RV 2RR7      4       K  	  V# )z$const_my_sliceTr  r   r  )rg   r^  r?   r  r   ri   r   )rN   rG  r   r  r   s   &  r   process_args/Interpreter.op_LOAD_CONST.<locals>.process_argsN	  s    Ba''IIdjjq)9.?26 ) 8 9 IIdjj!)B07sm26 ) 8 9  Ir!   r   N)r  r   rg   r   r   rj   r   r   	frozenset	build_setr^  ri   r  )r   r  r8  r  rN   rW  r  s   f&&   @r   op_LOAD_CONSTInterpreter.op_LOAD_CONST6	  s    
	D&	   *eU##GG''U(;'JEy))GG%%l5&9txx%HEu%%!%(EHHU1E

5r!   c                    VP                   p\        P                  ! W0P                  R 7      pV P	                  WB4       R# r  )r   r   ri   r   r  )r   r  r8  rN   rW  s   &&&  r   op_LOAD_SMALL_INTInterpreter.op_LOAD_SMALL_INTi	  s)    HHEHHU1EJJu"r!   c                    V P                   V,          pV P                  V4      p\        P                  ! WEV P                  R 7      pV P                  Wc4       R# r  )r   r  r   r   r   r  )r   r  rR   r8  r<   rN   gls   &&&&   r   op_LOAD_GLOBALInterpreter.op_LOAD_GLOBALs	  s@    ??3'D))$/E4DHH5BJJrr!   c                    V P                   VP                  ,          pV P                  V4      p\        P                  ! W4V P
                  R 7      pV P                  WR4       R# r  )r   r   r  r   r   r   r  )r   r  r8  r<   rN   r  s   &&&   r   r  r  y	  sD    ??488,D))$/E4DHH5BJJrr!   c                    R # r   r   r!  s   &&r   op_COPY_FREE_VARSInterpreter.op_COPY_FREE_VARS	  r$  r!   c                   V P                   P                  P                  P                  VP                  4      pW0P
                  9   d    V P                  V4      pM^W0P                  9   dO   V P                  P                  V4      pV P                  V4      p\        P                  ! WcWpP                  R7      pV P                  XV4       R#   \         d    R p\        T4      hi ; i,Unsupported use of cell variable encounteredr   Nr!  rm   __code___varname_from_opargr   r  r  r   rQ  r  ra   r  r   r  r   r  r   r  r8  r<   r  r  rR   rN   s   &&&     r   r  Interpreter.op_LOAD_DEREF	  s    <<$$--AA$((KD)))3$B +++((..t4..s3ZZ5hh?JJr3 ' 3HC-c223s   C C(c                   \        V P                  4      pVP                  V8  d0   V P                  VP                  ,          pV P                  V4      pMYVP                  V,
          pV P                  V,          pV P                  V4      p\        P                  ! WdWpP                  R 7      pV P                  WR4       R# r  )
rn   r  r   r  r  r  r   r  r   r  )r   r  r8  
n_cellvarsr<   r  rR   rN   s   &&&     r   r  r  	  s    T//0Jxx*$))$((3XXd^hh+))#...s3ZZ5hh?JJrr!   c                    R # r   r   r!  s   &&r   op_MAKE_CELLInterpreter.op_MAKE_CELL	  s    r!   c                    V P                   P                  P                  P                  VP                  4      pV P                  V4      pV P                  W#R 7       R# r  )r!  rm   r  r   r   r  r  )r   r  rN   r<   s   &&& r   op_STORE_DEREFInterpreter.op_STORE_DEREF	  sA    <<$$--AA$((KDHHUOEJJUJ.r!   c                   \        V P                  4      pVP                  V8  d   V P                  VP                  ,          pM$V P                  VP                  V,
          ,          pV P	                  V4      pV P                  W$R 7       R# r  )rn   r  r   r  r  r  )r   r  rN   r  r  s   &&&  r   r	  r
  	  sf    T//0Jxx*$,,TXX6,,TXX
-BCHHUOEJJUJ1r!   c                   V P                   VP                  ,          V P                  J g   Q h\        P                  ! VP                  VP
                  VP                  ,           R 7      pV P                  P                  V4       R# )r  N)	r   r   rJ  r   Loopr  r   rR  r?   )r   r  loops   && r   op_SETUP_LOOPInterpreter.op_SETUP_LOOP	  sX    {{4;;'4+=+====wwt{{$))dhh*>@!!$'r!   c           	     *   V P                   VP                  ,          V P                  J g   Q hVP                  VP                  ,           p\
        P                  ! VP                  VR 7      pV P                  P                  V4       V P                  V4      pV P                  P                  \
        P                  ! VVP                  W@P                  R7      4       \
        P                  ! RV P                  R7      pV P                  WsR7       R# r  contextmanagerbeginr  r   Nr   r  )r   r   rJ  r  r   r   r  rR  r?   r  	EnterWithr   ri   r  )r   r  r  exitfnexitptwthctxmgrexit_fn_objs   &&&&    r   op_SETUP_WITHInterpreter.op_SETUP_WITH	  s    {{4;;'4+=+====TXX%ggdkk/!!#&.)!!",,f59[[39xx#J 	K
 hht2


2r!   c           	        V P                   VP                  ,          V P                  J g   Q h\        R9   dT   W@P                  8  dC   \        V P                   Uu. uF"  pVP                  V8X  g   K  VP                  NK$  	  up4      pM\        R9   d   M\        \        4      h\        P                  ! VP                  VR7      pV P                  P                  V4       V P                  V4      pV P                  P                  \        P                  ! VVP                  W@P                   R7      4       \        P"                  ! RV P                   R7      pV P%                  WR7       R# u upi )r6  r  r  Nr   r  )r5  r8  r<  )r   r   rJ  r   rM  rL  rP  rM   r  rQ  r   r  rR  r?   r  r  r   ri   r  )	r   r  r  r  r  exr  r  r  s	   &&&&&    r   op_BEFORE_WITHInterpreter.op_BEFORE_WITH	  s   ;;t{{+t/A/AAAA..0000M0M 40M""$))s"2  &rvv0M 4 5C00))44''$++C0C%%c*XXn-F%%bll&9=7:'K L
 ((4TXX6KJJ[J6!4s   E14E1c                &    V P                  4        R # r   )r  r!  s   &&r   op_SETUP_FINALLYInterpreter.op_SETUP_FINALLY	  s    $$&r!   c                    R# zno-opNr   r!  s   &&r   op_WITH_CLEANUPInterpreter.op_WITH_CLEANUP	      r!   c                    R# r'  r   r!  s   &&r   op_WITH_CLEANUP_START!Interpreter.op_WITH_CLEANUP_START	  r*  r!   c                    R# r'  r   r!  s   &&r   op_WITH_CLEANUP_FINISH"Interpreter.op_WITH_CLEANUP_FINISH	  r*  r!   c                    R# r'  r   r!  s   &&r   op_END_FINALLYInterpreter.op_END_FINALLY	  r*  r!   c                    \         P                  ! R V P                  R7      pV F0  pV P                  W4R7       V P                  P                  V4       K2  	  R # )Nr   r  )r   ri   r   r  r*  r@   )r   r  tempsr  r   s   &&&  r   op_BEGIN_FINALLYInterpreter.op_BEGIN_FINALLY	  sB    XXd1
CJJzJ,  $$S) r!   c           	        V P                  V4      pV Uu. uF  q`P                  V4      NK  	  ppVeR   \        R8  g   Q hV P                  V,          p\        \	        Ws\        V4      ) R  4      4      pVR \        V4      )  pMRp\        P                  P                  W#WP                  R7      p	V P                  W4       R # u upi )Nr   r8  r   )r  r   r  r6   r  rn   r   rj   rf   r   r  )
r   r  rm   ro   kw_namesr8  r   nameskwargsr   s
   &&&&&&    r   op_CALLInterpreter.op_CALL
  s    xx~%)*TT*w&&&$$X.E#e3u:+,%789F#e*%DFww||DHH|=

4 +s   Cc           	        V P                  V4      pV Uu. uF  q`P                  V4      NK  	  pp\        VP                  R ^4      R,          4      pV P                  V,          p\	        \        W\        V4      ) R 4      4      p	VR\        V4      )  p\        P                  P                  W#WP                  R7      p
V P                  W4       R# u upi )r  Nr   r   )r  intrsplitr  r6   r  rn   r   rj   rf   r   r  )r   r  rm   ro   r9  r8  r   constir:  r;  r   s   &&&&&&     r   
op_CALL_KWInterpreter.op_CALL_KW
  s    88D>D)-.AHHQKD.a045F$$V,E#e3u:+,%789F#e*%D77<<F<ADJJt! /s   Cc                    V P                  V4      pV Uu. uF  qPP                  V4      NK  	  pp\        P                  P                  W#RV P                  R 7      pV P                  Wd4       R# u upi )r   Nr   r  r   rj   rf   r   r  )r   r  rm   ro   r8  r   r   s   &&&&&  r   op_CALL_FUNCTIONInterpreter.op_CALL_FUNCTION
  sV    xx~%)*TT*ww||D|9

4 +s   A0c                l   V P                  V4      pV Uu. uF  q`P                  V4      NK  	  ppV P                  V4      pV P                  P                   F  p\        V\        P
                  4      '       g   K%  VP                  VJ g   K7  V P                  P                  V4       . pVP                  P                   F}  pV P                  P                  R R R1,           FV  pWhP                  8X  g   K  V P                  P                  V4       VP                  VP                  P                  4        K{  	  K  	  Tp	 M	  \        X	4      p
VR V
)  pW:) R  p\        \        W4      4      p\        P                  P                  W+WP                   R7      pV P#                  W4       R # u upi )Nr   r   )r  rJ  r   rg   r   rh   rM   rP   rN   rY   r?   rn   r6   r  rj   rf   r   r  )r   r  rm   ro   r:  r8  r   named_itemsr  keysnkeysposvalskwvals	keyvaluesr   s   &&&&&&         r   op_CALL_FUNCTION_KWInterpreter.op_CALL_FUNCTION_KW!
  sV   xx~%)*TT*&&++D$		**t{{e/C""))$/ !))A!//44TrT::= ..55a8'..qww}}=!	 ; * # , D	w-fgT*+	ww||D9((|C

41 +s   F1c           	         V P                  V4      pV P                  V4      pVe   V P                  V4      p\        P                  P                  V. . V P                  W4R7      pV P                  We4       R # )N)r   r   r   rE  )r   r  rm   r   r   r8  r   s   &&&&&& r   op_CALL_FUNCTION_EXInterpreter.op_CALL_FUNCTION_EX=
  se    xx~&!xx)Hww||"bdhhv  
 	

4r!   c                   V P                  V^ ,          4      pV'       d   Rp\        P                  ! V\        V P                  R7      pV P                  WvRR7       \        P                  P                  V P                  V4      V3RV P                  R7      pV P                  W^ ,          4       R# V P                  p	\        \        V P                   VR,          4      V4       F  w  r\        P                  ! R\        V	R7      pV P                  VR	RR
7      p\        P                  P                  W3RV	R7      pV P                  VRRR
7      p\        P                  P                  \        P                  WPP                  VP                  4      V P                  R7      pV P                  VV4       V P                  V4      pK  	  R# )r   r   r   Tr  ro   r_   r   r  r   r   r   )r   z	$_tuplifyr   Nr   )r  r   r   r   r   r  rj   rf   r  mapr   r   r   r@   r<   )r   r  tuplesr5  	is_assignr  r  r  excr   rY  r   r   r   tuplify_valtuplify_varouts   &&&&&            r   _build_tuple_unpackInterpreter._build_tuple_unpackG
  su   # ,GIIg':JEJJU4J@'',,txx0xR#'88  .CJJs!H%((C!#dhhr
";UC
99  !JJ6 ' 	 !ggllx +  #jjk26 ) 8ggmm||HH[=M=M4N $  

3$) Dr!   c                *    V P                  WW44       R # r   r]  r   r  rW  r5  rX  s   &&&&&r   op_BUILD_TUPLE_UNPACK_WITH_CALL+Interpreter.op_BUILD_TUPLE_UNPACK_WITH_CALLk
  s      u@r!   c                *    V P                  WW44       R # r   r`  ra  s   &&&&&r   op_BUILD_TUPLE_UNPACK!Interpreter.op_BUILD_TUPLE_UNPACKo
  s      u@r!   c                    \         P                  P                  R V3V P                  R7      pV P	                  WC4       R# )r   r   N)r   rj   dummyr   r  )r   r  r   r8  r   s   &&&& r   op_LIST_TO_TUPLEInterpreter.op_LIST_TO_TUPLEr
  s,    ww}}_zm}J

4r!   c           	        a  S P                  V4      pS P                  P                   F  p\        V\        P
                  4      '       g   K%  VP                  VJ g   K7  S P                  P                  V4       . pVP                  P                   F}  pS P                  P                  R R R1,           FV  p	WP                  8X  g   K  S P                  P                  V	4       VP                  V	P                  P                  4        K{  	  K  	  Tp
 M	  \        X
4      \        V4      8X  g   Q hV
 Uu. uF%  p\        P                  ! VS P                  R7      NK'  	  pp\        W4       F  w  rS P                  W4       K  	  \!        \        \#        S P                   V4      \#        S P                   V4      4      4      p. pV Fn  pS P$                  V,          p\        V4      ^8w  d    MJV^ ,          p\        V\        P                  4      '       g    MVP                  VP                  4       Kp  	  V 3R lp\        V4      \        V4      8w  d'   \        W4       UU	u/ uF  w  rVV! V	4      bK  	  ppp	M\        W4       UU	u/ uF  w  rWbK	  	  ppp	/ p\'        V
4       F  w  ppVVV&   K  	  \        P(                  P+                  V^VVS P                  R7      pS P                  VV4       R # u upi u up	pi u up	pi )Nr  c                 D  < SP                   V ,          p\        V4      ^8w  d%   \        SP                  V 4      P                  4      # V^ ,          p\        V\        P                  4      '       g%   \        SP                  V 4      P                  4      # VP                  # r  )	r)  rn   r   r  r<   rg   r   ri   rN   )r   defnsdefnr   s   &  r   resolve_const9Interpreter.op_BUILD_CONST_KEY_MAP.<locals>.resolve_const
  st    $$Q'E5zQ%dhhqk&6&6778DdBHH--%dhhqk&6&677::r!   r  r   )r  rJ  r   rg   r   rh   rM   rP   rN   rY   r?   rn   ri   r   r  r  r6   rV  r)  r   rj   r   )r   r  rJ  keytmpsr   r8  keyvarrI  r   r  keytup	keyconstskvalr   rY   literal_itemsr   rn  ro  rp  literal_dictr[   r   r  r   s   f&&&&&                   r   op_BUILD_CONST_KEY_MAP"Interpreter.op_BUILD_CONST_KEY_MAPv
  s    $&&++D$		**t{{f/D""))$/ !))A!//44TrT::= ..55a8'..qww}}=!	 ; * % , 6{c&k)))>DEfRXXA4884f	EY0IDJJt! 1STXXw/TXXv1FGH A$$Q'E5zQ8DdBHH--  , 	 }V,/1/ 59AA}Q///  1L -0,FG,FDAAC,FLG f%DAq M! & ww  u&'/;/<%)XX	 ! / 	

4[ F41 Hs   9+K?+LL
c                    \         P                  P                  V P                  V4      V P                  R 7      pV P                  WC4       R# )r  N)r   rj   getiterr  r   r  r   r  rN   r8  r   s   &&&& r   op_GET_ITERInterpreter.op_GET_ITER
  s0    wwTXXe_$((C

4r!   c                   VP                   V P                  9   g   Q R4       hV P                  V4      p\        P                  P                  W`P                  R7      pV P                  Ws4       \        P                  P                  V P                  V4      V P                  R7      pV P                  W4       \        P                  P                  V P                  V4      V P                  R7      p	V P                  W4       \        P                  ! V P                  V4      VP                  VP                  4       V P                  R7      p
V P                  P                  V
4       R# )z*
Assign new block other this instruction.
zFOR_ITER must be block headr  r  N)r   r   r  r   rj   iternextr   r  
pair_firstpair_secondr  r  get_jump_targetrJ  r?   )r   r  iteratorr  indvalpredr  pairvalr  isvalidbrs   &&&&&&     r   op_FOR_ITERInterpreter.op_FOR_ITER
  s    {{dkk)H+HH) hhx ''""((";

7!77%%DHHTN%I

8$''%%DHHTN%I

7! YYDHHTN499#33588% 	!!"%r!   c                    V P                  V4      pV P                  V4      p\        P                  P                  W#V P                  R 7      pV P                  WT4       R# )rg  N)r  r   rj   ri  r   r  )r   r  rM   ra   r8  r   s   &&&&& r   op_BINARY_SUBSCRInterpreter.op_BINARY_SUBSCR
  sC    HHUOEXXf%F77??6DHH?EDJJt!r!   c                    V P                  V4      pV P                  V4      pV P                  V4      p\        P                  ! W#VV P                  R 7      pV P                  P                  V4       R# )ro  N)r  r   r  r   rJ  r?   )r   r  rM   ra   rN   r   s   &&&&& r   op_STORE_SUBSCRInterpreter.op_STORE_SUBSCR
  sW    &!zzE"hh(!!$'r!   c                    V P                  V4      pV P                  V4      p\        P                  ! W#V P                  R 7      pV P                  P                  V4       R# ))rM   ra   r   N)r  r   r  r   rJ  r?   )r   r  rM   ra   r   s   &&&& r   op_DELETE_SUBSCRInterpreter.op_DELETE_SUBSCR
  sE    &!zz$((C!!$'r!   c                    \         P                  P                  V Uu. uF  q@P                  V4      NK  	  upV P                  R 7      pV P                  WS4       R# u upi )rY   r   N)r   rj   r   r  r   r  r   r  rY   r8  r   r   s   &&&&  r   op_BUILD_TUPLEInterpreter.op_BUILD_TUPLE
  sK    ww""u)Eu!((1+u)E'+xx # 1

4 *F   Ac                    \         P                  P                  V Uu. uF  q@P                  V4      NK  	  upV P                  R 7      pV P                  WS4       R# u upi r  )r   rj   r   r  r   r  r  s   &&&&  r   op_BUILD_LISTInterpreter.op_BUILD_LIST
  sK    ww!!e(De!e(D&*hh " 0

4 )Er  c                    \         P                  P                  V Uu. uF  q@P                  V4      NK  	  upV P                  R 7      pV P                  WS4       R# u upi r  )r   rj   r  r  r   r  r  s   &&&&  r   op_BUILD_SETInterpreter.op_BUILD_SET
  sK    ww  U'CUU'C%)XX ! /

4 (Dr  c                d   V P                  V4      pV P                  V4      p\        P                  P                  VR V P                  R7      pV P                  WdR7       \        P                  P                  V P                  V4      V3RV P                  R7      pV P                  WuR7       R# )r@   r   r  Nr   r  r   rj   rd   r   r  rf   )r   r  rN   rM   addvarr8  addattraddinsts   &&&&&&  r   
op_SET_ADDInterpreter.op_SET_ADD
  s~    &!''//&%TXX/>


.'',,txx/%BDHH,M


+r!   c                d   V P                  V4      pV P                  V4      p\        P                  P                  VR V P                  R7      pV P                  WdR7       \        P                  P                  V P                  V4      V3RV P                  R7      pV P                  WuR7       R# )r   r   r  Nr   r  r   r  rM   rN   	updatevarr8  
updateattr
updateinsts   &&&&&&  r   op_SET_UPDATEInterpreter.op_SET_UPDATE      &!WW__VX488_D



4WW\\$((9"5x&*hh " 0



.r!   c                d   V P                  V4      pV P                  V4      p\        P                  P                  VR V P                  R7      pV P                  WdR7       \        P                  P                  V P                  V4      V3RV P                  R7      pV P                  WuR7       R# )r   r   r  Nr   r  r  s   &&&&&&  r   op_DICT_UPDATEInterpreter.op_DICT_UPDATE  s    &! WW__+ % 

 	


4WW\\$((9"5x&*hh " 0



.r!   c           	       a  V UUu. uF'  w  rVS P                  V4      S P                  V4      3NK)  	  pppV 3R  lpV! R V 4       4      p	V! R V 4       4      p
\        V	4      \        V4      8H  p\        V
4      \        V4      8H  p/ pV'       g   V'       g   RpMV'       dS   V'       gK   \        W4       UUu/ uF  w  ppV\        V^,          4      bK  	  ppp\	        V	4       F
  w  ppVW&   K  	  M9\        W4       UUu/ uF	  w  ppVVbK  	  ppp\	        V	4       F
  w  ppVW&   K  	  \
        P                  P                  WsVVS P                  R7      pS P                  VV4       R# u uppi u uppi u uppi )c                 j  < . pV  Uu. uF  pSP                  VP                  4      NK   	  ppV Fz  pSP                  VP                  ,          p\        V4      ^8w  d    V# V^ ,          p\	        V\
        P                  4      '       g    V# VP                  VP                  4       K|  	  V# u upi rm  )	r  r<   r)  rn   rg   r   ri   r?   rN   )rM   rw  r   r   rn  ro  r   s   &     r   get_literals.Interpreter.op_BUILD_MAP.<locals>.get_literals%  s    M0671dhhqvv&F7((0u:?
 ! 	 Qx!$11   $$TZZ0  !  8s   $B0c              3   2   "   T F  q^ ,          x  K  	  R# 5i)r   Nr   .0r   s   & r   	<genexpr>+Interpreter.op_BUILD_MAP.<locals>.<genexpr>2  s     #<)QaDD)   c              3   2   "   T F  q^,          x  K  	  R# 5i)r  Nr   r  s   & r   r  r  3  s     %>IqddIr  Nr  )
r  rn   r  r   r   r   rj   r   r   r  )r   r  rY   r  r8  r  r   	got_itemsr  r  literal_valueshas_literal_keyshas_literal_valuesr[   rx  r   r  r   r   s   f&&&&              r   op_BUILD_MAPInterpreter.op_BUILD_MAP  sq   <ABEDAdhhqk488A;/E	B
	! $#<)#<<%%>I%>>|,I> 0C	NB(:L&88:8 9=1A~ad338  :!,/1#$  0 .1-NO-NTQAqD-NLO!,/1#$  0 ww  y/;/<%)XX ! / 	

4S C8:
 Ps   -E2<E8E>c                    \         P                  ! V P                  V4      V P                  V4      V P                  V4      V P                  R 7      pV P                  P                  V4       R# ))dctr`   rN   r   N)r   StoreMapr  r   rJ  r?   )r   r  r  r`   rN   r   s   &&&&& r   op_STORE_MAPInterpreter.op_STORE_MAPK  sJ    {{txx}$((3-!%%dhh@!!$'r!   c                    V P                  V4      p\        P                  P                  R W P                  R7      pV P                  WC4      # )-r  r  r   rj   unaryr   r  r}  s   &&&& r   op_UNARY_NEGATIVEInterpreter.op_UNARY_NEGATIVEP  8    ww}}S88}<zz$$$r!   c                    V P                  V4      p\        P                  P                  R W P                  R7      pV P                  WC4      # )r  r  r  r}  s   &&&& r   op_UNARY_POSITIVEInterpreter.op_UNARY_POSITIVEU  r  r!   c                    V P                  V4      p\        P                  P                  R W P                  R7      pV P                  WC4      # )~r  r  r}  s   &&&& r   op_UNARY_INVERTInterpreter.op_UNARY_INVERTZ  r  r!   c                    V P                  V4      p\        P                  P                  R W P                  R7      pV P                  WC4      # )notr  r  r}  s   &&&& r   op_UNARY_NOTInterpreter.op_UNARY_NOT_  s8    ww}}U%XX}>zz$$$r!   c                    \         V,          pV P                  V4      pV P                  V4      p\        P                  P	                  WW0P
                  R 7      pV P                  WT4       R# )rT  N)r   r  r   rj   r   r   r  )r   rk   rU   rV   r8  r   s   &&&&& r   _binopInterpreter._binopd  sL     $hhsmhhsmww}}Rcxx}@

4r!   c                   \         V,          p\        VR ,           ,          pV P                  V4      pV P                  V4      p\        P                  P                  WW#V P                  R7      pV P                  Wd4       R# )=rT  N)r   r   r  r   rj   r  r   r  )r   rk   rU   rV   r8  immuopr   s   &&&&&  r   _inplace_binopInterpreter._inplace_binopk  sd    $R((c2hhsmhhsmww$$RS)- % 3

4r!   c                6   VR 8X  da   V P                  V4      pV P                  V4      p\        P                  P                  W4V P                  R7      pV P                  We4       R# RV9   d   V P                  VRR W4V4       R# V P                  W#WE4       R# )z[]rg  r  Nr   )r  r   rj   ri  r   r  r  r  )r   r  rk   rU   rV   r8  r   s   &&&&&& r   op_BINARY_OPInterpreter.op_BINARY_OPt  sv    :((3-C((3-C77??3txx?@DJJt!BY3B37KK*r!   c                ,    V P                  R W#V4       R# r  Nr  r   r  rU   rV   r8  s   &&&&&r   op_BINARY_ADDInterpreter.op_BINARY_ADD      C3'r!   c                ,    V P                  R W#V4       R# r  Nr  r  s   &&&&&r   op_BINARY_SUBTRACTInterpreter.op_BINARY_SUBTRACT  r  r!   c                ,    V P                  R W#V4       R# *Nr  r  s   &&&&&r   op_BINARY_MULTIPLYInterpreter.op_BINARY_MULTIPLY  r  r!   c                ,    V P                  R W#V4       R# z/?Nr  r  s   &&&&&r   op_BINARY_DIVIDEInterpreter.op_BINARY_DIVIDE      D#C(r!   c                ,    V P                  R W#V4       R# /Nr  r  s   &&&&&r   op_BINARY_TRUE_DIVIDE!Interpreter.op_BINARY_TRUE_DIVIDE  r  r!   c                ,    V P                  R W#V4       R# z//Nr  r  s   &&&&&r   op_BINARY_FLOOR_DIVIDE"Interpreter.op_BINARY_FLOOR_DIVIDE  r  r!   c                ,    V P                  R W#V4       R# %Nr  r  s   &&&&&r   op_BINARY_MODULOInterpreter.op_BINARY_MODULO  r  r!   c                ,    V P                  R W#V4       R# z**Nr  r  s   &&&&&r   op_BINARY_POWERInterpreter.op_BINARY_POWER  r  r!   c                ,    V P                  R W#V4       R# @Nr  r  s   &&&&&r   op_BINARY_MATRIX_MULTIPLY%Interpreter.op_BINARY_MATRIX_MULTIPLY  r  r!   c                ,    V P                  R W#V4       R# z<<Nr  r  s   &&&&&r   op_BINARY_LSHIFTInterpreter.op_BINARY_LSHIFT  r  r!   c                ,    V P                  R W#V4       R# z>>Nr  r  s   &&&&&r   op_BINARY_RSHIFTInterpreter.op_BINARY_RSHIFT  r  r!   c                ,    V P                  R W#V4       R# &Nr  r  s   &&&&&r   op_BINARY_ANDInterpreter.op_BINARY_AND  r  r!   c                ,    V P                  R W#V4       R# |Nr  r  s   &&&&&r   op_BINARY_ORInterpreter.op_BINARY_OR  r  r!   c                ,    V P                  R W#V4       R# ^Nr  r  s   &&&&&r   op_BINARY_XORInterpreter.op_BINARY_XOR  r  r!   c                ,    V P                  R W#V4       R# r  r  r  s   &&&&&r   op_INPLACE_ADDInterpreter.op_INPLACE_ADD      C3/r!   c                ,    V P                  R W#V4       R# r  r+  r  s   &&&&&r   op_INPLACE_SUBTRACTInterpreter.op_INPLACE_SUBTRACT  r.  r!   c                ,    V P                  R W#V4       R# r  r+  r  s   &&&&&r   op_INPLACE_MULTIPLYInterpreter.op_INPLACE_MULTIPLY  r.  r!   c                ,    V P                  R W#V4       R# r  r+  r  s   &&&&&r   op_INPLACE_DIVIDEInterpreter.op_INPLACE_DIVIDE      D#C0r!   c                ,    V P                  R W#V4       R# r  r+  r  s   &&&&&r   op_INPLACE_TRUE_DIVIDE"Interpreter.op_INPLACE_TRUE_DIVIDE  r.  r!   c                ,    V P                  R W#V4       R# r  r+  r  s   &&&&&r   op_INPLACE_FLOOR_DIVIDE#Interpreter.op_INPLACE_FLOOR_DIVIDE  r8  r!   c                ,    V P                  R W#V4       R# r  r+  r  s   &&&&&r   op_INPLACE_MODULOInterpreter.op_INPLACE_MODULO  r.  r!   c                ,    V P                  R W#V4       R# r  r+  r  s   &&&&&r   op_INPLACE_POWERInterpreter.op_INPLACE_POWER  r8  r!   c                ,    V P                  R W#V4       R# r  r+  r  s   &&&&&r   op_INPLACE_MATRIX_MULTIPLY&Interpreter.op_INPLACE_MATRIX_MULTIPLY  r.  r!   c                ,    V P                  R W#V4       R# r  r+  r  s   &&&&&r   op_INPLACE_LSHIFTInterpreter.op_INPLACE_LSHIFT  r8  r!   c                ,    V P                  R W#V4       R# r  r+  r  s   &&&&&r   op_INPLACE_RSHIFTInterpreter.op_INPLACE_RSHIFT  r8  r!   c                ,    V P                  R W#V4       R# r  r+  r  s   &&&&&r   op_INPLACE_ANDInterpreter.op_INPLACE_AND  r.  r!   c                ,    V P                  R W#V4       R# r!  r+  r  s   &&&&&r   op_INPLACE_ORInterpreter.op_INPLACE_OR  r.  r!   c                ,    V P                  R W#V4       R# r&  r+  r  s   &&&&&r   op_INPLACE_XORInterpreter.op_INPLACE_XOR  r.  r!   c                    \         P                  ! VP                  4       V P                  R 7      pV P                  P                  V4       R# r  r   r   r  r   rJ  r?   r   r  r  s   && r   op_JUMP_ABSOLUTEInterpreter.op_JUMP_ABSOLUTE  3    ggd**,$((;!!#&r!   c                    \         P                  ! VP                  4       V P                  R 7      pV P                  P                  V4       R# r  rX  rY  s   && r   op_JUMP_FORWARDInterpreter.op_JUMP_FORWARD  r\  r!   c                    \         P                  ! VP                  4       V P                  R 7      pV P                  P                  V4       R# r  rX  rY  s   && r   op_JUMP_BACKWARDInterpreter.op_JUMP_BACKWARD  r\  r!   c                   Vf   V P                   P                  4        R # VR8X  d?   \        P                  ! V P                  R7      pV P
                  P                  V4       R # VR8X  d   V P                  4        R # R # )Nwithr   try)rR  r=   r   r   r   rJ  r?   rm  )r   r  rk  rE   s   &&& r   op_POP_BLOCKInterpreter.op_POP_BLOCK  s^    <""$V^)A%%a(U]&&( r!   c                2   V P                  \        P                  P                  V P	                  V4      V P
                  R 7      V4       \        P                  ! V P	                  V4      V P
                  R 7      pV P                  P                  V4       R# r  )	r  r   rj   castr  r   ReturnrJ  r?   )r   r  retvalcastvalrets   &&&& r   op_RETURN_VALUEInterpreter.op_RETURN_VALUE  s_    

277<< 0dhh<?Iii)txx8!!#&r!   c                   V P                   VP                  ,          p\        P                  ! W@P                  R 7      pV P                  WR4       V P                  \        P                  P                  V P                  V4      V P                  R 7      V4       \        P                  ! V P                  V4      V P                  R 7      pV P                  P                  V4       R# r  )r  r   r   ri   r   r  rj   ri  r  rj  rJ  r?   )r   r  rk  rl  rN   rW  rm  s   &&&&   r   op_RETURN_CONSTInterpreter.op_RETURN_CONST  s    $$TXX.EHHU1EJJu%JJrww||DHHV$4$((|CWM))DHHW-488<C%%c*r!   c                H    V P                  V P                  V4      V4       R # r   )r  r  )r   r  r  r8  s   &&&&r   
op_TO_BOOLInterpreter.op_TO_BOOL  s    JJtxx}c*r!   c                   \         R9   d*   \        P                  VP                  ^,	          ,          pMp\         R9   d*   \        P                  VP                  ^,	          ,          pM<\         R9   d#   \        P                  VP                  ,          pM\	        \         4      hVR8X  g   VR8X  d   Y2r2VR8X  dc   V P                  RW#V4       V P                  V4      p\        P                  P                  RW`P                  R7      pV P                  Wt4       R# VR8X  d   \        P                  ! R\        P                  V P                  R7      pRp	V P                  WR	R
7       V P                  V4      pV P                  V4      p\        P                  P                  V P                  V	4      W#3RV P                  R7      p
V P                  W4       R# V P                  WRW44       R# )r6  inznot inr  r  zexception matchexception_matchr   
$exc_matchTr  rU  Nr8  r:  )r5  r<  r   )r   discmp_opr   rQ  r  r  r   rj   r  r   r  r   r   rx  rf   )r   r  rU   rV   r8  rk   r   r\  r  exc_match_namerY  s   &&&&&      r   op_COMPARE_OPInterpreter.op_COMPARE_OP  se   **DHHM*B*$DHHM*B,,DHH%B%i00:x>KKc,((3-C''--Shh-?CJJs $$II!2#5#5488E *NJJU$JG((3-C((3-C'',,(zrtxx  C JJs KK*r!   c                T    VP                   ^8X  d   RMRpV P                  WRW44       R# )r  is notisN)r   r  )r   r  rU   rV   r8  rk   s   &&&&& r   op_IS_OPInterpreter.op_IS_OP'  s!    QXDBS&r!   c                    Y2r2V P                  R W#V4       VP                  ^8X  dP   V P                  V4      p\        P                  P                  RWPP                  R7      pV P                  Wd4       R# R# )rw  r  r  N)r  r   r  r   rj   r  r   r  )r   r  rU   rV   r8  r   r\  s   &&&&&  r   op_CONTAINS_OPInterpreter.op_CONTAINS_OP,  sZ    SD#C(88q=((3-C''--Shh-?CJJs  r!   c                   VfB   V P                   R,          p\        V\        P                  4      '       g   Q hVP                  p\        P
                  ! W P                  R7      pV P                  P                  V4       R # )N)rM   r   r   )	rR  rg   r   r  r  r   r   rJ  r?   )r   r  r  r  r  s   &&&  r   op_BREAK_LOOPInterpreter.op_BREAK_LOOP5  s]    ;%%b)DdBGG,,,,))CggShh/!!#&r!   c                b   R VP                  4       RVP                  /pWC,          pWC'       * ,          pRVP                  ,          p\        P                  ! R\
        V P                  R7      pV P                  WR7       \        P                  P                  V P                  V4      V P                  V4      3R	V P                  R7      p	RVP                  ,          p
V P                  WR7      p\        P                  ! WVV P                  R7      pV P                  P                  V4       R# )
TFz$bool%sboolr   r  z$%spredr  Nr   )r  r  r   r   r   r  r   r  rj   rf   r  r  rJ  r?   )r   r  r  iftruebrsr  r  r<   r  r  pname	predicatebras   &&&&         r   _op_JUMP_IFInterpreter._op_JUMP_IF=  s    $&&(499
 j/DKK(		&$DHH5


*'',,txx~/@"#'88  - T[[)JJWJ9	iiYw HH&!!#&r!   c                ,    V P                  WR R7       R# Fr  r  Nr  r   r  r  s   &&&r   op_JUMP_IF_FALSEInterpreter.op_JUMP_IF_FALSER      7r!   c                ,    V P                  WR R7       R# Tr  Nr  r  s   &&&r   op_JUMP_IF_TRUEInterpreter.op_JUMP_IF_TRUEU      6r!   c                   VP                   pVP                  4       pV'       g   \        R ,          pM\        R,          pV P                  \        P
                  ! RV P                  R7      RVP                   2R7      pV P                  V4      p\        P                  P                  WhWpP                  R7      p	RVP                   2p
V P                  WR7       RVP                   2p\        P                  ! R	\        V P                  R7      pV P                  WR7       \        P                  P                  V P                  V4      V P                  V
4      3RV P                  R7      pR
VP                   2pV P                  WR7      p\        P                  ! VVVV P                  R7      pV P                  P!                  V4       R# )r  r  Nr   z
$constNoner  rT  z
$maybeNonez$boolr  z$predr  r   )r  r  r   r  r   ri   r   r   r  rj   r   r   r  rf   r  rJ  r?   )r   r  r  r  r  r  rk   rV   rU   isnone	maybeNoner<   r  r  r  r  r  s   &&&&             r   _jump_if_noneInterpreter._jump_if_noneX  sj   &&( $T*B$X.Bjjrxx$((; *4;;-8  :hhtnrB .	


0t{{m$		&$DHH5


*'',,txx~0C/Er#'88  - }%JJWJ9		"(#*#xx) 	!!&)r!   c                *    V P                  WR 4       R# TNr  r  s   &&&r   op_POP_JUMP_FORWARD_IF_NONE'Interpreter.op_POP_JUMP_FORWARD_IF_NONEz      4t,r!   c                *    V P                  WR 4       R# FNr  r  s   &&&r   op_POP_JUMP_FORWARD_IF_NOT_NONE+Interpreter.op_POP_JUMP_FORWARD_IF_NOT_NONE}      4u-r!   c                *    V P                  WR 4       R# r  r  r  s   &&&r   op_POP_JUMP_IF_NONEInterpreter.op_POP_JUMP_IF_NONE  s    t40r!   c                *    V P                  WR 4       R# r  r  r  s   &&&r   op_POP_JUMP_IF_NOT_NONE#Interpreter.op_POP_JUMP_IF_NOT_NONE  s    t51r!   c                *    V P                  WR 4       R# r  r  r  s   &&&r   op_POP_JUMP_BACKWARD_IF_NONE(Interpreter.op_POP_JUMP_BACKWARD_IF_NONE  r  r!   c                *    V P                  WR 4       R# r  r  r  s   &&&r    op_POP_JUMP_BACKWARD_IF_NOT_NONE,Interpreter.op_POP_JUMP_BACKWARD_IF_NOT_NONE  r  r!   c                ,    V P                  WR R7       R# r  r  r  s   &&&r   op_POP_JUMP_FORWARD_IF_FALSE(Interpreter.op_POP_JUMP_FORWARD_IF_FALSE  r  r!   c                ,    V P                  WR R7       R# r  r  r  s   &&&r   op_POP_JUMP_FORWARD_IF_TRUE'Interpreter.op_POP_JUMP_FORWARD_IF_TRUE  r  r!   c                ,    V P                  WR R7       R# r  r  r  s   &&&r   op_POP_JUMP_BACKWARD_IF_FALSE)Interpreter.op_POP_JUMP_BACKWARD_IF_FALSE  r  r!   c                ,    V P                  WR R7       R# r  r  r  s   &&&r   op_POP_JUMP_BACKWARD_IF_TRUE(Interpreter.op_POP_JUMP_BACKWARD_IF_TRUE  r  r!   c                ,    V P                  WR R7       R# r  r  r  s   &&&r   op_POP_JUMP_IF_FALSE Interpreter.op_POP_JUMP_IF_FALSE  r  r!   c                ,    V P                  WR R7       R# r  r  r  s   &&&r   op_POP_JUMP_IF_TRUEInterpreter.op_POP_JUMP_IF_TRUE  r  r!   c                ,    V P                  WR R7       R# r  r  r  s   &&&r   op_JUMP_IF_FALSE_OR_POP#Interpreter.op_JUMP_IF_FALSE_OR_POP  r  r!   c                ,    V P                  WR R7       R# r  r  r  s   &&&r   op_JUMP_IF_TRUE_OR_POP"Interpreter.op_JUMP_IF_TRUE_OR_POP  r  r!   c                r   \         P                  ! R \        P                  V P                  R7      pRpV P                  WVRR7       V P                  V4      pV P                  V4      p\         P                  P                  V P                  V4      Wx3RV P                  R7      p	V P                  W4       R# )rx  r   ry  Tr  rU  Nr   )	r   r   r   rx  r   r  r  rj   rf   )
r   r  r  tostos1r  r}  rU   rV   rY  s
   &&&&&     r   op_CHECK_EXC_MATCHInterpreter.op_CHECK_EXC_MATCH  s    		r11txx
 &

d
ChhtnhhsmggllHH^$C:2488  
 	

3r!   c                &   VP                   pVP                  4       p\        P                  ! R \        P
                  V P                  R7      pRpV P                  WxRR7       V P                  V4      p	V P                  V4      p
\        P                  P                  V P                  V4      W3RV P                  R7      pV P                  W4      p\        P                  ! WVV P                  R7      pV P                  P                  V4       R# )	rx  r   ry  Tr  rU  r  Nr   )r  r  r   r   r   rx  r   r  r  rj   rf   r  rJ  r?   )r   r  r  r  r  r  r  r  r}  rU   rV   rY  r  r  s   &&&&&         r   op_JUMP_IF_NOT_EXC_MATCH$Interpreter.op_JUMP_IF_NOT_EXC_MATCH  s    &&(		r11txx
 &

d
ChhtnhhsmggllHH^$C:2488  
 JJs)	iiYw HH&!!#&r!   c                    V P                   P                  pVe   \        P                  ! R V P                  R7      pV P
                  P                  V4       V P                  4        V P
                  P                  \        P                  ! VR,          V P                  R7      4       R # R\        R,           2p\        P                  ! \        V3V P                  4      pV P
                  P                  V4       R # )N	exceptionr   r  r   z8Unreachable condition reached (op code RERAISE executed)
reportable)rS  r  r   TryRaiser   rJ  r?   rm  r   r   StaticRaiser   )r   r  rY  r  r   r  s   &&&   r   
op_RERAISEInterpreter.op_RERAISE  s    ..;;488<D%%d+&&(%%bggfUm&JK N"<013C>>.3&$((CD%%d+r!   c                   Ve   V P                  V4      pV P                  P                  pVe   \        P                  ! W P
                  R7      pV P                  P                  V4       V P                  4        V P                  P                  \        P                  ! VR,          V P
                  R7      4       R # \        P                  ! W P
                  R7      pV P                  P                  V4       R # )Nr  r  r   )r  rS  r  r   r  r   rJ  r?   rm  r   Raise)r   r  rY  r  r   s   &&&  r   op_RAISE_VARARGSInterpreter.op_RAISE_VARARGS  s    ?((3-C..;;((;D%%d+&&(%%bggfUm&JK 88cxx8D%%d+r!   c                    R p\         P                  ! V P                  V4      W@P                  R7      pV P	                  W4      # )N)rN   ra   r   )r   Yieldr  r   r  )r   r  rN   r8  ra   s   &&&& r   op_YIELD_VALUEInterpreter.op_YIELD_VALUE  s2    xxdhhuoUIzz$$$r!   c
                   Ve   Rp
\        V
4      hV'       dR   \        V\        4      '       d+   \        V Uu. uF  q P                  V4      NK  	  up4      pMV P                  V4      pV P                  V,          ^ ,          p\        V\
        P                  4      '       g$   Rp
\        P                  ! WP                  R7      hVP                  pX'       d   V P                  V4      pV'       d   V P                  V4      p\
        P                  P                  W,WHV P                  4      pV P                  W4       R # u upi )Nz3op_MAKE_FUNCTION with kwdefaults is not implementedz_Unsupported use of closure. Probably caused by complex control-flow constructs; e.g. try-exceptr   )rQ  rg   r   r  r)  r   ri   r   r   r   rN   rj   make_functionr  )r   r  r<   codeclosureannotationsannotate
kwdefaultsdefaultsr8  r  assume_code_constfcoder   s   &&&&&&&&&&    r   op_MAKE_FUNCTIONInterpreter.op_MAKE_FUNCTION  s     !GC%c**(E** X!FXT((4.X!FG88H- ,,T215+RXX66" 
 11#88DD!''88D>Dhhw'Gww$$T'TXXN

4% "Gs   Ec	           
     0    V P                  WW4VWgV4       R # r   )r  )	r   r  r<   r  r  r  r  r  r8  s	   &&&&&&&&&r   op_MAKE_CLOSUREInterpreter.op_MAKE_CLOSURE  s    d$(C	9r!   c                   V P                   P                  P                  P                  VP                  4      pW0P
                  9   d    V P                  V4      pMfW0P                  9   dP   V P                  P                  V4      pV P                  V4      p\        P                  ! WcWpP                  R7      pMQ R4       hV P                  WB4       R#   \         d    R p\        T4      hi ; i)r  r   r   Nr  r  s   &&&     r   op_LOAD_CLOSUREInterpreter.op_LOAD_CLOSURE  s    <<$$--AA$((KD)))3$B +++((..t4..s3ZZ5hh?'-'qJJr ' 3HC-c223s   C C/c                   \        V P                  4      pVP                  V8  d1   V P                  VP                  ,          p V P                  V4      pMYVP                  V,
          pV P                  V,          pV P                  V4      p\        P                  ! WtWP                  R7      pV P                  WR4       R#   \         d    R p\        T4      hi ; ir  )rn   r  r   r  r   rQ  r  r  r   r  r   r  )	r   r  r8  r  r<   r  r  rR   rN   s	   &&&      r   r  r  "  s    T//0Jxx*$))$((33$B
 hh+))#...s3ZZ5hh?JJr ' 3HC-c223s   C Cc                d   V P                  V4      pV P                  V4      p\        P                  P                  VR V P                  R7      pV P                  WdR7       \        P                  P                  V P                  V4      V3RV P                  R7      pV P                  WuR7       R# )r?   r   r  Nr   r  )r   r  rM   rN   	appendvarr8  
appendattr
appendinsts   &&&&&&  r   op_LIST_APPENDInterpreter.op_LIST_APPEND4  r  r!   c                   V P                  V4      pV P                  V4      pR pV P                  P                  '       g   \        P                  ! V4      hV P                  P                  R,          p\        VP                  \        P                  4      ;'       d    VP                  P                  R8H  pRp	V'       d   \        V P                  P                  RR 4       F  p\        V\        P                  4      '       g   Rp M\        VP                  \        P                  4      '       d   KS  \        VP                  \        P                  4      '       d1   VP                  V8X  d    Tp	VP                  P                  '       * p MRp M	  V'       d   V	f   \        P                  ! V4      hV'       d   V P                  P                  p
V P                  P                  R,          pV
P                  V
P!                  V
P#                  V	4      4      4       VP                  pV	P                  pVP                  Vn        R# \        P                  P%                  VRV P&                  R7      pV P)                  WR7       \        P                  P+                  V P                  V4      V3RV P&                  R7      pV P)                  WR7       R# )	zAn 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   NFr   r   r  r   r   )r  rJ  r   r   r   rg   rN   r   rj   rk   r   rh   ri   rM   rY   r?   r=   ra   rd   r   r  rf   )r   r  rM   rN   	extendvarr8  r  r   okbuild_empty_liststmtsbuild_tuple_asgnr   r   
extendattr
extendinsts   &&&&&&          r   op_LIST_EXTENDInterpreter.op_LIST_EXTEND=  s%   &!L !!&&&11#66 !!&&r*

BGG,OO-1O   !3!3!8!8"!=>!$		22B djj"((33  

BGG449N'+$ "ZZ---BB' ?( "*11#66&&++E#1166r:LL5;;/?#@AB*00K)//J*00J txxHJJJZJ8dhhy&9E8R*.(( & 4JJJZJ2r!   c                   V P                  V4      pV P                  V4      pV P                  V4      p\        P                  P                  VR V P                  R7      pV P                  WuR7       \        P                  P                  V P                  V4      W43RV P                  R7      pV P                  WR7       R# )re   r   r  Nr   r  )	r   r  rM   r`   rN   
setitemvarr8  setitemattrr  s	   &&&&&&&  r   
op_MAP_ADDInterpreter.op_MAP_ADD~  s    &!hhsmggoofmoJ


6WW\\$((:"6r&*hh " 0



.r!   c                x    \         P                  ! R \        V P                  R7      pV P	                  W2R7       R# r   r   r  N)r   r   r   r   r  )r   r  r8  r  s   &&& r   op_LOAD_ASSERTION_ERROR#Interpreter.op_LOAD_ASSERTION_ERROR  s'    II.DHHMEJJUJ-r!   c                *    V P                   ! V/ VB  R # r   )r  r   ro   r_   s   &*,r   op_LOAD_METHODInterpreter.op_LOAD_METHOD  s    4'3'r!   c                *    V P                   ! V/ VB  R # r   )rF  r  s   &*,r   op_CALL_METHODInterpreter.op_CALL_METHOD  s    t+s+r!   c                p   V\         P                  8X  dD   \        P                  ! \        RV P                  4      pV P
                  P                  V4       R # V\         P                  8X  d   V P                  ! V3/ VB  R # V\         P                  8X  d   V P                  ! V3/ VB  R # \        V4      h)Nr   )ci1opINTRINSIC_STOPITERATION_ERRORr   r  r   rJ  r?   UNARY_POSITIVEr  INTRINSIC_LIST_TO_TUPLEri  rQ  )r   r  operandr;  r   s   &&&, r   op_CALL_INTRINSIC_1Interpreter.op_CALL_INTRINSIC_1  s    %===~~&CR&*hh0""))$/E000&&t6v6E999%%d5f5)'22r!   c           	        V P                   VP                  ,          V P                  J g   Q hW@P                  8  dC   \	        V P
                   Uu. uF"  pVP                  V8X  g   K  VP                  NK$  	  up4      p\        P                  ! VP                  VR 7      pV P                  P                  V4       V P                  V4      pV P                  P                  \        P                  ! VVP                  W@P                  R7      4       \        P                  ! RV P                  R7      pV P!                  WR7       R# u upi r  )r   r   rJ  rM  rL  rP  rM   r  r   r  rR  r?   r  r  r   ri   r  )	r   r  r  exit_method	block_endr   r  r  r  s	   &&&&&    r   op_LOAD_SPECIALInterpreter.op_LOAD_SPECIAL  s    ;;t{{+t/A/AAAA 222$2O2O !<2OB$&II$: "(2O !< =	 ''$++I6C%%c*XXn-F%%F#';;!*;< ((4TXX6KJJ[J;!<s   E
)E
c                    \         P                  V,          \        8X  d<   \        P                  ! R \        V P
                  R7      pV P                  WBR7       R# \        hr  )r{  _common_constantsr   r   r   r   r  rQ  )r   r  r8  rR   r  s   &&&& r   op_LOAD_COMMON_CONSTANT#Interpreter.op_LOAD_COMMON_CONSTANT  sF    $$S)^;		"2"0&*hh0 


1))r!   )r*  rP  r#  r$  r  r   rC  rH  rJ  rK  r)  rG  rS  r'  r!  r(  rM  r   rD  rR  r   )F)NN)r:  r8  )r=  r?  r5  r8  r4  r<  rz  )r=  r?  r5  rA  rB  )r'   r(   r)   r*   r+   r"  r   rd  r\  rW  rX  r  rU  r  r  r  r  rm  r  r  r  r  r  r  r  propertyrT  r  r  r   r  r  rV  r  r  r  r"  r   op_NOT_TAKENrQ  r&  r)  r,  r/  r2  r:  r=  rH  rM  rK  rZ  rd  rl  rq  ry  r~  r  r  r  r  r  r  r  r  r  r  r  r  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  r  r  r	  r  r  r!  r$  r(  r,  r/  r2  r6  r<  rB  rF  rO  rR  r]  rb  re  ri  ry  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r(  r,  r0  r3  r6  r:  r=  r@  rC  rF  rI  rL  rO  rR  rU  rZ  r^  ra  op_JUMP_BACKWARD_NO_INTERRUPTrf  rn  rq  rt  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r&  r+  r/  r,   r-   r.   s   @r   r  r  >  sP     L%"L!\
-^N,"&(21h%@&?
=
.(.;+zLB.9	    ' ' ) ) & & ) ) ) )%R$$ K	:	:!),,))!>
)!,.  //	" 
(	(!),,//	,  
(	(!),,) )$)$)("((((( ( ($($(6 &&	. %&&	.
	7	= 
1	1!),,//)	, 
(	(!),,J*/E,	:	:!),,.
A6 J N&&
	!/b K	# 
:	:!),,88	 
 
j	 	  "),, 88	  
j	 
	  "),,88	 88	/ 
j	 	2 "),,(
3  K	:	:	70 "),,'* &&	" 7"""8"&HAAAF&0 J	:	:	" "),,((


,// *X(
%
%
%
%

+((()()()())(((00010101011000''' %5!)'
 //	+ 
(	(!),,&&	+ 
1	1!),,+B'
!''*87 *D-. //	1	2	(	(!),,-.87878787'$,,%>9
 88	   
j	 	   "),,/?3B/ K	:	:	. "),,(, //	3 
(	(!),,K	<, 
:	:!),,K	* 	* 
:	:!),,r!   r  c                       ] tR tRtRtR# )r"  i  r   N)r'   r(   r)   r*   r,   r   r!   r   r"  r"    s    r!   r"  r4  r<  )6r  r4   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   r!  rQ  objectr   	getLoggerr'   rZ  r1   rW   rb   r{   r   r   r   r   r   r   r  r   r  r   r"  r   r!   r   <module>rD     s     
    ) ) 
 6K K C C   : ++E$$
i
((:V : 

H
%1v 1h
2&RHV FiX|~[|@[|.b2j_"-& _"-DE ++ $$
i
((r!   