§
    ±ÛgLG  ã                   ó:  — 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gZ eed¦  «        Z eed¦  «        Z eed¦  «        Z ej        ¦   «         Z ej!        Z!ej"        e
j#        ej$        e
j%        ej&        e
j'        ej(        e
j'        ej)        e
j*        iZ+ej,        e
j-        ej.        e
j/        ej0        e
j1        ej2        e
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        iZD eEdddddddd¬¦  «        ZF eddd g¦  «        ZGeGZH ed!g d"¢¦  «        ZI ed#g d$¢¦  «        ZJd%„ ZKd&„ ZLd'„ ZMd(„ ZNd)„ ZOd*„ ZPd+„ ZQejR        ZRejS        ZSd8d-„ZTejU        ZUerejV        ZVd9d/„ZWd0„ ZXd1„ ZYd2„ ZZd3„ Z[d4„ Z\d5„ Z] G d6„ d7¦  «        Z^dS ):zAIX platform implementation.é    N)Ú
namedtupleé   )Ú_common)Ú_psposix)Ú_psutil_aix)Ú_psutil_posix)ÚNIC_DUPLEX_FULL)ÚNIC_DUPLEX_HALF)ÚNIC_DUPLEX_UNKNOWN)ÚAccessDenied)ÚNoSuchProcess)ÚZombieProcess)Úconn_to_ntuple)Úget_procfs_path)Úmemoize_when_activated)Úusage_percentÚPROCFS_PATHÚproc_threadsÚnet_io_countersÚproc_io_countersé   é   é   é   é   é   )ÚppidÚrssÚvmsÚcreate_timeÚniceÚnum_threadsÚstatusÚttynrÚpmemr   r   Ú	scputimes)ÚuserÚsystemÚidleÚiowaitÚsvmem)ÚtotalÚ	availableÚpercentÚusedÚfreec                  ó„   — t          j        ¦   «         \  } }}}}t          | |z
  | d¬¦  «        }t          | ||||¦  «        S )Nr   ©Úround_)ÚcextÚvirtual_memr   r+   )r,   Úavailr0   Ú_pinnedÚinuser.   s         úC/granary/edev/quantum/lib/python3.11/site-packages/psutil/_psaix.pyÚvirtual_memoryr:   g   sI   € Ý)-Ô)9Ñ);Ô);Ñ&€Eˆ5�$˜ Ý˜U U™]¨U¸1Ð=Ñ=Ô=€GÝ�˜˜w¨¨tÑ4Ô4Ð4ó    c                  ó’   — t          j        ¦   «         \  } }}}| |z
  }t          || d¬¦  «        }t          j        | |||||¦  «        S )z=Swap system memory as a (total, used, free, sin, sout) tuple.r   r2   )r4   Úswap_memr   r   Ússwap)r,   r0   ÚsinÚsoutr/   r.   s         r9   Úswap_memoryrA   m   sM   € å!œ]™_œ_Ñ€Eˆ4��dØ�4‰<€DÝ˜D %°Ð2Ñ2Ô2€GÝŒ=˜  d¨G°S¸$Ñ?Ô?Ð?r;   c                  ó\   — t          j        ¦   «         } t          d„ t          | Ž D ¦   «         Ž S )z.Return system-wide CPU times as a named tuple.c                 ó,   — g | ]}t          |¦  «        ‘ŒS © )Úsum©Ú.0Úxs     r9   ú
<listcomp>zcpu_times.<locals>.<listcomp>}   s   € Ð1Ð1Ð1 !•s˜1‘v”vÐ1Ð1Ð1r;   )r4   Úper_cpu_timesr&   Úzip©Úrets    r9   Ú	cpu_timesrN   z   s.   € å
Ô
Ñ
Ô
€CÝÐ1Ð1¥s¨C yÐ1Ñ1Ô1Ð2Ð2r;   c                  ó@   — t          j        ¦   «         } d„ | D ¦   «         S )z6Return system per-CPU times as a list of named tuples.c                 ó    — g | ]}t          |Ž ‘ŒS rD   )r&   rF   s     r9   rI   z!per_cpu_times.<locals>.<listcomp>ƒ   s   € Ð'Ð'Ð'˜a�I�qˆMÐ'Ð'Ð'r;   )r4   rJ   rL   s    r9   rJ   rJ   €   s$   € å
Ô
Ñ
Ô
€CØ'Ð' 3Ð'Ñ'Ô'Ð'r;   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)ÚosÚsysconfÚ
ValueErrorrD   r;   r9   Úcpu_count_logicalrV   †   s:   € ðÝŒzÐ/Ñ0Ô0Ð0øÝð ð ð àˆtˆtðøøøs   ‚ –
$£$c                  ó`  — g d¢} t          j        | t           j        t           j        ¬¦  «        }|                     ¦   «         \  }}d„ ||fD ¦   «         \  }}|j        dk    r| ›d|› �}t          |¦  «        ‚|                     ¦   «                              ¦   «         }t          |¦  «        pd S )N)Úlsdevz-CcÚ	processor©ÚstdoutÚstderrc              3   ó^   K  — | ](}|                      t          j        j        ¦  «        V — Œ)d S ©N©ÚdecodeÚsysr[   ÚencodingrF   s     r9   ú	<genexpr>z"cpu_count_cores.<locals>.<genexpr>“   s3   è è € ÐNÐN¸�a—h’h�sœzÔ2Ñ3Ô3ÐNÐNÐNÐNÐNÐNr;   r   z command error
)	Ú
subprocessÚPopenÚPIPEÚcommunicateÚ
returncodeÚRuntimeErrorÚstripÚ
splitlinesÚlen)ÚcmdÚpr[   r\   ÚmsgÚ
processorss         r9   Úcpu_count_coresrq   �   s­   € Ø
'Ð
'Ð
'€CÝÔ˜¥Z¤_½Z¼_ÐMÑMÔM€AØ—]’]‘_”_�N€FˆFØNÐN¸fÀfÐ=MÐNÑNÔN�N€FˆFØ„|�qÒÐØÐ0Ð0¨Ð0Ð0ˆÝ˜3ÑÔÐØ—’‘”×*Ò*Ñ,Ô,€JÝˆz‰?Œ?Ð"˜dÐ"r;   c                  ó`   — t          j        ¦   «         \  } }}}t          j        | |||¦  «        S )z*Return various CPU stats as a named tuple.)r4   Ú	cpu_statsr   Ú	scpustats)Úctx_switchesÚ
interruptsÚsoft_interruptsÚsyscallss       r9   rs   rs   ›   s6   € å:>¼.Ñ:JÔ:JÑ7€L�*˜o¨xÝÔØ�j /°8ñô ð r;   Fc                 óÞ   — g }t          j        ¦   «         }|D ]T}|\  }}}}|dk    rd}| st          |¦  «        j        sŒ(t	          j        ||||¦  «        }|                     |¦  «         ŒU|S )zReturn system disk partitions.ÚnoneÚ )r4   Údisk_partitionsÚ
disk_usager,   r   Ú	sdiskpartÚappend)	ÚallÚretlistÚ
partitionsÚ	partitionÚdeviceÚ
mountpointÚfstypeÚoptsÚntuples	            r9   r|   r|   ¬   s”   € ð €GÝÔ%Ñ'Ô'€JØð ð ˆ	Ø+4Ñ(ˆ�
˜F DØ�VÒÐØˆFØð 	õ ˜jÑ)Ô)Ô/ð ØÝÔ" 6¨:°v¸tÑDÔDˆØ�Š�vÑÔÐÐØ€Nr;   éÿÿÿÿc                 ó   — t           j        |          \  }}t          j        |¦  «        }g }|D ]O}|\  }}}	}
}}}||vrŒ|	|vrŒt	          |||	|
||t
          |dk    r|nd¬¦  «        }|                     |¦  «         ŒP|S )zˆReturn socket connections.  If pid == -1 return system-wide
    connections (as opposed to connections opened by one process only).
    r‰   N©Úpid)r   Ú	conn_tmapr4   Únet_connectionsr   ÚTCP_STATUSESr   )ÚkindÚ_pidÚfamiliesÚtypesÚrawlistrM   ÚitemÚfdÚfamÚtype_ÚladdrÚraddrr#   rŒ   Únts                  r9   rŽ   rŽ   Ì   s¹   € õ Ô'¨Ô-�O€HˆeÝÔ" 4Ñ(Ô(€GØ
€CØð ð ˆØ48Ñ1ˆˆC�˜˜u f¨cØ�hÐÐØØ˜ÐÐØÝØØØØØØÝØ˜r’z�z�� tð	
ñ 	
ô 	
ˆð 	�
Š
�2‰ŒˆˆØ€Jr;   c                  óº  — t           t          dœ} d„ t          ¦   «         D ¦   «         }i }|D �]-}t          j        |¦  «        }t          j        |¦  «        }d}d}t          j        dd|gt          j        t          j        ¬¦  «        }| 	                    ¦   «         \  }	}
d„ |	|
fD ¦   «         \  }	}
|j
        dk    rNt          j        d	|	¦  «        }|�7t          |                     d¦  «        ¦  «        }|                     d¦  «        }d                     |¦  «        }d|v }|                      |t"          ¦  «        }t%          j        |||||¦  «        ||<   �Œ/|S )z)Get NIC stats (isup, duplex, speed, mtu).)ÚFullÚHalfc                 ó   — h | ]
}|d          ’ŒS )r   rD   rF   s     r9   ú	<setcomp>znet_if_stats.<locals>.<setcomp>ê   s   € Ð*Ð*Ð*�aˆQˆqŒTÐ*Ð*Ð*r;   r{   r   z/usr/bin/entstatz-drZ   c              3   ó^   K  — | ](}|                      t          j        j        ¦  «        V — Œ)d S r^   r_   rF   s     r9   rc   znet_if_stats.<locals>.<genexpr>û   óD   è è € ð 
ð 
Ø./ˆA�HŠH•S”ZÔ(Ñ)Ô)ð
ð 
ð 
ð 
ð 
ð 
r;   z"Running: (\d+) Mbps.*?(\w+) DuplexNr   r   ú,Úrunning)r	   r
   Únet_if_addrsÚ
cext_posixÚ
net_if_mtuÚnet_if_flagsrd   re   rf   rg   rh   ÚreÚsearchÚintÚgroupÚjoinÚgetr   r   Ú	snicstats)Ú
duplex_mapÚnamesrM   ÚnameÚmtuÚflagsÚduplexÚspeedrn   r[   r\   Ú	re_resultÚoutput_flagsÚisups                 r9   Únet_if_statsrº   ç   st  € å)µ?ÐCÐC€JØ*Ð*�<™>œ>Ð*Ñ*Ô*€EØ
€CØð Nñ NˆÝÔ# DÑ)Ô)ˆÝÔ'¨Ñ-Ô-ˆð
 ˆØˆÝÔØ  tÐ,Ý”?Ý”?ð
ñ 
ô 
ˆð
 Ÿš™œ‰ˆ�ð
ð 
Ø4:¸FÐ3Cð
ñ 
ô 
‰ˆ�ð Œ<˜1ÒÐÝœ	Ø5°vñô ˆIð Ð$Ý˜IŸOšO¨AÑ.Ô.Ñ/Ô/�Ø"Ÿš¨Ñ+Ô+�à—x’x ‘”ˆØ˜EÐ!ˆØ—’ Õ(:Ñ;Ô;ˆÝÔ% d¨F°E¸3ÀÑMÔMˆˆD‰	‰	Ø€Jr;   c                  ó(   — t          j        ¦   «         S )z:The system boot time expressed in seconds since the epoch.)r4   Ú	boot_timerD   r;   r9   r¼   r¼     s   € åŒ>ÑÔÐr;   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)r4   Úusersr   Úsuserr   )r�   r”   r¾   r•   r'   ÚttyÚhostnameÚtstampÚuser_processrŒ   r›   s              r9   r¿   r¿     s†   € à€GÝŒj‰lŒl€GØ€IØð 
ð 
ˆØ9=Ñ6ˆˆc�8˜V \°3ð ð 	ØØ�yÐ Ð Ø"ˆHÝŒ]˜4  h°¸Ñ<Ô<ˆØ�Š�rÑÔÐÐØ€Nr;   c                  óV   — d„ t          j        t          ¦   «         ¦  «        D ¦   «         S )z7Returns a list of PIDs currently running on the system.c                 óT   — g | ]%}|                      ¦   «         ¯t          |¦  «        ‘Œ&S rD   )Úisdigitr«   rF   s     r9   rI   zpids.<locals>.<listcomp>1  s+   € ÐIÐIÐI�q¸Q¿YºY¹[¼[ÐI�C�‰FŒFÐIÐIÐIr;   )rS   Úlistdirr   rD   r;   r9   ÚpidsrÉ   /  s&   € àIÐI�BœJ¥Ñ'8Ô'8Ñ9Ô9ÐIÑIÔIÐIr;   c                 ó°   — t           j                             t           j                             t	          ¦   «         t          | ¦  «        d¦  «        ¦  «        S )z&Check for the existence of a unix pid.Úpsinfo)rS   ÚpathÚexistsr­   r   Ústrr‹   s    r9   Ú
pid_existsrÏ   4  s4   € åŒ7�>Š>�"œ'Ÿ,š,¥Ñ'8Ô'8½#¸c¹(¼(ÀHÑMÔMÑNÔNÐNr;   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w xY wr^   )
rŒ   Ú_ppidÚ_nameÚFileNotFoundErrorÚProcessLookupErrorrÏ   r   r   ÚPermissionErrorr   )ÚselfÚargsÚkwargsrŒ   r   r²   ÚerrÚfuns          €r9   Úwrapperz wrap_exceptions.<locals>.wrapper>  s¾   ø€ àœ( D¤J°´
�4ˆTˆð
	3Ø�3�tÐ-˜dÐ-Ð-Ð- fÐ-Ð-Ð-øÝ!Õ#5Ð6ð 	:ð 	:ð 	:õ ˜c‘?”?ð 8Ý# C¨Ñ.Ô.°CÐ7Ý  T¨4Ñ0Ô0°cÐ9øøøøÝð 	3ð 	3ð 	3Ý˜s DÑ)Ô)¨sÐ2øøøøð	3øøøs    ˜$ ¤B
µ2A'Á'B
Á4BÂB
)Ú	functoolsÚwraps)rÛ   rÜ   s   ` r9   Úwrap_exceptionsrß   9  s:   ø€ õ
 „_�SÑÔð3ð 3ð 3ð 3ñ Ôð3ð €Nr;   c                   óv  — e Zd ZdZg d¢Zd„ Zd„ Z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red„ ¦   «         Zed!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d„ Z ed„ ¦   «         Z!ed„ ¦   «         Z"ed"d„¦   «         Z#e$red „ ¦   «         Z%dS dS )#ÚProcessz1Wrapper class around underlying C implementation.)Ú_cacherÓ   rÒ   Ú_procfs_pathrŒ   c                 óV   — || _         d | _        d | _        t          ¦   «         | _        d S r^   )rŒ   rÓ   rÒ   r   rã   )r×   rŒ   s     r9   Ú__init__zProcess.__init__U  s+   € ØˆŒØˆŒ
ØˆŒ
Ý+Ñ-Ô-ˆÔÐÐr;   c                 ón   — | j                              | ¦  «         | j                             | ¦  «         d S r^   )Ú_proc_basic_infoÚcache_activateÚ
_proc_cred©r×   s    r9   Úoneshot_enterzProcess.oneshot_enter[  s5   € ØÔ×,Ò,¨TÑ2Ô2Ð2ØŒ×&Ò& tÑ,Ô,Ð,Ð,Ð,r;   c                 ón   — | j                              | ¦  «         | j                             | ¦  «         d S r^   )rç   Úcache_deactivateré   rê   s    r9   Úoneshot_exitzProcess.oneshot_exit_  s5   € ØÔ×.Ò.¨tÑ4Ô4Ð4ØŒ×(Ò(¨Ñ.Ô.Ð.Ð.Ð.r;   c                 ó@   — t          j        | j        | j        ¦  «        S r^   )r4   Úproc_basic_inforŒ   rã   rê   s    r9   rç   zProcess._proc_basic_infoc  s   € õ Ô# D¤H¨dÔ.?Ñ@Ô@Ð@r;   c                 ó@   — t          j        | j        | j        ¦  «        S r^   )r4   Ú	proc_credrŒ   rã   rê   s    r9   ré   zProcess._proc_credh  s   € õ Œ~˜dœh¨Ô(9Ñ:Ô:Ð:r;   c                 ó€   — | j         dk    rdS t          j        | j         | j        ¦  «                             d¦  «        S )Nr   Úswapperú )rŒ   r4   Ú	proc_namerã   Úrstriprê   s    r9   r²   zProcess.namem  s7   € àŒ8�qŠ=ˆ=Ø�9åŒ~˜dœh¨Ô(9Ñ:Ô:×AÒAÀ&ÑIÔIÐIr;   c                 ó’  — |                       ¦   «         }|sdS |d         }t          j        j        |v rìt          j                             |¦  «        sOt          j                             t          j                             |                      ¦   «         |¦  «        ¦  «        }t          j                             |¦  «        r@t          j                             |¦  «        r!t          j	        |t          j
        ¦  «        r|S t          j                             |¦  «        }t          j        d                              d¦  «        D ]�}t          j                             t          j                             ||¦  «        ¦  «        }t          j                             |¦  «        r#t          j	        |t          j
        ¦  «        r|c S Œ‚dS )Nr{   r   ÚPATHú:)ÚcmdlinerS   rÌ   ÚsepÚisabsÚabspathr­   ÚcwdÚisfileÚaccessÚX_OKÚbasenameÚenvironÚsplit)r×   rû   ÚexerÌ   Úpossible_exes        r9   r  zProcess.exet  sc  € ð —,’,‘.”.ˆØð 	Ø�2Ø�aŒjˆÝŒ7Œ;˜#ÐÐå”7—=’= Ñ%Ô%ð Eå”g—o’o¥b¤g§l¢l°4·8²8±:´:¸sÑ&CÔ&CÑDÔD�å”—’˜cÑ"Ô"ðå”G—N’N 3Ñ'Ô'ðõ ”I˜c¥2¤7Ñ+Ô+ðð
 �
å”'×"Ò" 3Ñ'Ô'ˆCå”J˜vÔ&×,Ò,¨SÑ1Ô1ð 	$ð 	$ˆDÝœ7Ÿ?š?­2¬7¯<ª<¸¸cÑ+BÔ+BÑCÔCˆLÝŒw�~Š~˜lÑ+Ô+ð $µ´	Ø�bœgñ1ô 1ð $ð $Ð#Ð#Ð#øØˆrr;   c                 ó4   — t          j        | j        ¦  «        S r^   )r4   Ú	proc_argsrŒ   rê   s    r9   rû   zProcess.cmdline’  s   € åŒ~˜dœhÑ'Ô'Ð'r;   c                 ó4   — t          j        | j        ¦  «        S r^   )r4   Úproc_environrŒ   rê   s    r9   r  zProcess.environ–  s   € åÔ  ¤Ñ*Ô*Ð*r;   c                 óL   — |                       ¦   «         t          d                  S )Nr    ©rç   Úproc_info_maprê   s    r9   r    zProcess.create_timeš  ó   € à×$Ò$Ñ&Ô&¥}°]Ô'CÔDÐDr;   c                 óL   — |                       ¦   «         t          d                  S )Nr"   r  rê   s    r9   r"   zProcess.num_threadsž  r  r;   c                 óî   — t          j        | j        ¦  «        }g }|D ]1\  }}}t          j        |||¦  «        }|                     |¦  «         Œ2|s#t          j        | j        › d| j        › �¦  «         |S )Nú/)	r4   r   rŒ   r   Úpthreadr   rS   Ústatrã   )r×   r”   r�   Ú	thread_idÚutimeÚstimerˆ   s          r9   ÚthreadszProcess.threads¤  s‰   € åÔ'¨¬Ñ1Ô1ˆGØˆGØ+2ð 'ð 'Ñ'�	˜5 %Ý œ¨°E¸5ÑAÔA�Ø—’˜vÑ&Ô&Ð&Ð&ð ð ;å”˜4Ô,Ð9Ð9¨t¬xÐ9Ð9Ñ:Ô:Ð:ØˆNr;   Úinetc                 ó|   — t          || j        ¬¦  «        }|s#t          j        | j        › d| j        › �¦  «         |S )N)r‘   r  )rŽ   rŒ   rS   r  rã   )r×   r�   rM   s      r9   rŽ   zProcess.net_connectionsµ  sH   € å˜d¨¬Ð2Ñ2Ô2ˆð ð 	7åŒG�tÔ(Ð5Ð5¨4¬8Ð5Ð5Ñ6Ô6Ð6Øˆ
r;   c                 ó4   — t          j        | j        ¦  «        S r^   )r¦   ÚgetpriorityrŒ   rê   s    r9   Únice_getzProcess.nice_getÂ  s   € åÔ% d¤hÑ/Ô/Ð/r;   c                 ó6   — t          j        | j        |¦  «        S r^   )r¦   ÚsetpriorityrŒ   )r×   Úvalues     r9   Únice_setzProcess.nice_setÆ  s   € åÔ% d¤h°Ñ6Ô6Ð6r;   c                 ód   — |                       ¦   «         t          d                  | _        | j        S )Nr   )rç   r  rÒ   rê   s    r9   r   zProcess.ppidÊ  s'   € à×*Ò*Ñ,Ô,­]¸6Ô-BÔCˆŒ
ØŒzÐr;   c                 ód   — |                       ¦   «         \  }}}}}}t          j        |||¦  «        S r^   ©ré   r   Úpuids)r×   ÚrealÚ	effectiveÚsavedÚ_s        r9   ÚuidszProcess.uidsÏ  s2   € à*.¯/ª/Ñ*;Ô*;Ñ'ˆˆi˜  1 aÝŒ}˜T 9¨eÑ4Ô4Ð4r;   c                 ód   — |                       ¦   «         \  }}}}}}t          j        |||¦  «        S r^   r$  )r×   r)  r&  r'  r(  s        r9   ÚgidszProcess.gidsÔ  s2   € à*.¯/ª/Ñ*;Ô*;Ñ'ˆˆ1ˆa��y %ÝŒ}˜T 9¨eÑ4Ô4Ð4r;   c                 ó\   — t          j        | j        | j        ¦  «        }t	          j        |Ž S r^   )r4   Úproc_cpu_timesrŒ   rã   r   Ú	pcputimes)r×   Úts     r9   rN   zProcess.cpu_timesÙ  s'   € åÔ ¤¨$Ô*;Ñ<Ô<ˆÝÔ  !Ð$Ð$r;   c                 óÜ   — |                       ¦   «         t          d                  }|dz  dz	  |dz  z  }t          j        d¦  «        D ]#}t          j        |¦  «        j        |k    r|c S Œ$d S )Nr$   l       ü é   iÿÿ  z	/dev/**/*)rç   r  ÚglobrS   r  Úst_rdev)r×   ÚttydevÚdevs      r9   ÚterminalzProcess.terminalÞ  sx   € à×&Ò&Ñ(Ô(­°wÔ)?Ô@ˆàÐ.Ñ.°2Ñ5¸&À6¹/ÑJˆå”9˜[Ñ)Ô)ð 	ð 	ˆCÝŒw�s‰|Œ|Ô# vÒ-Ð-Ø�
�
�
ð .àˆtr;   c                 óØ   — | j         }	 t          j        |› d| j        › d�¦  «        }|                     d¦  «        S # t
          $ r" t          j        |› d| j        › �¦  «         Y dS w xY w)Nr  z/cwdr{   )rã   rS   ÚreadlinkrŒ   r÷   rÔ   r  )r×   Úprocfs_pathÚresults      r9   rÿ   zProcess.cwdé  s…   € àÔ'ˆð	Ý”[ KÐ!@Ð!@°$´(Ð!@Ð!@Ð!@ÑAÔAˆFØ—=’= Ñ%Ô%Ð%øÝ ð 	ð 	ð 	ÝŒG�{Ð/Ð/ T¤XÐ/Ð/Ñ0Ô0Ð0Ø�2�2ð	øøøs   ‰3= ½(A)Á(A)c                 ó¢   — |                       ¦   «         }|t          d                  dz  }|t          d                  dz  }t          ||¦  «        S )Nr   i   r   )rç   r  r%   )r×   rM   r   r   s       r9   Úmemory_infozProcess.memory_infoó  sI   € à×#Ò#Ñ%Ô%ˆØ•- Ô&Ô'¨$Ñ.ˆØ•- Ô&Ô'¨$Ñ.ˆÝ�C˜‰~Œ~Ðr;   c                 ó‚   — |                       ¦   «         t          d                  }t                               |d¦  «        S )Nr#   ú?)rç   r  ÚPROC_STATUSESr®   )r×   Úcodes     r9   r#   zProcess.statusü  s3   € à×$Ò$Ñ&Ô&¥}°XÔ'>Ô?ˆå× Ò   sÑ+Ô+Ð+r;   c           	      óv  — t          j        ddt          | j        ¦  «        gt           j        t           j        ¬¦  «        }|                     ¦   «         \  }}d„ ||fD ¦   «         \  }}d|                     ¦   «         v rt          | j        | j        ¦  «        ‚t          j
        d|¦  «        }g }|D ]†\  }}|                     ¦   «         }|                     d¦  «        r
|dd …         }|                     ¦   «         d	k    rŒQ|                     t          j        |t!          |¦  «        ¦  «        ¦  «         Œ‡|S )
Nz/usr/bin/procfilesz-nrZ   c              3   ó^   K  — | ](}|                      t          j        j        ¦  «        V — Œ)d S r^   r_   rF   s     r9   rc   z%Process.open_files.<locals>.<genexpr>  r¢   r;   zno such processz(\d+): S_IFREG.*name:(.*)\nz//r   zcannot be retrieved)rd   re   rÎ   rŒ   rf   rg   Úlowerr   rÓ   r©   Úfindallrj   Ú
startswithr   r   Ú	popenfiler«   )r×   rn   r[   r\   Ú	procfilesr�   r–   rÌ   s           r9   Ú
open_fileszProcess.open_files  s6  € õ ÔØ! 4­¨T¬X©¬Ð7Ý”?Ý”?ð
ñ 
ô 
ˆð
 Ÿš™œ‰ˆ�ð
ð 
Ø4:¸FÐ3Cð
ñ 
ô 
‰ˆ�ð  §¢¡¤Ð.Ð.Ý ¤¨$¬*Ñ5Ô5Ð5Ý”JÐ=¸vÑFÔFˆ	ØˆØ!ð 	=ð 	=‰HˆB�Ø—:’:‘<”<ˆDØ�Š˜tÑ$Ô$ð  Ø˜A˜B˜B”x�Ø�zŠz‰|Œ|Ð4Ò4Ð4ØØ�NŠN�7Ô,¨Tµ3°r±7´7Ñ;Ô;Ñ<Ô<Ð<Ð<Øˆr;   c                 ó~   — | j         dk    rdS t          t          j        | j        › d| j         › d�¦  «        ¦  «        S )Nr   r  z/fd)rŒ   rl   rS   rÈ   rã   rê   s    r9   Únum_fdszProcess.num_fds  s@   € àŒ8�qŠ=ˆ=Ø�1Ý•2”: Ô!2ÐBÐB°T´XÐBÐBÐBÑCÔCÑDÔDÐDr;   c                 óL   — t          j        t          j        | j        ¦  «        Ž S r^   )r   Úpctxswr4   Úproc_num_ctx_switchesrŒ   rê   s    r9   Únum_ctx_switcheszProcess.num_ctx_switches!  s   € åŒ~�tÔ9¸$¼(ÑCÔCÐDÐDr;   Nc                 óB   — t          j        | j        || j        ¦  «        S r^   )r   Úwait_pidrŒ   rÓ   )r×   Útimeouts     r9   ÚwaitzProcess.wait%  s   € åÔ  ¤¨7°D´JÑ?Ô?Ð?r;   c                 óô   — 	 t          j        | j        ¦  «        \  }}}}nB# t          $ r5}t	          | j        ¦  «        st          | j        | j        ¦  «        |‚‚ d }~ww xY wt          j        ||||¦  «        S r^   )	r4   r   rŒ   ÚOSErrorrÏ   r   rÓ   r   Úpio)r×   ÚrcÚwcÚrbÚwbrÚ   s         r9   Úio_counterszProcess.io_counters+  sˆ   € ðÝ!%Ô!6°t´xÑ!@Ô!@‘��B˜˜B˜BøÝð ð ð õ " $¤(Ñ+Ô+ð GÝ'¨¬°$´*Ñ=Ô=À3ÐFØøøøøðøøøõ ”;˜r 2 r¨2Ñ.Ô.Ð.s   ‚! ¡
A «0AÁA )r  r^   )&Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__rå   rë   rî   rß   r   rç   ré   r²   r  rû   r  r    r"   ÚHAS_THREADSr  rŽ   r  r!  r   r*  r,  rN   r7  rÿ   r=  Úmemory_full_infor#   rI  rK  rO  rS  ÚHAS_PROC_IO_COUNTERSr[  rD   r;   r9   rá   rá   P  s?  € € € € € Ø;Ð;àCÐCÐC€Ið.ð .ð .ð-ð -ð -ð/ð /ð /ð ØðAð Añ Ôñ „_ðAð Øð;ð ;ñ Ôñ „_ð;ð ðJð Jñ „_ðJð ðð ñ „_ðð: ð(ð (ñ „_ð(ð ð+ð +ñ „_ð+ð ðEð Eñ „_ðEð ðEð Eñ „_ðEð ð à	ð	ð 	ñ 
Œð	ð  ð
ð 
ð 
ñ „_ð
ð ð0ð 0ñ „_ð0ð ð7ð 7ñ „_ð7ð ðð ñ „_ðð ð5ð 5ñ „_ð5ð ð5ð 5ñ „_ð5ð ð%ð %ñ „_ð%ð ðð ñ „_ðð ðð ñ „_ðð ðð ñ „_ðð #Ðàð,ð ,ñ „_ð,ð
ð ð ð2 ðEð Eñ „_ðEð
 ðEð Eñ „_ðEð ð@ð @ð @ñ „_ð@ð ð /à	ð		/ð 		/ñ 
Œð		/ð 		/ð 		/ð/ð /r;   rá   )F)r‰   )_r_  rÝ   r3  rS   r©   rd   ra   Úcollectionsr   r{   r   r   r   r4   r   r¦   r	   r
   r   r   r   r   r   r   r   r   Ú__extra__all__Úhasattrra  ÚHAS_NET_IO_COUNTERSrc  ÚgetpagesizeÚ	PAGE_SIZEÚAF_LINKÚSIDLÚSTATUS_IDLEÚSZOMBÚSTATUS_ZOMBIEÚSACTIVEÚSTATUS_RUNNINGÚSSWAPÚSSTOPÚSTATUS_STOPPEDr@  Ú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_NONEÚ	CONN_NONEr�   Údictr  r%   Úpfullmemr&   r+   r:   rA   rN   rJ   rV   rq   rs   Údisk_io_countersr}   r|   r¥   r   rŽ   rº   r¼   r¿   rÉ   rÏ   rß   rá   rD   r;   r9   ú<module>r�     sS  ðð #Ð "à Ð Ð Ð Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø Ð Ð Ð Ø 
€
€
€
Ø "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø )Ð )Ð )Ð )Ð )Ð )Ø $Ð $Ð $Ð $Ð $Ð $Ø $Ð $Ð $Ð $Ð $Ð $Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø !Ð !Ð !Ð !Ð !Ð !Ø "Ð "Ð "Ð "Ð "Ð "Ø "Ð "Ð "Ð "Ð "Ð "Ø #Ð #Ð #Ð #Ð #Ð #Ø $Ð $Ð $Ð $Ð $Ð $Ø +Ð +Ð +Ð +Ð +Ð +Ø "Ð "Ð "Ð "Ð "Ð "ð  �€ð ˆg�d˜NÑ+Ô+€Ø�g˜dÐ$5Ñ6Ô6Ð Ø�w˜tÐ%7Ñ8Ô8Ð à"ˆJÔ"Ñ$Ô$€	Ø
Ô
€ð 	„IˆwÔ"Ø„J�Ô%Ø„L�'Ô(Ø„J�Ô&Ø„J�Ô&ð€ð 	Ô˜7Ô3ØÔ˜Ô-ØÔ˜Ô-ØÔ˜'Ô0ØÔ˜'Ô0ØÔ˜Ô/ØÔ�gÔ(ØÔ˜'Ô1ØÔ˜Ô-ØÔ�gÔ)ØÔ�wÔ+ØÔ˜7Ô,ð€ð �Ø	
Ø	Ø	ØØ	
ØØØ
ð	ñ 	ô 	€ð$ €z�&˜5 %˜.Ñ)Ô)€à€àˆJ�{Ð$HÐ$HÐ$HÑIÔI€	àˆ
�7ÐMÐMÐMÑNÔN€ð5ð 5ð 5ð@ð @ð @ð3ð 3ð 3ð(ð (ð (ðð ð ð	#ð 	#ð 	#ðð ð ð Ô(Ð ØÔ €
ðð ð ð ð4 Ô&€àð +ØÔ*€Oðð ð ð ð6#ð #ð #ðVð ð ð
ð ð ð0Jð Jð Jð
Oð Oð Oð
ð ð ð.e/ð e/ð e/ð e/ð e/ñ e/ô e/ð e/ð e/ð e/r;   