+
    :ixB                    t   R t ^ RIt^ RIt^ RIHtHtHt ^ RIHt ^ RI	H
t
HtHtHt ^ RIHtHt ^ RIHt ^ RIHt ]P*                  ! ]4      t^t]t]! 0 R"m4      t]R#9   d   ^ RIHt  ! R	 R
]4      t]tM]R%9   d   M] ! ]4      h] ! R R]!4      4       t" ! R R]!4      t#R t$ ! R R]!4      t%] ! R R]!4      4       t& ! R R]&4      t' ! R R]'4      t(]R&9   d   ](t)M]R'9   d   ]'t)M]R$8  d   ]&t)M] ! ]4      h]! R. R(O4      t* ! R R]!4      t+]! R. R)O4      t,R t-R t. ! R R]!4      t/ ! R  R!]!4      t0R# )*z)
Implement python 3.8+ bytecode analysis
N)
namedtupledefaultdictdeque)total_ordering)
UniqueDict	PYVERSIONALL_BINOPS_TO_OPERATORS_lazy_pformat)NEW_BLOCKERSCFGraph)Loc)UnsupportedBytecodeError)Enumc                   "    ] tR t^t^t^t^tRtR# )CALL_INTRINSIC_1_Operand N)__name__
__module____qualname____firstlineno__INTRINSIC_STOPITERATION_ERRORUNARY_POSITIVEINTRINSIC_LIST_TO_TUPLE__static_attributes__r       Q/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/core/byteflow.pyr   r      s    ()%"#r   r   c                   V   a  ] tR t^*t o Rt]! 0 R	m4      tR tR tR t	R t
R tRtV tR# )
	BlockKindz?Kinds of block to make related code safer than just `str`.
    c                6    WP                   9   g   Q hWn        R # N)_members_value)selfvalues   &&r   __init__BlockKind.__init__4   s    %%%r   c                B    \        \        V 4      V P                  34      # r   )hashtyper!   r"   s   &r   __hash__BlockKind.__hash__8   s    T$Z-..r   c                    \        V\        4      '       d   V P                  VP                  8  # \        R P	                  \        V4      4      4      hzcannot compare to {!r}
isinstancer   r!   	TypeErrorformatr(   r"   others   &&r   __lt__BlockKind.__lt__;   s=    eY'';;--4;;DKHIIr   c                    \        V\        4      '       d   V P                  VP                  8H  # \        R P	                  \        V4      4      4      hr-   r.   r2   s   &&r   __eq__BlockKind.__eq__A   s=    eY'';;%,,..4;;DKHIIr   c                8    R P                  V P                  4      # )zBlockKind({}))r1   r!   r)   s   &r   __repr__BlockKind.__repr__G   s    %%dkk22r   )r!   N>   TRYLOOPWITHEXCEPTFINALLYWITH_FINALLY)r   r   r   r   __doc__	frozensetr    r$   r*   r4   r7   r:   r   __classdictcell____classdict__s   @r   r   r   *   s9       H/JJ3 3r   r   c                      a  ] tR t^Kt o RtR tR t]R9   d   R tM]R9   d   R tM]	! ]4      hR t
R tR t]R9   d
   R	 tRtV tR# ]R9   d
   R
 tRtV tR# ]	! ]4      h)FlowzaData+Control Flow analysis.

Simulate execution to recover dataflow and controlflow information.
c                t    \         P                  R \        VR R7      4       Wn        \	        4       V n        R# )zbytecode dump:
%sc                 "    V P                  4       # r   )dumpxs   &r   <lambda>Flow.__init__.<locals>.<lambda>R   s
    !&&(r   )	lazy_funcN)_loggerdebugr	   	_bytecoder   block_infos)r"   bytecodes   &&r   r$   Flow.__init__P   s,    *#H8JK	M!%<r   c                   \        V P                  ^ ^ RR7      p\        V P                  P                  P                  R7      pVP
                  P                  V4       \        4       pVP
                  '       Edv   \        P                  RVP
                  4       VP
                  P                  4       pWBP                  9  g   K_  \        P                  RVP                  4       \        P                  RV4       WCVP                  &    VP                  V4       VP                  4       '       d   MSV P!                  W$4      '       d   M;V P#                  V4      '       g   KZ  V P%                  V4       VP'                  4         \        P                  RVP(                  4       VP                  P+                  V4       VP-                  4       pVP
                  P/                  V4       EK  V P1                  VP                  4       V P3                  V4       \5        VP                  R R7       F=  p\7        V4      ;V P8                  VP                  &   p\        P                  R	WF4       K?  	  R
# )a  Run a trace over the bytecode over all reachable path.

The trace starts at bytecode offset 0 and gathers stack and control-
flow information by partially interpreting each bytecode.
Each ``State`` instance in the trace corresponds to a basic-block.
The State instances forks when a jump instruction is encountered.
A newly forked state is then added to the list of pending states.
The trace ends when there are no more pending states.
)rU   pcnstack
blockstack)debug_filenamezpending: %sz	stack: %szstate.pc_initial: %szend state. edges=%sc                     V P                   # r   )
pc_initialrL   s   &r   rN   Flow.run.<locals>.<lambda>   s    1<<r   )keyzblock_infos %s:
%sNr   )StaterS   TraceRunnerfunc_idfilenamependingappendr   rQ   rR   popleftfinished_stackr]   dispatchhas_terminated_run_handle_exception_is_implicit_new_block_guard_with_assplit_new_blockoutgoing_edgesaddget_outgoing_statesextend
_build_cfg_prune_phissortedadapt_state_infosrT   )r"   
firststaterunnerfirst_encounterstate
out_statessis   &      r   runFlow.runV   s    DNNq&(*
DNN,B,B,K,KLj)
 %, nnnMM-8NN**,EOO+k5<<84e<49 0 01OOE*++--55fDD!66u== //6!113!3U5I5IJ##E*"668
%%j1 	( FOO1GHE6G6NNDU--.MM/; Ir   c                T   VP                  4       '       gw   VP                  4       '       da   VP                  4       P                  \        9  d>   VP                  VP                  4       P                  R 7       VP                  V4       R# VP                  4        VP                  4       '       g   VP                  4       '       d   \        P                  RVP                  4       VP                  4       VP                  4       pVP                  R4      pV'       d   VR,          VP                  8X  d   RpR# VP!                  RVP                  R7      pVP"                  VR&   VP$                  VR&   VP&                  VR	&   VP                  VP                  VR
7       R# R# R# )rX   Tz3.11 exception %s PC=%sr<   endNr   
end_offsetstack_depth
push_lastirX   extra_block)in_withhas_active_tryget_instopname_NO_RAISE_OPSforknext_adjust_except_stack
advance_pcis_in_exceptionrQ   rR   get_exception_pcget_top_blocktarget
make_blockr   depthlasti)r"   rx   rz   eheh_topeh_blocks   &&&   r   rk   Flow._run_handle_exception   s=   ==??((**NN$++=@

enn.33
4++E2  " }}5+@+@+B+BMM";"'"5"5"7D,,.B"007F&-299"<#'#(#3#3Eryy#3#I13.24((/13.

eiiX
F# ,Cr   c                @   VP                  4       '       d   VP                  4       P                  \        9  d   VP	                  VP                  4       P
                  R 7       VP                  R4      pVP                  V4       VP                  p/ pWCR,          8  d   WCR,          ,
          VR&   VR,          p\        R4      \        \        R4      \        /VR,          ,          VR&   WeR	&   VP                  ! RR
VR,          /VB  R# VP                  4        R# )r   r<   entry_stacknpophandlerr?   r@   kindnpushr   rX   r   TNr   )r   r   r   r   r   r   r   pop_block_and_abover   r   _EXCEPT_STACK_OFFSET_FINALLY_POPr   )r"   rx   rz   tryblkrY   kwargsr   s   &&&    r   rk   r      s    $$&&NN$++=@

enn.33
4,,U3))&1**=11%+].C%CF6N +h')=i(,# &/##w )0}%

6fUm6v6  "r   c                :   \        4       pV F   pVP                  pVP                  V4       K"  	  V F=  pVP                   F*  pVP	                  VP                  VP
                  ^ 4       K,  	  K?  	  VP                  ^ 4       VP                  4        W n        R# )    N)	r   r]   add_nodero   add_edgerX   set_entry_pointprocesscfgraph)r"   
all_statesgraphrz   bedges   &&    r   rs   Flow._build_cfg   s~    	E  ANN1    E,,u//!< -   	a r   c                T  aa	 \         P                  R P                  ^<R4      4       V3R lpV	V3R lpV	3R lpV3R lpV! 4       w  po	\         P                  R\        V4      4       V! 4       w  rxV! V4       V! Wh4       \         P                  RP                  ^<R4      4       R# )	z
Prune PHIs-c                     < \        \        4      p \        4       pSP                   FO  p\        VP                  4      p\        VP                  4      pW;;,          WC,          ,          uu&   W,          pKQ  	  W3# r   )r   setrg   
_used_regs_phis)	used_phisphi_setrz   usedphisrx   s        r   get_used_phis_per_state1Flow._prune_phis.<locals>.get_used_phis_per_state   sb    #C(IeG5++,5;;' DK/ 	 )
 %%r   c                  Z  < / p \        \        4      pSP                   FI  pVP                  P	                  4        F(  w  r4VS9  d   W V&   W,          P                  WB34       K*  	  KK  	  \        P                  R \        V 4      4       \        P                  R\        V4      4       W3# )z
defmap: %szphismap: %s)	r   r   rg   _outgoing_phisitemsrp   rQ   rR   r	   )defmapphismaprz   phirhsr   rx   s        r   find_use_defs'Flow._prune_phis.<locals>.find_use_defs   s    F!#&G % 4 4 : : <HC')&+sL$$c\2	 != ) MM,f(=>MM-w)?@?"r   c                  < \        \        4      p Rp\        \        V P	                  4       4      4       Ft  w  r4\        \        V4      4       F5  w  rVVS9   g   K  W@V,          ,          pW,          P                  WV34       K7  	  W,          pWt,          '       g   Kj  WG,          pRpKv  	  \        P                  R\        V 4      4       V'       d   K  R# )zVAn iterative dataflow algorithm to find the definition
(the source) of each PHI node.
TFzchanging phismap: %sN)	r   r   ru   listr   rp   rQ   rR   r	   )	r   	blacklistchangingr   defsitesr   rz   	to_remover   s	   &       r   propagate_phi_map+Flow._prune_phis.<locals>.propagate_phi_map   s     $C(I %+D,A%BMC&,T(^&<
'>$4H%N..|< '= !*I ++ -#' &C 4mG6LMxr   c                   < / pV P                  4        F  w  r4V F  pW,          W%&   K  	  K  	  \        P                  R \        V4      4       \	        \
        4      pV F  pW%,           F  w  rsWvV,          V&   K  	  K!  	  \        P                  R\        V4      4       SP                   F>  pVP                  P                  4        VP                  P                  Wc,          4       K@  	  R# )zkeep phismap: %sznew_out: %sN)
r   rQ   rR   r	   r   dictrg   r   clearupdate)	r   r   keeprz   used_setr   new_outr   rx   s	   &&      r   apply_changes'Flow._prune_phis.<locals>.apply_changes  s    D#,??#4#C 'DI $ $5 MM,mD.AB!$'G"&))JC*-EN3' #,  MM-w)?@$$**,$$++GN; )r   zUsed_phis: %szDONE Prune PHIsN)rQ   rR   centerr	   )
r"   rx   r   r   r   r   r   r   r   r   s
   &f       @r   rt   Flow._prune_phis   s    l))"c23	&	#	,	<  56	7o}Y'?@'/'"i)'..r378r   c                    VP                  4       pVP                  V P                  P                  9   d   R # VP                  \
        9   d   R # R# )TF)r   offsetrS   labelsr   r
   r"   rz   insts   && r   rl   Flow._is_implicit_new_block  s9    ~~;;$..///[[L(r   c                    R # r   r   )r"   rz   s   &&r   rm   Flow._guard_with_as)  s    r   c                    VP                  4       pVP                  R9   d>   V P                  VP                  ,          P                  pVR8w  d   Rp\	        V4      hR# R# )zChecks if the next instruction after a SETUP_WITH is something
other than a POP_TOP, if it is something else it'll be some sort of
store which is not supported (this corresponds to `with CTXMGR as
VAR(S)`).POP_TOPGThe 'with (context manager) as (variable):' construct is not supported.N>   
SETUP_WITHBEFORE_WITH)r   r   rS   r   r   )r"   rz   current_instnext_opmsgs   &&   r   rm   r   -  s^    
 !>>+L""&CC..):):;BBi'9C2377 ( Dr   )rS   rT   r   N      r      r      r      r   
   r   r   r   r   r   )r   r   r   r   rB   r$   r}   r   rk   NotImplementedErrorrs   rt   rl   rm   r   rD   rE   s   @r   rH   rH   K   s     (8<t 88	$6 
j	 	#, "),,
K9Z J	 	 
:	:	8 	8 "),,r   rH   c                 $    V P                  R 4      # )z$null$)
startswith)regs   &r   _is_null_temp_regr   =  s    >>(##r   c                   ^	  a  ] tR tRt o RtR tR tR tR tR t	]
R9   d   ]	tM]
R9   d   M]! ]
4      hR tR	 tR
 tR tR t]
R9   d   R tM]
R9   d   M]! ]
4      hR tR tR t]
R9   d   ]tM]
R9   d   M]! ]
4      h]
R9   d   R tM]
R9   d   M]! ]
4      h]
R9   d   R tM]
R9   d   R tM]
R9   d   R tM]! ]
4      hR tR tR tR t]
R9   d   R tM]
R9   d   M]! ]
4      hR tR t]
R9   d   R t R t!R t"M]
R9   d   M]! ]
4      h]
R9   d   ]t#]t$M]
R9   d   M]! ]
4      h]
R9   d   ]t%] t&M]
R9   d   M]! ]
4      hR t'R  t(R! t)R" t*R# t+R$ t,R% t-R& t.R' t/R( t0R) t1R* t2R+ t3R, t4R- t5R. t6R/ t7]
R9   d   R0 t8M]
R9   d   M]! ]
4      h]
R9   d   R1 t9M]
R9   d   M]! ]
4      hR2 t:]:t;]:t<]
R9   d   ]:t=]:t>M]
R9   d   M]! ]
4      hR3 t?]?t@]?tAR4 tBR5 tCR6 tDR7 tER8 tFR9 tGR: tHR; tIR< tJR= tK]KtLR> tMR? tNR@ tO]
R9   d   RA tPM]
R9   d   M]! ]
4      hRB tQ]
R9   d   RC tRM]
R9   d   RD tRM]! ]
4      hRE tSRF tT]
R9   d   RG tUM]
R9   d   RH tUM]
R9   d   M]! ]
4      hRI tVRJ tWRK tXRL tYRM tZRN t[]
R9   d   M]
R9   d   RO t\M]! ]
4      hRP t]RQ t^RR t_RS t`]
R9   d   RT taM]
R9   d   RU taM]! ]
4      hRV tb]
R9   d   M]
R9   d   RW tcM]! ]
4      hRX tdRY teRZ tfR[ tgR\ thR] ti]
R9   d   R^ tjM]
R9   d   M]! ]
4      h]
R9   d   R_ tkM]
R9   d   R` tkM]
R9   d   Ra tkM]! ]
4      hRb tl]
R9   d   Rc tmM]
R9   d   M]! ]
4      hRd tnRe toRf tpRg tqRh trRi tsRj ttRk tuRl tvRm twRn txRo tyRp tzRq t{Rr t|Rs t}Rt t~Ru tRv tRw tRx tRy tRz tR{ tR| tR} tR~ tR tR t]t]t]t]tR t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]t]tRR ltR tR tR t]
R9   d   M]
R9   d   R tM]! ]
4      hR tR t]
R9   d   R tM]
R9   d   R tM]! ]
4      h]
R9   d   M]
R9   d   R tM]
R9   d   R tM]! ]
4      hR t]
R9   d   R tM]
R9   d   M]! ]
4      h]
R9   d
   R tRtV tR# ]
R9   d   RtV tR# ]! ]
4      h)ra   iA  zLTrace runner contains the states for the trace and the opcode dispatch.
    c                N    Wn         \        4       V n        \        4       V n        R # r   )r[   r   rd   r   rg   )r"   r[   s   &&r   r$   TraceRunner.__init__D  s    ,wr   c                .    \        V P                  V4      # r   )r   r[   )r"   linenos   &&r   get_debug_locTraceRunner.get_debug_locI  s    4&&//r   c                   \         R	9   ds   VP                  '       d`   VP                  '       dN   VP                  R
,          pVR,          pVe-   W1P                  8:  d   VP                  P                  4        K^  MM\         R9   d   M\	        \         4      hVP                  4       pVP                  R8w  dB   \        P                  RVP                  V4       \        P                  RVP                  4       \        V RP                  VP                  4      R4      pVe   V! W4       R# RVP                  ,          p\        VV P                  VP                  4      R7      h)r   r   NCACHEzdispatch pc=%s, inst=%szstack %szop_{}z$Use of unsupported opcode (%s) foundlocr   r   )r   _blockstackr]   popr   r   r   rQ   rR   r   rh   getattrr1   r   r  r  )r"   rz   topblkblk_endr   fnr   s   &&     r   ri   TraceRunner.dispatchL  s   <<   '''"..r2F$UmG*w:J:J/J))--/*$%i00~~;;'!MM3UYYEMM*ell3T7>>$++6=>uO84;;FC*3/3/A/A$++/NP Pr   c                   VP                  R4      pVP                  V4       VP                  p/ pVR,          pW58  d   W5,
          VR&   ^pVR,          '       d
   V^,          pWdR&   VP                  ! R	RVR,          /VB  R# )
zW
Adjust stack when entering an exception handler to match expectation
by the bytecode.
r<   r   r   r   r   rX   r   Nr   )r   r   r   r   )r"   rz   r   rY   r   expected_depthextra_stacks   &&     r   r    TraceRunner._adjust_except_stackg  s    
 $$U+!!&)""."#4F6N,1K%w

.fUm.v.r   c                (    VP                  V4       R # r   re   r   s   &&&r   op_NOPTraceRunner.op_NOP{      Tr   c                (    VP                  V4       R # r   r  r   s   &&&r   	op_RESUMETraceRunner.op_RESUME  r  r   c                (    VP                  V4       R # r   r  r   s   &&&r   op_CACHETraceRunner.op_CACHE  r  r   c                (    VP                  V4       R # r   r  r   s   &&&r   
op_PRECALLTraceRunner.op_PRECALL  r  r   c                f    VP                  VP                  4       4       VP                  V4       R # r   )push	make_nullre   r   s   &&&r   op_PUSH_NULLTraceRunner.op_PUSH_NULL  s!    

5??$%Tr   c                f    VP                  VP                  4       4       VP                  V4       R # r   )r&  	make_tempre   r   s   &&&r   op_RETURN_GENERATORTraceRunner.op_RETURN_GENERATOR  s#     	

5??$%Tr   c                    VP                  4       pVP                  4       pVP                  4       pVP                  W#WTR 7       VP                  V4       R# )r#   resstrvarNr  r+  re   r&  )r"   rz   r   r#   r1  r0  s   &&&   r   op_FORMAT_SIMPLETraceRunner.op_FORMAT_SIMPLE  s@    IIKE__&F//#CLLLCJJsOr   c                    VP                   ^ 8w  d)   Rp\        VV P                  VP                  4      R7      hVP	                  4       pVP                  4       pVP                  4       pVP                  W$WeR7       VP                  V4       R# )a  
FORMAT_VALUE(flags): flags argument specifies format spec which is
not supported yet. Currently, we just call str() on the value.
Pops a value from stack and pushes results back.
Required for supporting f-strings.
https://docs.python.org/3/library/dis.html#opcode-FORMAT_VALUE
z*format spec in f-strings not supported yetr	  r/  N)argr   r  r  r  r+  re   r&  )r"   rz   r   r   r#   r1  r0  s   &&&    r   op_FORMAT_VALUETraceRunner.op_FORMAT_VALUE  su     88q=>C*3/3/A/A$++/NP P		"ooTC?

3r   c           	        VP                   p\        \        \        V4       Uu. uF  qAP	                  4       NK  	  up4      4      pV^ 8X  d   VP                  4       .pM.\        V^,
          4       Uu. uF  qAP                  4       NK  	  ppVP                  W%VR7       VP                  VR,          4       R# u upi u upi )z
BUILD_STRING(count): Concatenates count strings from the stack and
pushes the resulting string onto the stack.
Required for supporting f-strings.
https://docs.python.org/3/library/dis.html#opcode-BUILD_STRING
)stringstmpsNr  r6  r   reversedranger  r+  re   r&  )r"   rz   r   count_r:  r;  s   &&&    r   op_BUILD_STRINGTraceRunner.op_BUILD_STRING  s     xeEl Cll CDEA:OO%&D/4UQY/?@/?!OO%/?D@T6

48 !D
 As   B;4C c                &    VP                  4        R # r   r  r   s   &&&r   
op_POP_TOPTraceRunner.op_POP_TOP  s    		r   c                    VP                  4       pVP                  4       pVP                  W$VR 7       VP                  V4       R# ))valr0  N)r+  r  re   r&  )r"   rz   r   r0  toss   &&&  r   
op_TO_BOOLTraceRunner.op_TO_BOOL  s4    //#C))+CLLCL0JJsOr   c                   VP                  4       pVP                  ^,	          pVP                  W$VR7       VP                  V4       VP                  ^,          '       d"   VP                  VP	                  4       4       R# R#    )idxr0  Nr+  r6  re   r&  r'  r"   rz   r   r0  rO  s   &&&  r   op_LOAD_GLOBALTraceRunner.op_LOAD_GLOBAL  s[    //#C((a-CLLCL0JJsOxx!||

5??,- r   c                   VP                  4       pVP                  ^,	          pVP                  W$VR7       VP                  ^,          '       d    VP                  VP	                  4       4       VP                  V4       R# rM  rP  rQ  s   &&&  r   rR  rS    sV    //#C((a-CLLCL0xx!||

5??,-JJsOr   c                l    VP                  4       pVP                  W#R 7       VP                  V4       R# r0  Nr+  re   r&  r"   rz   r   r0  s   &&& r   rR  rS    s'    //#CLLL'JJsOr   c                (    VP                  V4       R # r   r  r   s   &&&r   op_COPY_FREE_VARSTraceRunner.op_COPY_FREE_VARS   r  r   c                (    VP                  V4       R # r   r  r   s   &&&r   op_MAKE_CELLTraceRunner.op_MAKE_CELL  r  r   c                l    VP                  4       pVP                  W#R 7       VP                  V4       R# rV  rX  rY  s   &&& r   op_LOAD_DEREFTraceRunner.op_LOAD_DEREF  '    ooT#

3r   c                    VP                  R 4      RVP                   2,           pVP                  V4       VP                  W#R7       R# )const.rW  N)r+  r6  r&  re   rY  s   &&& r   op_LOAD_CONSTTraceRunner.op_LOAD_CONST  s8    oog&1TXXJ7

3T#r   c                    ^ VP                   u;8:  d	   R8  g   Q h Q hVP                  R4      RVP                    2,           pVP                  V4       VP                  W#R7       R# )r      re  rf  rW  N)r6  r+  r&  re   rY  s   &&& r   op_LOAD_SMALL_INTTraceRunner.op_LOAD_SMALL_INT  sU    &3&&&&&//'*q
^;CJJsOLLL'r   c                   VP                  4       pVP                  4       p\        R9   dK   VP                  V4       VP                  ^,          '       d    VP                  VP                  4       4       M\        R9   dK   VP                  ^,          '       d    VP                  VP                  4       4       VP                  V4       M,\        R9   d   VP                  V4       M\        \        4      hVP                  W#VR7       R# )r   itemr0  Nr   r   r   r   r   )r  r+  r   r&  r6  r'  r   re   )r"   rz   r   ro  r0  s   &&&  r   op_LOAD_ATTRTraceRunner.op_LOAD_ATTR  s    yy{oo**JJsOxx!||

5??,-*$xx!||

5??,-JJsO,,JJsO%i00T#.r   c                ~   \         R9   d    VP                  V4      pM,\         R9   d   VP                  V4      pM\        \         4      hVP                  V4      p	VP                  W)R7       VP                  V	4       R#   \         d    TP                  p\	        TP
                  4      p\	        TP                  4      p\	        TP                  4      pYv,           p^ TP                  T,
          u;8:  d	   T8  g   Q h Q hTP                  4       p	TP                  Y)RR7       TP                  T	4        R# i ; i)r   T)r0  as_load_derefNrW  rp  r   r   r   )r   get_varname
IndexErrorrS   lenco_varnamesco_freevarsco_cellvarsr6  r+  re   r&  r   )
r"   rz   r   namebcnum_varnamesnum_freevarsnum_cellvarsmax_fast_localr0  s
   &&&       r   op_LOAD_FASTTraceRunner.op_LOAD_FAST.  s   **((." 55$$T*D%i00ood#T#

3-   __"2>>2"2>>2"2>>2!-!<DHH|3DnDDDDDoo'T$?

3s   B B7D<;D<c                4   VP                   pV^,	          pV^,          pVP                  V4      pVP                  V4      pVP                  V4      pVP                  V4      p	VP                  W(V	R7       VP	                  V4       VP	                  V	4       R# )   )res1res2N)r6  get_varname_by_argr+  re   r&  )
r"   rz   r   opargoparg1oparg2name1name2r  r  s
   &&&       r   op_LOAD_FAST_LOAD_FAST"TraceRunner.op_LOAD_FAST_LOAD_FASTK  s    HHEaZFRZF,,V4E,,V4E??5)D??5)DLLtL4JJtJJtr   c                    VP                   pV^,          pVP                  4       pVP                  V4      pVP                  V4      pVP	                  W%VR7       VP                  V4       R# )   )store_valueload_resN)r6  r  r  r+  re   r&  )r"   rz   r   r  r  r  	load_namer  s   &&&     r   op_STORE_FAST_LOAD_FAST#TraceRunner.op_STORE_FAST_LOAD_FASTW  sY    HHERZF))+K008Iy1HLLLJJJx r   c                l    VP                  4       pVP                  4       pVP                  W#VR 7       R# ))value1value2Nr  re   )r"   rz   r   r  r  s   &&&  r   op_STORE_FAST_STORE_FAST$TraceRunner.op_STORE_FAST_STORE_FASTa  s(    YY[FYY[FLLVL<r   c                (    VP                  V4       R # r   r  r   s   &&&r   op_DELETE_FASTTraceRunner.op_DELETE_FAST|  r  r   c                J    VP                  4       pVP                  W#R 7       R# ))r   Nr  )r"   rz   r   r   s   &&& r   op_DELETE_ATTRTraceRunner.op_DELETE_ATTR  s    T)r   c                l    VP                  4       pVP                  4       pVP                  W#VR 7       R# ))r   r#   Nr  )r"   rz   r   r   r#   s   &&&  r   op_STORE_ATTRTraceRunner.op_STORE_ATTR  s(    		T6r   c                J    VP                  4       pVP                  W#R 7       R# )r#   Nr  r"   rz   r   r#   s   &&& r   op_STORE_DEREFTraceRunner.op_STORE_DEREF      		T'r   c                J    VP                  4       pVP                  W#R 7       R# r  r  r  s   &&& r   op_STORE_FASTTraceRunner.op_STORE_FAST  r  r   c           
        VP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  VVVVVVVR7       VP                  V4       R# )z
TOS = TOS1[TOS:]
)basestartr0  slicevarindexvarnonevarNr2  	r"   rz   r   rI  tos1r0  r  r  r  s	   &&&      r   
op_SLICE_1TraceRunner.op_SLICE_1  s}     iikyy{oo??$??$//# 	 	
 	

3r   c           
        VP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  VVVVVVVR7       VP                  V4       R# )z
TOS = TOS1[:TOS]
)r  stopr0  r  r  r  Nr2  r  s	   &&&      r   
op_SLICE_2TraceRunner.op_SLICE_2  s}     iikyy{oo??$??$//# 	 	
 	

3r   c           
        VP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  VVVVVVVR7       VP                  V4       R# )z
TOS = TOS2[TOS1:TOS]
)r  r  r  r0  r  r  Nr2  )	r"   rz   r   rI  r  tos2r0  r  r  s	   &&&      r   
op_SLICE_3TraceRunner.op_SLICE_3  s|     iikyy{yy{oo??$??$ 	 	
 	

3r   c           	         VP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  VVVVVVR7       R# )z
TOS[:] = TOS1
)r  r#   r  r  r  Nr  r+  re   )r"   rz   r   rI  r#   r  r  r  s   &&&     r   op_STORE_SLICE_0TraceRunner.op_STORE_SLICE_0  sa     iik		??$??$//# 	 	
r   c           
         VP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  VVVVVVVR7       R# )z
TOS1[TOS:] = TOS2
)r  r  r  r#   r  r  Nr  	r"   rz   r   rI  r  r#   r  r  r  s	   &&&      r   op_STORE_SLICE_1TraceRunner.op_STORE_SLICE_1  so     iikyy{		??$??$//# 	 	
r   c           
         VP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  VVVVVVVR7       R# )z
TOS1[:TOS] = TOS2
)r  r  r#   r  r  r  Nr  r  s	   &&&      r   op_STORE_SLICE_2TraceRunner.op_STORE_SLICE_2  so     iikyy{		??$??$//# 	 	
r   c           
         VP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  VVVVVVVR7       R# )z
TOS2[TOS1:TOS] = TOS3
)r  r  r  r#   r  r  Nr  )	r"   rz   r   rI  r  r  r#   r  r  s	   &&&      r   op_STORE_SLICE_3TraceRunner.op_STORE_SLICE_3	  sn     iikyy{yy{		??$??$ 	 	
r   c                    VP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  W#WEVR7       R# )z
del TOS[:]
)r  r  r  r  Nr  )r"   rz   r   rI  r  r  r  s   &&&    r   op_DELETE_SLICE_0TraceRunner.op_DELETE_SLICE_0  sL     iik??$??$//#X 	 	
r   c           	         VP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  VVVVVVR7       R# )z
del TOS1[TOS:]
)r  r  r  r  r  Nr  r"   rz   r   rI  r  r  r  r  s   &&&     r   op_DELETE_SLICE_1TraceRunner.op_DELETE_SLICE_1*  sa     iikyy{??$??$//# 	 	
r   c           	         VP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  VVVVVVR7       R# )z
del TOS1[:TOS]
)r  r  r  r  r  Nr  r  s   &&&     r   op_DELETE_SLICE_2TraceRunner.op_DELETE_SLICE_2<  sa     iikyy{??$??$//# 	 	
r   c           	         VP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  W%WCVVR7       R# )z
del TOS2[TOS1:TOS]
)r  r  r  r  r  Nr  )r"   rz   r   rI  r  r  r  r  s   &&&     r   op_DELETE_SLICE_3TraceRunner.op_DELETE_SLICE_3N  sX     iikyy{yy{??$??$4H 	 	
r   c           	        VP                   pV^8X  d(   VP                  4       pVP                  4       pTpTpRpMIV^8X  d8   VP                  4       pVP                  4       pVP                  4       p	T	pTpTpM\        R4      hVP                  4       p
VP                  4       pVP	                  W&WxWR7       VP                  V4       R# )z,
slice(TOS1, TOS) or slice(TOS2, TOS1, TOS)
Nunreachable)r  r  stepr0  r  )r6  r  	Exceptionr+  re   r&  )r"   rz   r   argcrI  r  r  r  r  r  r  r0  s   &&&         r   op_BUILD_SLICETraceRunner.op_BUILD_SLICE\  s     xx19))+C99;DEDDQY))+C99;D99;DEDDM**??$ooD 	 	
 	

3r   c           
        VP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  W$W5VWR 7       VP                  V4       R# ))r  r   	containerr0  r  temp_resNr2  )	r"   rz   r   r   r  r  r  r0  r  s	   &&&      r   op_BINARY_SLICETraceRunner.op_BINARY_SLICEx  so    ))+CIIKE		I(H//#C(HLLsS!   JJsOr   c           
         VP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  W$W5VWR 7       R# ))r  r   r  r#   r0  r  Nr  )	r"   rz   r   r   r  r  r#   r  r0  s	   &&&      r   op_STORE_SLICETraceRunner.op_STORE_SLICE  sa    ))+CIIKE		IIIKE(H//#CLLsu  r   c                    VP                  4       pVP                  W#R 7       VP                  4       pVP                  pVP	                  VR7       WE8w  d   VP	                  VR7       R# R# )predr   N)r  re   get_jump_targetr   r   )r"   rz   r   r  target_inst	next_insts   &&&   r   _op_POP_JUMP_IFTraceRunner._op_POP_JUMP_IF  s[    yy{T%**,II	 	

i
 #JJ+J& $r   c                    VP                  4       pVP                  W#R 7       VP                  VP                  ^R7       VP                  VP	                  4       R7       R# )r  rX   r   r   N)get_tosre   r   r   r  )r"   rz   r   r  s   &&& r   _op_JUMP_IF_OR_POPTraceRunner._op_JUMP_IF_OR_POP  sF    }}T%

diia
(

d**,
-r   c                (    V P                  W4       R # r   r  r   s   &&&r   op_POP_JUMP_FORWARD_IF_NONE'TraceRunner.op_POP_JUMP_FORWARD_IF_NONE      U)r   c                (    V P                  W4       R # r   r  r   s   &&&r   op_POP_JUMP_FORWARD_IF_NOT_NONE+TraceRunner.op_POP_JUMP_FORWARD_IF_NOT_NONE  r  r   c                (    V P                  W4       R # r   r  r   s   &&&r   op_POP_JUMP_BACKWARD_IF_NONE(TraceRunner.op_POP_JUMP_BACKWARD_IF_NONE  r  r   c                (    V P                  W4       R # r   r  r   s   &&&r    op_POP_JUMP_BACKWARD_IF_NOT_NONE,TraceRunner.op_POP_JUMP_BACKWARD_IF_NOT_NONE  r  r   c                (    V P                  W4       R # r   r  r   s   &&&r   op_POP_JUMP_FORWARD_IF_FALSE(TraceRunner.op_POP_JUMP_FORWARD_IF_FALSE  r  r   c                (    V P                  W4       R # r   r  r   s   &&&r   op_POP_JUMP_FORWARD_IF_TRUE'TraceRunner.op_POP_JUMP_FORWARD_IF_TRUE  r  r   c                (    V P                  W4       R # r   r  r   s   &&&r   op_POP_JUMP_BACKWARD_IF_FALSE)TraceRunner.op_POP_JUMP_BACKWARD_IF_FALSE  r  r   c                (    V P                  W4       R # r   r  r   s   &&&r   op_POP_JUMP_BACKWARD_IF_TRUE(TraceRunner.op_POP_JUMP_BACKWARD_IF_TRUE  r  r   c                h    VP                  V4       VP                  VP                  4       R 7       R# r   Nre   r   r  r   s   &&&r   op_JUMP_FORWARDTraceRunner.op_JUMP_FORWARD  %    T

d**,
-r   c                h    VP                  V4       VP                  VP                  4       R 7       R# r  r  r   s   &&&r   op_JUMP_BACKWARDTraceRunner.op_JUMP_BACKWARD  r  r   c                h    VP                  V4       VP                  VP                  4       R 7       R# r  r  r   s   &&&r   op_JUMP_ABSOLUTETraceRunner.op_JUMP_ABSOLUTE  r  r   c                    VP                  R 4      R,          pVP                  W#R7       VP                  4        VP                  VR7       R# )r=   r   r   r   N)r   re   	pop_blockr   )r"   rz   r   r   s   &&& r   op_BREAK_LOOPTraceRunner.op_BREAK_LOOP  s=    !!&)%0T#

c
r   c                    VP                  W!P                  4       VP                  4       R 7       VP                  4        R# )retvalcastvalN)re   r  r+  	terminater   s   &&&r   op_RETURN_VALUETraceRunner.op_RETURN_VALUE  s)    T))+u7HIr   c                    VP                  R 4      pVP                  W#VP                  4       R7       VP                  4        R# )re  r%  N)r+  re   r(  rY  s   &&& r   op_RETURN_CONSTTraceRunner.op_RETURN_CONST  s1    //'*CLL5??3DLEOOr   c                    VP                  4       pVP                  4       pVP                  W#VR 7       VP                  V4       R# )r#   r0  Nr2  r"   rz   r   rH  r0  s   &&&  r   op_YIELD_VALUETraceRunner.op_YIELD_VALUE  4    iikooT#.

3r   c                   VP                   ^ 8X  d@   RpVP                  4       '       d'   \        RV P                  VP                  4      R7      hM-VP                   ^8X  d   VP                  4       pM\        R4      hVP                  W#R7       VP                  4       '       d   V P                  V4       R# VP                  4        R# )r   N4The re-raising of an exception is not yet supported.r	  )Multiple argument raise is not supported.exc)
r6  r   r   r  r  r  
ValueErrorre   r   r(  r"   rz   r   r8  s   &&& r   op_RAISE_VARARGSTraceRunner.op_RAISE_VARARGS  s    xx1} ''))2N ..t{{;  *
 Qiik !LMMLLL'##%%))%0!r   c                   \        VP                  R 4      RJVP                  R4      RJ.4      pVP                  ^ 8X  d2   RpV'       d'   \        RV P	                  VP
                  4      R7      hM-VP                  ^8X  d   VP                  4       pM\        R4      hVP                  W$R7       VP                  4        R# )r?   Nr@   r5  r	  r6  r7  )
anyr   r6  r   r  r  r  r9  re   r(  )r"   rz   r   in_exc_blockr8  s   &&&  r   r;  r<    s    ##H-T9##I.d:  L xx1}2N ..t{{;   
 Qiik !LMMLLL'OOr   c                    . p\        \        4       F5  pVP                  4       pVP                  V4       VP	                  V4       K7  	  VP                  W#R 7       R# ))tempsN)r>  r   r+  re   r&  )r"   rz   r   rA  itmps   &&&   r   op_BEGIN_FINALLYTraceRunner.op_BEGIN_FINALLY(  sJ    +,A//#CLLJJsO - 	T'r   c                V    VP                  4       pVP                  VR ,          4       R# )r   N)r!  reset_stackr"   rz   r   blks   &&& r   op_END_FINALLYTraceRunner.op_END_FINALLY0  s!    oo#m,-r   c                &    VP                  4        R # r   rD  r   s   &&&r   
op_END_FORTraceRunner.op_END_FOR5      IIKr   c                F    VP                  4        VP                  4        R # r   rD  r   s   &&&r   rM  rN  8  s    IIKIIKr   c                x    VP                   ^ 8w  d)   Rp\        VV P                  VP                  4      R7      hR# )r   zGUnsupported use of a bytecode related to try..finally or a with-contextr	  N)r6  r   r  r  )r"   rz   r   r   s   &&& r   op_POP_FINALLYTraceRunner.op_POP_FINALLY@  s<    88q=(C*3/3/A/A$++/NP P r   c                    R # r   r   r   s   &&&r   op_CALL_FINALLYTraceRunner.op_CALL_FINALLYH  s    r   c                &    VP                  4        R # r   )r(  r   s   &&&r   op_WITH_EXCEPT_START TraceRunner.op_WITH_EXCEPT_STARTK  s    r   c                (    VP                  V4       R # r   r  r   s   &&&r   op_WITH_CLEANUP_START!TraceRunner.op_WITH_CLEANUP_STARTN      Tr   c                (    VP                  V4       R # r   r  r   s   &&&r   op_WITH_CLEANUP_FINISH"TraceRunner.op_WITH_CLEANUP_FINISHR  r]  r   c                f    VP                  VP                  R VP                  4       R7      4       R# )r=   r   r   N)
push_blockr   r  r   s   &&&r   op_SETUP_LOOPTraceRunner.op_SETUP_LOOPV  s2    ((*  	
r   c                J   VP                  4       pVP                  4       pVP                  R R7      pVP                  V4       VP                  V4       VP                  pVP	                  VP
                  4      pV.pVP                   F1  p	V	P                  VP                  8X  g   K   VP                  V	4       K3  	  \        R V 4       4      p
VP                  W#WZR7       VP                  VP                  RV
R7      4       VP                  VP
                  R7       R# )setup_with_exitfnprefixc              3   8   "   T F  qP                   x  K  	  R # 5ir   r   .0r   s   & r   	<genexpr>-TraceRunner.op_BEFORE_WITH.<locals>.<genexpr>u       1yffy   )contextmanagerexitfnr   r>   rb  r   N)r  r+  r&  rS   find_exception_entryr   exception_entriesr   re   maxrc  r   r   )r"   rz   r   cmyieldedrr  r  ehhead	ehrelatedr   r   s   &&&        r   op_BEFORE_WITHTraceRunner.op_BEFORE_WITHb  s     Boo'G__,?_@FJJvJJw B,,TYY7FI**99-$$R( + 1y11CLLLI   !  JJ$))J$r   c                l   VP                  4       pVP                  4       pVP                  R R7      pVP                  W#VR7       VP                  V4       VP                  V4       VP	                  VP                  RVP                  4       R7      4       VP                  VP                  R7       R# )rg  rh  )rq  rr  r>   rb  r   N)	r  r+  re   r&  rc  r   r  r   r   )r"   rz   r   rv  rw  rr  s   &&&   r   op_SETUP_WITHTraceRunner.op_SETUP_WITH  s    YY[//#(;<TV<

6

7((*  	
 	

dii
 r   c           
     z    VP                  VR RR7      pVP                  VVP                  RVRVR7      R7       R # )NF)r   r   rG  r<   )r   r   rG  r   r   )r   r   )r"   r   rz   r   r   handler_blocks   &&&&& r   
_setup_tryTraceRunner._setup_try  sW     (( ) 
 	

((!%	 )  	 	
r   c                    VP                  4       pVP                  VP                  R 4      4       VP                  V4       R# )	exceptionN)r  r&  r+  )r"   rz   r   rI  s   &&& r   op_PUSH_EXC_INFOTraceRunner.op_PUSH_EXC_INFO  s-    iik

5??;/0

3r   c                    VP                  V4       V P                  R WP                  VP                  4       R7       R# )r@   )r   r   N)re   r  r   r  r   s   &&&r   op_SETUP_FINALLYTraceRunner.op_SETUP_FINALLY  s3    Tu99$2F2F2H 	 	
r   c                &    VP                  4        R # r   rD  r   s   &&&r   op_POP_EXCEPTTraceRunner.op_POP_EXCEPT  rO  r   c                b   VP                  4       pVR ,          \        R4      \        R4      09  d1   \        RVR ,           2V P                  VP                  4      R7      hVP                  4        VP                  4        VP                  4        VP                  VP                  R7       R# )r   r?   r@   z$POP_EXCEPT got an unexpected block: r	  r   N)r!  r   r   r  r  r  r   r   rH  s   &&& r   r  r    s    //#C6{9X#6	)8L"MM.:3v;-H**4;;7  IIKIIKIIKJJ$))J$r   c                   VP                  4       pVR ,          \        R4      8X  d   VP                  VRR7       M*VR ,          \        R4      8X  d   VP                  VRR7       VP                  VP                  R7       R# )r   r<   try)r   r>   withr   N)r!  r   re   r   r   rH  s   &&& r   op_POP_BLOCKTraceRunner.op_POP_BLOCK  sb    oov;)E**LLEL*[If--LLFL+

dii
 r   c                    VP                  4       pVP                  4       pVP                  4       pVP                  W#WER 7       VP                  V4       R# ))indexr   r0  Nr2  )r"   rz   r   r  r   r0  s   &&&   r   op_BINARY_SUBSCRTraceRunner.op_BINARY_SUBSCR  s?    IIKEYY[F//#CLL6LCJJsOr   c                    VP                  4       pVP                  4       pVP                  4       pVP                  W$W5R 7       R# ))r   r  r#   Nr  )r"   rz   r   r  r   r#   s   &&&   r   op_STORE_SUBSCRTraceRunner.op_STORE_SUBSCR  s3    				TCr   c                l    VP                  4       pVP                  4       pVP                  W$VR 7       R# ))r   r  Nr  )r"   rz   r   r  r   s   &&&  r   op_DELETE_SUBSCRTraceRunner.op_DELETE_SUBSCR  s(    		T6r   c           	     >   VP                   p\        \        \        V4       Uu. uF  qAP	                  4       NK  	  up4      4      p\
        R9   d:   VP	                  4       pVP	                  4       p\        V4      '       g   V.VOpRpMV\
        R8  dL   VP	                  4       p	VP	                  4       p
\        V
4      '       d   T	pMT
pV	.VOpVP                  4       pVP                  4       pVP                  VXVXVR7       VP                  V4       R# u upi )r   Nfuncargskw_namesr0  r   rp  )r6  r   r=  r>  r  r   r   pop_kw_namesr+  re   r&  )r"   rz   r   nargr@  r  null_or_selfcallabler  callable_or_firstargnull_or_callabler0  s   &&&         r   op_CALLTraceRunner.op_CALL  s    xxH5;?;aiik;?@A** 99;Lyy{H$\22$,t,H #(99; $yy{ !122/+,4t4))+HooTthCP

3) @s   Dc                <    VP                  VP                  4       R # r   )set_kw_namesr6  r   s   &&&r   op_KW_NAMESTraceRunner.op_KW_NAMES  s    488$r   c           	     $   VP                   p\        \        \        V4       Uu. uF  qAP	                  4       NK  	  up4      4      pVP	                  4       pVP                  4       pVP                  W&WWR 7       VP                  V4       R# u upi ))r  r  r0  Nr<  )r"   rz   r   r  r@  r  r  r0  s   &&&     r   op_CALL_FUNCTIONTraceRunner.op_CALL_FUNCTION  si    xxH5;?;aiik;?@Ayy{ooT49

3 @s   Bc           	     F   VP                   pVP                  4       p\        \        \	        V4       Uu. uF  qQP                  4       NK  	  up4      4      pVP                  4       pVP                  4       pVP                  W'WdVR 7       VP                  V4       R# u upi ))r  r  namesr0  N)r6  r  r   r=  r>  r+  re   r&  )	r"   rz   r   r  r  r@  r  r  r0  s	   &&&      r   op_CALL_FUNCTION_KWTraceRunner.op_CALL_FUNCTION_KW  sv    xx		H5;?;aiik;?@Ayy{ooT4#F

3 @s   Bc           	        VP                   pVP                  4       p\        \        \	        V4       Uu. uF  qQP                  4       NK  	  up4      4      pVP                  4       pVP                  4       p\        V4      '       g   V.VOpVP                  4       p	VP                  W(WdV	R 7       VP                  V	4       R# u upi )r  N)	r6  r  r   r=  r>  r   r+  re   r&  )
r"   rz   r   r  r  r@  r  null_or_firstargr  r0  s
   &&&       r   
op_CALL_KWTraceRunner.op_CALL_KW  s    88Dyy{HuT{!C{!))+{!CDED$yy{yy{H$%566(040//#CLL4   "JJsO "Ds   Cc                   VP                  4       p\        V4      '       d   R pVP                  4       pVP                  4        VP                  4       pVP                  4       pVP                  W%WCVR7       VP	                  V4       R # )Nr  varargvarkwargr0  )r  r   r+  re   r&  r"   rz   r   r  r  r  r0  s   &&&    r   op_CALL_FUNCTION_EXTraceRunner.op_CALL_FUNCTION_EX,  sm     yy{H **YY[FIIK99;D//#CLL   "JJsOr   c                (   VP                   ^,          '       d   VP                  4       pMRpVP                  4       pVP                  4        VP                  4       pVP                  4       pVP                  W%WCVR7       VP	                  V4       R# )rN  Nr  )r6  r  r+  re   r&  r  s   &&&    r   r  r  <  sm    xx!|| 99;YY[FIIK99;D//#CLL   "JJsOr   c                   VP                   ^,          '       d   VP                  4       pMRpVP                  4       pVP                  4       p\        R9   d2   \        VP	                  ^4      4      '       d   VP                  4        M\        R9   d   M\        \        4      hVP                  4       pVP                  W%WCVR7       VP                  V4       R# )rN  Nr  r   r   r   )	r6  r  r   r   peekr   r+  re   r&  r  s   &&&    r   r  r  L  s    xx!|| 99;YY[F99;D..$UZZ]33IIKj())44//#CLL   "JJsOr   c                d   \        V4       Uu. uF  qAP                  4       NK  	  ppVP                  4        \        V4       Uu. uF  qAP                  4       NK  	  ppVP	                  W%VR 7       V F  pVP                  V4       K  	  V F  pVP                  V4       K  	  R# u upi u upi ))origdupedN)r>  r  reverser+  re   r&  )r"   rz   r   r?  r@  r  r  rH  s   &&&&    r   	_dup_topxTraceRunner._dup_topxc  s    %*5\2\		\2 -2%L9Lq"L9TE2CJJsO CJJsO  3 :s   B(B-c                    \        VP                  4      pT\        P                  8X  d%   TP                  Y#R7       TP                  4        R# T\        P                  8X  dG   TP                  4       pTP                  4       pTP                  Y#YgR7       TP                  T4       R# T\        P                  8X  dG   TP                  4       pTP                  4       pTP                  Y#YR7       TP                  T4       R# \        T4      h  \         d9    R TP                   R2pT P                  TP                  4      p\        YER7      hi ; i)zop_CALL_INTRINSIC_1()r	  )operandN)r  r#   r0  )r  
const_listr0  )r   r6  r0   r  r  r   ci1opr   re   r(  r   r  r+  r&  r   r   )	r"   rz   r   r  r   r
  rH  r0  rI  s	   &&&      r   op_CALL_INTRINSIC_1TraceRunner.op_CALL_INTRINSIC_1p  s   =2488<
 %===T3!E000iikoo'T#&  1

3E999iikoo'T(+  6

3)'22/  =,TXXJa8((5.s<<=s   D AEc                ~    VP                   p^Tu;8:  d   ^8:  g   Q R4       h Q R4       hV P                  WV4       R# )rN  zInvalid DUP_TOPX countN)r6  r  )r"   rz   r   r?  s   &&& r   op_DUP_TOPXTraceRunner.op_DUP_TOPX  s:    EQ8 888 88uE*r   c                ,    V P                  W^R7       R# )rN  r?  Nr  r   s   &&&r   
op_DUP_TOPTraceRunner.op_DUP_TOP      u!,r   c                ,    V P                  W^R7       R# )   r  Nr  r   s   &&&r   op_DUP_TOP_TWOTraceRunner.op_DUP_TOP_TWO  r  r   c                Z    VP                  VP                  VP                  4      4       R # r   )r&  r  r6  r   s   &&&r   op_COPYTraceRunner.op_COPY  s    

5::dhh'(r   c                <    VP                  VP                  4       R # r   )swapr6  r   s   &&&r   op_SWAPTraceRunner.op_SWAP  s    

488r   c                    VP                  4       pVP                  4       pVP                  V4       VP                  V4       R # r   r  r&  )r"   rz   r   firstseconds   &&&  r   
op_ROT_TWOTraceRunner.op_ROT_TWO  s0    		

5

6r   c                    VP                  4       pVP                  4       pVP                  4       pVP                  V4       VP                  V4       VP                  V4       R # r   r  )r"   rz   r   r  r  thirds   &&&   r   op_ROT_THREETraceRunner.op_ROT_THREE  sG    				

5

5

6r   c                   VP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  V4       VP                  V4       VP                  V4       VP                  V4       R # r   r  )r"   rz   r   r  r  r  forths   &&&    r   op_ROT_FOURTraceRunner.op_ROT_FOUR  s^    						

5

5

5

6r   c                "   VP                   pVP                  4       p\        V4       Uu. uF  qQP                  4       NK  	  ppVP                  4       pVP	                  W$WgR 7       \        V4       F  pVP                  V4       K  	  R# u upi ))iterablestorestupleobjN)r6  r  r>  r+  re   r=  r&  )	r"   rz   r   r?  r  r@  r  r  sts	   &&&      r   op_UNPACK_SEQUENCETraceRunner.op_UNPACK_SEQUENCE  sn    99;-25\:\//#\:??$TVO6"BJJrN # ;s   Bc           	        VP                   p\        \        \        V4       Uu. uF  qAP	                  4       NK  	  up4      4      pVP                  4       pVP                  W%VR 7       VP                  V4       R# u upi )r   r0  Nr<  )r"   rz   r   r?  r@  r   tups   &&&    r   op_BUILD_TUPLETraceRunner.op_BUILD_TUPLE  ^    XE%LALqyy{LABCooTC0

3 B   A=c           	        \        \        \        VP                  4       Uu. uF  q1P	                  4       NK  	  up4      4      p\        \        V4      ^,
          4       Uu. uF  q1P                  4       NK  	  pp\        V4      ^8H  pV'       d   VP                  4       .pVP                  W$WVR7       VP                  VR,          4       R# u upi u upi )rN  )tuplesrA  	is_assignNr  )	r   r=  r>  r6  r  rz  r+  re   r&  )r"   rz   r   r@  r  rA  r  s   &&&    r   _build_tuple_unpackTraceRunner._build_tuple_unpack  s    hU488_E_		_EFG,1#f+/,BC,Bq",BC K1$	__&(ETK

59  FCs   C"Cc                (    V P                  W4       R # r   r  r   s   &&&r   op_BUILD_TUPLE_UNPACK_WITH_CALL+TraceRunner.op_BUILD_TUPLE_UNPACK_WITH_CALL  s      -r   c                (    V P                  W4       R # r   r  r   s   &&&r   op_BUILD_TUPLE_UNPACK!TraceRunner.op_BUILD_TUPLE_UNPACK  s      -r   c                    VP                  4       pVP                  4       pVP                  W#VR 7       VP                  V4       R# ))r  r0  Nr2  )r"   rz   r   rI  r0  s   &&&  r   op_LIST_TO_TUPLETraceRunner.op_LIST_TO_TUPLE  s6     iikooTs3

3r   c           	        VP                  4       p\        \        \        VP                  4       Uu. uF  qAP                  4       NK  	  up4      4      p\        VP                  4       Uu. uF  qAP                  4       NK  	  ppVP                  4       pVP                  W#WeVR 7       VP                  V4       R# u upi u upi ))keyskeytmpsvaluesr0  N)r  r   r=  r>  r6  r+  re   r&  )r"   rz   r   r  r@  valsr  r0  s   &&&     r   op_BUILD_CONST_KEY_MAP"TraceRunner.op_BUILD_CONST_KEY_MAP  s    yy{H5?C?aiik?CDE.3DHHo>o??$o>ooTgL

3	 D>s   B=,Cc           	        VP                   p\        \        \        V4       Uu. uF  qAP	                  4       NK  	  up4      4      pVP                  4       pVP                  W%VR 7       VP                  V4       R# u upi r  r<  )r"   rz   r   r?  r@  r   lsts   &&&    r   op_BUILD_LISTTraceRunner.op_BUILD_LIST  r  r   c                    VP                  4       pVP                  pVP                  V4      pVP                  4       pVP                  4       pVP	                  W%W6VR 7       R# ))r   r#   	appendvarr0  Nr  r6  r  r+  re   )r"   rz   r   r#   r  r   r  r0  s   &&&     r   op_LIST_APPENDTraceRunner.op_LIST_APPEND  T    		E"OO%	ooT 	 	r   c                    VP                  4       pVP                  pVP                  V4      pVP                  4       pVP                  4       pVP	                  W%W6VR 7       R# ))r   r#   	extendvarr0  Nr  )r"   rz   r   r#   r  r   r"  r0  s   &&&     r   op_LIST_EXTENDTraceRunner.op_LIST_EXTEND  r   r   c                $   VP                  4       pVP                  p. p\        V4       F4  pVP                  4       VP                  4       rVP	                  W34       K6  	  VP	                  W%R R R1,          WCR7       VP                  V4       R # )N)r   sizer0  r  )r+  r6  r>  r  re   r&  )	r"   rz   r   dctr?  r   rB  vks	   &&&      r   op_BUILD_MAPTraceRunner.op_BUILD_MAP  sp    oouA99;		qLL!   	Ttt5B

3r   c           	         VP                  4       pVP                  4       pYCreVP                  pVP                  V4      pVP                  4       p	VP                  4       p
VP	                  W(WVWR 7       R# ))r   r_   r#   
setitemvarr0  Nr  )r"   rz   r   TOSTOS1r_   r#   r  r   r-  r0  s   &&&        r   
op_MAP_ADDTraceRunner.op_MAP_ADD  sd    iikyy{UE"__&
ooTc * 	 	5r   c           	        VP                   p\        \        \        V4       Uu. uF  qAP	                  4       NK  	  up4      4      pVP                  4       pVP                  W%VR 7       VP                  V4       R# u upi r  r<  )r"   rz   r   r?  r@  r   r0  s   &&&    r   op_BUILD_SETTraceRunner.op_BUILD_SET!  s^    XE%LALqyy{LABCooTC0

3 Br   c                    VP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  W#WEVR 7       R# ))r#   r   addvarr0  N)r  r  r+  re   )r"   rz   r   r#   r   r6  r0  s   &&&    r   
op_SET_ADDTraceRunner.op_SET_ADD)  sB    		"ooTv#Nr   c                    VP                  4       pVP                  pVP                  V4      pVP                  4       pVP                  4       pVP	                  W%W6VR 7       R# )r   r#   	updatevarr0  Nr  r"   rz   r   r#   r  r   r;  r0  s   &&&     r   op_SET_UPDATETraceRunner.op_SET_UPDATE0  r   r   c                    VP                  4       pVP                  pVP                  V4      pVP                  4       pVP                  4       pVP	                  W%W6VR 7       R# r:  r  r<  s   &&&     r   op_DICT_UPDATETraceRunner.op_DICT_UPDATE9  r   r   c                    VP                  4       pVP                  4       pVP                  W#VR 7       VP                  V4       R# r/  r2  )r"   rz   r   r#   r0  s   &&&  r   op_GET_ITERTraceRunner.op_GET_ITERB  s4    		ooTC0

3r   c                   VP                  4       pVP                  4       pVP                  4       pVP                  4       pVP                  W#WEVR 7       VP                  V4       VP	                  4       p\
        R9   d   VP                  VR7       M.\
        R9   d   VP                  V^R7       M\        \
        4      hVP                  VP                  R7       R# ))iteratorpairindvalr  r   r  Nr   r   r   rr  )	r  r+  re   r&  r  r   r   r   r   )r"   rz   r   rF  rG  rH  r  r   s   &&&     r   op_FOR_ITERTraceRunner.op_FOR_ITERH  s    ==? " T4 	 	 

6""$33 JJ#J,,JJ#AJ&%i00

dii
 r   c                    R# )a   Pops TOS. If TOS was not None, raises an exception. The kind
operand corresponds to the type of generator or coroutine and
determines the error message. The legal kinds are 0 for generator,
1 for coroutine, and 2 for async generator.

New in version 3.10.
Nr   r   s   &&&r   op_GEN_STARTTraceRunner.op_GEN_START\  s     	r   c                   \         P                  VP                  ,          ^,          pVP                  4       pVP                  4       pVR8X  dE   \        R8X  g   Q hVP                  4       pVP                  W#WTVR7       VP                  V4       R# \        V,          P                  pVP                  RV 2R7      pVP                  W#WTVR7       VP                  V4       R# )rN  z[])oplhsr   r0  binop_rh  Nr   )
dis_nb_opsr6  r  r   r+  re   r&  r   r   )r"   rz   r   rP  r   rQ  r0  op_names   &&&     r   op_BINARY_OPTraceRunner.op_BINARY_OPg  s    [["1%iikiik:'''//#CLL#CL@JJsO-b1::G//6');/<CLL#CL@JJsOr   c                    VP                  4       pVP                  4       pVP                  W#VR 7       VP                  V4       R# r/  r2  r0  s   &&&  r   _unaryopTraceRunner._unaryopw  r3  r   c                    VP                  4       pVP                  4       pVP                  4       pVP                  W$W5R 7       VP                  V4       R# ))rQ  r   r0  Nr2  )r"   rz   r   r   rQ  r0  s   &&&   r   	_binaryopTraceRunner._binaryop  s?    iikiikooT5

3r   c                   \         R9   d   RpM+\         R9   d   VP                  4       pM\        \         4      hVP                  4       pR;p;p;p;r\         R9   d   VP                  e   Q hMVP                  ^,          '       d   VP                  4       pVP                  ^,          '       d   VP                  4       pVP                  ^,          '       d   VP                  4       p	VP                  ^,          '       d   VP                  4       p
VP	                  4       pVP                  VVVVVVV	V
VR7	       VP                  V4       R# )r   N)r~  codeclosureannotationsannotate
kwdefaultsdefaultsr0  r   r   rp  )r   r  r   r6  r+  re   r&  )r"   rz   r   MAKE_CLOSUREr~  r_  r`  ra  rb  rc  rd  r0  s   &&&&        r   op_MAKE_FUNCTIONTraceRunner.op_MAKE_FUNCTION  s   << D*$99;D%i00yy{CGGG+GG:**88### xx#~~))+xx#~~#iikxx#~~"YY[
xx#~~ 99;oo#! 	 
	
 	

3r   c                P   \         R9   g   Q hVP                  4       pVP                  4       pVP                  ^,          '       d   VP                  W4R7       MVP                  ^,          '       d   VP                  W4R7       MVP                  ^,          '       d   VP                  W4R7       McVP                  ^,          '       d   VP                  W4R7       M7VP                  ^,          '       d   VP                  W4R7       M\	        R4      hVP                  V4       R# )	r   )rd  )rc  )ra  )r`  )rb  r  Nrp  )r   r  r6  set_function_attributeAssertionErrorr&  )r"   rz   r   make_func_stackdatas   &&&  r   op_SET_FUNCTION_ATTRIBUTE%TraceRunner.op_SET_FUNCTION_ATTRIBUTE  s    ....))+yy{88d?? (((HXX__(((JXX__(((KXX__(((GXX__ (((H //

?#r   c                ,    V P                  WR R7       R# )T)re  N)rf  r   s   &&&r   op_MAKE_CLOSURETraceRunner.op_MAKE_CLOSURE  s    e=r   c                l    VP                  4       pVP                  W#R 7       VP                  V4       R# rV  rX  rY  s   &&& r   op_LOAD_CLOSURETraceRunner.op_LOAD_CLOSURE  rc  r   c                n    VP                  R 4      pVP                  W#R7       VP                  V4       R# )assertion_errorrW  NrX  rY  s   &&& r   op_LOAD_ASSERTION_ERROR#TraceRunner.op_LOAD_ASSERTION_ERROR  s*    //"34CLLL'JJsOr   c                    VP                  R 4      pVP                  4       pVP                  4       pVP                  W#WER7       VP	                  V4       R# )	predicater  rI  r  N)r+  r  r  re   r&  r"   rz   r   r  rI  r  s   &&&   r   op_CHECK_EXC_MATCHTraceRunner.op_CHECK_EXC_MATCH  sB    {+iik}}T#9

4r   c                   VP                  R 4      pVP                  4       pVP                  4       pVP                  W#WER7       VP                  VP                  R7       VP                  VP                  4       R7       R# )rz  r{  r   N)r+  r  re   r   r   r  r|  s   &&&   r   op_JUMP_IF_NOT_EXC_MATCH$TraceRunner.op_JUMP_IF_NOT_EXC_MATCH  sa     {+iikyy{T#9

dii
 

d**,
-r   c                    VP                  4       pVP                  ^ 8w  d   VP                  4        VP                  W#R7       VP                  4       '       d   V P	                  V4       R# VP                  4        R# )r   r7  N)r  r6  re   r   r   r(  r:  s   &&& r   
op_RERAISETraceRunner.op_RERAISE  sV    ))+Cxx1}		LLL'##%%))%0!r   c                j    VP                  4       pVP                  W#R 7       VP                  4        R# )r7  N)r  re   r(  r:  s   &&& r   r  r    s%    ))+CLLL'OOr   c                    VP                  4       pVP                  4       pVP                  V4       VP                  4       pVP	                  W#VR 7       VP                  V4       R# )rn  N)r  r'  r&  r+  re   )r"   rz   r   ro  extrar0  s   &&&   r   op_LOAD_METHODTraceRunner.op_LOAD_METHOD-  sL    99;DOO%EJJu//#CLLcL2JJsOr   c                (    V P                  W4       R # r   )rs  r   s   &&&r   r  r  5  s    e*r   c                (    V P                  W4       R # r   )r  r   s   &&&r   op_CALL_METHODTraceRunner.op_CALL_METHOD:  s    e*r   c                   \         P                  VP                  ,          R9  d   \        R4      hVP	                  4       pVP	                  4       pVP                  RR7      pTpR FR  w  rxVP                  4        VP                  4       pVP                  V8w  g   VP                  V8w  g   KI  \        R4      h	  VP                  4        VP                  4       pVP                  R8w  d   Rp	\        V	4      hVP                  e   Q hVP                  p
V
P                  VP                  4      pV.pV
P                   F1  pVP                  VP                  8X  g   K   VP                  V4       K3  	  \!        R V 4       4      pVP#                  V4       VP#                  V4       VP                  WcVVR	7       VP%                  VP'                  R
VR7      4       VP)                  VP*                  R7       R# )	__enter__z#async special methods not supportedrg  rh  z0Unsupported bytecode pattern for 'LOAD_SPECIAL'.r   r   Nc              3   8   "   T F  qP                   x  K  	  R # 5ir   r   rk  s   & r   rm  .TraceRunner.op_LOAD_SPECIAL.<locals>.<genexpr>  ro  rp  )rq  exit_method	block_endr>   rb  r   )r  __exit__))SWAPr  )r  r   )LOAD_SPECIALr   )CALLr   )rS  _special_method_namesr6  r   r  r+  r   r   r   r   rS   rs  r   rt  r   re   ru  r&  rc  r   r   r   )r"   rz   r   rI  r@  methodold_instrB  ar   r  rx  ry  r   r   s   &&&            r   op_LOAD_SPECIALTraceRunner.op_LOAD_SPECIAL?  s    ))$((345)9; ;> ))+C		A __,?_@FH
   "~~'KK1$A2JL L >>#D
 {{i'$ /s3388### B,,T[[9FI**99-$$R( + 1y11C JJvJJsOLL6#&  (    !  JJ$))J$r   c                    VP                   p\        P                  V,          \        8X  d   R pM\        hVP                  V4      pVP                  W%VR7       VP                  V4       R# )rv  )r0  rO  N)r6  rS  _common_constantsrj  r   r+  re   r&  )r"   rz   r   r  r~  r0  s   &&&   r   op_LOAD_COMMON_CONSTANT#TraceRunner.op_LOAD_COMMON_CONSTANT  sR    HHE$$U+~=())//$'CLLEL2JJsOr   )r[   rg   rd   Nr   r   rp  rw  r  r   rI  rr  r   rq  )r   )F)r   )r   r   r   r   rB   r$   r  ri   r   r  r   op_NOT_TAKENr   r  r   r#  r(  r,  r3  r7  rA  rE  op_POP_ITERrJ  rR  r[  r^  ra  rg  rk  rs  r  r  r  r  op_LOAD_FAST_CHECKop_LOAD_FAST_AND_CLEARop_LOAD_FAST_BORROW$op_LOAD_FAST_BORROW_LOAD_FAST_BORROWr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  op_POP_JUMP_IF_TRUEop_POP_JUMP_IF_FALSEop_POP_JUMP_IF_NONEop_POP_JUMP_IF_NOT_NONEr  op_JUMP_IF_FALSE_OR_POPop_JUMP_IF_TRUE_OR_POPr  r   r  r  r	  r  r  r  r  r  op_JUMP_BACKWARD_NO_INTERRUPTr  r"  r)  r,  r1  r;  rD  rJ  rM  rR  rU  rX  r[  r_  rd  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r*  r0  r3  r7  r=  r@  rC  rJ  rM  rV  rY  op_UNARY_NEGATIVEop_UNARY_POSITIVEop_UNARY_NOTop_UNARY_INVERTr\  op_COMPARE_OPop_IS_OPop_CONTAINS_OPop_INPLACE_ADDop_INPLACE_SUBTRACTop_INPLACE_MULTIPLYop_INPLACE_DIVIDEop_INPLACE_TRUE_DIVIDEop_INPLACE_FLOOR_DIVIDEop_INPLACE_MODULOop_INPLACE_POWERop_INPLACE_MATRIX_MULTIPLYop_INPLACE_LSHIFTop_INPLACE_RSHIFTop_INPLACE_ANDop_INPLACE_ORop_INPLACE_XORop_BINARY_ADDop_BINARY_SUBTRACTop_BINARY_MULTIPLYop_BINARY_DIVIDEop_BINARY_TRUE_DIVIDEop_BINARY_FLOOR_DIVIDEop_BINARY_MODULOop_BINARY_POWERop_BINARY_MATRIX_MULTIPLYop_BINARY_LSHIFTop_BINARY_RSHIFTop_BINARY_ANDop_BINARY_ORop_BINARY_XORrf  rm  rp  rs  rw  r}  r  r  r  r  r  r  r   rD   rE   s   @r   ra   ra   A  s    
0P6/( J	:	:!),, &&	 
1	1!),,$" K 	:	:!),,%%	
 
1	1!),,&&	. 
(	(	 
j	 	
 "),,
$ K	(
 
:	:!),,/"8 &&
		!	=
 
1	1!),,//)!-	(	(!),,J*/E,	:	:!),,*7
((***
$
(
(
(

$
$
6 //	 
(	(!),,//	 
(	(!),,
' **//-"1	(	(!),,. 1/********.. %5!. //	 
(	(!),, 88	"* 
j	 	& "),,(. &&		j	 	 
(	(!),,P
 K	:	:	%> "),,!&
(

 88	 
j	 	% "),,! J	:	:	 "),,D7
0% &&	 
1	1!),,K	 
k	!	 
1	1	* "),,
 //	3< 
(	(!),,+
--)..		5O!(	  ! LO MHNN##!&'! !*!!NMNM"" %& O )  MLM$L$2>
 K	:	:	
 "),,. 77
	" 
j	 	 "),,
 //	k	!	 
j	 	+ "),,+ Ko	%b 
:	:!),,K	 	 
:	:!),,r   ra   c                   `  a  ] tR tRt o RtR,R l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R tR tR tR-R ltR tR tR tR tR tR tR tR tR.R ltR t R t!R  t"R! t#R" t$R# t%V 3R$ lR% lt&R& t'R/R' lt(R( t)R) t*R* t+R+t,V t-R# )0_Statei  zState of the trace
    c                   Wn         W n        W n        W0n        . V n        \        V4      V n        \        V4      V n        . V n	        . V n
        . V n        RV n        / V n        \        4       V n        \!        4       V n        \%        V4       FK  pWe9   d   V P'                  R4      pMV P'                  R4      pW`P                  V&   V P)                  V4       KM  	  R# )z
Parameters
----------
bytecode : numba.bytecode.ByteCode
    function bytecode
pc : int
    program counter
nstack : int
    stackdepth at entry
blockstack : Sequence[Dict]
    A sequence of dictionary denoting entries on the blockstack.
Fnull$r   N)rS   _pc_initialr   _nstack_initialrh   tuple_blockstack_initialr   r  _temp_registers_insts	_outedges_terminatedr   r   r   r   r   r>  r+  r&  )r"   rU   rX   rY   rZ   nullvalsrB  r   s   &&&&&&  r   r$   _State.__init__  s     "%#(#4 
+! 
(l%vA}nnW-nnU+JJsOIIcN r   c                N    R P                  V P                  V P                  4      # )z&State(pc_initial={} nstack_initial={}))r1   r  r  r)   s   &r   r:   _State.__repr__  s&    7>>d22
 	
r   c                2    V P                   V P                  3# r   )r  r  r)   s   &r   get_identity_State.get_identity  s      $"6"677r   c                4    \        V P                  4       4      # r   )r'   r  r)   s   &r   r*   _State.__hash__  s    D%%'((r   c                D    V P                  4       VP                  4       8  # r   r  r2   s   &&r   r4   _State.__lt__  s      "U%7%7%999r   c                D    V P                  4       VP                  4       8H  # r   r  r2   s   &&r   r7   _State.__eq__  s      "e&8&8&:::r   c                    V P                   # )zMThe starting bytecode offset of this State.
The PC given to the constructor.
)r  r)   s   &r   r]   _State.pc_initial  s    
 r   c                    V P                   # )zYThe list of instructions information as a 2-tuple of
``(pc : int, register_map : Dict)``
)r  r)   s   &r   instructions_State.instructions  s    
 {{r   c                    V P                   # )zAThe list of outgoing edges.

Returns
-------
edges : List[State]
)r  r)   s   &r   ro   _State.outgoing_edges  s     ~~r   c                    V P                   # )zsThe dictionary of outgoing phi nodes.

The keys are the name of the PHI nodes.
The values are the outgoing states.
)r   r)   s   &r   outgoing_phis_State.outgoing_phis  s     """r   c                    V P                   # )z6A copy of the initial state of the blockstack
        )r  r)   s   &r   blockstack_initial_State.blockstack_initial  s     '''r   c                ,    \        V P                  4      # )z9The current size of the stack

Returns
-------
res : int
)rz  rh   r)   s   &r   r   _State.stack_depth$  s     4;;r   c                t    \        V P                  4       F  pVR,          \        R4      8X  g   K  Vu # 	  R# )z&Find the initial *try* block.
        r   r<   N)r=  r  r   )r"   rI  s   & r   find_initial_try_block_State.find_initial_try_block.  s/     D445C6{i..
 6r   c                    V P                   # r   r  r)   s   &r   rj   _State.has_terminated5  s    r   c                <    V P                   V P                  ,          # r   )rS   r   r)   s   &r   r   _State.get_inst8  s    ~~dhh''r   c                H    V P                  4       pVP                  V n        R # r   )r   r   r   r"   r   s   & r   r   _State.advance_pc;  s    }}99r   c                `   V'       gZ   R P                  VV P                  V P                  4       P                  P	                  4       \        V P                  4      R7      pM1RP                  VV P                  \        V P                  4      R7      pV P                  P                  V4       V# )z"${prefix}{offset}{opname}.{tempct})ri  r   r   tempctz${prefix}{offset}.{tempct})ri  r   r  )r1   r   r   r   lowerrz  r  re   )r"   ri  r~  s   && r   r+  _State.make_temp?  s    7>>xx}}--3354//0	 ? D 066xx4//0 7 D 	##D)r   c                    V P                   P                  VP                  V34       V ;P                  \	        \        VP                  4       4      4      ,          un        R# )zAppend new instN)r  re   r   r   r   _flatten_inst_regsr  )r"   r   r   s   &&,r   re   _State.appendQ  s<    DKK0131&--/BCCr   c                $    V P                  ^4      # )rN  )r  r)   s   &r   r  _State.get_tosV  s    yy|r   c                *    V P                   V) ,          # )z-Return the k'th element on the stack
        rh   )r"   r)  s   &&r   r  _State.peekY  s     {{A2r   c                <    V P                   P                  V4       R# )zPush to stackN)rh   re   )r"   ro  s   &&r   r&  _State.push^  s    4 r   c                6    V P                   P                  4       # )zPop the stack)rh   r  r)   s   &r   r  
_State.popb  s    {{  r   c                P    V P                   pW!) ,          VR,          uVR&   W!) &   R# )zSwap stack[idx] with the tosNr  r  )r"   rO  ss   && r   r  _State.swapf  s&    KK4!B%"qwr   c                N    RV9   g   Q hV P                   P                  V4       R# )z#Push a block to blockstack
        r   N)r  re   )r"   synblks   &&r   rc  _State.push_blockk  s&     &&&'r   c                N    V P                   RV V P                   VR uV n         pV# )zFReset the stack to the given stack depth.
Returning the popped items.
Nr  )r"   r   poppeds   && r   rG  _State.reset_stackq  s-     #kk&514;;uv3FVr   Nc                    R\        V4      RVR\        V P                  4      /pV'       d   \        V P                  4      VR&   MRVR&   WER&   V# )zMake a new block
        r   r   r   r   Nr   )r   rz  rh   )r"   r   r   rG  r   ds   &&&&& r   r   _State.make_blockx  sU     IdO33t{{+

 "4;;/Am#Am)r   c                j    V P                   P                  4       pV P                  VR,          4       V# )z)Pop a block and unwind the stack
        r   )r  r  rG  r"   r   s   & r   r!  _State.pop_block  s0       "=)*r   c                    V P                   P                  V4      p^ Tu;8:  d   \        V P                   4      8  g   Q h Q hV P                   RV V n         R# )zSFind *blk* in the blockstack and remove it and all blocks above it
from the stack.
N)r  r  rz  )r"   rI  rO  s   && r   r   _State.pop_block_and_above  sS     $$S)C/#d..//////++DS1r   c                x    \        V4      p\        V P                  4       F  pVR,          V8X  g   K  Vu # 	  R# z1Find the first block that matches *kind*
        r   Nr   r=  r  )r"   r   bss   && r   r   _State.get_top_block  s3     4++,B&zT!	 -r   c                    V Uu0 uF  p\        V4      kK  	  pp\        V P                  4       F  pVR,          V9   g   K  Vu # 	  R# u upi r(  r)  )r"   kindsr   r*  s   &*  r   get_top_block_either_State.get_top_block_either  sG     .33UT4U34++,B&zU"	 - 4s   Ac                (    V P                  R4      RJ# )zGReturns a boolean indicating if the top-block is a *try* block
        r<   N)r   r)   s   &r   r   _State.has_active_try  s     !!%(44r   c                8    V P                  VP                  4      # )zBGet referenced variable name from the instruction's oparg
        )r  r6  r  s   &&r   rx  _State.get_varname  s     &&txx00r   c                    < V ^8  d   QhRS[ /# )r  r  )int)r1   rF   s   "r   __annotate___State.__annotate__  s     1 1 1r   c                <    V P                   P                  V,          # )z4Get referenced variable name from the oparg
        )rS   r{  )r"   r  s   &&r   r  _State.get_varname_by_arg  s     ~~))%00r   c                    RV n         R# )z!Mark block as terminated
        TNr  r)   s   &r   r(  _State.terminate  s      r   c           
     *   \        V P                  4      pV'       dI   ^ Tu;8:  d   \        V P                  4      8:  g   Q h Q h\        V P                  4      V,
          pVRV pV'       d;   ^ V8:  g   Q h\        V4       F"  pVP	                  V P                  4       4       K$  	  \        V P                  4      p\        R9   dN   V'       dE   VR,          p	V	P                  R4      ;'       g
    V	R,          p
W8  d   VP                  4        KK  MM\        R9   d   M\        \        4      hV'       d   VP	                  V4       V P                  P	                  \        V\        V4      V\        V4      R7      4       V P                  4        R# )zFork the state
        Nr   r   )rX   stackr   rZ   r   r  r   )r   rh   rz  r>  re   r+  r  r   getr  r   r  Edger  r(  )r"   rX   r   r   r   r=  rY   rB  rZ   topr   s   &&&&&      r   r   _State.fork  s>    T[[!0DKK 000000%,F'6NE::5\T^^-. " $**+
<< nggl+99s5z9NN$  *$%i00k*duUZ(
 	 	r   c                >    V P                  V P                  R7       R# )zSplit the state
        r   N)r   r   r)   s   &r   rn   _State.split_new_block  s     			TXX	r   c                   V P                   '       d   Q h. pV P                   F  p\        V P                  VP                  \        VP                  4      VP                  \        VP                  4       UUu. uF  w  r4\        V4      '       g   K  VNK  	  uppR7      pVP                  V4       VP                  P                  4        F%  w  rcVP                  V,          V P                   V&   K'  	  K  	  V# u uppi )z+Get states for each outgoing edges
        )rU   rX   rY   rZ   r  )r   r  r`   rS   rX   rz  r=  rZ   	enumerater   re   r   r   )r"   retr   rB  r(  rz   r   s   &      r   rq   _State.get_outgoing_states  s     &&&&&NND4>>dgg!$TZZT__2;DJJ2G $=2G$!'8'; %&A2G $=>E JJu++++-+/::a=##C( . # 
$=s   8C;C;c           	         V P                    Uu/ uF1  pVP                  \        VP                  VP                  ) R 4      bK3  	  up# u upi )zf
Returns
-------
Dict[int, int]
    where keys are the PC
    values are the edge-pushed stack values
N)r  rX   r  r=  r   )r"   r   s   & r   get_outgoing_edgepushed_State.get_outgoing_edgepushed  sL     !NN,*D tzz4::+,788*, 	, ,s   7A	)r  r  rS   r  r  r  r   r   r  r   rh   r  r  r   )r   ) )TN)r   r   N).r   r   r   r   rB   r$   r:   r  r*   r4   r7   propertyr]   r  ro   r  r  r   r  rj   r   r   r+  re   r  r  r&  r  r  rc  rG  r   r!  r   r   r.  r   rx  r  r(  r   rn   rq   rI  r   rD   rE   s   @r   r  r    s/    !F

8):;         # # ( (
     ($D

!!(
(25
1
1 1
 
#J
"
, 
,r   r  c                   V   a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	tVtV ;t# )

StatePy311i	  c                6   < \         SV `  ! V/ VB  R V n        R # r   )superr$   	_kw_namesr"   r  r   	__class__s   &*,r   r$   StatePy311.__init__	  s    $)&)r   c                ,    V P                   pR V n         V# r   rQ  )r"   outs   & r   r  StatePy311.pop_kw_names	  s    nn
r   c                2    V P                   e   Q hWn         R # r   rV  )r"   rH  s   &&r   r  StatePy311.set_kw_names	  s    ~~%%%r   c                T    V P                   pVP                  V P                  4      R J# r   rS   rs  r   r"   r  s   & r   r   StatePy311.is_in_exception	  s%    ^^&&txx0<<r   c                P    V P                   pVP                  V P                  4      # r   r\  r]  s   & r   r   StatePy311.get_exception	  s     ^^&&txx00r   c                `    V P                    F  pVR ,          \        R4      8X  g   K   R# 	  R# )r   r>   TN)r  r   )r"   ents   & r   r   StatePy311.in_with	  s&    ++C6{i// ,r   c                &    V P                  R R7      # )r  rh  )r+  r)   s   &r   r'  StatePy311.make_null	  s    ~~W~--r   rV  )r   r   r   r   r$   r  r  r   r   r   r'  r   rD   __classcell__rS  rF   s   @@r   rN  rN  	  s-     
=1
. .r   rN  c                   >   a a ] tR tRt oV 3R ltR tR tRtVtV ;t	# )
StatePy313i!	  c                P   < \         SV `  ! V/ VB  \        \        4      V n        R # r   )rP  r$   r   r   _make_func_attrsrR  s   &*,r   r$   StatePy313.__init__"	  s"    $)&) +D 1r   c                J    V P                   V,          P                  V4       R # r   )rk  r   )r"   make_func_resr   s   &&,r   ri  !StatePy313.set_function_attribute&	  s    m,33F;r   c                (    V P                   V,          # r   rk  )r"   rn  s   &&r   get_function_attributes"StatePy313.get_function_attributes)	  s    $$]33r   rq  )
r   r   r   r   r$   ri  rr  r   rD   rf  rg  s   @@r   ri  ri  !	  s     2<4 4r   ri  r?  c                   :   a  ] tR tRt o RtR t]R 4       tRtV t	R# )AdaptDFAi:	  z<Adapt Flow to the old DFA class expected by Interpreter
    c                    Wn         R # r   _flow)r"   flows   &&r   r$   AdaptDFA.__init__=	  s    
r   c                .    V P                   P                  # r   )rx  rT   r)   s   &r   infosAdaptDFA.infos@	  s    zz%%%r   rw  N)
r   r   r   r   rB   r$   rL  r|  r   rD   rE   s   @r   ru  ru  :	  s#      & &r   ru  AdaptBlockInfoc                 F  a  V 3R  lp\         R9   d!   \        \        VS P                  4      4      pM0\         R9   d   \        S P                  4      pM\	        \         4      h\        VS P                  S P                  S P                  4       S P                  4       R7      # )c                    < V w  rSP                   V,          pVP                  R 8X  d(   VP                  SP                  VR,          4      4       W3# )MAKE_FUNCTIONr0  )rS   r   r   rr  )	inst_pairr   rl  r   rz   s   &   r   process_function_attributes6adapt_state_infos.<locals>.process_function_attributesM	  sG     v&;;/)KK55d5kBC|r   instsr  rZ   active_try_blockoutgoing_edgepushedrp  rw  )
r   r  mapr  r   r~  r  r  r  rI  )rz   r  r  s   f  r   rv   rv   L	  s     &&c5u7I7IJK	1	1e(()!),,))++557!99; r   c              #     "   V  FS  p\        V\        4      '       d   Vx  K  \        V\        \        34      '       g   K=  \	        V4       F  pVx  K	  	  KU  	  R# 5i)z<Flatten an iterable of registers used in an instruction
    N)r/   strr  r   r  )r  ro  rM   s   &  r   r  r  b	  sH      dC  Judm,,'- .	 s   ;AAc                   f   a  ] tR tRt o RtR t]R 4       t]R 4       t]R 4       t	R t
R tR	tV tR
# )AdaptCFAim	  z<Adapt Flow to the old CFA class expected by Interpreter
    c                   Wn         / V n        VP                  P                  4        F  w  r#\	        W24      V P                  V&   K  	  V P                   P
                  P                  4       pVP
                  pVP                  4       p\        4       pV P                  P                  4        F-  pVP                  V4      '       g   K  VP                  V4       K/  	  WF,
          V n        R # r   )rx  _blocksrT   r   AdaptCFBlockr   backboner   blocksr  in_loopsrp   	_backbone)r"   ry  r   	blockinfor  r   inloopblocksr   s   &&      r   r$   AdaptCFA.__init__p	  s    
!%!1!1!7!7!9F#/	#BDLL  ":::%%..0>># u!!#A~~a    # $ "0r   c                .    V P                   P                  # r   )rx  r   r)   s   &r   r   AdaptCFA.graph	  s    zz!!!r   c                    V P                   # r   )r  r)   s   &r   r  AdaptCFA.backbone	  s    ~~r   c                    V P                   # r   )r  r)   s   &r   r  AdaptCFA.blocks	  s    ||r   c              #  p   "   \        V P                  4       F  pV P                  V,          x  K  	  R # 5ir   )ru   r  r#  s   & r   iterliveblocksAdaptCFA.iterliveblocks	  s&     $A++a.  %s   46c                N    V P                   P                  P                  4        R # r   )rx  r   rK   r)   s   &r   rK   AdaptCFA.dump	  s    

!r   )r  r  rx  N)r   r   r   r   rB   r$   rL  r   r  r  r  rK   r   rD   rE   s   @r   r  r  m	  sZ     1& " "    !" "r   r  c                   &   a  ] tR tRt o R tRtV tR# )r  i	  c                    W n         \        ;QJ d%    . R  VP                   4       F  NK  	  5V n        R# ! R  VP                   4       4      V n        R# )c              3   *   "   T F	  w  rVx  K  	  R # 5ir   r   )rl  rB  r@  s   &  r   rm  (AdaptCFBlock.__init__.<locals>.<genexpr>	  s     8!s   N)r   r  r  body)r"   r  r   s   &&&r   r$   AdaptCFBlock.__init__	  s3    E8	8E	E8	88	r   )r  r   N)r   r   r   r   r$   r   rD   rE   s   @r   r  r  	  s     9 9r   r  >   NOPPRECALL
LOAD_CONST
LOAD_DEREFrI  r   rr  rp  r  )rX   r=  rZ   r   r  )1rB   rS  loggingcollectionsr   r   r   	functoolsr   numba.core.utilsr   r   r   r	   numba.core.controlflowr
   r   numba.core.irr   numba.core.errorsr   	getLoggerr   rQ   r   r   rC   r   enumr   r   r  r   objectr   rH   r   ra   r  rN  ri  r`   r?  ru  r~  rv   r  r  r  r   r   r   <module>r     s     6 6 $- - 8  6 

H
% #   ++$4 $ %E$$
i
(( 3 3 3@o-6 o-d$A-& A-H4 y,V y, y,x	. .>	4 	4 ""E$$EE
i
(( &@A&v & ,'"v '"T96 9r   