JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr 0i@dZddlZddlZddlZddlmZddlmZddlmZddlm Z ddlm Z dd lm Z dd lm Z dd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZgZe j,Ze j0Ze j2ej4e j6ej8e j:ej<e j>ej@e jBejDe jFejHe jJejLe jNejPe jRejTe jVejXe jZej\e j^ej`i Z1e jdejfe jhejje jlejne jpejre jtejviZ<e=ddddddddddd Z>e=ddddddddZ?edgdZ@edgd ZAed!gd"ZBed#eBjd$zZDd%ZEd&ZFd'ZGd(ZHd)ZId*ZJd+ZKe jrd,ZMejZNe jZOd9d-ZPd.ZQe jZRe jZSd:d/ZTd0ZUd1ZV eVZWd3ZZd4Z[d5Z\ejZ]d6Z^Gd7d8Z_y#eX$rZYed2eYdZWYdZY[Y:dZY[YwwxYw);zmacOS platform implementation.N) namedtuple)_common)_psposix) _psutil_osx) AccessDenied) NoSuchProcess) ZombieProcess) conn_tmap)conn_to_ntuple)debug) isfile_strict)memoize_when_activated)parse_environ_block) usage_percent ) ppidruideuidsuidrgidegidsgidttynrctimestatusname)cpuutimecpustimerssvmspfaultspageins numthreadsvolctxsw scputimesusernicesystemidlesvmem)total availablepercentusedfreeactiveinactivewiredpmem)r(r)r*r+pfullmem)ussc tj\}}}}}}||z}||z}||z}t||z |d}t||||||||S)z&System virtual memory as a namedtuple.rround_)cext virtual_memrr4) r5r:r;r<r9 speculativeavailr8r7s >/opt/hc_python/lib64/python3.12/site-packages/psutil/_psosx.pyvirtual_memoryrHnsh8<8H8H8J5E68UD+ tOE E>D KDUU]U1=G wdFHe LLctj\}}}}}t||d}tj||||||S)z=Swap system memory as a (total, used, free, sin, sout) tuple.rrA)rCswap_memrrsswap)r5r8r9sinsoutr7s rG swap_memoryrO}s?#'==? E4sDD%2G ==dGS$ ??rIcPtj\}}}}t||||S)z(Return system CPU times as a namedtuple.)rC cpu_timesr.r/s rGrQrQs(#~~/D$ T4 ..rIcg}tjD](}|\}}}}t||||}|j|*|S)z)Return system CPU times as a named tuple.)rC per_cpu_timesr.append)retcpu_tr0r1r2r3items rGrSrSsK C##%#( dFDtVT2 4& JrIc*tjS)z0Return the number of logical CPUs in the system.)rCcpu_count_logicalrIrGrYrYs  ! ! ##rIc*tjS)z-Return the number of CPU cores in the system.)rCcpu_count_coresrZrIrGr\r\s    !!rIcftj\}}}}}tj||||SN)rC cpu_statsr scpustats) ctx_switches interruptssoft_interruptssyscalls_trapss rGr_r_s: @L*ox   j/8 rIcbtj\}}}tj|||gS)zReturn CPU frequency. On macOS per-cpu frequency is not supported. Also, the returned frequency never changes, see: https://arstechnica.com/civis/viewtopic.php?f=19&t=465002. )rCcpu_freqrscpufreq)currmin_max_s rGrgrgs.  ==?dD  tT233rIc0g}tj}|D]z}|\}}}}|dk(rd}|s?tjj |rtjj |sRt j||||}|j|||S)z8Return mounted disk partitions as a list of namedtuples.none) rCdisk_partitionsospathisabsexistsr sdiskpartrT) allretlist partitions partitiondevice mountpointfstypeoptsntuples rGrorosG%%'J +4( FD V F77==(v0F""6:vtDv  NrIc tj\}}}|dk(}|rtj}n|dk(rtj }n|dz}tj |||S#t$rYywxYw)zReturn battery information.Nr<)rCsensors_batteryNotImplementedErrorrPOWER_TIME_UNLIMITEDPOWER_TIME_UNKNOWNsbattery)r7minsleft power_pluggedsecslefts rGrrsz+/+?+?+A(="Q&M// R--b=   GX} == sA$$ A0/A0cg}tD]W} t|j|}|s!|D]2}t||gz}|j t j |4Y|S#t$rYgwxYw)z System-wide network connections.)pidsProcessnet_connectionslistrTrsconnr )kindrUpidconscs rGrrs| Cv 23<//5DAQ3%AJJw}}a01 J   sA)) A54A5ctj}i}|D]} tj|}tj|}tj |\}}t tdrtj|}dj|}d|v}tj|||||||<|S#t$r(} | jtjk7rYd} ~ d} ~ wwxYw)z)Get NIC stats (isup, duplex, speed, mtu). NicDuplex,runningN)net_io_counterskeysrC net_if_mtu net_if_flagsnet_if_duplex_speedhasattrrrjoin snicstatsOSErrorerrnoENODEV) namesrUr%mtuflagsduplexspeed output_flagsisuperrs rG net_if_statsrs   " " $E C //$'C%%d+E 44T:MFE w , **6288E?L%D))feS,CI" J yyELL() sAB== C.C))C.c*tjS)z:The system boot time expressed in seconds since the epoch.)rC boot_timerZrIrGrrs >> rIzignoring exception on import: ctdk(r|Sttz }|dk(st|dkr|Std|dkr||z S||zS)z!Account for system clock updates.rrz9system clock was updated; adjusting process create_time())INIT_BOOT_TIMErabsr )r#diffs rGadjust_proc_create_timer,sU IK 'D qyCIM  EF axt| 4<rIcg}tj}|D]E}|\}}}}}|dk(r|stj||xsd|xsd||}|j |G|S)z:Return currently connected users as a list of namedtuples.~N)rCusersrsuserrT) rvrawlistrWr0ttyhostnametstamprnts rGrr;snGjjlG+/(c8VS #:   ]]4h.>$ Lr NrIctj}d|vr. tdj|j dd|S|S#t $rY|St $r|j ddY|SwxYwNr)rCrr create_timeinsertr r)lss rGrrOsx B{  AJ " " $ IIaO I2I    I  IIaO I s+A A3A32A3cBtjfd}|S)z`Decorator which translates bare OSError exceptions into NoSuchProcess and AccessDenied. cb|j|j|j}}} |g|i|S#t$r5}t j |rt ||||t|||d}~wt$r}t|||d}~wtj$r}t ||||d}~wwxYwr^) r_ppid_nameProcessLookupErrorrCproc_is_zombier r PermissionErrorrZombieProcessError)selfargskwargsrrr%rfuns rGwrapperz wrap_exceptions..wrappergs((DJJ 4T :t-d-f- -! 4""3'#Ct4#=T* 3 3sD)s 2&& :T40c 9 :s, 3 B.0A,, B.8 BB.B))B.) functoolswraps)rrs` rGwrap_exceptionsrbs' __S : : NrIceZdZdZgdZdZeedZeedZ dZ dZ edZ ed Z ed Zed Zed Zed ZedZedZedZedZedZedZed dZedZedZedZed!dZedZed"dZedZedZ edZ!edZ"y)#rz1Wrapper class around underlying C implementation.)_cacherrrc.||_d|_d|_yr^)rrr)rrs rG__init__zProcess.__init__}s  rIc~tj|j}t|ttk(sJ|Sr^)rCproc_kinfo_oneshotrlenkinfo_proc_maprrUs rG_get_kinfo_proczProcess._get_kinfo_procs4%%dhh/3x3~.... rIc~tj|j}t|ttk(sJ|Sr^)rCproc_pidtaskinfo_oneshotrrpidtaskinfo_maprs rG_get_pidtaskinfozProcess._get_pidtaskinfos4++DHH53x3//// rIcp|jj||jj|yr^)rcache_activaterrs rG oneshot_enterzProcess.oneshot_enters* ++D1 ,,T2rIcp|jj||jj|yr^)rcache_deactivaterrs rG oneshot_exitzProcess.oneshot_exits* --d3 ..t4rIc||jtd}||Stj|jS)Nr%)rrrC proc_namer)rr%s rGr%z Process.names7##%nV&<='tET^^DHH-EErIc@tj|jSr^)rCproc_exerrs rGexez Process.exe}}TXX&&rIc@tj|jSr^)rC proc_cmdlinerrs rGcmdlinezProcess.cmdlines  **rIcRttj|jSr^)rrC proc_environrrs rGenvironzProcess.environs"4#4#4TXX#>??rIcX|jtd|_|jS)Nr)rrrrs rGrz Process.ppids&))+N6,BC zzrIc@tj|jSr^)rCproc_cwdrrs rGcwdz Process.cwdrrIc|j}tj|td|td|tdS)Nrrrrrpuidsrrrawtuples rGuidsz Process.uidsH'')}} ^F+ , ^F+ , ^F+ ,  rIc|j}tj|td|td|tdS)Nrr r!rrs rGgidsz Process.gidsrrIc|jtd}tj} ||S#t$rYywxYw)Nr")rrrget_terminal_mapKeyError)rtty_nrtmaps rGterminalzProcess.terminalsI%%'w(?@((* <   s5 AAc|j}t|td|td|td|tdS)Nr(r)r*r+)rr=rrs rG memory_infozProcess.memory_infosQ((* _U+ , _U+ , _Y/ 0 _Y/ 0   rIcx|j}tj|j}t ||fzSr^)rrCproc_memory_ussrr>)r basic_memr?s rGmemory_full_infozProcess.memory_full_infos6$$& ""488,cV+,,rIcz|j}tj|td|tdddS)Nr&r'g)rr pcputimesrrs rGrQzProcess.cpu_timessC((*  _Z0 1 _Z0 1     rIcT|jtd}|s t|}|S)Nr#)rrr)r monotonicr#s rGrzProcess.create_times,$$&~g'>?+E2E rIcb|jtd}tj|dS)Nr-r)rrrpctxsw)rvols rGnum_ctx_switcheszProcess.num_ctx_switchess- ##%oj&AB~~c1%%rIc6|jtdS)Nr,)rrrs rG num_threadszProcess.num_threadss$$&|'DEErIc|jdk(rgSg}tj|j}|D]8\}}t|st j ||}|j |:|Sr)rrCproc_open_filesrr popenfilerT)rfilesrrqfdr}s rG open_fileszProcess.open_filessf 88q=I&&txx0HD"T" **44 V$  rIc t|\}}tj|j||}g}|D]1}|\}}} } } } t ||| | | | t } |j | 3|Sr^)r rCproc_net_connectionsrr TCP_STATUSESrT)rrfamiliestypesrrUrWrfamtypeladdrraddrr$rs rGrzProcess.net_connections su#D/%++DHHhFD26 /BT5%CueV\B JJrN   rIc`|jdk(rytj|jSr)rrC proc_num_fdsrs rGnum_fdszProcess.num_fdss% 88q=  **rINcXtj|j||jSr^)rwait_pidrr)rtimeouts rGwaitz Process.waits  7DJJ??rIc@tj|jSr^)rCproc_priority_getrrs rGnice_getzProcess.nice_get s%%dhh//rIcBtj|j|Sr^)rCproc_priority_setr)rvalues rGnice_setzProcess.nice_set$s%%dhh66rIcb|jtd}tj|dS)Nr$?)rr PROC_STATUSESget)rcodes rGr$zProcess.status(s-##%nX&>?  s++rIctj|j}g}|D].\}}}tj|||}|j |0|Sr^)rC proc_threadsrrpthreadrT)rrrv thread_idutimestimer}s rGthreadszProcess.threads.sQ##DHH-'. #Iue__Yu=F NN6 "(/rIFinetr^)#__name__ __module__ __qualname____doc__ __slots__rrrrrrrr%rrrrrrrrrr rQrrrrrr%r)r,r0r$r<rZrIrGrrxs%;3I   35FF''++@@''      --    &&FF    ++ @@0077,, rIrr=r>)`rCrrrp collectionsrrnrrrrCrr r r r r rrrr__extra__all__ getpagesizePAGESIZEAF_LINKTCPS_ESTABLISHEDCONN_ESTABLISHED TCPS_SYN_SENT CONN_SYN_SENTTCPS_SYN_RECEIVED CONN_SYN_RECVTCPS_FIN_WAIT_1CONN_FIN_WAIT1TCPS_FIN_WAIT_2CONN_FIN_WAIT2TCPS_TIME_WAITCONN_TIME_WAIT TCPS_CLOSED CONN_CLOSETCPS_CLOSE_WAITCONN_CLOSE_WAIT TCPS_LAST_ACK CONN_LAST_ACK TCPS_LISTEN CONN_LISTEN TCPS_CLOSING CONN_CLOSINGPSUTIL_CONN_NONE CONN_NONErSIDL STATUS_IDLESRUNSTATUS_RUNNINGSSLEEPSTATUS_SLEEPINGSSTOPSTATUS_STOPPEDSZOMB STATUS_ZOMBIEr3dictrrr.r4r=_fieldsr>rHrOrQrSrYr\r_ has_cpu_freqrg disk_usagedisk_io_countersrorr net_if_addrsrrrr Exceptionrrrr pid_existsrrrZrIrGrts %  "!!""#"+(" 4    ,, 733--G11'00'00//g(('11--g))w++7,,   IIw""IIw%%KK((JJ&&JJ%%          & {$F G  - .&>? j$,,": ; M@/ $ " 44 (( *>,&&  $: [N  (   ,}}e *3' 23NsK++L0 LL