Ë
    oPêj†Q  ã                  óÜ  — 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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 ddl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# ddl$m%Z% ddl&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0  e!e«      Z e1 e2 ejf                  dd«      «      «      Z4 e1 e2 ejf                  dd«      «      «      Z5 e6edd«      Z7 ede8«      Z9e9dz  Z: ee: e6e7dd«      «      Z;e4rF G d„ d«      Z< e<e7d«      Z7e7€J ‚ ejz                  eddd¬«      Z e>«       Z?de@d<   d&d„ZAd'd„ZBd(d„ZCnd&d„ZAd(d „ZCe G d!„ d"«      «       ZD G d#„ d$e+«      ZEd)d%„ZFy)*zBCallback functions and support for sys.monitoring data collection.é    )ÚannotationsN)ÚCallable)Ú	dataclass)ÚCodeType)ÚAnyÚNewTypeÚcast)Úenv)ÚBranchArcResolverÚbytes_to_lines)Úshort_filenameÚshort_stack)ÚNoSource)Úisolate_module)Úmultiline_map_from_text)Úget_python_source)
Ú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y)ÚLoggingWrapperz*Wrap a namespace to log all its functions.c                ó    — || _         || _        y ©N)ÚwrappedÚ	namespace)Úselfr&   r'   s      úT/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/coverage/sysmon.pyÚ__init__zLoggingWrapper.__init__E   s   € Ø"ˆDŒLØ&ˆD�Nó    c                ó   ‡ ‡— dˆˆ fd„}|S )Nc                 óx   •— t        ‰j                  › d‰› | › |› �«        t        ‰j                  ‰«      | i |¤ŽS )Nú.)Úlogr'   Úgetattrr&   )ÚargsÚkwargsÚnamer(   s     €€r)   Ú_wrappedz,LoggingWrapper.__getattr__.<locals>._wrappedJ   s@   ø€ Ü�t—~‘~Ð& a¨ v¨d¨V°F°8Ð<Ô=Ø2”w˜tŸ|™|¨TÓ2°DÐC¸FÑCÐCr+   )r1   r   r2   r   Úreturnr   © )r(   r3   r4   s   `` r)   Ú__getattr__zLoggingWrapper.__getattr__I   s   ù€ öDð ˆOr+   N)r&   r   r'   Ústrr5   ÚNone)r3   r8   r5   zCallable[..., Any])Ú__name__Ú
__module__Ú__qualname__Ú__doc__r*   r7   r6   r+   r)   r#   r#   B   s   „ Ù8ó	'ô	r+   r#   zsys.monitoringT)ÚfullÚshort_filenamesÚ	frame_idszset[int]Úseen_threadsc           
     óÖ  — t        j                  «       }t        t        t	        j
                  «       j                  «      }||z  dz  d›}|t        vr1t        j                  |«       t        d|› d|› dt        «       › �«       dD ]0  }t        |dd¬	«      5 }	 t        |› d
|› d| › �|d¬«       ddd«       Œ2 y# t        $ r t        |› d
|› d| ›�|d¬«       Y Œ,w xY w# 1 sw Y   ŒbxY w)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ÚidentrA   Úaddr/   r   ÚopenÚprintÚUnicodeError)ÚmsgÚpidÚtidÚtslugÚfilenameÚfs         r)   r/   r/   [   s  € ô �i‰i‹kˆÜ”3œ	×0Ñ0Ó2×8Ñ8Ó9ˆØ˜#‘I Ñ*¨3Ð/ˆØ”lÑ"Ü×Ñ˜SÔ!Ü�+˜c˜U ! E 7¨#¬k«m¨_Ð=Ô>ð
ò 
	IˆHô �h ¨gÔ6ð I¸!ðIÜ˜S˜E  5 '¨¨C¨5Ð1¸ÀÕF÷Ið Iñ
	Iøô $ò IÜ˜S˜E  5 '¨¨C¨7Ð3¸!À4×HðIú÷Ið Iús*   ÂCÂB:Â:CÃCÃCÃCÃC(	c                óÆ   — t        | t        «      rGd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)Úargs    r)   Úarg_reprrg   s   sl   € ä�cœ8Ô$àœ"˜S›' "˜Ð&Ø˜3Ÿ;™;˜- qÐ)ñ*àœ>¨#¯/©/Ó:Ð=¸Q¸s×?QÑ?QÐ>RÐRSÐTñUðô
 �C‹yÐr+   c                 ó   ‡ — dˆ fd„}|S )z%Decorate a function to log its calls.c                óH   •‡ — t        j                  ‰ «      dˆ ˆfd„«       }|S )Nc           	     óf  •— 	 g }t        ‰|«      D ]'  \  }}|€Œ	|j                  |› dt        |«      › �«       Œ) t        t	        | «      d›d‰j
                  › ddj                  |«      › d�«        ‰| g|¢­Ž }|S # t        $ rª}t        d|j                  j
                  › d|› �«       	 t        d	j                  t        j                  |«      «      «       	 t        €J ‚t        j                  t        j                  j                  d
«       ‚ # t         $ r t        d«       Y ‚ w xY wd }~ww xY w)Nú=r\   rG   ú(z, ú)z!!rH   Ú r   z/oops, shutting off events with disabled tool id)ÚzipÚappendrg   r/   ra   r:   ÚjoinÚ	ExceptionÚ	__class__Ú	tracebackÚformat_exceptionÚsys_monitoringÚ
set_eventsÚsysr   ÚCOVERAGE_IDÚ
ValueError)	r(   r1   Ú
args_reprsr3   rf   ÚretÚexcÚmethodÚnamess	          €€r)   r4   z0panopticon.<locals>._decorator.<locals>._wrapped�   s3  ø€ ðà!#�JÜ%(¨°Ó%5ò E™	˜˜cØ˜<Ø$Ø"×)Ñ)¨T¨F°!´H¸S³M°?Ð*CÕDðEô œ2˜d›8 B˜- q¨¯©Ð(9¸¸4¿9¹9ÀZÓ;PÐ:QÐQRÐSÔTÙ  Ð-¨Ò-�Cà�JøÜ ò 
Ü˜"˜SŸ]™]×3Ñ3Ð4°B°s°eÐ<Ô=ØÜ˜BŸG™G¤I×$>Ñ$>¸sÓ$CÓDÔEðOÜ-Ð9Ð9Ð9Ü&×1Ñ1´#·.±.×2LÑ2LÈaÔPð øô &ò OäÐMÕNØðOþð
ús=   ƒA9A= Á=	D0ÂAD+Ã6DÄD+ÄD(Ä%D+Ä'D(Ä(D+Ä+D0)r(   r   r1   r   r5   r   )Ú	functoolsÚwraps)r~   r4   r   s   ` €r)   Ú
_decoratorzpanopticon.<locals>._decorator€   s%   ù€ Ü�_‰_˜VÓ$õó %ðð0 ˆOr+   )r~   r   r5   r   r6   ©r   r‚   s   ` r)   Ú
panopticonr„   }   s   ø€ õ	ð8 Ðr+   c                 ó   — y)zAWrite a message to our detailed debugging log(s), but not really.Nr6   )rU   s    r)   r/   r/       s   � r+   c                 ó   — dd„}|S )z5Decorate a function to log its calls, but not really.c                ó   — | S r%   r6   )Úmeths    r)   r‚   zpanopticon.<locals>._decorator¦   s   € ØˆKr+   )rˆ   r   r5   r   r6   rƒ   s     r)   r„   r„   £   s   € ó	ð Ðr+   c                  óH   — e Zd ZU dZded<   ded<   ded<   ded	<   d
Zded<   y
)ÚCodeInfoz/The information we want about each code object.ÚboolÚtracingzTTraceFileData | NoneÚ	file_datazdict[TOffset, TLineNo] | NoneÚbyte_to_linezBranchArcResolver | NoneÚbranch_resolverNzTLineNo | NoneÚ	last_line)r:   r;   r<   r=   Ú__annotations__r�   r6   r+   r)   rŠ   rŠ   ¬   s*   … á9àƒMØ$Ó$Ø/Ó/ð .Ó-ð !%€Iˆ~Ô$r+   rŠ   c                  óX  — 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d„Zy)Ú
SysMonitorzHPython implementation of the raw data tracer for PEP669 implementations.c                ó   — |  d| _         |  |  d | _        d | _        |  |  |  t        €J ‚t        j                  | _        i | _        g | _        t        j                  t        «      | _        i | _        d| _        t        j                  «       | _        d | _        t$        r)t&        j)                  dj+                  «       d«      | _        d| _        y )NFzHstarts start_tracing returns line_lines line_arcs branches branch_trailsr   )Ú
trace_arcsÚshould_start_contextÚswitch_contextrv   ry   ÚmyidÚ
code_infosÚcode_objectsÚcollectionsÚdefaultdictÚsetÚfilename_code_idsÚmultiline_mapsÚ	sysmon_onrN   ÚLockÚlockÚstatsÚCOLLECT_STATSÚdictÚfromkeysÚsplitÚ	_activity©r(   s    r)   r*   zSysMonitor.__init__Â   sÆ   € áØˆŒÙÙð CGˆÔ!ØCGˆÔÙÙáäÐ)Ð)Ð)ô #×.Ñ.ˆŒ	ð 02ˆŒð -/ˆÔô 7B×6MÑ6MÌcÓ6RˆÔð BDˆÔàˆŒÜ—N‘NÓ$ˆŒ	à,0ˆŒ
ÝÜŸ™ØZ×`Ñ`ÓbØóˆDŒJð
 ˆ�r+   c                ó¬   — t        d„ | j                  j                  «       D «       «      }t        | j                  «      }dt	        | «      d›d|› d|› d�S )Nc              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr%   ©Úlen)Ú.0Úvs     r)   ú	<genexpr>z&SysMonitor.__repr__.<locals>.<genexpr>ð   s   è ø€ Ò8 ”S˜—VÑ8ùs   ‚z<SysMonitor at r\   rH   z data points in z files>)ÚsumÚdataÚvaluesr­   ra   )r(   ÚpointsÚfiless      r)   Ú__repr__zSysMonitor.__repr__ï   sN   € ÜÑ8 T§Y¡Y×%5Ñ%5Ó%7Ô8Ó8ˆÜ�D—I‘I“ˆØ ¤ D£¨" ¨R°¨xÐ7GÈÀwÈgÐVÐVr+   c                óÜ  — | j                   5  t        €J ‚| j                  dk  r"	 t        j                  | j                  d«       nt        d«      ‚t        j                  t        j                  | j                  «      }t        j                  j                  }t        j                  | j                  |j                  «        ||j                  | j                  «       | j                  r� ||j                   | j"                  «        ||j$                  | j&                  «       t(        j*                  j,                  rX ||j.                  | j0                  «        ||j2                  | j0                  «       n ||j$                  | j4                  «       t        j7                  «        d| _        ddd«       y# t        $ r | xj                  dz  c_        Y �ŒÈw xY w# 1 sw Y   yxY w)zStart this Tracer.Né   zcoverage.pyé   z&No sys.monitoring tool id is availableT)r¢   rv   r˜   Úuse_tool_idrz   ÚRuntimeErrorr€   ÚpartialÚregister_callbackrx   r   Úeventsrw   Ú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ô   so  € ð �Y‰Yñ 	"Ü!Ð-Ð-Ð-Ø—)‘)˜q’.ðÜ"×.Ñ.¨t¯y©y¸-ÔHØô
 #Ð#KÓLÐLÜ ×(Ñ(¬×)IÑ)IÈ4Ï9É9ÓUˆHÜ—^‘^×*Ñ*ˆFä×%Ñ% d§i¡i°·±ÔAÙ�V—_‘_ d×&:Ñ&:Ô;Ø�ŠÙ˜×)Ñ)¨4×+@Ñ+@ÔAÙ˜Ÿ™ d×&;Ñ&;Ô<Ü—>‘>×3Ò3Ù˜V×0Ñ0°$×2KÑ2KÔLÙ˜V×/Ñ/°×1JÑ1JÕKá˜Ÿ™ d×&<Ñ&<Ô=Ü×)Ñ)Ô+Ø!ˆDŒN÷3	"ð 	"øô "ò Ø—I’I ‘N•IÚðú÷	"ð 	"ús/   �G"¦ F=ÁE.G"Æ=GÇG"ÇGÇG"Ç"G+c                óP  — | j                   5  | j                  s
	 ddd«       yt        €J ‚t        j                  | j                  d«       d| _        t        j                  | j                  «       ddd«       t        r›t        | j                  j                  «       d„ d¬«      }t        d„ |D «       «      }|t        |«      z
  }|rFt        d|› d	|› d
�«       |D ].  \  }}t        |«      dkD  sŒt        t        |«      d›d|› �«       Œ0 yt        d«       yy# 1 sw Y   Œ«xY w)zStop this Tracer.Nr   Fc                ó   — t        | d   «      S )Nr¹   r¬   )Úitems    r)   ú<lambda>z!SysMonitor.stop.<locals>.<lambda>"  s   € ¤ T¨!¡W£€ r+   T)ÚkeyÚreversec              3  ó8   K  — | ]  \  }}t        |«      –— Œ y ­wr%   r¬   )r®   Ú_Úcode_idss      r)   r°   z"SysMonitor.stop.<locals>.<genexpr>%  s   è ø€ ÒC©k¨a°œC ŸMÑCùs   ‚z==== Duplicate code objects: z duplicates, z totalr¹   z>5z
 objects: z!==== Duplicate code objects: none)r¢   r    rv   rw   r˜   Úfree_tool_idÚLOGÚsortedrž   Úitemsr±   r­   r/   )r(   rÚ   Ú	code_objsÚdupesrY   rÖ   s         r)   ÚstopzSysMonitor.stop  s   € ð �Y‰Yñ 	3Ø—>’>ð ÷		3ð 	3ô
 "Ð-Ð-Ð-Ü×%Ñ% d§i¡i°Ô3Ø"ˆDŒNÜ×'Ñ'¨¯	©	Ô2÷	3õ ÜØ×&Ñ&×,Ñ,Ó.Ù-ØôˆEô
 ÑC¸UÔCÓCˆIØ¤ E£
Ñ*ˆEÙÜÐ3°E°7¸-È	À{ÐRXÐYÔZØ*/ò GÑ&�H˜hÜ˜8“} qÓ(Üœs 8›}¨RÐ0°
¸8¸*ÐEÕFñGô Ð7Õ8ð ÷	3ð 	3ús   �D¤ADÄD%c                ó$   — | j                  «        y)z+The process has forked, clean up as needed.N)rÝ   r©   s    r)   Ú	post_forkzSysMonitor.post_fork/  s   € ð 	�	‰	�r+   c                ó   — | j                   S )zHas there been any activity?©r¨   r©   s    r)   ÚactivityzSysMonitor.activity4  s   € à�~‰~Ðr+   c                ó   — d| _         y)zReset the activity() flag.FNrá   r©   s    r)   Úreset_activityzSysMonitor.reset_activity8  s	   € àˆ�r+   c                ó   — | j                   S )z+Return a dictionary of statistics, or None.)r£   r©   s    r)   Ú	get_statszSysMonitor.get_stats<  s   € à�z‰zÐr+   Úcodeú@c                óª  — d| _         | j                  �| j                  dxx   dz  cc<   |j                  dk(  rt        S | j                  j                  t        |«      «      }d}d}|�|j                  }|j                  }|�€¤|j                  }| j                  j                  |«      }|€gt        j                  «       }|�0t        j                  «       j                  }t        r|j                  }| j                  ||«      }|| j                  |<   |j                   }|r|j"                  }	|	€J ‚| j%                  «        	 |	| j&                  vrt)        «       | j&                  |	<   | j+                  «        | j&                  |	   }| j,                  rt/        |«      nd}
nd}d}
t1        |||
d¬«      }|| j                  t        |«      <   | j2                  j5                  |«       |�r>| j                  �| j                  dxx   dz  cc<   t6        j8                  j:                  }| j<                  5  | j>                  rÚt@        €J ‚|jB                  }| j,                  rEtD        jF                  jH                  sJ ‚||jJ                  |jL                  z  |jN                  z  z  }t@        jQ                  | jR                  ||«       t        rN|j                  dvr@| jT                  |j                  › d	|j                  › �   jW                  t        |«      «       ddd«       t        S t        S # | j+                  «        w xY w# 1 sw Y   t        S xY w)
z-Handle sys.monitoring.events.PY_START events.TNÚstartsr¹   Ú__annotate__)rŒ   r�   rŽ   r�   Ústart_tracing>   ú<string>rG   ),r¨   r£   rb   r!   r™   Úgetra   rŒ   r�   rc   Úshould_trace_cacheÚinspectÚcurrentframeÚf_backrØ   Úshould_traceÚtraceÚsource_filenameÚ	lock_datar²   r�   Úunlock_datar•   r   rŠ   rš   rp   rx   r   r¾   r¢   r    rv   rÃ   r
   rÅ   rÆ   rÁ   rÇ   rÉ   Úset_local_eventsr˜   rž   rQ   )r(   rç   Úinstruction_offsetÚ	code_infoÚtracing_coder�   rY   ÚdispÚframeÚ	tracenameÚb2lr¾   Úlocal_eventss                r)   rÀ   zSysMonitor.sysmon_py_start@  sæ  € ð ˆŒØ�:‰:Ð!Ø�J‰J�xÓ  AÑ%Ó à�<‰<˜>Ò)äˆNð —O‘O×'Ñ'¬¨4«Ó1ˆ	Ø$(ˆØ+/ˆ	ØÐ Ø$×,Ñ,ˆLØ!×+Ñ+ˆIàÑØ×'Ñ'ˆHØ×*Ñ*×.Ñ.¨xÓ8ˆDØˆ|Ü×,Ñ,Ó.�ØÐ$Ü#×0Ñ0Ó2×9Ñ9�EÝà %§¡˜Ø×(Ñ(¨°5Ó9�Ø48�×'Ñ'¨Ñ1àŸ:™:ˆLÙØ ×0Ñ0�	Ø Ð,Ð,Ð,Ø—‘Ô ð'Ø ¨¯	©	Ñ1Ü/2«u˜Ÿ	™	 )Ñ,à×$Ñ$Ô&Ø ŸI™I iÑ0�	à.2¯oªo”n TÔ*À4‘à �	Ø�ä Ø$Ø#Ø Ø $ô	ˆIð )2ˆD�O‰OœB˜t›HÑ%Ø×Ñ×$Ñ$ TÔ*âØ—:‘:Ð)Ø—J‘J˜Ó/°1Ñ4Ó/ÜŸ™×.Ñ.�Ø—Y‘Yñ "Ø—~’~Ü-Ð9Ð9Ð9Ø'-§{¡{˜ØŸ?š?Ü#&§>¡>×#CÒ#CÐCÐ#CØ(Ø &× 0Ñ 0°6×3FÑ3FÑ FÈ×I[ÑI[Ñ [ñ˜Lô '×7Ñ7¸¿	¹	À4ÈÔVåØ#×/Ñ/°|ÑCØ $× 6Ñ 6¸$×:JÑ:JÐ9KÈ1ÈTÏ\É\ÈNÐ7[Ñ \× `Ñ `Ü$& t£Hô!"÷"ô" ˆŒwˆøðM ×$Ñ$Õ&ú÷*"ô" ˆús   Å%L/ È4C'MÌ/MÍMNc                ó8  — | j                   �| j                   dxx   dz  cc<   | j                  j                  t        |«      «      }|j                  j                  |«      }|�*||j
                   f}|j                  j                  |«       d|_        t        S )zBHandle sys.monitoring.events.PY_RETURN events for branch coverage.NÚreturnsr¹   )
r£   r™   rî   ra   rŽ   rd   r�   rQ   r�   r!   )r(   rç   rù   Úretvalrú   r�   Úarcs          r)   rÂ   zSysMonitor.sysmon_py_return‘  s�   € ð �:‰:Ð!Ø�J‰J�yÓ! QÑ&Ó!Ø—O‘O×'Ñ'¬¨4«Ó1ˆ	ð ×*Ñ*×.Ñ.Ð/AÓBˆ	ØÐ Ø˜t×2Ñ2Ð2Ð3ˆCØ×Ñ×#Ñ# CÔ(ð #ˆ	ÔÜˆr+   Úlinec                óî   — | j                   �| j                   dxx   dz  cc<   | j                  j                  t        |«      «      }|�'|j                  �|j                  j                  |«       t        S )z;Handle sys.monitoring.events.LINE events for line coverage.Ú
line_linesr¹   )r£   r™   rî   ra   r�   rQ   r!   )r(   rç   Úline_numberrú   s       r)   rÊ   zSysMonitor.sysmon_line_linesª  sf   € ð �:‰:Ð!Ø�J‰J�|Ó$¨Ñ)Ó$Ø—O‘O×'Ñ'¬¨4«Ó1ˆ	ð Ð  Y×%8Ñ%8Ð%DØ×Ñ×#Ñ# KÔ0äˆr+   c                ó0  — | j                   �| j                   dxx   dz  cc<   | j                  t        |«         }||f}|j                  j	                  |«       |j
                  }|�"||k7  r|j                  j	                  ||f«       ||_        t        S )z=Handle sys.monitoring.events.LINE events for branch coverage.Ú	line_arcsr¹   )r£   r™   ra   r�   rQ   r�   r!   )r(   rç   r  rú   r  r�   s         r)   rÄ   zSysMonitor.sysmon_line_arcs¸  s”   € ð �:‰:Ð!Ø�J‰J�{Ó# qÑ(Ó#Ø—O‘O¤B t£HÑ-ˆ	ð ˜KÐ(ˆØ×Ñ×Ñ Ô$ð ×'Ñ'ˆ	ØÐ  Y°+Ò%=Ø×Ñ×#Ñ# Y°Ð$<Ô=Ø)ˆ	Ôäˆr+   c                ó²  — | j                   �| j                   dxx   dz  cc<   | j                  t        |«         }|j                  }|€h| j                   �| j                   dxx   dz  cc<   |j                  €J ‚t        ||j                  | j                  |j                  «      «      x}|_        |j                  ||«      }|�!|j                  j                  |«       t        S |j                  €J ‚|j                  j                  |«      }|�A|j                  j                  |«      }|�$||k7  r||f}|j                  j                  |«       t        S )z+Handle BRANCH_RIGHT and BRANCH_LEFT events.Úbranchesr¹   Úbranch_trails)r£   r™   ra   r�   rŽ   r   Úget_multiline_maprc   Úresolver�   rQ   rî   r!   )	r(   rç   rù   Údestination_offsetrú   Úresolverr  Úl1Úl2s	            r)   rÈ   zSysMonitor.sysmon_branch_eitherÑ  sW  € ð
 �:‰:Ð!Ø�J‰J�zÓ" aÑ'Ó"Ø—O‘O¤B t£HÑ-ˆ	ð ×,Ñ,ˆØÐØ�z‰zÐ%Ø—
‘
˜?Ó+¨qÑ0Ó+Ø×)Ñ)Ð5Ð5Ð5Ü3DØØ×&Ñ&Ø×&Ñ& t×'7Ñ'7Ó8ó4ð ˆH�yÔ0ð
 ×ÑÐ1Ð3EÓFˆØˆ?Ø×Ñ×#Ñ# CÔ(ô ˆð ×)Ñ)Ð5Ð5Ð5Ø×'Ñ'×+Ñ+Ð,>Ó?ˆBØˆ~Ø×+Ñ+×/Ñ/Ð0BÓC�Ø�> b¨B¢hØ˜r˜(�CØ×'Ñ'×+Ñ+¨CÔ0ô ˆr+   c                ót   — | j                   j                  |«      }|€t        |«      x}| j                   |<   |S )z@Get the multiline map for `filename`, computing it at most once.)rŸ   rî   Úcompute_multiline_map)r(   rY   Úmultiline_maps      r)   r  zSysMonitor.get_multiline_mapö  s?   € à×+Ñ+×/Ñ/°Ó9ˆØÐ Ü<QÐRZÓ<[Ð[ˆM˜D×/Ñ/°Ñ9ØÐr+   )r5   r9   )r5   r8   )r5   r‹   )r5   zdict[str, int] | None)rç   r   rù   r   r5   ÚMonitorReturn)rç   r   rù   r   r  Úobjectr5   r  )rç   r   r  r   r5   r  )rç   r   rù   r   r  r   r5   r  ©rY   r8   r5   zdict[TLineNo, TLineNo])r:   r;   r<   r=   r*   r¶   r„   rÍ   rÝ   rß   râ   rä   ræ   rÀ   rÂ   rÊ   rÄ   rÈ   r  r6   r+   r)   r“   r“   ½   s<  „ ÙRó+óZWñ
 ƒ\ò"ó ð"ñ: ƒ\ò9ó ð9ñ8 ƒ\òó ðóóóñ �˜ÓòNó ðNñ` �˜˜TÓ"ðàðð $ðð ð	ð
 
òó #ðñ0 �˜Óòó  ðñ �˜Óòó  ðñ0 �˜˜SÓ!ð"Øð"Ø29ð"ØOVð"à	ò"ó "ð"ôHr+   r“   c                ó¬   — 	 t        | «      }	 t        |«      S # t        t        f$ r i cY S w xY w# t        j
                  t        t        f$ r i cY S w xY w)z1Tokenize `filename` and return its multiline map.)r   ÚOSErrorr   r   ÚtokenizeÚ
TokenErrorÚIndentationErrorÚSyntaxError)rY   Útexts     r)   r  r  þ  sa   € ðÜ  Ó*ˆðÜ& tÓ,Ð,øô	 ”XÐò àŠ	ðûô
 ×ÑÔ!1´;Ð?ò ð
 Š	ðús   ‚ Ž
0 ™-¬-° AÁA)rU   r8   r5   r9   )rf   r   r5   r8   )r   z
str | Noner5   r   r  )Gr=   Ú
__future__r   r›   r€   rð   rK   Úos.pathrx   rN   r  rt   Úcollections.abcr   Údataclassesr   Útypesr   Útypingr   r   r	   Úcoverager
   Úcoverage.bytecoder   r   Úcoverage.debugr   r   Úcoverage.exceptionsr   Úcoverage.miscr   Úcoverage.parserr   Úcoverage.pythonr   Úcoverage.typesr   r   r   r   r   r   r   r   r   r   r‹   rM   ÚgetenvrØ   r¤   r0   rv   r  r    r  r!   r#   r¼   r�   rA   r‘   r/   rg   r„   rŠ   r“   r  r6   r+   r)   ú<module>r0     s€  ðò Iå "ã Û Û Û 	Û Û 
Û Û Û Ý $Ý !Ý ß %Ñ %å ß ?ß 6Ý (Ý (Ý 3Ý -÷÷ ÷ ñ  �BÓ€ñ
 ‰3ˆyˆr�y‰yÐ.°Ó2Ó3Ó4€ñ ‘S˜˜Ÿ™Ð#:¸AÓ>Ó?Ó@€ñ ˜˜l¨DÓ1€á�~ vÓ.€Ø˜tÑ#€Ù
ˆ}™g n°iÀÓFÓ
G€ñ ÷ñ ñ $ NÐ4DÓE€NØÐ%Ð%Ð%à#�)×#Ñ#ØØØØô	€Kñ !›U€L�(Ó"óIó0ôóFPóð ÷%ð %ó ð%ô ~�ô ~ôB
r+   