§
    0›j#K  ã                  ó\  — U d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZ ddlmZ ddlmZ ddlmZmZmZmZ ddlmZ dd	lmZmZmZmZ dd
lmZmZ ddl m!Z!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1  e$e¦  «        Z e2 e3 ej4        dd¦  «        ¦  «        ¦  «        Z5 e2 e3 ej4        dd¦  «        ¦  «        ¦  «        Z6 e7edd¦  «        Z8 ede9¦  «        Z:ee:         Z; ee; e7e8dd¦  «        ¦  «        Z<e5rM G d„ d¦  «        Z= e=e8d¦  «        Z8e8€J ‚ ej>        eddd¬¦  «        Z e?¦   «         Z@deAd<   d2d„ZBd3d"„ZCd4d&„ZDnd2d'„ZBd4d(„ZDe G d)„ d*¦  «        ¦   «         ZE G d+„ d,e,¦  «        ZF ejG        d-¬.¦  «        d5d1„¦   «         ZHdS )6zBCallback functions and support for sys.monitoring data collection.é    )ÚannotationsN)ÚCallable)Ú	dataclass)ÚCodeType)ÚAnyÚNewTypeÚOptionalÚcast)Úenv)ÚTBranchTrailsÚalways_jumpsÚbranch_trailsÚbytes_to_lines)Úshort_filenameÚshort_stack)ÚNoSourceÚ	NotPython)Úisolate_module)ÚPythonParser)
ÚAnyCallableÚTFileDispositionÚTLineNoÚTOffsetÚTracerÚTShouldStartContextFnÚTShouldTraceFnÚ
TTraceDataÚTTraceFileDataÚTWarnFnÚCOVERAGE_SYSMON_LOGÚCOVERAGE_SYSMON_STATSÚ
monitoringÚDISABLE_TYPEÚDISABLEc                  ó"   — e Zd ZdZdd„Zdd„ZdS )ÚLoggingWrapperz*Wrap a namespace to log all its functions.Úwrappedr   Ú	namespaceÚstrÚreturnÚNonec                ó"   — || _         || _        d S ©N)r'   r(   )Úselfr'   r(   s      úN/home/lighthouse/health/venv/lib64/python3.11/site-packages/coverage/sysmon.pyÚ__init__zLoggingWrapper.__init__C   s   € Ø"ˆDŒLØ&ˆDŒNˆNˆNó    ÚnameúCallable[..., Any]c                ó   ‡ ‡— dˆˆ fd„}|S )NÚargsr   Úkwargsr*   c                 ót   •— t          ‰j        › d‰› | › |› �¦  «          t          ‰j        ‰¦  «        | i |¤ŽS )Nú.)Úlogr(   Úgetattrr'   )r5   r6   r2   r.   s     €€r/   Ú_wrappedz,LoggingWrapper.__getattr__.<locals>._wrappedH   sL   ø€ Ý�t”~Ð<Ð<¨Ð<¨dÐ<°FÐ<Ð<Ñ=Ô=Ð=Ø2•w˜tœ|¨TÑ2Ô2°DÐC¸FÐCÐCÐCr1   )r5   r   r6   r   r*   r   © )r.   r2   r;   s   `` r/   Ú__getattr__zLoggingWrapper.__getattr__G   s5   øø€ ðDð Dð Dð Dð Dð Dð Dð ˆOr1   N)r'   r   r(   r)   r*   r+   )r2   r)   r*   r3   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r0   r=   r<   r1   r/   r&   r&   @   sB   € € € € € Ø8Ð8ð	'ð 	'ð 	'ð 	'ð	ð 	ð 	ð 	ð 	ð 	r1   r&   zsys.monitoringT)ÚfullÚshort_filenamesÚ	frame_idszset[int]Úseen_threadsÚmsgr)   r*   r+   c                ó(  — t          j        ¦   «         }t          t          t	          j        ¦   «         j        ¦  «        }||z  dz  d›}|t          vr>t                               |¦  «         t          d|› d|› dt          ¦   «         › �¦  «         dD ]}t          |dd¬	¦  «        5 }	 t          |› d
|› d| › �|d¬¦  «         n7# t          $ r* t          |› d
|› dt          | ¦  «        › �|d¬¦  «         Y nw xY wddd¦  «         n# 1 swxY w Y   Œ€dS )z1Write a message to our detailed debugging log(s).iw–˜ Ú07dzNew thread ú z:
)z/tmp/foo.outÚazutf-8)Úencodingú:ú: T)ÚfileÚflushN)ÚosÚgetpidr
   ÚintÚ	threadingÚcurrent_threadÚidentrE   Úaddr9   r   ÚopenÚprintÚUnicodeErrorÚascii)rF   ÚpidÚtidÚtslugÚfilenameÚfs         r/   r9   r9   Y   s«  € õ Œi‰kŒkˆÝ•3�	Ô0Ñ2Ô2Ô8Ñ9Ô9ˆØ˜#‘I Ñ*Ð0Ð0ˆØ•lÐ"Ð"Ý×Ò˜SÑ!Ô!Ð!ÝÐ=˜cÐ=Ð= EÐ=Ð=­k©m¬mÐ=Ð=Ñ>Ô>Ð>ð
ð 
	Nð 
	NˆHõ �h ¨gÐ6Ñ6Ô6ð N¸!ðNÝ˜SÐ1Ð1 5Ð1Ð1¨CÐ1Ð1¸ÀÐFÑFÔFÐFÐFøÝ#ð Nð Nð NÝ˜SÐ8Ð8 5Ð8Ð8­E°#©J¬JÐ8Ð8¸qÈÐMÑMÔMÐMÐMÐMðNøøøðNð Nð Nñ Nô Nð Nð Nð Nð Nð Nð Nøøøð Nð Nð Nð Nøð
	Nð 
	Ns6   Â&DÂ(CÃDÃ1C7Ã4DÃ6C7Ã7DÄD
	ÄD
	Úargr   c                óÊ   — t          | t          ¦  «        r@dt          | ¦  «        d›�d| j        › d�z   dt	          | j        ¦  «        ›d| j        › d�z   S t          | ¦  «        S )z)Make a customized repr for logged values.z<code @ú#xz name=ú,z file=ú#ú>)Ú
isinstancer   ÚidÚco_namer   Úco_filenameÚco_firstlinenoÚrepr)r`   s    r/   Úarg_reprrl   q   sy   € å�c�8Ñ$Ô$ð 	à&�"˜S™'œ'Ð&Ð&Ð&Ø)˜3œ;Ð)Ð)Ð)ñ*àT�>¨#¬/Ñ:Ô:ÐTÐT¸sÔ?QÐTÐTÐTñUðõ
 �C‰yŒyÐr1   Únamesú
str | Noner   c                 ó   ‡ — dˆ fd„}|S )z%Decorate a function to log its calls.Úmethodr   r*   c                óL   •‡ — t          j        ‰ ¦  «        dˆ ˆfd„¦   «         }|S )Nr.   r   r5   r*   c           	     ó’  •— 	 g }t          ‰|¦  «        D ]/\  }}|€Œ|                     |› dt          |¦  «        › �¦  «         Œ0t          t	          | ¦  «        d›d‰j        › dd                     |¦  «        › d�¦  «          ‰| g|¢R Ž }|S # t          $ r®}t          d|j        j        › d|› �¦  «         	 t          d
                     t          j
        |¦  «        ¦  «        ¦  «         	 t          €J ‚t                               t          j        j        d¦  «         n# t           $ r t          d¦  «         Y nw xY w‚ d }~ww xY w)Nú=rb   rL   ú(z, ú)z!!rM   é   Ú r   z/oops, shutting off events with disabled tool id)ÚzipÚappendrl   r9   rg   r>   ÚjoinÚ	ExceptionÚ	__class__Ú	tracebackÚformat_exceptionÚsys_monitoringÚ
set_eventsÚsysr"   ÚCOVERAGE_IDÚ
ValueError)	r.   r5   Ú
args_reprsr2   r`   ÚretÚexcrp   rm   s	          €€r/   r;   z0panopticon.<locals>._decorator.<locals>._wrapped   s�  ø€ ðà!#�JÝ%(¨°Ñ%5Ô%5ð Eð E™	˜˜cØ˜<Ø$Ø"×)Ò)¨TÐ*CÐ*CµH¸S±M´MÐ*CÐ*CÑDÔDÐDÐDÝ�2˜d™8œ8ÐSÐSÐS¨¬ÐSÐS¸4¿9º9ÀZÑ;PÔ;PÐSÐSÐSÑTÔTÐTØ ˜& Ð-¨Ð-Ð-Ð-�Cà�JøÝ ð 
ð 
ð 
ÝÐ<˜Sœ]Ô3Ð<Ð<°sÐ<Ð<Ñ=Ô=Ð=ðFÝ˜BŸGšG¥IÔ$>¸sÑ$CÔ$CÑDÔDÑEÔEÐEðOÝ-Ð9Ð9Ð9Ý&×1Ò1µ#´.Ô2LÈaÑPÔPÐPÐPøÝ%ð Oð Oð OåÐMÑNÔNÐNÐNÐNðOøøøð øøøøð
øøøs=   ƒB
B Â
EÂAEÃ-3D!Ä EÄ!D=Ä:EÄ<D=Ä=EÅE)r.   r   r5   r   r*   r   )Ú	functoolsÚwraps)rp   r;   rm   s   ` €r/   Ú
_decoratorzpanopticon.<locals>._decorator~   sC   øø€ ÝŒ_˜VÑ$Ô$ðð ð ð ð ð ñ %Ô$ðð0 ˆOr1   )rp   r   r*   r   r<   ©rm   r‰   s   ` r/   Ú
panopticonr‹   {   s)   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð8 Ðr1   c                ó   — dS )zAWrite a message to our detailed debugging log(s), but not really.Nr<   )rF   s    r/   r9   r9   ž   s   € € € r1   c                 ó   — dd„}|S )z5Decorate a function to log its calls, but not really.Úmethr   r*   c                ó   — | S r-   r<   )rŽ   s    r/   r‰   zpanopticon.<locals>._decorator¤   s   € ØˆKr1   )rŽ   r   r*   r   r<   rŠ   s     r/   r‹   r‹   ¡   s   € ð	ð 	ð 	ð 	ð Ðr1   c                  óF   — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   dS )ÚCodeInfoz/The information we want about each code object.ÚboolÚtracingzTTraceFileData | NoneÚ	file_datazdict[TOffset, TLineNo] | NoneÚbyte_to_liner   r   zdict[TOffset, TOffset]r   N)r>   r?   r@   rA   Ú__annotations__r<   r1   r/   r‘   r‘   ª   sU   € € € € € € à9Ð9à€M€M�MØ$Ð$Ð$Ñ$Ø/Ð/Ð/Ñ/ð !Ð Ð Ñ ð )Ð(Ð(Ñ(Ð(Ð(r1   r‘   c                  ó’  — e Zd ZdZd#d„Zd$d„Z e¦   «         d%d	„¦   «         Z e¦   «         d%d
„¦   «         Z e¦   «         d%d„¦   «         Z	d&d„Z
d%d„Zd'd„Z edd¦  «        d(d„¦   «         Z eddd¦  «        d)d„¦   «         Z edd¦  «        d*d„¦   «         Z edd¦  «        d*d „¦   «         Z eddd¦  «        d+d"„¦   «         ZdS ),Ú
SysMonitorzHPython implementation of the raw data tracer for PEP669 implementations.Útool_idrR   r*   r+   c                óz  — |  d| _         |  |  d | _        d | _        |  |  |  || _        i | _        g | _        t          j        t          ¦  «        | _	        d| _
        t          j        ¦   «         | _        d | _        t          r2t                                d                     ¦   «         d¦  «        | _        d| _        d S )NFzHstarts start_tracing returns line_lines line_arcs branches branch_trailsr   )Ú
trace_arcsÚshould_start_contextÚswitch_contextÚmyidÚ
code_infosÚcode_objectsÚcollectionsÚdefaultdictÚsetÚfilename_code_idsÚ	sysmon_onrS   ÚLockÚlockÚstatsÚCOLLECT_STATSÚdictÚfromkeysÚsplitÚ	_activity)r.   r™   s     r/   r0   zSysMonitor.__init__Ä   sÊ   € àÐØˆŒØÐ)ØÐCð CGˆÔ!ØCGˆÔØÐ*ØÐ,àÐàˆŒ	ð 02ˆŒð -/ˆÔõ 7BÔ6MÍcÑ6RÔ6RˆÔàˆŒÝ”NÑ$Ô$ˆŒ	à,0ˆŒ
Ýð 	ÝŸšØZ×`Ò`ÑbÔbØñô ˆDŒJð
 ˆŒˆˆr1   r)   c                ó¾   — t          d„ | j                             ¦   «         D ¦   «         ¦  «        }t          | j        ¦  «        }dt	          | ¦  «        d›d|› d|› d�S )Nc              3  ó4   K  — | ]}t          |¦  «        V — Œd S r-   ©Úlen)Ú.0Úvs     r/   ú	<genexpr>z&SysMonitor.__repr__.<locals>.<genexpr>ë   s(   è è € Ð8Ð8 •S˜‘V”VÐ8Ð8Ð8Ð8Ð8Ð8r1   z<SysMonitor at rb   rM   z data points in z files>)ÚsumÚdataÚvaluesr±   rg   )r.   ÚpointsÚfiless      r/   Ú__repr__zSysMonitor.__repr__ê   sc   € ÝÐ8Ð8 T¤Y×%5Ò%5Ñ%7Ô%7Ð8Ñ8Ô8Ñ8Ô8ˆÝ�D”I‘”ˆØV¥ D¡¤ÐVÐVÐV°ÐVÐVÈÐVÐVÐVÐVr1   c                óÆ  — | j         5  t          €J ‚t                               | j        d¦  «         t	          j        t          j        | j        ¦  «        }t          j        j	        }t           
                    | j        |j        ¦  «          ||j        | j        ¦  «         | j        rj ||j        | j        ¦  «          ||j        | j        ¦  «         t$          j        j        r, ||j        | j        ¦  «          ||j        | j        ¦  «         n ||j        | j        ¦  «         t                               ¦   «          d| _        ddd¦  «         dS # 1 swxY w Y   dS )zStart this Tracer.Nzcoverage.pyT)r§   r   Úuse_tool_idrž   r‡   ÚpartialÚregister_callbackr�   r"   Úeventsr€   ÚPY_STARTÚsysmon_py_startr›   Ú	PY_RETURNÚsysmon_py_returnÚLINEÚsysmon_line_arcsr   Ú
PYBEHAVIORÚbranch_right_leftÚBRANCH_RIGHTÚsysmon_branch_eitherÚBRANCH_LEFTÚsysmon_line_linesÚrestart_eventsr¥   )r.   Úregisterr¿   s      r/   ÚstartzSysMonitor.startï   sŽ  € ð ŒYð 	"ð 	"Ý!Ð-Ð-Ð-Ý×&Ò& t¤y°-Ñ@Ô@Ð@Ý Ô(­Ô)IÈ4Ì9ÑUÔUˆHÝ”^Ô*ˆFå×%Ò% d¤i°´ÑAÔAÐAØˆH�V”_ dÔ&:Ñ;Ô;Ð;ØŒð >Ø�˜Ô)¨4Ô+@ÑAÔAÐAØ�˜œ dÔ&;Ñ<Ô<Ð<Ý”>Ô3ð LØ�H˜VÔ0°$Ô2KÑLÔLÐLØ�H˜VÔ/°Ô1JÑKÔKÐKøà�˜œ dÔ&<Ñ=Ô=Ð=Ý×)Ò)Ñ+Ô+Ð+Ø!ˆDŒNð#	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s   ˆEEÅEÅEc                ó”  — | j         5  | j        s	 ddd¦  «         dS t          €J ‚t                               | j        d¦  «         d| _        t                               | j        ¦  «         ddd¦  «         n# 1 swxY w Y   t          r½t          | j         	                    ¦   «         d„ d¬¦  «        }t          d„ |D ¦   «         ¦  «        }|t          |¦  «        z
  }|rUt          d|› d	|› d
�¦  «         |D ]:\  }}t          |¦  «        dk    r"t          t          |¦  «        d›d|› �¦  «         Œ;dS t          d¦  «         dS dS )zStop this Tracer.Nr   Fc                ó,   — t          | d         ¦  «        S )Nrv   r°   )Úitems    r/   ú<lambda>z!SysMonitor.stop.<locals>.<lambda>  s   € ¥ T¨!¤W¡¤€ r1   T)ÚkeyÚreversec              3  ó:   K  — | ]\  }}t          |¦  «        V — Œd S r-   r°   )r²   Ú_Úcode_idss      r/   r´   z"SysMonitor.stop.<locals>.<genexpr>  s,   è è € ÐCÐC©k¨a°�C ™MœMÐCÐCÐCÐCÐCÐCr1   z==== Duplicate code objects: z duplicates, z totalrv   z>5z
 objects: z!==== Duplicate code objects: none)r§   r¥   r   r€   rž   Úfree_tool_idÚLOGÚsortedr¤   Úitemsrµ   r±   r9   )r.   rÛ   Ú	code_objsÚdupesr^   r×   s         r/   ÚstopzSysMonitor.stop  sæ  € ð ŒYð 	3ð 	3Ø”>ð ð ð		3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3õ
 "Ð-Ð-Ð-Ý×%Ò% d¤i°Ñ3Ô3Ð3Ø"ˆDŒNÝ×'Ò'¨¬	Ñ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3õ ð 	9ÝØÔ&×,Ò,Ñ.Ô.Ø-Ð-Øðñ ô ˆEõ
 ÐCÐC¸UÐCÑCÔCÑCÔCˆIØ¥ E¡
¤
Ñ*ˆEØð 9ÝÐY°EÐYÐYÈ	ÐYÐYÐYÑZÔZÐZØ*/ð Gð GÑ&�H˜hÝ˜8‘}”} qÒ(Ð(Ý�s 8™}œ}ÐEÐEÐE¸8ÐEÐEÑFÔFÐFøðGð Gõ Ð7Ñ8Ô8Ð8Ð8Ð8ð	9ð 	9s   ˆ	A9žAA9Á9A=Â A=c                ó.   — |                       ¦   «          dS )z+The process has forked, clean up as needed.N)rÞ   ©r.   s    r/   Ú	post_forkzSysMonitor.post_fork"  s   € ð 	�	Š	‰Œˆˆˆr1   r’   c                ó   — | j         S )zHas there been any activity?©r­   rà   s    r/   ÚactivityzSysMonitor.activity'  s
   € àŒ~Ðr1   c                ó   — d| _         dS )zReset the activity() flag.FNrã   rà   s    r/   Úreset_activityzSysMonitor.reset_activity+  s   € àˆŒˆˆr1   údict[str, int] | Nonec                ó   — | j         S )z+Return a dictionary of statistics, or None.)r¨   rà   s    r/   Ú	get_statszSysMonitor.get_stats/  s
   € àŒzÐr1   Úcodeú@r   Úinstruction_offsetr   ÚMonitorReturnc                óÈ  — d| _         | j        �| j        dxx         dz  cc<   |j        dk    rt          S | j                             t          |¦  «        ¦  «        }d}d}|�|j        }|j        }|�€i|j	        }| j
                             |¦  «        }|€[t          j        ¦   «         }|�&t          j        ¦   «         j        }t          r|j        }|                      ||¦  «        }|| j
        |<   |j        }|rŠ|j        }	|	€J ‚|                      ¦   «          	 |	| j        vrt)          ¦   «         | j        |	<   |                      ¦   «          n# |                      ¦   «          w xY w| j        |	         }t-          |¦  «        }
nd}d}
t/          |||
i i ¬¦  «        }|| j        t          |¦  «        <   | j                             |¦  «         |�r| j        �| j        dxx         dz  cc<   t4          j        j        }| j        5  | j        r¹t>          €J ‚|j         |j!        z  |j"        z  }| j#        r%tH          j%        j&        sJ ‚||j'        |j(        z  z  }t>           )                    | j*        ||¦  «         t          rE|j	        dvr<| j+        |j	        › d	|j        › �          ,                    t          |¦  «        ¦  «         ddd¦  «         n# 1 swxY w Y   t          S )
z-Handle sys.monitoring.events.PY_START events.TNÚstartsrv   Ú__annotate__)r“   r”   r•   r   r   Ústart_tracing>   ú<string>rL   )-r­   r¨   rh   r$   rŸ   Úgetrg   r“   r”   ri   Úshould_trace_cacheÚinspectÚcurrentframeÚf_backrÙ   Úshould_traceÚtraceÚsource_filenameÚ	lock_datar¶   r£   Úunlock_datar   r‘   r    ry   r�   r"   r¿   r§   r¥   r   rÂ   Ú	PY_RESUMErÄ   r›   r   rÆ   rÇ   rÈ   rÊ   Úset_local_eventsrž   r¤   rV   )r.   rê   rì   Ú	code_infoÚtracing_coder”   r^   ÚdispÚframeÚ	tracenameÚb2lr¿   Úlocal_eventss                r/   rÁ   zSysMonitor.sysmon_py_start3  sZ  € ð ˆŒØŒ:Ð!ØŒJ�xÐ Ð Ô  AÑ%Ð Ð Ñ àŒ<˜>Ò)Ð)åˆNð ”O×'Ò'­¨4©¬Ñ1Ô1ˆ	Ø$(ˆØ+/ˆ	ØÐ Ø$Ô,ˆLØ!Ô+ˆIàÑØÔ'ˆHØÔ*×.Ò.¨xÑ8Ô8ˆDØˆ|ÝÔ,Ñ.Ô.�ØÐ$Ý#Ô0Ñ2Ô2Ô9�EÝð -à %¤˜Ø×(Ò(¨°5Ñ9Ô9�Ø48�Ô'¨Ñ1àœ:ˆLØð Ø Ô0�	Ø Ð,Ð,Ð,Ø—’Ñ Ô Ð ð'Ø ¨¬	Ð1Ð1Ý/2©u¬u˜œ	 )Ñ,à×$Ò$Ñ&Ô&Ð&Ð&ø�D×$Ò$Ñ&Ô&Ð&Ð&øøøØ œI iÔ0�	Ý$ TÑ*Ô*��à �	Ø�å Ø$Ø#Ø Ø Øðñ ô ˆIð )2ˆDŒO�B˜t™HœHÑ%ØÔ×$Ò$ TÑ*Ô*Ð*àñ "Ø”:Ð)Ø”J˜Ð/Ð/Ô/°1Ñ4Ð/Ð/Ñ/ÝœÔ.�Ø”Yð "ð "Ø”~ð "Ý-Ð9Ð9Ð9Ø'-Ô'7¸&Ô:JÑ'JÈVÌ[Ñ'X˜Øœ?ð UÝ#&¤>Ô#CÐCÐCÐCØ(¨FÔ,?À&ÔBTÑ,TÑT˜LÝ&×7Ò7¸¼	À4ÈÑVÔVÐVåð "Ø#Ô/°|ÐCÐCØ $Ô 6¸$Ô:JÐ7[Ð7[ÈTÌ\Ð7[Ð7[Ô \× `Ò `Ý$& t¡H¤Hñ!"ô !"ð !"ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "õ ˆs   ÄE ÅE%ÈCKËKËKNÚretvalÚobjectc                ó  — | j         �| j         dxx         dz  cc<   | j                             t          |¦  «        ¦  «        }|j                             |¦  «        }|�$||j         f}|j                             |¦  «         t          S )zBHandle sys.monitoring.events.PY_RETURN events for branch coverage.NÚreturnsrv   )	r¨   rŸ   ró   rg   r•   rj   r”   rV   r$   )r.   rê   rì   r  rÿ   Ú	last_lineÚarcs          r/   rÃ   zSysMonitor.sysmon_py_return‚  s�   € ð Œ:Ð!ØŒJ�yÐ!Ð!Ô! QÑ&Ð!Ð!Ñ!Ø”O×'Ò'­¨4©¬Ñ1Ô1ˆ	ð Ô*×.Ò.Ð/AÑBÔBˆ	ØÐ Ø˜tÔ2Ð2Ð3ˆCØÔ×#Ò# CÑ(Ô(Ð(åˆr1   ÚlineÚline_numberr   c                óÜ   — | j         �| j         dxx         dz  cc<   | j                             t          |¦  «        ¦  «        }|�!|j        �|j                             |¦  «         t          S )z;Handle sys.monitoring.events.LINE events for line coverage.NÚ
line_linesrv   )r¨   rŸ   ró   rg   r”   rV   r$   )r.   rê   r  rÿ   s       r/   rË   zSysMonitor.sysmon_line_lines–  sq   € ð Œ:Ð!ØŒJ�|Ð$Ð$Ô$¨Ñ)Ð$Ð$Ñ$Ø”O×'Ò'­¨4©¬Ñ1Ô1ˆ	ð Ð  YÔ%8Ð%DØÔ×#Ò# KÑ0Ô0Ð0åˆr1   c                ó¸   — | j         �| j         dxx         dz  cc<   | j        t          |¦  «                 }||f}|j                             |¦  «         t
          S )z=Handle sys.monitoring.events.LINE events for branch coverage.NÚ	line_arcsrv   )r¨   rŸ   rg   r”   rV   r$   )r.   rê   r  rÿ   r  s        r/   rÅ   zSysMonitor.sysmon_line_arcs¤  sd   € ð Œ:Ð!ØŒJ�{Ð#Ð#Ô# qÑ(Ð#Ð#Ñ#Ø”O¥B t¡H¤HÔ-ˆ	ð ˜KÐ(ˆØÔ×Ò Ñ$Ô$Ð$åˆr1   Údestination_offsetc                ól  — | j         �| j         dxx         dz  cc<   | j        t          |¦  «                 }|j        sZ| j         �| j         dxx         dz  cc<   t	          |j        ¦  «        }t          ||¬¦  «        |_        t          |¦  «        |_        d}|j                             |¦  «        }|h}|j                             |¦  «        x}	�3|	}|                     |¦  «         |j                             |¦  «        x}	­3|�@| 	                    ¦   «         D ]+\  }
}|
€Œ||z  r|j
                             |
¦  «         d} nŒ,|se|j        €J ‚|j                             |¦  «        }|�@|j                             |¦  «        }|�$||k    r||f}
|j
                             |
¦  «         t          S )z+Handle BRANCH_RIGHT and BRANCH_LEFT events.NÚbranchesrv   r   )Úmultiline_mapFT)r¨   rŸ   rg   r   Úget_multiline_mapri   r   ró   rV   rÛ   r”   r•   r$   )r.   rê   rì   r  rÿ   r  Ú	added_arcÚ	dest_infoÚdestsÚdestr  ÚoffsetsÚl1Úl2s                 r/   rÉ   zSysMonitor.sysmon_branch_either±  sþ  € ð
 Œ:Ð!ØŒJ�zÐ"Ð"Ô" aÑ'Ð"Ð"Ñ"Ø”O¥B t¡H¤HÔ-ˆ	ð Ô&ð 	8ØŒzÐ%Ø”
˜?Ð+Ð+Ô+¨qÑ0Ð+Ð+Ñ+Ý-¨dÔ.>Ñ?Ô?ˆMÝ&3°DÈÐ&VÑ&VÔ&VˆIÔ#Ý%1°$Ñ%7Ô%7ˆIÔ"àˆ	ØÔ+×/Ò/Ð0BÑCÔCˆ	ð $Ð$ˆØ Ô-×1Ò1Ð2DÑEÔEÐEˆtÐRØ!%ÐØ�IŠIÐ(Ñ)Ô)Ð)ð !Ô-×1Ò1Ð2DÑEÔEÐEˆtÐRð
 Ð Ø )§¢Ñ 1Ô 1ð ð ‘��WØ�;ØØ˜7‘?ð ØÔ'×+Ò+¨CÑ0Ô0Ð0à $�IØ�Eð	ð ð 	1àÔ)Ð5Ð5Ð5ØÔ'×+Ò+Ð,>Ñ?Ô?ˆBØˆ~ØÔ+×/Ò/Ð0BÑCÔC�Ø�> b¨B¢h hØ˜r˜(�CØÔ'×+Ò+¨CÑ0Ô0Ð0õ ˆr1   )r™   rR   r*   r+   )r*   r)   )r*   r+   )r*   r’   )r*   rç   )rê   r   rì   r   r*   rí   )rê   r   rì   r   r  r  r*   rí   )rê   r   r  r   r*   rí   )rê   r   rì   r   r  r   r*   rí   )r>   r?   r@   rA   r0   rº   r‹   rÎ   rÞ   rá   rä   ræ   ré   rÁ   rÃ   rË   rÅ   rÉ   r<   r1   r/   r˜   r˜   ¿   sß  € € € € € ØRÐRð$ð $ð $ð $ðLWð Wð Wð Wð
 €Z�\„\ð"ð "ð "ñ „\ð"ð* €Z�\„\ð9ð 9ð 9ñ „\ð9ð8 €Z�\„\ðð ð ñ „\ððð ð ð ðð ð ð ðð ð ð ð €Z�˜ÑÔðLð Lð Lñ ÔðLð\ €Z�˜˜TÑ"Ô"ðð ð ñ #Ô"ðð& €Z�˜ÑÔðð ð ñ  Ôðð €Z�˜ÑÔð
ð 
ð 
ñ  Ôð
ð €Z�˜˜SÑ!Ô!ð/ð /ð /ñ "Ô!ð/ð /ð /r1   r˜   é   )Úmaxsizer^   údict[TLineNo, TLineNo]c                óš   — 	 t          | ¬¦  «        }|                     ¦   «          n# t          $ r i cY S t          $ r i cY S w xY w|j        S )z2Get a PythonParser for the given filename, cached.)r^   )r   Úparse_sourcer   r   r  )r^   Úparsers     r/   r  r  ä  sx   € ðÝ xÐ0Ñ0Ô0ˆØ×ÒÑÔÐÐøÝð ð ð ð
 ˆ	ˆ	ˆ	Ýð ð ð àˆ	ˆ	ˆ	ðøøøð ÔÐs   ‚$' §AµAÁA)rF   r)   r*   r+   )r`   r   r*   r)   )rm   rn   r*   r   )r^   r)   r*   r   )IrA   Ú
__future__r   r¡   r‡   rõ   rP   Úos.pathr�   rS   r}   Úcollections.abcr   Údataclassesr   Útypesr   Útypingr   r   r	   r
   Úcoverager   Úcoverage.bytecoder   r   r   r   Úcoverage.debugr   r   Úcoverage.exceptionsr   r   Úcoverage.miscr   Úcoverage.parserr   Úcoverage.typesr   r   r   r   r   r   r   r   r   r   r’   rR   ÚgetenvrÙ   r©   r:   r   r  r#   rí   r$   r&   r½   r£   rE   r–   r9   rl   r‹   r‘   r˜   Ú	lru_cacher  r<   r1   r/   ú<module>r3     s,  ðð IÐ HÐ Hà "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à Ð Ð Ð Ð Ð Ø XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø (Ð (Ð (Ð (Ð (Ð (Ø (Ð (Ð (Ð (Ð (Ð (ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð  €^�BÑÔ€ð
 €dˆ3ˆ3ˆyˆrŒyÐ.°Ñ2Ô2Ñ3Ô3Ñ4Ô4€ð ��S�S˜˜œÐ#:¸AÑ>Ô>Ñ?Ô?Ñ@Ô@€ð �˜˜l¨DÑ1Ô1€àˆw�~ vÑ.Ô.€Ø˜Ô&€Ø
ˆ$ˆ}˜g˜g n°iÀÑFÔFÑ
GÔ
G€ð ð iðð ð ð ð ñ ô ð ð $�^ NÐ4DÑEÔE€NØÐ%Ð%Ð%à#�)Ô#ØØØØð	ñ ô €Kð !˜S™UœU€LÐ"Ð"Ð"Ñ"ðNð Nð Nð Nð0ð ð ð ðð ð ð ð ðFPð Pð Pð Pðð ð ð ð ð)ð )ð )ð )ð )ñ )ô )ñ „ð)ð(bð bð bð bð b�ñ bô bð bðJ	 €Ô˜RÐ Ñ Ô ð ð  ð  ñ !Ô ð ð  ð  r1   