§
    xÅj>`  ã                   ó.  — d 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 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 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 ddlmZ ddlmZ ddlmZ ddlmZ g d¢Z ej        ¦   «         Zej         Z ej!        dk    Z"dZ#dZ$ej%        ej&        ej'        ej(        ej)        ej*        ej+        ej,        ej-        ej.        ej/        ej(        ej0        ej1        iZ2ej3        ej4        ej5        ej6        ej7        ej8        ej9        ej:        ej;        ej<        ej=        ej>        ej?        ej@        ejA        ejB        ejC        ejD        ejE        ejF        ejG        ejH        ejI        ejJ        ejK        e#ejL        e$iZM eNddddddddd d!d"d#¬$¦  «        ZOd%„ ZPd&„ ZQd'„ ZRd(„ ZSd)„ ZTd*„ ZUd+„ ZVejW        ZWejX        ZXd8d-„ZYejZ        ZZej[        Z[d9d/„Z\d0„ Z]d1„ Z^d2„ Z_d3„ Z`d4„ Zad5„ Zb G d6„ d7¦  «        ZcdS ):z'Sun OS Solaris platform implementation.é    N)Ú
namedtuple)ÚAF_INETé   )Ú_common)Ú_ntuples)Ú_psposix)Ú_psutil_sunos)ÚAF_INET6)ÚENCODING)ÚAccessDenied)ÚNoSuchProcess)ÚZombieProcess)Údebug)Úget_procfs_path)Úisfile_strict)Úmemoize_when_activated)Úsockfam_to_enum)Úsocktype_to_enum)Úusage_percent)Ú	CONN_IDLEÚ
CONN_BOUNDÚPROCFS_PATHl        ÚIDLEÚBOUNDé   é   é   é   é   é   é   é	   é
   é   )ÚppidÚrssÚvmsÚcreate_timeÚniceÚnum_threadsÚstatusÚttynrÚuidÚeuidÚgidÚegidc                  óÔ   — t          j        d¦  «        t          z  } t          j        d¦  «        t          z  x}}| |z
  }t          || d¬¦  «        }t	          j        | ||||¦  «        S )zReport virtual memory metrics.ÚSC_PHYS_PAGESÚSC_AVPHYS_PAGESr   ©Úround_)ÚosÚsysconfÚ	PAGE_SIZEr   ÚntpÚsvmem)ÚtotalÚfreeÚavailÚusedÚpercents        ú@C:\Projects\Historical\venv\Lib\site-packages\psutil/_pssunos.pyÚvirtual_memoryrA   `   sg   € õ ŒJ�Ñ'Ô'­)Ñ3€Eå”:Ð/Ñ0Ô0µ9Ñ<Ð<€Dˆ5Ø�4‰<€DÝ˜D %°Ð2Ñ2Ô2€GÝŒ9�U˜E 7¨D°$Ñ7Ô7Ð7ó    c            	      ó<  — t          j        ¦   «         \  } }t          j        ddt          j        d         › �ddgt          j        ¬¦  «        }|                     ¦   «         \  }}|                     t          j
        j        ¦  «        }|j        dk    rd|j        › d	�}t          |¦  «        ‚|                     ¦   «                              d
¦  «        dd…         }|sd}t          |¦  «        ‚dx}}|D ]g}	|	                     ¦   «         }	|	dd…         \  }
}|t!          t!          |
¦  «        dz  ¦  «        z  }|t!          t!          |¦  «        dz  ¦  «        z  }Œh||z
  }t#          ||d¬¦  «        }t%          j        ||||| t(          z  |t(          z  ¦  «        S )zReport swap memory metrics.z/usr/bin/envzPATH=/usr/sbin:/sbin:ÚPATHÚswapz-l)Ústdoutr   z'swap -l' failed (retcode=ú)ú
r   Nzno swap device(s) configuredr   r   i   r4   )ÚcextÚswap_memÚ
subprocessÚPopenr6   ÚenvironÚPIPEÚcommunicateÚdecodeÚsysrF   ÚencodingÚ
returncodeÚRuntimeErrorÚstripÚsplitÚintr   r9   Ússwapr8   )ÚsinÚsoutÚprF   Ú_ÚmsgÚlinesr;   r<   ÚlineÚtÚfr>   r?   s                 r@   Úswap_memoryrb   k   sž  € å”‘”�I€Cˆõ 	ÔàØ8¥B¤J¨vÔ$6Ð8Ð8ØØð		
õ Œð	ñ 	ô 	€Að —’‘”�I€FˆAØ�]Š]�3œ:Ô.Ñ/Ô/€FØ„|�qÒÐØ:¨1¬<Ð:Ð:Ð:ˆÝ˜3ÑÔÐà�LŠL‰NŒN× Ò  Ñ&Ô& q r rÔ*€EØð  Ø,ˆÝ˜3ÑÔÐØÐ€EˆDØð "ð "ˆØ�zŠz‰|Œ|ˆØ�A�a�CŒy‰ˆˆ1Ø••S˜‘V”V˜c‘\Ñ"Ô"Ñ"ˆØ••C˜‘F”F˜S‘LÑ!Ô!Ñ!ˆˆØ�4‰<€DÝ˜D %°Ð2Ñ2Ô2€GÝŒ9Øˆt�T˜7 C­)¡O°T½IÑ5Eñô ð rB   c                  óf   — t          j        ¦   «         } t          j        d„ t	          | Ž D ¦   «         Ž S )z.Return system-wide CPU times as a named tuple.c                 ó,   — g | ]}t          |¦  «        ‘ŒS © )Úsum©Ú.0Úxs     r@   ú
<listcomp>zcpu_times.<locals>.<listcomp>œ   s   € Ð5Ð5Ð5 a�3˜q™6œ6Ð5Ð5Ð5rB   )rI   Úper_cpu_timesr9   Ú	scputimesÚzip©Úrets    r@   Ú	cpu_timesrp   ™   s0   € å
Ô
Ñ
Ô
€CÝŒ=Ð5Ð5­3°¨9Ð5Ñ5Ô5Ð6Ð6rB   c                  ó@   — t          j        ¦   «         } d„ | D ¦   «         S )z6Return system per-CPU times as a list of named tuples.c                 ó*   — g | ]}t          j        |Ž ‘ŒS re   )r9   rl   rg   s     r@   rj   z!per_cpu_times.<locals>.<listcomp>¢   s   € Ð+Ð+Ð+ !�CŒM˜1ÐÐ+Ð+Ð+rB   )rI   rk   rn   s    r@   rk   rk   Ÿ   s$   € å
Ô
Ñ
Ô
€CØ+Ð+ sÐ+Ñ+Ô+Ð+rB   c                  óN   — 	 t          j        d¦  «        S # t          $ r Y dS w xY w)z0Return the number of logical CPUs in the system.ÚSC_NPROCESSORS_ONLNN)r6   r7   Ú
ValueErrorre   rB   r@   Úcpu_count_logicalrv   ¥   s:   € ðÝŒzÐ/Ñ0Ô0Ð0øÝð ð ð àˆtˆtðøøøs   ‚ –
$£$c                  ó(   — t          j        ¦   «         S )z-Return the number of CPU cores in the system.)rI   Úcpu_count_coresre   rB   r@   rx   rx   ®   s   € åÔÑ!Ô!Ð!rB   c                  ód   — t          j        ¦   «         \  } }}}d}t          j        | |||¦  «        S )z*Return various CPU stats as a named tuple.r   )rI   Ú	cpu_statsr9   Ú	scpustats)Úctx_switchesÚ
interruptsÚsyscallsÚ_trapsÚsoft_interruptss        r@   rz   rz   ³   s3   € å15´Ñ1AÔ1AÑ.€L�*˜h¨Ø€OÝŒ=˜ z°?ÀHÑMÔMÐMrB   Fc                 ó:  — g }t          j        ¦   «         }|D ]‚}|\  }}}}|dk    rd}| sC	 t          |¦  «        j        sŒ)n,# t          $ r}t          d|›d|› �¦  «         Y d}~ŒNd}~ww xY wt          j        ||||¦  «        }	|                     |	¦  «         Œƒ|S )zReturn system disk partitions.ÚnoneÚ z	skipping z: N)	rI   Údisk_partitionsÚ
disk_usager;   ÚOSErrorr   r9   Ú	sdiskpartÚappend)
ÚallÚretlistÚ
partitionsÚ	partitionÚdeviceÚ
mountpointÚfstypeÚoptsÚerrÚntuples
             r@   r„   r„   Ã   sæ   € ð €GÝÔ%Ñ'Ô'€JØð ð ˆ	Ø+4Ñ(ˆ�
˜F DØ�VÒÐØˆFØð 
	ðÝ! *Ñ-Ô-Ô3ð Øðøåð ð ð åÐ7 *Ð7Ð7°#Ð7Ð7Ñ8Ô8Ð8Ø����øøøøðøøøõ ”˜v z°6¸4Ñ@Ô@ˆØ�Š�vÑÔÐÐØ€Ns   ¬AÁ
A+ÁA&Á&A+éÿÿÿÿc           
      ó  — t           j        |          \  }}t          j        |¦  «        }t	          ¦   «         }|D ]À}|\  }}}	}
}}}||vrŒ|	|vrŒ|t
          t          hv r |
rt          j        |
Ž }
|rt          j        |Ž }t          |         }t          |¦  «        }t          |	¦  «        }	|dk    rt          j        |||	|
|||¦  «        }nt          j        |||	|
||¦  «        }|                     |¦  «         ŒÁt          |¦  «        S )z»Return socket connections.  If pid == -1 return system-wide
    connections (as opposed to connections opened by one process only).
    Only INET sockets are returned (UNIX are not).
    r“   )r   Ú	conn_tmaprI   Únet_connectionsÚsetr   r
   r9   ÚaddrÚTCP_STATUSESr   r   ÚsconnÚpconnÚaddÚlist)ÚkindÚ_pidÚfamiliesÚtypesÚrawlistro   ÚitemÚfdÚfamÚtype_ÚladdrÚraddrr+   ÚpidÚnts                  r@   r–   r–   æ   s%  € õ
 Ô'¨Ô-�O€HˆeÝÔ" 4Ñ(Ô(€GÝ
‰%Œ%€CØð ð ˆØ48Ñ1ˆˆC�˜˜u f¨cØ�hÐÐØØ˜ÐÐØà•7�HÐ%Ð%Ð%Øð )Ýœ %Ð(�Øð )Ýœ %Ð(�Ý˜fÔ%ˆÝ˜cÑ"Ô"ˆÝ  Ñ'Ô'ˆØ�2Š:ˆ:Ý”˜2˜s E¨5°%¸ÀÑEÔEˆBˆBå”˜2˜s E¨5°%¸Ñ@Ô@ˆBØ�Š�‰ŒˆˆÝ�‰9Œ9ÐrB   c                  óö   — t          j        ¦   «         } |                      ¦   «         D ]P\  }}|\  }}}}t          t          d¦  «        rt	          j        |¦  «        }t          j        ||||d¦  «        | |<   ŒQ| S )z)Get NIC stats (isup, duplex, speed, mtu).Ú	NicDuplexrƒ   )rI   Únet_if_statsÚitemsÚhasattrr   r¬   r9   Ú	snicstats)ro   Únamer®   ÚisupÚduplexÚspeedÚmtus          r@   r­   r­     s   € å
Ô
Ñ
Ô
€CØ—y’y‘{”{ð @ð @‰ˆˆeØ#(Ñ ˆˆf�e˜SÝ•7˜KÑ(Ô(ð 	/ÝÔ& vÑ.Ô.ˆFÝ”M $¨°°s¸BÑ?Ô?ˆˆD‰	ˆ	Ø€JrB   c                  ó(   — t          j        ¦   «         S )z:The system boot time expressed in seconds since the epoch.)rI   Ú	boot_timere   rB   r@   r·   r·     s   € åŒ>ÑÔÐrB   c                  ó¼   — g } t          j        ¦   «         }d}|D ]A}|\  }}}}}}	|sŒ||v rd}t          j        |||||	¦  «        }
|                      |
¦  «         ŒB| S )z:Return currently connected users as a list of namedtuples.)z:0.0z:0Ú	localhost)rI   Úusersr9   Úsuserrˆ   )rŠ   r¢   r¹   r£   ÚuserÚttyÚhostnameÚtstampÚuser_processr©   rª   s              r@   rº   rº     s†   € à€GÝŒj‰lŒl€GØ€IØð 
ð 
ˆØ9=Ñ6ˆˆc�8˜V \°3ð ð 	ØØ�yÐ Ð Ø"ˆHÝŒY�t˜S (¨F°CÑ8Ô8ˆØ�Š�rÑÔÐÐØ€NrB   c                  óŠ   — t          ¦   «                              t          ¦  «        } d„ t          j        | ¦  «        D ¦   «         S )z7Returns a list of PIDs currently running on the system.c                 óT   — g | ]%}|                      ¦   «         ¯t          |¦  «        ‘Œ&S re   )ÚisdigitrW   rg   s     r@   rj   zpids.<locals>.<listcomp>5  s+   € Ð<Ð<Ð<�q°·	²	±´Ð<�C�‰FŒFÐ<Ð<Ð<rB   )r   Úencoder   r6   Úlistdir)Úpaths    r@   ÚpidsrÇ   2  s9   € åÑÔ×#Ò#¥HÑ-Ô-€DØ<Ð<�BœJ tÑ,Ô,Ð<Ñ<Ô<Ð<rB   c                 ó*   — t          j        | ¦  «        S )z&Check for the existence of a unix pid.)r   Ú
pid_exists)r©   s    r@   rÉ   rÉ   8  s   € åÔ˜sÑ#Ô#Ð#rB   c                 óF   ‡ — t          j        ‰ ¦  «        ˆ fd„¦   «         }|S )zƒCall callable into a try/except clause and translate ENOENT,
    EACCES and EPERM in NoSuchProcess or AccessDenied exceptions.
    c                 ó†  •— | j         | j        | j        }}}	  ‰| g|¢R i |¤ŽS # t          t          f$ r7}t          |¦  «        st          ||¦  «        |‚t          |||¦  «        |‚d }~wt          $ r}t          ||¦  «        |‚d }~wt          $ r.}|dk    r"dt          ¦   «         v rt          ||¦  «        |‚‚ ‚ d }~ww xY w©Nr   )r©   Ú_ppidÚ_nameÚFileNotFoundErrorÚProcessLookupErrorrÉ   r   r   ÚPermissionErrorr   r†   rÇ   )ÚselfÚargsÚkwargsr©   r%   r±   r‘   Úfuns          €r@   Úwrapperz wrap_exceptions.<locals>.wrapperB  s  ø€ àœ( D¤J°´
�4ˆTˆð	Ø�3�tÐ-˜dÐ-Ð-Ð- fÐ-Ð-Ð-øÝ!Õ#5Ð6ð 	:ð 	:ð 	:õ ˜c‘?”?ð 8Ý# C¨Ñ.Ô.°CÐ7Ý  T¨4Ñ0Ô0°cÐ9øøøøÝð 	3ð 	3ð 	3Ý˜s DÑ)Ô)¨sÐ2øøøøÝð 	ð 	ð 	Ø�aŠxˆxØ�™œ�;�;Ý& s¨DÑ1Ô1°sÐ:ØØøøøøð	øøøs,   ˜$ ¤C µ2A'Á'C Á4BÂC Â)B;Â;C )Ú	functoolsÚwraps)rÕ   rÖ   s   ` r@   Úwrap_exceptionsrÙ   =  s:   ø€ õ
 „_�SÑÔðð ð ð ñ Ôðð( €NrB   c                   óò  — e Zd ZdZg d¢Zd„ Zd„ Zd„ Zd„ Ze	e
d„ ¦   «         ¦   «         Ze	e
d„ ¦   «         ¦   «         Ze	e
d	„ ¦   «         ¦   «         Ze	d
„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         Ze	d„ ¦   «         ZeZe	d„ ¦   «         Ze	d„ ¦   «         Z e	d„ ¦   «         Z!d„ Z"e	d(d„¦   «         Z# e$d d!¦  «        Z% e$d d"¦  «        Z&e	d#„ ¦   «         Z'e	d$„ ¦   «         Z(e	d%„ ¦   «         Z)e	d)d'„¦   «         Z*d&S )*ÚProcessz1Wrapper class around underlying C implementation.)Ú_cacherÎ   rÍ   Ú_procfs_pathr©   c                 óV   — || _         d | _        d | _        t          ¦   «         | _        d S ©N)r©   rÎ   rÍ   r   rÝ   )rÒ   r©   s     r@   Ú__init__zProcess.__init___  s+   € ØˆŒØˆŒ
ØˆŒ
Ý+Ñ-Ô-ˆÔÐÐrB   c                 óL   — t          j        | j        › d| j        › �¦  «         dS )z+Raise NSP if the process disappeared on us.ú/N)r6   ÚstatrÝ   r©   ©rÒ   s    r@   Ú_assert_alivezProcess._assert_alivee  s-   € õ 	Œ�4Ô$Ð1Ð1 t¤xÐ1Ð1Ñ2Ô2Ð2Ð2Ð2rB   c                 ó¢   — | j                              | ¦  «         | j                             | ¦  «         | j                             | ¦  «         d S rß   )Ú_proc_name_and_argsÚcache_activateÚ_proc_basic_infoÚ
_proc_credrä   s    r@   Úoneshot_enterzProcess.oneshot_enterk  sL   € ØÔ ×/Ò/°Ñ5Ô5Ð5ØÔ×,Ò,¨TÑ2Ô2Ð2ØŒ×&Ò& tÑ,Ô,Ð,Ð,Ð,rB   c                 ó¢   — | j                              | ¦  «         | j                             | ¦  «         | j                             | ¦  «         d S rß   )rç   Úcache_deactivateré   rê   rä   s    r@   Úoneshot_exitzProcess.oneshot_exitp  sL   € ØÔ ×1Ò1°$Ñ7Ô7Ð7ØÔ×.Ò.¨tÑ4Ô4Ð4ØŒ×(Ò(¨Ñ.Ô.Ð.Ð.Ð.rB   c                 ó@   — t          j        | j        | j        ¦  «        S rß   )rI   Úproc_name_and_argsr©   rÝ   rä   s    r@   rç   zProcess._proc_name_and_argsu  s   € õ Ô& t¤x°Ô1BÑCÔCÐCrB   c                 ó.  — | j         dk    rCt          j                             | j        › d| j         › d�¦  «        st          | j         ¦  «        ‚t          j        | j         | j        ¦  «        }t          |¦  «        t          t          ¦  «        k    sJ ‚|S )Nr   râ   z/psinfo)
r©   r6   rÆ   ÚexistsrÝ   r   rI   Úproc_basic_infoÚlenÚproc_info_map)rÒ   ro   s     r@   ré   zProcess._proc_basic_infoz  s‰   € ð Œ8�qŠ=ˆ=¥¤§¢ØÔ Ð4Ð4 4¤8Ð4Ð4Ð4ñ"
ô "
ˆ=õ ˜tœxÑ(Ô(Ð(ÝÔ" 4¤8¨TÔ->Ñ?Ô?ˆÝ�3‰xŒx�3�}Ñ-Ô-Ò-Ð-Ð-Ð-Øˆ
rB   c                 ó@   — t          j        | j        | j        ¦  «        S rß   )rI   Ú	proc_credr©   rÝ   rä   s    r@   rê   zProcess._proc_cred…  s   € õ Œ~˜dœh¨Ô(9Ñ:Ô:Ð:rB   c                 ó6   — |                       ¦   «         d         S rÌ   ©rç   rä   s    r@   r±   zProcess.nameŠ  s   € ð ×'Ò'Ñ)Ô)¨!Ô,Ð,rB   c                 ó˜   — 	 t          j        | j        › d| j        › d�¦  «        S # t          $ r Y nw xY w|                      ¦   «          dS )Nrâ   z/path/a.outrƒ   )r6   ÚreadlinkrÝ   r©   r†   Úcmdlinerä   s    r@   ÚexezProcess.exe�  sa   € ð	Ý”; $Ô"3ÐKÐK°d´hÐKÐKÐKÑLÔLÐLøÝð 	ð 	ð 	ØˆDð	øøøð
 	�Š‰ŒˆØˆrs   ‚#& ¦
3²3c                 ó6   — |                       ¦   «         d         S )Nr   rù   rä   s    r@   rü   zProcess.cmdline›  s   € à×'Ò'Ñ)Ô)¨!Ô,Ð,rB   c                 ó@   — t          j        | j        | j        ¦  «        S rß   )rI   Úproc_environr©   rÝ   rä   s    r@   rM   zProcess.environŸ  ó   € åÔ  ¤¨4Ô+<Ñ=Ô=Ð=rB   c                 óL   — |                       ¦   «         t          d                  S )Nr(   ©ré   rõ   rä   s    r@   r(   zProcess.create_time£  ó   € à×$Ò$Ñ&Ô&¥}°]Ô'CÔDÐDrB   c                 óL   — |                       ¦   «         t          d                  S )Nr*   r  rä   s    r@   r*   zProcess.num_threads§  r  rB   c                 óL   — |                       ¦   «         t          d                  S )Nr)   r  rä   s    r@   Únice_getzProcess.nice_get«  s    € ð
 ×$Ò$Ñ&Ô&¥}°VÔ'<Ô=Ð=rB   c                 ó|   — | j         dv rt          | j         | j        ¦  «        ‚t          j        | j         |¦  «        S )N>   r   r   )r©   r   rÎ   rI   Úproc_priority_set)rÒ   Úvalues     r@   Únice_setzProcess.nice_set²  s:   € àŒ8�vÐÐõ
 ˜tœx¨¬Ñ4Ô4Ð4ÝÔ% d¤h°Ñ6Ô6Ð6rB   c                 ód   — |                       ¦   «         t          d                  | _        | j        S )Nr%   )ré   rõ   rÍ   rä   s    r@   r%   zProcess.ppid¼  s'   € à×*Ò*Ñ,Ô,­]¸6Ô-BÔCˆŒ
ØŒzÐrB   c                 ó   — 	 |                       ¦   «         \  }}}}}}n\# t          $ rO |                      ¦   «         t          d                  }|                      ¦   «         t          d                  }d }Y nw xY wt	          j        |||¦  «        S )Nr-   r.   ©rê   r   ré   rõ   r9   Úpuids)rÒ   ÚrealÚ	effectiveÚsavedr\   s        r@   ÚuidszProcess.uidsÁ  s•   € ð	Ø.2¯oªoÑ.?Ô.?Ñ+ˆD�)˜U A q¨!¨!øÝð 	ð 	ð 	Ø×(Ò(Ñ*Ô*­=¸Ô+?Ô@ˆDØ×-Ò-Ñ/Ô/µ¸fÔ0EÔFˆIØˆEˆEˆEð	øøøõ Œy˜˜y¨%Ñ0Ô0Ð0ó   ‚ žAA7Á6A7c                 ó   — 	 |                       ¦   «         \  }}}}}}n\# t          $ rO |                      ¦   «         t          d                  }|                      ¦   «         t          d                  }d }Y nw xY wt	          j        |||¦  «        S )Nr/   r0   r  )rÒ   r\   r  r  r  s        r@   ÚgidszProcess.gidsË  s•   € ð	Ø.2¯oªoÑ.?Ô.?Ñ+ˆAˆq�!�T˜9 e eøÝð 	ð 	ð 	Ø×(Ò(Ñ*Ô*­=¸Ô+?Ô@ˆDØ×-Ò-Ñ/Ô/µ¸fÔ0EÔFˆIØˆEˆEˆEð	øøøõ Œy˜˜y¨%Ñ0Ô0Ð0r  c                 óÎ   — 	 t          j        | j        | j        ¦  «        }n7# t          $ r*}|j        t
          j        k    r
t          sd}n‚ Y d }~nd }~ww xY wt          j	        |Ž S )N)ç        r  r  r  )
rI   Úproc_cpu_timesr©   rÝ   r†   ÚerrnoÚ	EOVERFLOWÚ	IS_64_BITr9   Ú	pcputimes)rÒ   Útimesr‘   s      r@   rp   zProcess.cpu_timesÕ  s{   € ð	ÝÔ'¨¬°$Ô2CÑDÔDˆEˆEøÝð 	ð 	ð 	ØŒy�EœOÒ+Ð+µIÐ+ð -��àð ����øøøøð	øøøõ Œ}˜eÐ$Ð$s   ‚" ¢
A¬ AÁAc                 ó@   — t          j        | j        | j        ¦  «        S rß   )rI   Úproc_cpu_numr©   rÝ   rä   s    r@   Úcpu_numzProcess.cpu_numç  r  rB   c                 ó@  — | j         }d}t          |                      ¦   «         t          d                  ¦  «        }|t          j        k    r:dD ]7}	 t          j        |› d| j        › d|› �¦  «        c S # t          $ r d}Y Œ4w xY w|r|  
                    ¦   «          d S d S )NFr,   )r   r   r   éÿ   râ   ú/path/T)rÝ   rÙ   ré   rõ   rI   ÚPRNODEVr6   rû   r©   rÏ   rå   )rÒ   Úprocfs_pathÚ
hit_enoentr½   ri   s        r@   ÚterminalzProcess.terminalë  sÒ   € àÔ'ˆØˆ
Ý˜d×3Ò3Ñ5Ô5µmÀGÔ6LÔMÑNÔNˆØ•$”,ÒÐØ#ð ð �ðÝœ;¨+Ð'KÐ'K¸¼Ð'KÐ'KÈÐ'KÐ'KÑLÔLÐLÐLÐLøÝ(ð ð ð Ø!%�JØ�Hðøøøð ð 	!Ø×ÒÑ Ô Ð Ð Ð ð	!ð 	!s   Á A4Á4BÂBc                 ó®   — | j         }	 t          j        |› d| j        › d�¦  «        S # t          $ r" t          j        |› d| j        › �¦  «         Y dS w xY w)Nrâ   z	/path/cwdrƒ   )rÝ   r6   rû   r©   rÏ   rã   )rÒ   r&  s     r@   ÚcwdzProcess.cwdú  sv   € ð Ô'ˆð	Ý”; +ÐCÐC°´ÐCÐCÐCÑDÔDÐDøÝ ð 	ð 	ð 	ÝŒG�{Ð/Ð/ T¤XÐ/Ð/Ñ0Ô0Ð0Ø�2�2ð	øøøs   ‰( ¨(AÁAc                 ó¬   — |                       ¦   «         }|t          d                  dz  }|t          d                  dz  }t          j        ||¦  «        S )Nr&   i   r'   )ré   rõ   r9   Úpmem)rÒ   ro   r&   r'   s       r@   Úmemory_infozProcess.memory_info  sM   € à×#Ò#Ñ%Ô%ˆØ•- Ô&Ô'¨$Ñ.ˆØ•- Ô&Ô'¨$Ñ.ˆÝŒx˜˜SÑ!Ô!Ð!rB   c                 ó‚   — |                       ¦   «         t          d                  }t                               |d¦  «        S )Nr+   ú?)ré   rõ   ÚPROC_STATUSESÚget)rÒ   Úcodes     r@   r+   zProcess.status  s3   € à×$Ò$Ñ&Ô&¥}°XÔ'>Ô?ˆå× Ò   sÑ+Ô+Ð+rB   c                 óâ  — | j         }g }t          j        |› d| j        › d�¦  «        }d}|D ]«}t	          |¦  «        }	 t          j        | j        ||¦  «        \  }}t          j        |||¦  «        }| 	                    |¦  «         Œ\# t          $ rC}	|	j        t          j        k    rt          sY d }	~	Œ‡|	j        t          j        k    rd}Y d }	~	Œ£‚ d }	~	ww xY w|r|                      ¦   «          |S )Nrâ   z/lwpFT)rÝ   r6   rÅ   r©   rW   rI   Úquery_process_threadr9   Úpthreadrˆ   r†   r  r  r  ÚENOENTrå   )
rÒ   r&  ro   Útidsr'  ÚtidÚutimeÚstimerª   r‘   s
             r@   ÚthreadszProcess.threads  s  € àÔ'ˆØˆÝŒz˜[Ð9Ð9¨4¬8Ð9Ð9Ð9Ñ:Ô:ˆØˆ
Øð 	ð 	ˆCÝ�c‘(”(ˆCðÝ#Ô8Ø”H˜c ;ñ ô  ‘��uõ& ”[  e¨UÑ3Ô3�Ø—
’
˜2‘”��øõ# ð ð ð Ø”9¥¤Ò/Ð/½	Ð/ð �H�H�H�Hà”9¥¤Ò,Ð,Ø!%�JØ�H�H�H�HØøøøøðøøøð$ ð 	!Ø×ÒÑ Ô Ð Øˆ
s#   ¿B	Â	
CÂCÂ4CÃCÃCc           	      óü  — g }d}| j         }|› d| j        › d�}t          j        |› d| j        › d�¦  «        D ]­}t          j                             ||¦  «        }t          j                             |¦  «        rl	 t          j        |¦  «        }t          |¦  «        r5| 	                    t          j        |t          |¦  «        ¦  «        ¦  «         Œ›# t          $ r d}Y Œ©w xY wŒ®|r|                      ¦   «          |S )NFrâ   z/pathú/fdT)rÝ   r©   r6   rÅ   rÆ   ÚjoinÚislinkrû   r   rˆ   r9   Ú	popenfilerW   rÏ   rå   )rÒ   rŠ   r'  r&  Úpathdirr¤   rÆ   Úfiles           r@   Ú
open_fileszProcess.open_files8  s!  € àˆØˆ
ØÔ'ˆØ Ð2Ð2 4¤8Ð2Ð2Ð2ˆÝ”* Ð;Ð;¨d¬hÐ;Ð;Ð;Ñ<Ô<ð 
	Eð 
	EˆBÝ”7—<’< ¨Ñ,Ô,ˆDÝŒw�~Š~˜dÑ#Ô#ð EðEÝœ; tÑ,Ô,�Dõ
 % TÑ*Ô*ð EØŸš¥s¤}°T½3¸r¹7¼7Ñ'CÔ'CÑDÔDÐDøøõ )ð ð ð Ø!%�JØ�HðøøøðEð ð 	!Ø×ÒÑ Ô Ð Øˆs   Á:CÃC"Ã!C"c              #   óˆ  K  — dt          |¦  «        g}t          j        |t          j        t          j        ¬¦  «        }|                     ¦   «         \  }}d„ ||fD ¦   «         \  }}|j        dk    rvd|                     ¦   «         v rt          | j        | j	        ¦  «        ‚d|                     ¦   «         v rt          | j        | j	        ¦  «        ‚|›d|› �}t          |¦  «        ‚|                     d¦  «        d	d
…         }t          |¦  «        D ]­\  }}	|	                     ¦   «         }	|	                     d¦  «        r|	                     dd	¦  «        d	         }
||d	z
                                ¦   «         }|dk    rt"          j        }n|dk    rt"          j        }nd}dt"          j        ||
dt*          j        fV — Œ®d
S )z<Get UNIX sockets used by process by parsing 'pfiles' output.Úpfiles)rF   Ústderrc              3   ó^   K  — | ](}|                      t          j        j        ¦  «        V — Œ)d S rß   )rP   rQ   rF   rR   rg   s     r@   ú	<genexpr>z,Process._get_unix_sockets.<locals>.<genexpr>V  sD   è è € ð 
ð 
Ø./ˆA�HŠH•S”ZÔ(Ñ)Ô)ð
ð 
ð 
ð 
ð 
ð 
rB   r   zpermission deniedzno such processz command error
rH   r   Nzsockname: AF_UNIXú ÚSOCK_STREAMÚ
SOCK_DGRAMr“   rƒ   )ÚstrrK   rL   rN   rO   rS   Úlowerr   r©   rÎ   r   rT   rV   Ú	enumerateÚlstripÚ
startswithrU   ÚsocketrJ  rK  ÚAF_UNIXr   Ú	CONN_NONE)rÒ   r©   Úcmdr[   rF   rF  r]   r^   Úir_   rÆ   Útypes               r@   Ú_get_unix_socketszProcess._get_unix_socketsM  s×  è è € ð �˜S™œÐ"ˆÝÔØ�
œµ
´ð
ñ 
ô 
ˆð Ÿš™œ‰ˆ�ð
ð 
Ø4:¸FÐ3Cð
ñ 
ô 
‰ˆ�ð Œ<˜1ÒÐØ" f§l¢l¡n¤nÐ4Ð4Ý" 4¤8¨T¬ZÑ8Ô8Ð8Ø  F§L¢L¡N¤NÐ2Ð2Ý# D¤H¨d¬jÑ9Ô9Ð9ØÐ4Ð4¨FÐ4Ð4ˆCÝ˜sÑ#Ô#Ð#à—’˜TÑ"Ô" 1 2 2Ô&ˆÝ  Ñ'Ô'ð 	Nð 	N‰GˆAˆtØ—;’;‘=”=ˆDØ�ŠÐ2Ñ3Ô3ð 	NØ—z’z # qÑ)Ô)¨!Ô,�Ø˜Q ™U”|×)Ò)Ñ+Ô+�Ø˜=Ò(Ð(Ý!Ô-�D�DØ˜\Ò)Ð)Ý!Ô,�D�Dà�DØ�6œ>¨4°°r½7Ô;LÐMÐMÐMÐMøð	Nð 	NrB   Úinetc                 óò   — t          || j        ¬¦  «        }|s#t          j        | j        › d| j        › �¦  «         |dv r7|                     d„ |                      | j        ¦  «        D ¦   «         ¦  «         |S )N)rŸ   râ   >   r‰   Úunixc                 ó*   — g | ]}t          j        |Ž ‘ŒS re   )r9   r›   )rh   Úconns     r@   rj   z+Process.net_connections.<locals>.<listcomp>~  s   € ÐOÐOÐO d•”˜DÐ!ÐOÐOÐOrB   )r–   r©   r6   rã   rÝ   ÚextendrW  )rÒ   rž   ro   s      r@   r–   zProcess.net_connectionso  sŽ   € å˜d¨¬Ð2Ñ2Ô2ˆð ð 	7åŒG�tÔ(Ð5Ð5¨4¬8Ð5Ð5Ñ6Ô6Ð6ð �?Ð"Ð"Ø�JŠJØOÐO¨d×.DÒ.DÀTÄXÑ.NÔ.NÐOÑOÔOñô ð ð ˆ
rB   Úmmapzpath rss anon lockedzaddr perms path rss anon lockedc           	      óL  — d„ }| j         }g }	 t          j        | j        |¦  «        }n6# t          $ r)}|j        t
          j        k    rt          sg cY d }~S ‚ d }~ww xY wd}|D ]ª}|\  }}	}
}}}} |||	¦  «        }|                     d¦  «        sb	 t          j
        |› d| j        › d|› �¦  «        }n?# t          $ r2}|j        t
          j        k    r|› d| j        › d|› �}d}n‚ Y d }~nd }~ww xY w|                     ||
||||f¦  «         Œ«|r|                      ¦   «          |S )Nc                 óÎ   — d                      t          | ¦  «        dd …                              d¦  «        t          |¦  «        dd …                              d¦  «        ¦  «        S )Nz{}-{}r   ÚL)ÚformatÚhexrU   )ÚstartÚends     r@   Útoaddrz#Process.memory_maps.<locals>.toaddr‡  sU   € Ø—>’>Ý�E‘
”
˜1˜2˜2”×$Ò$ SÑ)Ô)­3¨s©8¬8°A°B°B¬<×+=Ò+=¸cÑ+BÔ+Bñô ð rB   Fú[râ   r$  T)rÝ   rI   Úproc_memory_mapsr©   r†   r  r  r  rP  r6   rû   r6  rˆ   rå   )rÒ   rf  r&  rŠ   r¢   r‘   r'  r£   r˜   ÚaddrsizeÚpermr±   r&   ÚanonÚlockeds                  r@   Úmemory_mapszProcess.memory_maps…  s¨  € ð	ð 	ð 	ð
 Ô'ˆØˆð	ÝÔ+¨D¬H°kÑBÔBˆGˆGøÝð 	ð 	ð 	ØŒy�EœOÒ+Ð+µIÐ+ð �	�	�	�	�	�	àøøøøð	øøøð ˆ
Øð 	Bð 	BˆDØ<@Ñ9ˆD�(˜D $¨¨T°6Ø�6˜$ Ñ)Ô)ˆDØ—?’? 3Ñ'Ô'ð ðÝœ;¨+Ð'NÐ'N¸¼Ð'NÐ'NÈÐ'NÐ'NÑOÔO�D�DøÝð ð ð Ø”y¥E¤LÒ0Ð0ð #.ÐFÐF°´ÐFÐFÀÐFÐF˜Ø%)˜
˜
àð #˜
˜
˜
˜
øøøøðøøøð �NŠN˜D $¨¨c°4¸Ð@ÑAÔAÐAÐAØð 	!Ø×ÒÑ Ô Ð Øˆs8   Ž) ©
A³AÁAÁAÁAÂ!B3Â3
C/Â=(C*Ã*C/c                 ód   — t          t          j        | j        › d| j        › d�¦  «        ¦  «        S )Nrâ   r=  )rô   r6   rÅ   rÝ   r©   rä   s    r@   Únum_fdszProcess.num_fds´  s0   € å•2”: Ô!2ÐBÐB°T´XÐBÐBÐBÑCÔCÑDÔDÐDrB   c                 óX   — t          j        t          j        | j        | j        ¦  «        Ž S rß   )r9   ÚpctxswrI   Úproc_num_ctx_switchesr©   rÝ   rä   s    r@   Únum_ctx_switcheszProcess.num_ctx_switches¸  s&   € åŒzÝÔ'¨¬°$Ô2CÑDÔDð
ð 	
rB   Nc                 ó6   — t          j        | j        |¦  «        S rß   )r   Úwait_pidr©   )rÒ   Útimeouts     r@   ÚwaitzProcess.wait¾  s   € åÔ  ¤¨7Ñ3Ô3Ð3rB   )rX  rß   )+Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__rà   rå   rë   rî   rÙ   r   rç   ré   rê   r±   rý   rü   rM   r(   r*   r  r  r%   r  r  rp   r!  r(  r*  r-  Úmemory_full_infor+   r;  rC  rW  r–   r   Únt_mmap_groupedÚnt_mmap_extrm  ro  rs  rw  re   rB   r@   rÛ   rÛ   Z  s°  € € € € € Ø;Ð;àCÐCÐC€Ið.ð .ð .ð3ð 3ð 3ð-ð -ð -ð
/ð /ð /ð
 ØðDð Dñ Ôñ „_ðDð Øðð ñ Ôñ „_ðð Øð;ð ;ñ Ôñ „_ð;ð ð-ð -ñ „_ð-ð ð	ð 	ñ „_ð	ð ð-ð -ñ „_ð-ð ð>ð >ñ „_ð>ð ðEð Eñ „_ðEð ðEð Eñ „_ðEð ð>ð >ñ „_ð>ð ð7ð 7ñ „_ð7ð ðð ñ „_ðð ð1ð 1ñ „_ð1ð ð1ð 1ñ „_ð1ð ð%ð %ñ „_ð%ð" ð>ð >ñ „_ð>ð ð!ð !ñ „_ð!ð ð
ð 
ñ „_ð
ð ð"ð "ñ „_ð"ð #Ðàð,ð ,ñ „_ð,ð
 ðð ñ „_ððB ðð ñ „_ðð( Nð  Nð  NðD ðð ð ñ „_ðð$ !�j Ð)?Ñ@Ô@€OØ�*˜VÐ%FÑGÔG€Kàð,ð ,ñ „_ð,ð\ ðEð Eñ „_ðEð ð
ð 
ñ „_ð
ð
 ð4ð 4ð 4ñ „_ð4ð 4ð 4rB   rÛ   )F)r“   )dr{  r  r×   r6   rQ  rK   rQ   Úcollectionsr   r   rƒ   r   r   r9   r   r	   rI   r
   r   r   r   r   r   r   r   r   r   r   r   Ú__extra__all__Úgetpagesizer8   ÚAF_LINKÚmaxsizer  r   r   ÚSSLEEPÚSTATUS_SLEEPINGÚSRUNÚSTATUS_RUNNINGÚSZOMBÚSTATUS_ZOMBIEÚSSTOPÚSTATUS_STOPPEDÚSIDLÚSTATUS_IDLEÚSONPROCÚSWAITÚSTATUS_WAITINGr0  ÚTCPS_ESTABLISHEDÚCONN_ESTABLISHEDÚTCPS_SYN_SENTÚCONN_SYN_SENTÚTCPS_SYN_RCVDÚCONN_SYN_RECVÚTCPS_FIN_WAIT_1ÚCONN_FIN_WAIT1ÚTCPS_FIN_WAIT_2ÚCONN_FIN_WAIT2ÚTCPS_TIME_WAITÚCONN_TIME_WAITÚTCPS_CLOSEDÚ
CONN_CLOSEÚTCPS_CLOSE_WAITÚCONN_CLOSE_WAITÚTCPS_LAST_ACKÚCONN_LAST_ACKÚTCPS_LISTENÚCONN_LISTENÚTCPS_CLOSINGÚCONN_CLOSINGÚPSUTIL_CONN_NONErS  Ú	TCPS_IDLEÚ
TCPS_BOUNDr™   Údictrõ   rA   rb   rp   rk   rv   rx   rz   Údisk_io_countersr…   r„   Únet_io_countersÚnet_if_addrsr–   r­   r·   rº   rÇ   rÉ   rÙ   rÛ   re   rB   r@   ú<module>r¯     s=  ðð
 .Ð -à €€€Ø Ð Ð Ð Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø "Ð "Ð "Ð "Ð "Ð "Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø "Ð "Ð "Ð "Ð "Ð "Ø +Ð +Ð +Ð +Ð +Ð +Ø $Ð $Ð $Ð $Ð $Ð $Ø %Ð %Ð %Ð %Ð %Ð %Ø "Ð "Ð "Ð "Ð "Ð "à;Ð;Ð;€ð ˆDÔÑÔ€	Ø
Œ,€ØŒK˜%Ò€	à€	Ø€
ð 	„K�Ô(Ø„IˆwÔ%Ø„J�Ô%Ø„J�Ô&Ø„IˆwÔ"Ø„L�'Ô(Ø„J�Ô&ð€ð 	Ô˜7Ô3ØÔ˜Ô-ØÔ˜Ô-ØÔ˜'Ô0ØÔ˜'Ô0ØÔ˜Ô/ØÔ�gÔ(ØÔ˜'Ô1ØÔ˜Ô-ØÔ�gÔ)ØÔ�wÔ+ØÔ˜7Ô,Ø„N�IØ„O�Zð€ð" �Ø	
Ø	Ø	ØØ	
ØØØ
Ø	Ø	
Ø
Ø	ðñ ô €ð*8ð 8ð 8ð&ð &ð &ð\7ð 7ð 7ð,ð ,ð ,ðð ð ð"ð "ð "ð
Nð Nð Nð Ô(Ð ØÔ €
ðð ð ð ð> Ô&€ØÔ €ðð ð ð ð>ð ð ð ð ð ð
ð ð ð0=ð =ð =ð$ð $ð $ð
ð ð ð:f4ð f4ð f4ð f4ð f4ñ f4ô f4ð f4ð f4ð f4rB   