ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ Rc@sdZddlZddlZddlZddlZddlZddlZddlmZddl m Z m Z m Z ddl mZmZddlTgZyejZWn'ek rdZejdenXyejdZWn'ek rdZejd enXyejZWn'ek rQdZejd enXejd Zed d ZejZeddjdddddddddddg Z dZ!dZ"dZ#dZ$e%edsd Z$ne&e$_'e&d!Z(d"Z)ej*Z*ej+Z+ej,Z,ej-Z.ej/Z0d#Z1ie2ej36e4ej56e6ej76e8ej96e:ej;6e<ej=6e>ej?6Z@d$eAfd%YZBdS(&s FreeBSD platform implementation.iN(t_psposix(t AccessDeniedt NoSuchProcesstTimeoutExpired(t namedtupletwraps(t*s&couldn't determine platform's NUM_CPUSis*couldn't determine platform's TOTAL_PHYMEMs'couldn't determine platform's BOOT_TIMEt SC_PAGE_SIZEtcputimessuser nice system idle irqtvmemt ttotalt availabletpercenttusedtfreetactivetinactivetbufferstcachedtsharedtwiredc Cstj}|\}}}}}}}}|||} |||} t|| |dd} t|| | | ||||||| S(s&System virtual memory as a namedutple.t_roundi(t _psutil_bsdtget_virtual_memt usage_percenttnt_virtmem_info( tmemR RRRRRRRtavailRR ((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pytvirtual_memory?s cCs`gtjD]}|t^q \}}}}}t||dd}t||||||S(s@System swap memory as (total, used, free, sin, sout) namedtuple.Ri(Rt get_swap_memt _PAGESIZERtnt_swapmeminfo(txR RRtsintsoutR ((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyt swap_memoryIs2cCs1tj\}}}}}t|||||S(s,Return system per-CPU times as a named tuple(Rtget_system_cpu_timest_cputimes_ntuple(tusertnicetsystemtidletirq((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyR%PscCs[g}xNtjD]@}|\}}}}}t|||||}|j|qW|S(s(Return system CPU times as a named tuple(Rtget_system_per_cpu_timesR&tappend(trettcpu_tR'R(R)R*R+titem((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyR,Us R,cCs;tdkrtgStjr+tdntt_tgS(Nis&supported only starting from FreeBSD 8(tNUM_CPUSR%R,t __called__tNotImplementedErrortTrue(((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyR,fs    c Csg}tj}x|D]}|\}}}}|dkrFd}n|s{tjj| stjj| r{qq{nt||||}|j|qW|S(Ntnonet(Rtget_disk_partitionstostpathtisabstexistst nt_partitionR-( talltretlistt partitionst partitiontdevicet mountpointtfstypetoptstntuple((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pytdisk_partitionsos     cCssg}tj}xZ|D]R}|\}}}}|dkrCqnt||pRd||}|j|qW|S(Nt~(Rtget_system_userstnt_usertNoneR-(R>trawlistR0R'tttythostnamettstamptnt((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyRH~s   cstfd}|S(s`Decorator which translates bare OSError exceptions into NoSuchProcess and AccessDenied. csy|||SWntk rtjd}|jtjkr^t|j|jn|jtjtj fkrt |j|jnnXdS(Ni( tOSErrortsystexc_infoterrnotESRCHRtpidt _process_nametEPERMtEACCESR(tselftargstkwargsterr(tfun(s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pytwrappers (R(R]R^((R]s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pytwrap_exceptionss tProcesscBseZdZddgZdZedZedZedZedZ edZ e e d red Z ned Zed Zed ZedZeddZedZedZedZedZedZedZedZeddZed%dZedZedZedZ edZ!edd Z"edd!Z#ed"Z$e e d#sd$Z%e%Ze%Z e%Z$e%ZnRS(&s1Wrapper class around underlying C implementation.RURVcCs||_d|_dS(N(RURJRV(RYRU((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyt__init__s cCstj|jS(s4Return process name as a string of limited len (15).(Rtget_process_nameRU(RY((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyRbscCstj|jS(s#Return process executable pathname.(Rtget_process_exeRU(RY((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyRcscCstj|jS(s.Return process cmdline as a list of arguments.(Rtget_process_cmdlineRU(RY((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyRdscCsCtj|j}tj}y ||SWntk r>dSXdS(N(Rtget_process_tty_nrRURt_get_terminal_maptKeyErrorRJ(RYttty_nrttmap((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pytget_process_terminals    cCstj|jS(sReturn process parent pid.(Rtget_process_ppidRU(RY((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyRkstget_process_cwdcCstj|jpdS(s)Return process current working directory.N(RRlRURJ(RY((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyRlscCs+tj|j\}}}t|||S(s*Return real, effective and saved user ids.(Rtget_process_uidsRUtnt_uids(RYtrealt effectivetsaved((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyRmscCs+tj|j\}}}t|||S(s+Return real, effective and saved group ids.(Rtget_process_gidsRUtnt_gids(RYRoRpRq((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyRrscCs%tj|j\}}t||S(s3return a tuple containing process user/kernel time.(Rtget_process_cpu_timesRUt nt_cputimes(RYR'R)((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyt get_cpu_timesscCs)tj|jd \}}t||S(s2Return a tuple with the process' RSS and VMS size.i(Rtget_process_memory_infoRUt nt_meminfo(RYtrsstvms((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pytget_memory_infostmeminfosrss vms text data stackcCs|jtj|jS(N(t _nt_ext_memRRwRU(RY((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pytget_ext_memory_infoscCstj|jS(sTReturn the start time of the process as a number of seconds since the epoch.(Rtget_process_create_timeRU(RY((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyRscCstj|jS(s6Return the number of threads belonging to the process.(Rtget_process_num_threadsRU(RY((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyRscCsttj|jS(N(tnt_ctxswRtget_process_num_ctx_switchesRU(RY((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pytget_num_ctx_switchesscCstj|jS(s=Return the number of file descriptors opened by this process.(Rtget_process_num_fdsRU(RY((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyt get_num_fdsscCsUtj|j}g}x6|D].\}}}t|||}|j|qW|S(s6Return the number of threads belonging to the process.(Rtget_process_threadsRUt nt_threadR-(RYRKR>t thread_idtutimetstimeRE((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyR s cCsmttdrGtj|j}g|D]\}}t||^q(Stj|j|j}|jSdS(s8Return files opened by process as a list of namedtuples.tget_process_open_filesN(thasattrRRRUt nt_openfileRt LsofParserRV(RYRKR9tfdtlsof((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pytget_open_filess &tinetcCs|tkrGtd|djgtD]}t|^q"fnt|\}}tj|j||}g|D]}t|^qvS(sXReturn etwork connections opened by a process as a list of namedtuples. s+invalid %r kind argument; choose between %ss, (t conn_tmapt ValueErrortjointreprRtget_process_connectionsRUt nt_connection(RYtkindR!tfamiliesttypesR.tconn((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pytget_connections#s  5cCsDytj|j|SWn&tk r?t|j|jnXdS(N(Rtwait_pidRURRV(RYttimeout((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyt process_wait/s cCstj|jS(N(t _psutil_posixt getpriorityRU(RY((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pytget_process_nice6scCstj|j|S(N(Rt setpriorityRU(RYtvalue((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pytset_process_nice:scCs3tj|j}|tkr&t|StddS(Nit?(Rtget_process_statusRUt _status_maptconstant(RYtcode((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyR>s cCs1tj|j\}}}}t||||S(N(Rtget_process_io_countersRUtnt_io(RYtrctwctrbtwb((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyREstmmaps*path rss, private, ref_count, shadow_counts6addr, perms path rss, private, ref_count, shadow_countcCstj|jS(N(Rtget_process_memory_mapsRU(RY((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pytget_memory_mapsOsRcCstddS(Ns&supported only starting from FreeBSD 8(R3(RY((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyt_not_implementedUsN(&t__name__t __module__t__doc__t __slots__RaR_RbRcRdRjRkRRRlRmRrRvR{RR}R~RRRRRRRRJRRRRRtnt_mmap_groupedt nt_mmap_extRR(((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pyR`sR         (CRRSR8RQtwarningsRRtpsutilRt psutil._errorRRRtpsutil._compatRRtpsutil._commont__extra__all__t get_num_cpusR1t ExceptionRJtwarntRuntimeWarningRt TOTAL_PHYMEMtget_system_boot_timet BOOT_TIMEtsysconfRR&RRRR$R%R,RtFalseR2RFRHt get_pid_listt pid_existstget_disk_usagetget_network_io_counterstnetwork_io_counterstget_disk_io_counterstdisk_io_countersR_tSTATUS_STOPPEDtSSTOPtSTATUS_SLEEPINGtSSLEEPtSTATUS_RUNNINGtSRUNt STATUS_IDLEtSIDLtSTATUS_WAITINGtSWAITt STATUS_LOCKEDtSLOCKt STATUS_ZOMBIEtSZOMBRtobjectR`(((s@/opt/alt/python27/lib64/python2.7/site-packages/psutil/_psbsd.pytsz