ó
    ‹A¾i*Š  ã                   óÎ  • S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	J
r
  SSK	Jr  SSK
Jr  SSK
Jr  SSK
Jr  SS	K
Jr  SS
K
Jr  SSK
Jr  SSK
Jr  SSK
Jr  SSK
Jr  SSK
Jr  SSK
Jr  SSK
Jr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr   SSK	Jr   / SQr)Sr*S r+S!\RX                  ;   r-\R\                  " S"S#S$05      r/\/R`                  r0\ Rb                  \
Rd                  \ Rf                  \
Rh                  \ Rj                  \
Rl                  \ Rn                  \
Rp                  \ Rr                  \
Rt                  \ Rv                  \
Rx                  \ Rz                  \
R|                  \ R~                  \
R€                  \ R‚                  \
R„                  \ R†                  \
Rˆ                  \ RŠ                  \
RŒ                  \ RŽ                  \*\ R�                  \
R’                  0rJ " S% S&\R\                  5      rK\L" 5       R›                  \KRœ                  5         " S' S(\R\                  5      rO\L" 5       R›                  \ORœ                  5        \P" St0 S)S_S*S_S+S,_S-S._S/S0_S1S2_S3S_S4S5_S6S7_S8S9_S:S;_S<S=_S>S?_S@SA_SBSC_SDSE_SFSG_SHSI_SJSK_SLSM_SNSO_SPSQ_6rQ\R¤                  " SRSS9ST 5       rS\SU 5       rTSV rUSW rV\ R®                  rW\ R°                  rX\ R²                  rYSX rZSY r[SZ r\S[ r]S\ r^S] r_S^ r`S_ raS`qb\RÆ                  " 5       rdSa reSb rfSuSc jrgSd rhSe riSf rjSg rkSqlSh rmSi rnSj roSk rp " Sl Sm5      rq\ Rä                  rr\ Ræ                  rs\ Rè                  rtSn ruSvSo jrvSp rwSq rx " Sr Ss5      ryg! \! a]  r"\#" \"5      RI                  5       RK                  S5      (       a-  \RL                  " 5       S   S:  a  Sr'\'S-  r'\'S-  r'\(" \'5      \"ee Sr"C"ff = f)wz Windows platform implementation.é    Né   )Ú_common)Ú_ntuples)ÚENCODING)ÚAccessDenied)ÚNoSuchProcess)ÚTimeoutExpired)Ú	conn_tmap)Úconn_to_ntuple)Údebug)Úisfile_strict)Úmemoize)Úmemoize_when_activated)Úparse_environ_block)Úusage_percent)ÚABOVE_NORMAL_PRIORITY_CLASS)ÚBELOW_NORMAL_PRIORITY_CLASS)ÚHIGH_PRIORITY_CLASS)ÚIDLE_PRIORITY_CLASS)ÚNORMAL_PRIORITY_CLASS)ÚREALTIME_PRIORITY_CLASS)Ú_psutil_windowszdll load failedé   z3this Windows version is too old (< Windows Vista); z:psutil 3.4.2 is the latest version which supports Windows z2000, XP and 2003 server)Úwin_service_iterÚwin_service_getr   r   r   r   r   r   ÚIOPRIO_VERYLOWÚ
IOPRIO_LOWÚIOPRIO_NORMALÚIOPRIO_HIGHÚCONN_DELETE_TCBÚAF_LINKÚ
DELETE_TCBi+  Ú__pypy__ÚAddressFamilyr!   éÿÿÿÿc                   ó,   • \ rS rSr\r\r\r\r\r\	r	Sr
g)ÚPriorityée   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   r   r   r   Ú__static_attributes__r)   ó    Ú^/var/www/we8upmb/htdocs/scripts/db-diff/venv/lib/python3.13/site-packages/psutil/_pswindows.pyr'   r'   e   s&   † Ø"=ÐØ"=ÐØ-ÐØ-ÐØ1ÐØ5Ór/   r'   c                   ó$   • \ rS rSrSrSrSrSrSrg)Ú
IOPriorityéq   r   r   é   é   r)   N)	r*   r+   r,   r-   r   r   r   r   r.   r)   r/   r0   r2   r2   q   s   † Ø€NØ€JØ€MØƒKr/   r2   Únum_handlesÚctx_switchesÚ	user_timer4   Úkernel_timer5   Úcreate_timeé   Únum_threadsé   Ú	io_rcountÚ	io_wcounté   Ú	io_rbytesé   Ú	io_wbytesé	   Úio_count_othersé
   Úio_bytes_othersé   Únum_page_faultsé   Ú	peak_wseté   Úwseté   Úpeak_paged_poolé   Ú
paged_poolé   Úpeak_non_paged_poolé   Únon_paged_poolé   Úpagefileé   Úpeak_pagefileé   Úmem_privateé   i   )Úmaxsizec                 óô  • U R                  S5      (       a  U $ SR                  U R                  S5      SS 5      nUS;   aJ  SR                  U R                  S5      SS 5      nSSR                  U R                  S5      SS 5      -   nOAUR                  S5      (       a  U R                  S5      S   nO[        R                  " U5      nU [        U5      S n[        R                  R                  X#5      $ )	z¸Convert paths using native DOS format like:
    "\Device\HarddiskVolume1\Windows\systemew\file.txt" or
    "\??\C:\Windows\systemew\file.txt"
into:
    "C:\Windows\systemew\file.txt".
z\\Ú\Nr5   >   ú\??\UNCú\Device\Mupr=   z\??\r4   )Ú
startswithÚjoinÚsplitÚcextÚQueryDosDeviceÚlenÚosÚpath)ÚsÚrawdriveÚdriveletterÚ	remainders       r0   Úconvert_dos_pathrn   ™   sÓ   € ð 	‡|�|�F×ÑØˆØ�y‰y˜Ÿ™ › r¨Ð*Ó+€HØÐ1Ó1Ø—9‘9˜QŸW™W T›]¨2¨AÐ.Ó/ˆØ˜tŸy™y¨¯©°«°q¸Ð);Ó<Ñ<‰Ø	×	Ñ	˜X×	&Ñ	&Ø—g‘g˜d“m AÑ&‰ä×)Ò)¨(Ó3ˆØ”#�h“-�/Ð"€IÜ�7‰7�<‰<˜Ó/Ð/r/   c                  ó,   • [         R                  " 5       $ ©N)re   Úgetpagesizer)   r/   r0   rq   rq   ¯   s   € ä×ÒÓÐr/   c                  ó”   • [         R                  " 5       n U u  pp4UnUnUnXV-
  n[        XV-
  USS9n	[        R                  " XVX˜U5      $ )z&System virtual memory as a namedtuple.r   ©Úround_)re   Úvirtual_memr   ÚntpÚsvmem)
ÚmemÚtotphysÚ	availphysÚ_totsysÚ	_availsysÚtotalÚavailÚfreeÚusedÚpercents
             r0   Úvirtual_memoryr‚   ¹   sS   € ä
×
Ò
Ó
€CØ-0Ñ*€G˜Ø€EØ€EØ€DØ‰=€DÜ˜U™]¨U¸1Ñ=€GÜ�9Š9�U 7°$Ó7Ð7r/   c                  óü   • [         R                  " 5       n U S   nU S   nX!-
  nUS:”  a'  [         R                  " 5       n[        SU-  U-  5      nOSnSnX5-
  n[	        US5      n[
        R                  " X5XgSS5      $ )z=Swap system memory as a (total, used, free, sin, sout) tuple.r   r4   g{®Gáz„?ç        r   )re   ru   Úswap_percentÚintÚroundrv   Ússwap)rx   Ú
total_physÚtotal_systemr}   Úpercentswapr€   r   r�   s           r0   Úswap_memoryrŒ   Å   s‰   € ä
×
Ò
Ó
€Cà�Q‘€JØ�q‘6€Lð Ñ%€Eð
 ˆqƒyÜ×'Ò'Ó)ˆÜ�4˜+Ñ%¨Ñ-Ó.‰àˆØˆà‰<€DÜ�K Ó#€GÜ�9Š9�U $°°AÓ6Ð6r/   c                 óÈ   • [        U [        5      (       a  U R                  [        SS9n [        R
                  " U 5      u  pn[        X!SS9n[        R                  " XX45      $ )z'Return disk usage associated with path.Ústrict)Úerrorsr   rs   )	Ú
isinstanceÚbytesÚdecoder   re   Ú
disk_usager   rv   Ú
sdiskusage)ri   r}   r€   r   r�   s        r0   r“   r“   ì   sS   € ä�$œ×Ñð �{‰{œ8¨Hˆ{Ð5ˆÜŸš¨Ó-Ñ€E�Ü˜D°Ñ2€GÜ�>Š>˜% tÓ5Ð5r/   c                 ó€   • [         R                  " U 5      nU Vs/ s H  n[        R                  " U6 PM     sn$ s  snf )zReturn disk partitions.)re   Údisk_partitionsrv   Ú	sdiskpart)ÚallÚrawlistÚxs      r0   r–   r–   ÷   s3   € ä×"Ò" 3Ó'€GÙ'.Ó/¢w !ŒC�MŠM˜1Ó¡wÑ/Ð/ùÒ/s   ›;c                  ó   • [         R                  " 5       u  pn[        R                  " [	        [         R
                  " 5       6  Vs/ s H  n[        U5      PM     sn6 n[        R                  " XX$R                  UR                  5      $ s  snf )z)Return system CPU times as a named tuple.)	re   Ú	cpu_timesrv   Ú	scputimesÚzipÚper_cpu_timesÚsumÚ	interruptÚdpc)ÚuserÚsystemÚidleÚnÚpercpu_summeds        r0   rœ   rœ     st   € äŸšÓ)Ñ€D�$ô —M’MÜœt×1Ò1Ó3Ñ4Ó	5Ò4�QŒ#ˆaŽ&Ñ4Ñ	5ð€Mô �=Š=Ø�d×3Ñ3°]×5FÑ5Fóð ùò 
6s   ÁBc                  óœ   • / n [         R                  " 5        H0  u  pp4n[        R                  " XX4U5      nU R	                  U5        M2     U $ )z6Return system per-CPU times as a list of named tuples.)re   rŸ   rv   r�   Úappend)Úretr£   r¤   r¥   r¡   r¢   Úitems          r0   rŸ   rŸ     sG   € à
€CÜ.2×.@Ò.@Ö.BÑ*ˆ�d sÜ�}Š}˜T¨4¸CÓ@ˆØ�
‰
�4Öñ /Cð €Jr/   c                  ó,   • [         R                  " 5       $ )z0Return the number of logical CPUs in the system.)re   Úcpu_count_logicalr)   r/   r0   r­   r­     s   € ä×!Ò!Ó#Ð#r/   c                  ó,   • [         R                  " 5       $ )z-Return the number of CPU cores in the system.)re   Úcpu_count_coresr)   r/   r0   r¯   r¯     s   € ä×ÒÓ!Ð!r/   c                  ód   • [         R                  " 5       u  pp#Sn[        R                  " XXC5      $ )zReturn CPU statistics.r   )re   Ú	cpu_statsrv   Ú	scpustats)r7   Ú
interruptsÚ_dpcsÚsyscallsÚsoft_interruptss        r0   r±   r±   #  s)   € ä04·²Ó0@Ñ-€L˜eØ€OÜ�=Š=˜°?ÓMÐMr/   c                  óŠ   • [         R                  " 5       u  pSn[        R                  " [	        U 5      U[	        U5      5      /$ )zEReturn CPU frequency.
On Windows per-cpu frequency is not supported.
r„   )re   Úcpu_freqrv   ÚscpufreqÚfloat)ÚcurrÚmax_Úmin_s      r0   r¸   r¸   *  s4   € ô —’“�J€DØ€DÜ�LŠLœ˜t› d¬E°$«KÓ8Ð9Ð9r/   Fc                  óP   • [         R                  " 5       n [        S U  5       5      $ )Nc              3   ó:   #   • U  H  n[        US 5      v •  M     g7f)r4   N)r‡   )Ú.0Úloads     r0   Ú	<genexpr>Ú#_getloadavg_impl.<locals>.<genexpr>:  s   é € Ð6ªI D”�t˜Q—�ªIùs   ‚)re   Ú
getloadavgÚtuple)Ú	raw_loadss    r0   Ú_getloadavg_implrÇ   7  s   € ä—’Ó!€IÜÑ6©IÓ6Ó6Ð6r/   c                  óÖ   • [         (       a
  [        5       $ [           [         (       d  [        R                  " 5         Sq SSS5        [        5       $ ! , (       d  f       [        5       $ = f)z|Return the number of processes in the system run queue averaged
over the last 1, 5, and 15 minutes respectively as a tuple.
TN)Ú_loadavg_initializedrÇ   Ú_lockre   Úinit_loadavg_counterr)   r/   r0   rÄ   rÄ   =  sQ   € ÷ ÒÜÓ!Ð!æ	ß#Ò#Ü×%Ò%Ô'Ø#'Ð ÷ 
ô
 ÓÐ÷ 
Œô
 ÓÐús   œ#AÁ
A(c                 óê   • [         U    u  p#[        R                  " XU5      n[        5       nU H7  nUu  pxpšp¼n[	        UUU	U
UU[
        US:X  a  UOSS9nUR                  U5        M9     [        U5      $ )z€Return socket connections.  If pid == -1 return system-wide
connections (as opposed to connections opened by one process only).
r%   N)Úpid)r
   re   Únet_connectionsÚsetr   ÚTCP_STATUSESÚaddÚlist)ÚkindÚ_pidÚfamiliesÚtypesr™   rª   r«   ÚfdÚfamÚtypeÚladdrÚraddrÚstatusrÍ   Únts                  r0   rÎ   rÎ   S  sƒ   € ô   ‘o�O€HÜ×"Ò" 4°5Ó9€GÜ
‹%€CÛˆØ37Ñ0ˆ�˜e¨SÜØØØØØØÜØ˜r“z‘ tñ	
ˆð 	�‰�Žñ ô �‹9Ðr/   c                  óú   • 0 n [         R                  " 5       nUR                  5        HO  u  p#Uu  pEpg[        [        S5      (       a  [        R
                  " U5      n[        R                  " XEXgS5      X'   MQ     U $ )z)Get NIC stats (isup, duplex, speed, mtu).Ú	NicDuplexÚ )re   Únet_if_statsÚitemsÚhasattrr   rß   rv   Ú	snicstats)rª   ÚrawdictÚnamerâ   ÚisupÚduplexÚspeedÚmtus           r0   rá   rá   j  si   € à
€CÜ×ÒÓ!€GØ—}‘}–‰ˆØ#(Ñ ˆ�eÜ”7˜K×(Ñ(Ü×&Ò& vÓ.ˆFÜ—M’M $°¸BÓ?ˆ‹	ñ	 'ð
 €Jr/   c                  ó,   • [         R                  " 5       $ )zkReturn network I/O statistics for every network interface
installed on the system as a dict of raw tuples.
)re   Únet_io_countersr)   r/   r0   rì   rì   v  s   € ô ×ÒÓ!Ð!r/   c                  ó,   • [         R                  " 5       $ )z,Return the addresses associated to each NIC.)re   Únet_if_addrsr)   r/   r0   rî   rî   }  s   € ä×ÒÓÐr/   c                  ó  • [         R                  " 5       u  pp#U S:H  n[        US-  5      n[        US-  5      nU(       a  gU(       d  U(       a  [        R                  nOUS:X  a  [        R
                  n[        R                  " X#U5      $ )zReturn battery information.r   é€   rB   Nr%   )re   Úsensors_batteryÚboolr   ÚPOWER_TIME_UNLIMITEDÚPOWER_TIME_UNKNOWNrv   Úsbattery)Úacline_statusÚflagsr�   ÚsecsleftÚpower_pluggedÚ
no_batteryÚchargings          r0   rñ   rñ   ‡  su   € ô
 /3×.BÒ.BÓ.DÑ+€M˜'Ø! QÑ&€MÜ�e˜c‘kÓ"€JÜ�E˜A‘I‹€HæØÞžÜ×/Ñ/‰Ø	�R‹Ü×-Ñ-ˆä�<Š<˜¨=Ó9Ð9r/   c                  ó˜   • [         R                   " 5       [        R                  " 5       -
  n [        U [        -
  5      S::  a  [        $ U qU $ )zyThe system boot time expressed in seconds since the epoch. This
also includes the time spent during hybernate / suspend.
r   )Útimere   ÚuptimeÚabsÚ_last_btime)rª   s    r0   Ú	boot_timer  £  s<   € ô �)Š)‹+œŸš›Ñ
%€CÜ
ˆ3”ÑÓ Ó"ÜÐàˆØˆ
r/   c                  ó¤   • / n [         R                  " 5       nU H2  nUu  p4n[        R                  " USXES5      nU R	                  U5        M4     U $ )z:Return currently connected users as a list of namedtuples.N)re   Úusersrv   Úsuserr©   )Úretlistr™   r«   r£   ÚhostnameÚtstamprÝ   s          r0   r  r  ³  sM   € à€GÜ�jŠj‹l€GÛˆØ!%Ñˆ˜Ü�YŠY�t˜T 8°TÓ:ˆØ�‰�rÖñ ð €Nr/   c               #   ób   #   • [         R                  " 5        H  u  p[        X5      v •  M     g7f)z*Yields a list of WindowsService instances.N)re   Úwinservice_enumerateÚWindowsService)ræ   Údisplay_names     r0   r   r   Ã  s&   é € ä"×7Ò7Ö9ÑˆÜ˜TÓ0Ô0ò :ùs   ‚-/c                 óN   • [        U S5      nUR                  5       S   Ul        U$ )zBOpen a Windows service and return it as a WindowsService instance.Nr  )r
  Ú_query_configÚ_display_name)ræ   Úservices     r0   r   r   É  s)   € ä˜T 4Ó(€GØ#×1Ñ1Ó3°NÑC€GÔØ€Nr/   c                   óœ   • \ rS rSrSrS rS rS rS rS r	S r
S	 r\R                  S
 5       rS rS rS rS rS rS rS rS rS rSrg)r
  iÐ  z(Represents an installed Windows service.c                 ó   • Xl         X l        g rp   )Ú_namer  )Úselfræ   r  s      r0   Ú__init__ÚWindowsService.__init__Ó  s   € ØŒ
Ø)Õr/   c                 ót   • SU R                   < SU R                  < S3nU R                  R                   U 3$ )Nz(name=z, display_name=Ú))r  r  Ú	__class__r*   )r  Údetailss     r0   Ú__str__ÚWindowsService.__str__×  s;   € Ø˜4Ÿ:™:™.¨¸×8JÑ8JÑ7MÈQÐOˆØ—.‘.×)Ñ)Ð*¨7¨)Ð4Ð4r/   c                 óB   • SU R                  5        S[        U 5       S3$ )NÚ<z at Ú>)r  Úid©r  s    r0   Ú__repr__ÚWindowsService.__repr__Û  s"   € Ø�4—<‘<“>Ð" $¤r¨$£x j°Ð2Ð2r/   c                 ój   • [        U[        5      (       d  [        $ U R                  UR                  :H  $ rp   )r�   r
  ÚNotImplementedr  ©r  Úothers     r0   Ú__eq__ÚWindowsService.__eq__Þ  s*   € ô ˜%¤×0Ñ0Ü!Ð!Ø�z‰z˜UŸ[™[Ñ(Ð(r/   c                 ó   • X:X  + $ rp   r)   r%  s     r0   Ú__ne__ÚWindowsService.__ne__å  s   € ØÒ Ð r/   c                 ó´   • U R                  5          [        R                  " U R                  5      u  pp4S S S 5        [	        WWWWS9$ ! , (       d  f       N= f)N)r  ÚbinpathÚusernameÚ
start_type)Ú_wrap_exceptionsre   Úwinservice_query_configr  Údict)r  r  r-  r.  r/  s        r0   r  ÚWindowsService._query_configè  sR   € Ø×"Ñ"Õ$ä×,Ò,¨T¯Z©ZÓ8ñ 8ˆL 8÷ %ô
 Ø%ØØØ!ñ	
ð 	
÷ %Õ$ús   ‘$A	Á	
Ac                 ó¾   • U R                  5          [        R                  " U R                  5      u  pS S S 5        WS:X  a  S n[	        WUS9$ ! , (       d  f       N = f)Nr   )rÜ   rÍ   )r0  re   Úwinservice_query_statusr  r2  )r  rÜ   rÍ   s      r0   Ú_query_statusÚWindowsService._query_statusõ  sK   € Ø×"Ñ"Õ$Ü×6Ò6°t·z±zÓB‰KˆF÷ %à�!‹8ØˆCÜ˜6 sÑ+Ð+÷	 %Õ$ús   ‘#AÁ
Ac              #   ó  #   •  Sv •  g! [          at  nU R                  n[        U5      (       a  SU< S3n[        SX#S9UeUR                  [
        R                  [
        R                  1;   a  SU< S3n[        SX#S9Uee SnAff = f7f)zkCtx manager which translates bare OSError and WindowsError
exceptions into NoSuchProcess and AccessDenied.
Nzservice z( is not querable (not enough privileges)©rÍ   ræ   Úmsgz does not exist)	ÚOSErrorr  Úis_permission_errr   Úwinerrorre   ÚERROR_INVALID_NAMEÚERROR_SERVICE_DOES_NOT_EXISTr   )r  Úerrræ   r:  s       r0   r0  ÚWindowsService._wrap_exceptionsü  s˜   é € ð
	ÜøÜó 	Ø—:‘:ˆDÜ  ×%Ñ%à˜t™hÐ&NÐOð ô # t°$Ñ@ÀcÐIØ—‘Ü×'Ñ'Ü×1Ñ1ð"ó ð ! ¡¨Ð8�Ü#¨°4ÑAÀsÐJàûð	üs%   ‚B
„	 ˆB
‰
B“A/BÂBÂB
c                 ó   • U R                   $ )zŠThe service name. This string is how a service is referenced
and can be passed to win_service_get() to get a new
WindowsService instance.
)r  r   s    r0   ræ   ÚWindowsService.name  s   € ð
 �z‰zÐr/   c                 ó   • U R                   $ )zOThe service display name. The value is cached when this class
is instantiated.
)r  r   s    r0   r  ÚWindowsService.display_name  s   € ð ×!Ñ!Ð!r/   c                 ó(   • U R                  5       S   $ )zgThe fully qualified path to the service binary/exe file as
a string, including command line arguments.
r-  ©r  r   s    r0   r-  ÚWindowsService.binpath"  s   € ð ×!Ñ!Ó# IÑ.Ð.r/   c                 ó(   • U R                  5       S   $ )z,The name of the user that owns this service.r.  rG  r   s    r0   r.  ÚWindowsService.username(  s   € à×!Ñ!Ó# JÑ/Ð/r/   c                 ó(   • U R                  5       S   $ )zBA string which can either be "automatic", "manual" or
"disabled".
r/  rG  r   s    r0   r/  ÚWindowsService.start_type,  s   € ð ×!Ñ!Ó# LÑ1Ð1r/   c                 ó(   • U R                  5       S   $ )zjThe process PID, if any, else None. This can be passed
to Process class to control the service's process.
rÍ   ©r6  r   s    r0   rÍ   ÚWindowsService.pid4  s   € ð ×!Ñ!Ó# EÑ*Ð*r/   c                 ó(   • U R                  5       S   $ )zService status as a string.rÜ   rN  r   s    r0   rÜ   ÚWindowsService.status:  s   € à×!Ñ!Ó# HÑ-Ð-r/   c                 óJ   • [         R                  " U R                  5       5      $ )zService long description.)re   Úwinservice_query_descrræ   r   s    r0   ÚdescriptionÚWindowsService.description>  s   € ä×*Ò*¨4¯9©9«;Ó7Ð7r/   c                 óÖ   • U R                  5       nUR                  U R                  5       5        U R                  5       US'   U R	                  5       US'   U R                  5       US'   U$ )zEUtility method retrieving all the information above as a
dictionary.
ræ   r  rT  )r  Úupdater6  ræ   r  rT  )r  Úds     r0   Úas_dictÚWindowsService.as_dictD  sa   € ð ×ÑÓ ˆØ	�‰�×#Ñ#Ó%Ô&Ø—I‘I“Kˆˆ&‰	Ø ×-Ñ-Ó/ˆˆ.ÑØ×+Ñ+Ó-ˆˆ-ÑØˆr/   )r  r  N)r*   r+   r,   r-   Ú__doc__r  r  r!  r'  r*  r  r6  Ú
contextlibÚcontextmanagerr0  ræ   r  r-  r.  r/  rÍ   rÜ   rT  rY  r.   r)   r/   r0   r
  r
  Ð  so   † Ù2ò*ò5ò3ò)ò!ò
ò,ð ×Ññó ðò0ò"ò/ò0ò2ò+ò.ò8õ	r/   r
  c                 óÂ   • [        U [        5      (       d   U 5       e[        U [        5      =(       d-    U R                  [        R
                  [        R                  1;   $ )z*Return True if this is a permission error.)r�   r;  ÚPermissionErrorr=  re   ÚERROR_ACCESS_DENIEDÚERROR_PRIVILEGE_NOT_HELD)Úexcs    r0   r<  r<  �  sQ   € ä�cœ7×#Ñ#Ð( SÓ(Ð#Ü�cœ?Ó+÷ ¨s¯|©|Ü× Ñ Ü×%Ñ%ð@ñ 0ð r/   c                 ó¬   • [        U [        5      (       d   U 5       e[        U 5      (       a	  [        XS9$ [        U [        5      (       a	  [        XS9$ U e)z3Convert OSError into NoSuchProcess or AccessDenied.©rÍ   ræ   )r�   r;  r<  r   ÚProcessLookupErrorr   )rb  rÍ   ræ   s      r0   Úconvert_oserrorrf  Š  sN   € ä�cœ7×#Ñ#Ð( SÓ(Ð#Ü˜×ÑÜ Ñ/Ð/Ü�#Ô)×*Ñ*Ü Ñ0Ð0Ø
€Ir/   c                 óF   ^ • [         R                  " T 5      U 4S j5       nU$ )zDDecorator which converts OSError into NoSuchProcess or AccessDenied.c                 ó€   >•  T" U /UQ70 UD6$ ! [          a$  n[        X0R                  U R                  S9UeS nAff = f)Nrd  )r;  rf  rÍ   r  )r  ÚargsÚkwargsr@  Úfuns       €r0   ÚwrapperÚ wrap_exceptions.<locals>.wrapper—  sG   ø€ ð	OÙ�tÐ-˜dÒ- fÑ-Ð-øÜó 	OÜ! #¯8©8¸$¿*¹*ÑEÈ3ÐNûð	Oús   ƒ �
=™8¸=©Ú	functoolsÚwraps©rk  rl  s   ` r0   Úwrap_exceptionsrr  ”  s)   ø€ ô ‡_‚_�SÓôOó ðOð €Nr/   c                 óF   ^ • [         R                  " T 5      U 4S j5       nU$ )zyWorkaround for https://github.com/giampaolo/psutil/issues/875.
See: https://stackoverflow.com/questions/4457745#4457745.
c                 óD  >• SnSn[        U5       H  n T" U /UQ70 UD6s  $    T SU SW 3n[        U R                  U R                  US9e! [         aG  nUnUR                  [        :X  a+  [        R
                  " U5        [        US-  S5      n S nAMˆ  e S nAff = f)Nç-Cëâ6?é!   r4   ç{®Gáz¤?z	 retried z: times, converted to AccessDenied as it's still returning r9  )
Úranger;  r=  ÚERROR_PARTIAL_COPYrý   ÚsleepÚminr   rÍ   r  )	r  ri  rj  ÚdelayÚtimesÚ_r@  r:  rk  s	           €r0   rl  Ú)retry_error_partial_copy.<locals>.wrapper¦  sµ   ø€ àˆØˆÜ�u–ˆAðÙ˜4Ð1 $Ò1¨&Ñ1Ò1ñ ð ˆe�9˜U˜Gð $Ø"˜eð%ð 	ô ˜tŸx™x¨d¯j©j¸cÑBÐBøô ó Ø�Ø—<‘<Ô#5Ó5Ü—J’J˜uÔ%Ü ¨¡	¨4Ó0�EÝØûðús   •AÁ
BÁ;BÂBÂBrn  rq  s   ` r0   Úretry_error_partial_copyr€  ¡  s)   ø€ ô
 ‡_‚_�SÓôCó ðCð& €Nr/   c                   óN  • \ rS rSrSr/ SQrS rS rS r\	S 5       r
S r\\	S	 5       5       r\\S
 5       5       r\\S 5       5       rS rS r\S 5       r\S 5       rS r\S 5       r\S 5       r\S*S j5       r\S 5       r\S+S j5       r\S 5       r\S 5       r\S 5       r\S 5       r\S 5       r\\S 5       5       r \S 5       r!\S,S j5       r"\S 5       r#\S  5       r$\S! 5       r%\S" 5       r&\S# 5       r'\S$ 5       r(\S% 5       r)\S& 5       r*\S' 5       r+\S( 5       r,S)r-g)-ÚProcessi½  z1Wrapper class around underlying C implementation.)Ú_cacher  Ú_ppidrÍ   c                 ó,   • Xl         S U l        S U l        g rp   )rÍ   r  r„  )r  rÍ   s     r0   r  ÚProcess.__init__Â  s   € ØŒØˆŒ
Øˆ�
r/   c                 óp   • U R                   R                  U 5        U R                  R                  U 5        g rp   )Ú
_proc_infoÚcache_activateÚexer   s    r0   Úoneshot_enterÚProcess.oneshot_enterÉ  s&   € Ø�‰×&Ñ& tÔ,Ø�‰×Ñ Õ%r/   c                 óp   • U R                   R                  U 5        U R                  R                  U 5        g rp   )rˆ  Úcache_deactivaterŠ  r   s    r0   Úoneshot_exitÚProcess.oneshot_exitÍ  s&   € Ø�‰×(Ñ(¨Ô.Ø�‰×!Ñ! $Õ'r/   c                 ó‚   • [         R                  " U R                  5      n[        U5      [        [        5      :X  d   eU$ )z?Return multiple information about this process as a
raw tuple.
)re   Ú	proc_inforÍ   rg   Ú	pinfo_map©r  rª   s     r0   rˆ  ÚProcess._proc_infoÑ  s1   € ô
 �nŠn˜TŸX™XÓ&ˆÜ�3‹xœ3œy›>Ó)Ð)Ð)Øˆ
r/   c                 ó    • U R                   S:X  a  gU R                   S:X  a  g[        R                  R                  U R	                  5       5      $ )zRReturn process name, which on Windows is always the final
part of the executable.
r   zSystem Idle Processr;   ÚSystem)rÍ   rh   ri   ÚbasenamerŠ  r   s    r0   ræ   ÚProcess.nameÚ  s;   € ð �8‰8�q‹=Ø(Ø�8‰8�q‹=ØÜ�w‰w×Ñ §¡£
Ó+Ð+r/   c                 óˆ  • [         (       a"   [        R                  " U R                  5      nO [        R                  " U R                  5      nUR                  S5      (       a  [        U5      $ U$ ! [         aF  nUR
                  S:X  a0  [        U< S35        [        U R                  U R                  5      Uee S nAff = f)Né   z translated into AccessDeniedr_   )ÚPYPYre   Úproc_exerÍ   r;  Úerrnor   r   r  rb   rn   )r  rŠ  r@  s      r0   rŠ  ÚProcess.exeæ  sœ   € ÷ Š4ðÜ—m’m D§H¡HÓ-‘ô —-’- §¡Ó)ˆCØ�>‰>˜$×ÑÜ# CÓ(Ð(Øˆ
øô ó ð —9‘9 “?Ü˜S™GÐ#@ÐAÔBÜ& t§x¡x°·±Ó<À#ÐEØûðús   � A1 Á1
CÁ;AB<Â<Cc                 óR  • [         R                  [         R                  :¼  a    [         R                  " U R                  SS9$ [         R                  " U R                  SS9$ ! [
         a:  n[        U5      (       a$  [         R                  " U R                  SS9s S nA$ e S nAff = f)NT)Úuse_pebF)re   ÚWINVERÚWINDOWS_8_1Úproc_cmdlinerÍ   r;  r<  ©r  r@  s     r0   ÚcmdlineÚProcess.cmdlineù  s‚   € ô �;‰;œ$×*Ñ*Ó*ðÜ×(Ò(¨¯©¸4Ñ@Ð@ô ×$Ò$ T§X¡X°tÑ<Ð<øô ó Ü$ S×)Ñ)Ü×,Ò,¨T¯X©X¸uÑEÕEàûð	ús#   ¤A" Á"
B&Á,.B!ÂB&Â B!Â!B&c                 óX   • [         R                  " U R                  5      n[        U5      $ rp   )re   Úproc_environrÍ   r   )r  rj   s     r0   ÚenvironÚProcess.environ	  s#   € ô ×Ò˜dŸh™hÓ'ˆÜ" 1Ó%Ð%r/   c                 ó�   •  [        5       U R                     $ ! [         a"    [        U R                  U R                  5      S ef = frp   )Úppid_maprÍ   ÚKeyErrorr   r  r   s    r0   ÚppidÚProcess.ppid  sA   € ð	@Ü“:˜dŸh™hÑ'Ð'øÜó 	@Ü §¡¨$¯*©*Ó5¸4Ð?ð	@ús	   ‚ ™,Ac                 óª  •  [         R                  " U R                  5      $ ! [         a¦  n[	        U5      (       a�  [        S5        U R                  5       nU[        S      U[        S      U[        S      U[        S      U[        S      U[        S      U[        S      U[        S	      U[        S
      U[        S      4
s S nA$ e S nAff = f)Nz*attempting memory_info() fallback (slower)rI   rK   rM   rO   rQ   rS   rU   rW   rY   r[   )re   Úproc_memory_inforÍ   r;  r<  r   rˆ  r“  )r  r@  Úinfos      r0   Ú_get_raw_meminfoÚProcess._get_raw_meminfo  sã   € ð	Ü×(Ò(¨¯©Ó2Ð2øÜó 	Ü  ×%Ñ%ô ÐBÔCØ—‘Ó(�àœÐ#4Ñ5Ñ6Øœ ;Ñ/Ñ0Øœ 6Ñ*Ñ+ØœÐ#4Ñ5Ñ6Øœ <Ñ0Ñ1ØœÐ#8Ñ9Ñ:ØœÐ#3Ñ4Ñ5Øœ :Ñ.Ñ/Øœ ?Ñ3Ñ4Øœ =Ñ1Ñ2ðõ ð ûð%	ús!   ‚" ¢
C¬BCÃCÃCÃCc                 ód   • U R                  5       nUS   nUS   n[        R                  " X#4U-   6 $ )Nr4   r@   )r´  rv   Úpmem)r  ÚtÚrssÚvmss       r0   Úmemory_infoÚProcess.memory_info,  s9   € ð
 ×!Ñ!Ó#ˆØ�‰dˆØ�‰dˆÜ�xŠx˜#˜ a™Ð(Ð(r/   c                 ó¨   • U R                  5       n[        R                  " U R                  5      nU[	        5       -  n[
        R                  " X4-   6 $ rp   )r»  re   Úproc_memory_ussrÍ   rq   rv   Úpfullmem)r  Ú	basic_memÚusss      r0   Úmemory_full_infoÚProcess.memory_full_info6  sD   € à×$Ñ$Ó&ˆ	Ü×"Ò" 4§8¡8Ó,ˆØŒ{‹}ÑˆÜ�|Š|˜Y¨Ñ/Ð0Ð0r/   c              #   ó  #   •  [         R                  " U R                  5      nU H"  u  p#pE[        U5      n[	        U5      nX#XE4v •  M$     g ! [
         a&  n[        X`R                  U R                  5      UeS nAff = f7frp   )re   Úproc_memory_mapsrÍ   rn   Úhexr;  rf  r  )r  ÚrawÚaddrÚpermri   r¹  r@  s          r0   Úmemory_mapsÚProcess.memory_maps=  sy   é € ð
	.Ü×'Ò'¨¯©Ó1ˆCó *-Ñ%�˜DÜ'¨Ó-�Ü˜4“y�Ø 4Ð-Ô-ò *-øô ó 	Fô " #§x¡x°·±Ó<À#ÐEûð	Füs'   ‚B „ A ¤)B Á
A=Á!A8Á8A=Á=B c                 óB   • [         R                  " U R                  5      $ rp   )re   Ú	proc_killrÍ   r   s    r0   ÚkillÚProcess.killJ  s   € ä�~Š~˜dŸh™hÓ'Ð'r/   c                 ó  • U[         R                  :X  a!  [        R                  " U R                  5        g U[         R
                  [         R                  1;   a"  [        R                  " U R                  U5        g Sn[        U5      e)NzPonly SIGTERM, CTRL_C_EVENT and CTRL_BREAK_EVENT signals are supported on Windows)
ÚsignalÚSIGTERMre   rÍ  rÍ   ÚCTRL_C_EVENTÚCTRL_BREAK_EVENTrh   rÎ  Ú
ValueError)r  Úsigr:  s      r0   Úsend_signalÚProcess.send_signalN  s_   € à”&—.‘.Ó Ü�NŠN˜4Ÿ8™8Õ$Ø”V×(Ñ(¬&×*AÑ*AÐBÓBÜ�GŠG�D—H‘H˜cÕ"ð+ð ô ˜S“/Ð!r/   Nc                 óz  • Uc  [         R                  nO[        US-  5      n[        [        S[        R                  5      nUb
  U" 5       U-   OS n [         R
                  " U R                  U5      nSn [        U R                  5      (       d  U$ U(       a)  U" 5       U:¼  a  [        XR                  U R                  S9e[        R                  " U5        [        US-  S5      nMs  ! [         R                   a&  n[        XR                  U R                  5      UeS nAf[         R                   a    S n NÆf = f)Niè  Ú	monotonicru  rd  r4   rw  )re   ÚINFINITEr†   Úgetattrrý   Ú	proc_waitrÍ   r	   r  ÚTimeoutAbandonedÚ
pid_existsrz  r{  )r  ÚtimeoutÚcext_timeoutÚtimerÚstop_atÚ	exit_coder@  r|  s           r0   ÚwaitÚProcess.wait[  s  € à‰?ÜŸ=™=‰Lô ˜w¨™~Ó.ˆLäœ˜k¬4¯9©9Ó5ˆØ'.Ñ':‘%“'˜GÒ#Àˆð	ô Ÿš t§x¡x°Ó>ˆIð& ˆØÜ˜dŸh™h×'Ñ'Ø Ð Þ™5›7 gÓ-Ü$ W·(±(ÀÇÁÑLÐLÜ�JŠJ�uÔÜ˜ ™	 4Ó(ˆEñ øô' ×"Ñ"ó 	Iä  ¯(©(°D·J±JÓ?ÀSÐHûÜ×$Ñ$ó 		ð ŠIð		ús   Á!C) Ã)D:Ã=!DÄD:Ä9D:c                 óv   • U R                   S;   a  g[        R                  " U R                   5      u  pU SU 3$ )N¾   r   r;   zNT AUTHORITY\SYSTEMr_   )rÍ   re   Úproc_username)r  Údomainr£   s      r0   r.  ÚProcess.username†  s8   € à�8‰8�vÓØ)Ü×)Ò)¨$¯(©(Ó3‰ˆØ�˜˜D˜6Ð"Ð"r/   c                 óø   •  [         R                  " U R                  5      u  p#nU$ ! [         aH  n[	        U5      (       a2  U(       a  e [        S5        U R                  5       [        S      s S nA$ e S nAff = f)Nz*attempting create_time() fallback (slower)r:   )re   Ú
proc_timesrÍ   r;  r<  r   rˆ  r“  )r  Ú	fast_onlyÚ_userÚ_systemÚcreatedr@  s         r0   r:   ÚProcess.create_time�  sg   € ð		Ü&*§o¢o°d·h±hÓ&?Ñ#ˆE˜GØˆNøÜó 	Ü  ×%Ñ%ÞØÜÐBÔCØ—‘Ó(¬°=Ñ)AÑBÕBØûð	ús    ‚$' §
A9±<A4Á-A9Á3A4Á4A9c                 ó6   • U R                  5       [        S      $ )Nr<   )rˆ  r“  r   s    r0   r<   ÚProcess.num_threadsœ  s   € à�‰Ó ¤¨=Ñ!9Ñ:Ð:r/   c                 ó²   • [         R                  " U R                  5      n/ nU H.  u  p4n[        R                  " X4U5      nUR                  U5        M0     U$ rp   )re   Úproc_threadsrÍ   rv   Úpthreadr©   )r  r™   r  Ú	thread_idÚutimeÚstimeÚntuples          r0   ÚthreadsÚProcess.threads   sM   € ä×#Ò# D§H¡HÓ-ˆØˆÛ'.Ñ#ˆI˜eÜ—[’[ °5Ó9ˆFØ�N‰N˜6Ö"ñ (/ð ˆr/   c                 ó0  •  [         R                  " U R                  5      u  pn[        R                  " XSS5      $ ! [         aN  n[	        U5      (       d  e [        S5        U R                  5       nU[        S      nU[        S      n S nANkS nAff = f)Nz(attempting cpu_times() fallback (slower)r8   r9   r„   )
re   rí  rÍ   r;  r<  r   rˆ  r“  rv   Ú	pcputimes)r  r£   r¤   Ú_createdr@  r³  s         r0   rœ   ÚProcess.cpu_times©  s†   € ð	4Ü%)§_¢_°T·X±XÓ%>Ñ"ˆD˜(ô �}Š}˜T¨3°Ó4Ð4øô ó 	4Ü$ S×)Ñ)ØÜÐ<Ô=Ø—?‘?Ó$ˆDØœ	 +Ñ.Ñ/ˆDØœ) MÑ2Ñ3�Fûð	4ús   ‚#= ½
BÁABÂBc                 óF   • [         R                  " U R                  S5        g )NT©re   Úproc_suspend_or_resumerÍ   r   s    r0   ÚsuspendÚProcess.suspend·  s   € ä×#Ò# D§H¡H¨dÕ3r/   c                 óF   • [         R                  " U R                  S5        g )NFr  r   s    r0   ÚresumeÚProcess.resume»  s   € ä×#Ò# D§H¡H¨eÕ4r/   c                 óà   • U R                   S;   a   [        U R                   U R                  5      e[        R                  " U R                   5      n[
        R                  R                  U5      $ )Nrè  )rÍ   r   r  re   Úproc_cwdrh   ri   Únormpath)r  ri   s     r0   ÚcwdÚProcess.cwd¿  sN   € ð �8‰8�vÓÜ˜tŸx™x¨¯©Ó4Ð4ô �}Š}˜TŸX™XÓ&ˆÜ�w‰w×Ñ Ó%Ð%r/   c                 ó,  • U R                   S;   a  / $ [        5       n[        R                  " U R                   5      nU HH  n[	        U5      n[        U5      (       d  M   [        R                  " US5      nUR                  U5        MJ     [        U5      $ )Nrè  r%   )
rÍ   rÏ   re   Úproc_open_filesrn   r   rv   Ú	popenfilerÑ   rÒ   )r  rª   Úraw_file_namesÚfilerû  s        r0   Ú
open_filesÚProcess.open_filesÉ  sv   € à�8‰8�vÓØˆIÜ‹eˆô
 ×-Ò-¨d¯h©hÓ7ˆÛ"ˆDÜ# DÓ)ˆDÜ˜T×"Ó"ÜŸš t¨RÓ0�Ø—‘˜–ñ	 #ô
 �C‹yÐr/   c                 ó(   • [        XR                  S9$ )N)rÔ   )rÎ   rÍ   )r  rÓ   s     r0   rÎ   ÚProcess.net_connectionsÚ  s   € ä˜t¯(©(Ñ3Ð3r/   c                 ó\   • [         R                  " U R                  5      n[        U5      nU$ rp   )re   Úproc_priority_getrÍ   r'   ©r  Úvalues     r0   Únice_getÚProcess.nice_getÞ  s$   € ä×&Ò& t§x¡xÓ0ˆÜ˜“ˆØˆr/   c                 óD   • [         R                  " U R                  U5      $ rp   )re   Úproc_priority_setrÍ   r  s     r0   Únice_setÚProcess.nice_setä  s   € ä×%Ò% d§h¡h°Ó6Ð6r/   c                 ó\   • [         R                  " U R                  5      n[        U5      nU$ rp   )re   Úproc_io_priority_getrÍ   r2   r”  s     r0   Ú
ionice_getÚProcess.ionice_getè  s$   € ä×'Ò'¨¯©Ó1ˆÜ˜‹oˆØˆ
r/   c                 ó  • U(       a  Sn[        U5      eU[        R                  [        R                  [        R                  [        R
                  1;  a  U S3n[        U5      e[        R                  " U R                  U5        g )Nz&value argument not accepted on Windowsz is not a valid priority)
Ú	TypeErrorr2   r   r   r   r   rÕ  re   Úproc_io_priority_setrÍ   )r  Úioclassr  r:  s       r0   Ú
ionice_setÚProcess.ionice_setî  sr   € æØ:ˆCÜ˜C“.Ð ØÜ×%Ñ%Ü×!Ñ!Ü×$Ñ$Ü×"Ñ"ð	
ó 
ð �IÐ5Ð6ˆCÜ˜S“/Ð!Ü×!Ò! $§(¡(¨GÕ4r/   c           	      óx  •  [         R                  " U R                  5      n[        R                  " U6 $ ! [         az  n[	        U5      (       d  e [        S5        U R                  5       nU[        S      U[        S      U[        S      U[        S      U[        S      U[        S      4n S nAN’S nAff = f)Nz*attempting io_counters() fallback (slower)r>   r?   rA   rC   rE   rG   )
re   Úproc_io_countersrÍ   r;  r<  r   rˆ  r“  rv   Úpio)r  rª   r@  r³  s       r0   Úio_countersÚProcess.io_countersý  s·   € ð	Ü×'Ò'¨¯©Ó1ˆCô �wŠw˜ˆ}Ðøô ó 	Ü$ S×)Ñ)ØÜÐ>Ô?Ø—?‘?Ó$ˆDà”Y˜{Ñ+Ñ,Ø”Y˜{Ñ+Ñ,Ø”Y˜{Ñ+Ñ,Ø”Y˜{Ñ+Ñ,Ø”YÐ0Ñ1Ñ2Ø”YÐ0Ñ1Ñ2ð�Cûð	ús   ‚ 5 µ
B9¿A0B4Â4B9c                 ó�   • [         R                  " U R                  5      nU(       a  [        R                  $ [        R
                  $ rp   )re   Úproc_is_suspendedrÍ   r   ÚSTATUS_STOPPEDÚSTATUS_RUNNING)r  Ú	suspendeds     r0   rÜ   ÚProcess.status  s1   € ä×*Ò*¨4¯8©8Ó4ˆ	ÞÜ×)Ñ)Ð)ä×)Ñ)Ð)r/   c                 óX   • S n[         R                  " U R                  5      nU" U5      $ )Nc                 ób   • [        S5       Vs/ s H  nSU-  U -  (       d  M  UPM     sn$ s  snf )Né@   r   )rx  )rš   Úis     r0   Úfrom_bitmaskÚ.Process.cpu_affinity_get.<locals>.from_bitmask  s(   € Ü$ RœyÓ9šy˜!¨Q°!©V°q­L—A™yÑ9Ð9ùÒ9s   Ž,£,)re   Úproc_cpu_affinity_getrÍ   )r  r;  Úbitmasks      r0   Úcpu_affinity_getÚProcess.cpu_affinity_get  s(   € ò	:ô ×,Ò,¨T¯X©XÓ6ˆÙ˜GÓ$Ð$r/   c                 ó2  • S n[        [        [        [        5       5      5      5      nU H@  nXC;  d  M
  [	        U[
        5      (       d  SU< S3n[        U5      eSU< 3n[        U5      e   U" U5      n[        R                  " U R                  U5        g )Nc                 ó\   • U (       d  SU < 3n[        U5      eSnU  H  nUSU-  -  nM     U$ )Nzinvalid argument r   r4   )rÕ  )Úlsr:  ÚoutÚbs       r0   Ú
to_bitmaskÚ,Process.cpu_affinity_set.<locals>.to_bitmask"  s<   € ÞØ)¨"©Ð0�Ü  “oÐ%ØˆCÛ�Ø�q˜!‘t‘’ñ àˆJr/   zinvalid CPU z; an integer is required)rÒ   rx  rg   rŸ   r�   r†   r'  rÕ  re   Úproc_cpu_affinity_setrÍ   )r  r  rF  ÚallcpusÚcpur:  r>  s          r0   Úcpu_affinity_setÚProcess.cpu_affinity_set   s‹   € ò	ô ”uœS¤£Ó1Ó2Ó3ˆÛˆCØÕ!Ü! #¤s×+Ñ+Ø(¨©Ð/GÐH�CÜ# C›.Ð(Ø$ S¡GÐ,�Ü  “oÐ%ñ ñ ˜UÓ#ˆÜ×"Ò" 4§8¡8¨WÕ5r/   c                 óÞ   •  [         R                  " U R                  5      $ ! [         a@  n[	        U5      (       a*  [        S5        U R                  5       [        S      s S nA$ e S nAff = f)Nz*attempting num_handles() fallback (slower)r6   )re   Úproc_num_handlesrÍ   r;  r<  r   rˆ  r“  r¥  s     r0   r6   ÚProcess.num_handles:  sZ   € ð	Ü×(Ò(¨¯©Ó2Ð2øÜó 	Ü  ×%Ñ%ÜÐBÔCØ—‘Ó(¬°=Ñ)AÑBÕBØûð		ús    ‚" ¢
A,¬4A'Á A,Á&A'Á'A,c                 ód   • U R                  5       [        S      n[        R                  " US5      $ )Nr7   r   )rˆ  r“  rv   Úpctxsw)r  r7   s     r0   Únum_ctx_switchesÚProcess.num_ctx_switchesD  s)   € à—‘Ó(¬°>Ñ)BÑCˆä�zŠz˜,¨Ó*Ð*r/   )r  r„  rÍ   rp   )F)Úinet).r*   r+   r,   r-   r[  Ú	__slots__r  r‹  r�  r   rˆ  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?  rK  r6   rR  r.   r)   r/   r0   r‚  r‚  ½  s“  † Ù;â3€Iòò&ò(ð ñó ðò
,ð Øñó ó ðð" Øñ=ó ó ð=ð Øñ&ó ó ð&ò@òð. ñ)ó ð)ð ñ1ó ð1ò.ð ñ(ó ð(ð ñ
"ó ð
"ð ó()ó ð()ðT ñ#ó ð#ð óó ðð ñ;ó ð;ð ñó ðð ñ5ó ð5ð ñ4ó ð4ð ñ5ó ð5ð Øñ&ó ó ð&ð ñó ðð  ó4ó ð4ð ñó ðð
 ñ7ó ð7ð ñó ðð
 ñ5ó ð5ð ñó ðð$ ñ*ó ð*ð ñ%ó ð%ð ñ6ó ð6ð2 ñó ðð ñ+ó ó+r/   r‚  r)   )r%   )NN)zr[  r\  Úenumro  rh   rÑ  ÚsysÚ	threadingrý   rà   r   r   rv   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   re   ÚImportErrorr@  ÚstrÚlowerrb   Úgetwindowsversionr:  ÚRuntimeErrorÚ__extra__all__r    ry  Úbuiltin_module_namesrœ  ÚIntEnumr$   r!   ÚMIB_TCP_STATE_ESTABÚCONN_ESTABLISHEDÚMIB_TCP_STATE_SYN_SENTÚCONN_SYN_SENTÚMIB_TCP_STATE_SYN_RCVDÚCONN_SYN_RECVÚMIB_TCP_STATE_FIN_WAIT1ÚCONN_FIN_WAIT1ÚMIB_TCP_STATE_FIN_WAIT2ÚCONN_FIN_WAIT2ÚMIB_TCP_STATE_TIME_WAITÚCONN_TIME_WAITÚMIB_TCP_STATE_CLOSEDÚ
CONN_CLOSEÚMIB_TCP_STATE_CLOSE_WAITÚCONN_CLOSE_WAITÚMIB_TCP_STATE_LAST_ACKÚCONN_LAST_ACKÚMIB_TCP_STATE_LISTENÚCONN_LISTENÚMIB_TCP_STATE_CLOSINGÚCONN_CLOSINGÚMIB_TCP_STATE_DELETE_TCBÚPSUTIL_CONN_NONEÚ	CONN_NONErÐ   r'   ÚglobalsrW  Ú__members__r2   r2  r“  Ú	lru_cachern   rq   r‚   rŒ   Ú	heap_infoÚ	heap_trimÚdisk_io_countersr“   r–   rœ   rŸ   r­   r¯   r±   r¸   rÉ   ÚLockrÊ   rÇ   rÄ   rÎ   rá   rì   rî   rñ   r   r  r  r   r   r
  Úpidsrß  r­  r<  rf  rr  r€  r‚  r)   r/   r0   Ú<module>r‚     sS  ðñ
 'ã Û Û Û 	Û Û 
Û Û å Ý Ý Ý !Ý "Ý #Ý Ý #Ý Ý "Ý Ý +Ý (Ý "Ý 8Ý 8Ý 0Ý 0Ý 2Ý 4ðÝ)ò*
€ð$ €ØÐ Ø�S×-Ñ-Ñ-€à—’˜_¨y¸"¨oÓ>€Ø
×
Ñ
€ð 	×Ñ˜g×6Ñ6Ø×Ñ ×!6Ñ!6Ø×Ñ ×!6Ñ!6Ø× Ñ  '×"8Ñ"8Ø× Ñ  '×"8Ñ"8Ø× Ñ  '×"8Ñ"8Ø×Ñ˜w×1Ñ1Ø×!Ñ! 7×#:Ñ#:Ø×Ñ ×!6Ñ!6Ø×Ñ˜w×2Ñ2Ø×Ñ × 4Ñ 4Ø×!Ñ! ?Ø×Ñ˜7×,Ñ,ð€ô"6ˆt�|‰|ô 6ñ ƒ	× Ñ �×%Ñ%Ô &ô�—‘ô ñ ƒ	× Ñ �×'Ñ'Ô (áò Ùðáðñ ðñ ð	ñ
 ðñ ðñ ðñ ðñ ðñ ðñ ðñ ðñ ðñ ðñ 
ðñ  ð!ñ" ð#ñ$ ð%ñ& ð'ñ( ð)ñ* ð+ñ, ð-€	ð> ×Ò˜SÑ!ñ0ó "ð0ð* 	ñó 	ðò	8ò7ð6 �N‰N€	Ø�N‰N€	ð ×(Ñ(Ð ò6ò0òòò$ò
"ò
Nò:ð Ð Ø�ŠÓ€ò7òô,ò.	ò"òò:ð2 €òò ò 1ò÷}ñ }ðX ‡y�y€Ø�_‰_€
Ø�=‰=€òôò
ò÷8K+ò K+øðm ó áˆC‹�‰Ó×#Ñ#Ð$5×6Ñ6Ø×!Ò!Ó# AÑ&¨Ó*ð DˆØÐKÑKˆØÐ)Ñ)ˆÙ˜3Ó SÐ(àûðús   ÂN ÎO$ÎAOÏO$