grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]7´ã@sŸdZdZddlZddlZddlZddlZddlZddlZy ejZ Wn0e k r“ej d�kr‰dZ ndZ YnXd Z ej d ejƒZejd d d d d„Zdd„Zej dejƒZej dejƒZej dejƒZd�Zd#d$„Zd d d ed%d&d'„Zd(d)„Zd d d ed*d+„Zd,d‘d-d.„Zd d/d0„Zej d1ƒZd d d d’d2d3„Zd“d5d”d6d•d8d–d9d—d;d˜d<d™d=dšd?d›d@dœdBd�dCi Zdžd8dŸdDd dEd¡dFd¢dGd£dHiZ d d d d dIdJ„Z!dKdL„Z"d d¤d dMdN„Z#dOdP„Z$d d d¥d¦dQdR„Z%dSdT„Z&dUdV„Z'd dWdX„Z(dYdZ„Z)d d[d\„Z*d d]d^„Z+dd§dd¨dd©iZ,ejd d dbdc„Z-ej.dddeƒZ/da0dfdg„Z1dhdi„Z2djdk„Z3dldm„Z4dndo„Z5dpdq„Z6drds„Z7ej dtejƒZ8ej duejƒZ9ej dvƒZ:ej dwƒZ;iZ<ddxdy„Z=dzd{„Z>d|d}„Z?d~d„Z@d€d�„ZAd‚dƒ„ZBd„d…„ZCd†d‡„ZDiZEdddˆd‰„Z eFdŠkr›d‹ejGkpZdŒejGkZHd�ejGkoxdŽejGkZIeJe eIeHƒƒejKdƒdS)ªa Copyright (c) 1999-2000, Marc-Andre Lemburg; mailto:mal@lemburg.com Copyright (c) 2000-2010, eGenix.com Software GmbH; mailto:info@egenix.com Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee or royalty is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation or portions thereof, including modifications, that you make. EGENIX.COM SOFTWARE GMBH DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE ! z1.0.7éNÚdosÚwin32Úwin16ZNULz /dev/nullz/etcsC(__libc_init)|(GLIBC_([0-9.]+))|(libc(_\w+)?\.so(?:\.(\d[0-9.]*))?)Úi@c Cs›ttjdƒr$tjj|ƒ}t|dƒ�[}|j|ƒ}d}x<d|ksfd|kr{tj||ƒ}nd}|s¦|j|ƒ}|s�Pd}qNdd„|jƒDƒ\}} } } } } |rç| rçd}n“| r|d krd }| }qz| |krz| }n]| rz|d krzd}| rM| |krM| }| rz|t | ƒ d…| krz|| }|j ƒ}qNWWdQRX||fS) NÚrealpathÚrbrslibcsGLIBCcSs1g|]'}|dk r'|jdƒn|‘qS)NÚlatin1)Údecode)Ú.0Ús©r ú-/opt/alt/python35/lib64/python3.5/platform.pyú ¹s zlibc_ver..ZlibcÚglibc) ÚhasattrÚosÚpathrÚopenÚreadÚ _libc_searchÚsearchÚgroupsÚlenÚend)Ú executableÚlibÚversionÚ chunksizeÚfÚbinaryÚposÚmZlibcinitrZ glibcversionZsoÚthreadsZ soversionr r r Úlibc_ver”sD "       # r#c CsÄtjjdƒr¬d}x„tdƒD]v}|jƒ}t|ƒdkr%|\}}nq%|dkrv|jƒ}q%|dkr%|jdƒ}|d}q%W|||fStjjdƒrxVtdƒD]H}|jdƒ}t|ƒdkrË|dd krËd |d |fSqËWtjjd ƒr·tjd ƒ} xEt t| ƒd ddƒD]'} | | dd …d krU| | =qUW| r·| j ƒd}| dd d…}|||fS|||fS)Nz/var/adm/inst-log/infoÚSuSEéZMIN_DIST_VERSIONZ DIST_IDENTú-z/etc/.installedrZ OpenLinuxéz/usr/lib/setupézslack-version-Ú slackwareéÿÿÿÿr*r*) rrÚexistsrÚsplitrÚstripÚisdirÚlistdirÚrangeÚsort) ÚdistnamerÚidÚlineZtvÚtagÚvalueÚvaluesZpkgZverfilesÚnr r r Ú_dist_try_harderÍs:     "#   r9z(\w+)[-_](release|version)z'(.+) release ([\d.]+)[^(]*(?:\((.+)\))?z1([^0-9]+)(?: release )?([\d.]+)[^(]*(?:\((.+)\))?r$ÚdebianÚfedoraÚredhatÚcentosÚmandrakeÚmandrivaÚrocksr)Ú yellowdogÚgentooÚ UnitedLinuxÚ turbolinuxÚarchÚmageiacCs­d}d}tj|ƒ}|dk r7t|jƒƒStj|ƒ}|dk rbt|jƒƒS|jƒjƒ}|r |d}t|ƒdkr |d}d||fS)Nrrr')Ú_lsb_release_versionÚmatchÚtuplerÚ_release_versionr-r,r)Ú firstlinerr3r!Úlr r r Ú_parse_release_files    rMr'cCs8ddl}|jdtddƒt|||||ƒS)NrzFdist() and linux_distribution() functions are deprecated in Python 3.5Ú stacklevelr%)ÚwarningsÚwarnÚPendingDeprecationWarningÚ_linux_distribution)r2rr3Úsupported_distsÚfull_distribution_namerOr r r Úlinux_distribution,s    rUcCs,ytjtƒ}Wntk r4|||fSYnX|jƒx^|D]F}tj|ƒ}|dk rF|jƒ\}} ||krF|}PqFWt|||ƒSt tj j t|ƒdddddƒ�} | j ƒ} WdQRXt | ƒ\}} } |r|r|}| r| }| r| }|||fS)NÚrÚencodingzutf-8ÚerrorsÚsurrogateescape)rr/Ú _UNIXCONFDIRÚOSErrorr1Ú_release_filenamerHrr9rrÚjoinÚreadlinerM)r2rr3rSrTZetcÚfiler!Z _distnameÚdummyrrKZ_versionZ_idr r r rR6s0      rRcCs>ddl}|jdtddƒt|||d|ddƒS)NrzFdist() and linux_distribution() functions are deprecated in Python 3.5rNr%rSrT)rOrPrQrR)r2rr3rSrOr r r Údistls    rarVcCs5ddl}|jdtddƒtj|||ƒS)Nrzuse os.popen insteadrNr%)rOrPÚDeprecationWarningrÚpopen)ÚcmdÚmodeÚbufsizerOr r r rc�s rcc Cs‚|jdƒ}|r"|j|ƒytt|ƒ}Wntk rO|}YnXttt|ƒƒ}dj|dd…ƒ}|S)NÚ.é)r,ÚappendÚmapÚintÚ ValueErrorÚlistÚstrr])rÚbuildrLZintsÚstringsr r r Ú _norm_version‰s   rqz'(?:([\w ]+) ([\w.]+) .*\[.* ([\d.]+)\])c Cs2tj|kr|||fSx~dD]i}y7tj|ƒ}|jƒ}|jƒr_tdƒ‚Wn(tk rŠ}zw#WYdd}~Xq#XPq#W|||fS|jƒ}tj |ƒ}|dk r%|j ƒ\}}}|ddkrù|dd …}|d dkr|dd …}t |ƒ}|||fS) NÚverúcommand /c verú cmd /c verzcommand failedr'rg)rrrsrtr*r*r*r*) ÚsysÚplatformrrcrÚcloser[r-Ú _ver_outputrHrrq) ÚsystemÚreleaserZsupported_platformsrdÚpipeÚinfoÚwhyr!r r r Ú _syscmd_ver§s,        r~éZ2000ZXPr%Z 2003ServerZpost2003éÚVistaÚ7Ú8rhz8.1zpost8.1é Z10Zpost10Z 2008ServerZ 2008ServerR2Z 2012ServerZ 2012ServerR2Zpost2012ServerR2c(Csyddlm}Wn"tk r8||||fSYnXy&ddlm}m}m}m}Wn4tk r•ddlm}m}m}m}YnX|ƒ} | j pµ| dd…\} } } dj | | | ƒ}t j | | fƒpt j | dfƒp|}| dd…| | fkrwydj | j ƒ}Wn<tk rv|dd…d krrd |dd…}YnXt| d dƒdkr¿tj | | fƒp¼tj | dfƒp¼|}d} z5y&||d ƒ} || d ƒd}WnYnXWd| r || ƒX||||fS)Nr)Úgetwindowsversion)Ú OpenKeyExÚ QueryValueExÚCloseKeyÚHKEY_LOCAL_MACHINErhz {0}.{1}.{2}r%zSP{}é z Service Pack ZSPZ product_typez,SOFTWARE\Microsoft\Windows NT\CurrentVersionZ CurrentType)rur…Ú ImportErrorÚwinregr†r‡rˆr‰Ú_winregZ_platform_versionÚformatÚ_WIN32_CLIENT_RELEASESÚgetZservice_pack_majorÚAttributeErrorÚgetattrÚ_WIN32_SERVER_RELEASES)rzrÚcsdÚptyper…r†r‡rˆr‰ZwinverZmajÚminroÚkeyr r r Ú win32_verõsD & ' "    r˜cCs«d}tjj|ƒsdSyddl}Wntk rDdSYnXt|dƒ�}|j|ƒ}WdQRX|d}d }tjƒj}|d kržd}|||fS) Nz0/System/Library/CoreServices/SystemVersion.plistrrZProductVersionrÚppcúPower MacintoshZPowerPC)rrr)r™rš) rrr+Úplistlibr‹rÚloadÚunameÚmachine)Úfnr›rÚplrzÚ versioninforžr r r Ú _mac_ver_xml%s    r¢cCs&tƒ}|dk r|S|||fS)N)r¢)rzr¡ržr|r r r Úmac_ver;s  r£c CsTddlm}y'|j|ƒ}|dkr2|S|SWntk rO|SYnXdS)Nr)ÚSystem)Ú java.langr¤Z getPropertyr‘)ÚnameÚdefaultr¤r6r r r Ú _java_getpropNs  r¨c Csùyddl}Wn"tk r4||||fSYnXtd|ƒ}td|ƒ}|\}}}td|ƒ}td|ƒ}td|ƒ}|||f}|\}} } td| ƒ} td|ƒ}td | ƒ} || | f}||||fS) Nrz java.vendorz java.versionz java.vm.namezjava.vm.vendorzjava.vm.versionz java.os.archz java.os.namezjava.os.version)r¥r‹r¨) rzÚvendorÚvminfoÚosinfoÚjavaZvm_nameZ vm_releaseZ vm_vendorÚos_nameÚ os_versionÚos_archr r r Újava_verYs"  r°c Cs|dkrd|||fS|dkrÇ|dkrB|||fS|jdƒ}|r©yt|dƒ}Wntk rYn*X|d}t|ƒ|d¸sz_platform..ú Ú_ú/ú\ú:ú;ú"ú(ú)Úunknownrz--r'r*r*)r]ÚfilterrÚreplace)ÚargsrvZcleanedr r r Ú _platform²s$%  rÆcCsTyddl}Wntk r(|SYnXy|jƒSWntk rO|SYnXdS)Nr)Úsocketr‹Ú gethostnamer[)r§rÇr r r Ú_nodeÒs   rÉcCsetjj|ƒ}xLtjj|ƒr`tjjtjjtjj|ƒtj|ƒƒƒ}qW|S)N)rrÚabspathÚislinkÚnormpathr]ÚdirnameÚreadlink)Úfilepathr r r Ú_follow_symlinksás  1rÐc Cs†tjdkr|Sytjd|tfƒ}Wnttfk rN|SYnX|jƒjƒ}|j ƒ}| sz|r~|S|SdS)Nrrrzuname %s 2> %s)rrr) rurvrrcÚDEV_NULLr‘r[rr-rw)Úoptionr§rÚoutputÚrcr r r Ú _syscmd_unameìs   rÕc Cs§tjd kr|St|ƒ}y+tjd|gdtjdtjƒ}Wnttfk rh|SYnX|j ƒdj dƒ}|j ƒ}| s›|rŸ|S|SdS) Nrrrr_ÚstdoutÚstderrrzlatin-1)rrr) rurvrÐÚ subprocessÚPopenÚPIPEÚSTDOUTr‘r[Ú communicater Úwait)Útargetr§ÚprocrÓrÔr r r Ú _syscmd_fileþs     ràÚ WindowsPEr´ÚMSDOSc Cs�|s`ddl}y|jdƒ}Wn$|jk rK|jdƒ}YnXt|dƒd}|rxt|dƒ}nd}| rØ|tjkrØtjtkrÎttj\}}|rÂ|}|rÎ|}||fSd|krî||fSd|krd }n'd |krd }nd |kr*d }d|kr?d}nTd|krid|kr`d}q“d}n*d|kr~d}nd|kr“d}n||fS)NrÚPrLéZbitrrz32-bitÚ32bitZN32Zn32bitz64-bitr³ZELFZPEr´ráZCOFFzMS-DOSrâ) ÚstructÚcalcsizeÚerrorrnràrurrvÚ_default_architecture)rÚbitsÚlinkageræÚsizeZfileoutÚbrLr r r Ú architecture"sL                   rîÚ uname_resultz-system node release version machine processorcCs}d}tdk rtSd}ytjƒ\}}}}}Wntk rUd}YnX|s�ttd|||||fƒƒ r6|r«tj}d}d}tƒ}d}d}|dkrAt ƒ\}}}} |rä|räd}|s&dtj krtj j ddƒ}ntj j ddƒ}|sAtj j d|ƒ}|r´t |ƒ\}}}|dkrqd }nC|d kr´|d kr´d }d |dd …kr®d }nd}|dkrê|sá|dkrÛd}nd}d }nL|dd…dkr6t ƒ\}} } } d}dj| ƒ}|s6| }|dkr¹| sU|dkra|}d}yddl} Wntk r…Yn4X| jddƒ\}}|dkr³d}nd}|sÎtddƒ}|dkràd}|dkròd}|dkrd}|dkrd}|dkr(d}|dkr:d}|d kr^|d kr^d }d }t||||||ƒatS)Nrrr'rZPROCESSOR_ARCHITEW6432ZPROCESSOR_ARCHITECTUREZPROCESSOR_IDENTIFIERzMicrosoft Windowsr´Z Microsoftz6.0rhr�rråZ16bitér¬ÚJavaz, ZOpenVMSÚ0zSYI$_CPUé€ZAlphaZVAXz-prÂ)rr)Ú _uname_cacherr�r‘rmrÃrurvrÉr˜Úenvironr�r~r°r]Úvms_libr‹ZgetsyirÕrï)Z no_os_unameÚ processorryÚnoderzrržZuse_syscmd_verr”r•r©rªr«röZcsidZ cpu_numberr r r r�{sž    +                      r�cCs tƒjS)N)r�ryr r r r rysrycCs tƒjS)N)r�rør r r r røsrøcCs tƒjS)N)r�rzr r r r rzsrzcCs tƒjS)N)r�rr r r r r!srcCs tƒjS)N)r�ržr r r r rž*sržcCs tƒjS)N)r�r÷r r r r r÷3s r÷zL([\w.+]+)\s*\(#?([^,]+)(?:,\s*([\w ]*)(?:,\s*([\w :]*))?)?\)\s*\[([^\]]+)\]?z;IronPython\s*([\d\.]+)(?: \(([\d\.]+)\))? on (.NET [\d\.]+)zU([\d.]+)\s*\(IronPython\s*[\d.]+\s*\(([\d.]+)\) on ([\w.]+ [\d.]+(?: \(\d+-bit\))?)\)zE([\w.+]+)\s*\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*\[PyPy [^\]]+\]?cCsþ|dkrtj}tj|dƒ}|dk r7|Sd|kr¿d}|jdƒrjtj|ƒ}ntj|ƒ}|dkr›tdt |ƒƒ‚|j ƒ\}}}d}d}natj jdƒrAd}t j|ƒ}|dkrtdt |ƒƒ‚|j ƒ\}}}} } |dkr5d}tj }nßd|kr¥d}t j|ƒ}|dkr„tdt |ƒƒ‚|j ƒ\}}}} d}n{t j|ƒ}|dkrÖtd t |ƒƒ‚|j ƒ\}}}} }d }|dkr d}n| r |d | }ttd ƒrDtj\} } } nTttd ƒrhtj\} } } n0ttdƒrŒtj\} } } n d} d} |jdƒ} t| ƒdkrÕ| jdƒdj| ƒ}||| | |||f}|t|<|S)NZ IronPythonz*failed to parse IronPython sys.version: %srr¬ZJythonz&failed to parse Jython sys.version: %sZPyPyz$failed to parse PyPy sys.version: %sz'failed to parse CPython sys.version: %sZCPythonr¹Ú_gitÚ _mercurialÚ subversionrgr%rò)rurÚ_sys_version_cacher�Ú startswithÚ_ironpython_sys_version_parserrHÚ _ironpython26_sys_version_parserrlÚreprrrvÚ_sys_version_parserÚ_pypy_sys_version_parserrrùrúrûr,rrir])Ú sys_versionÚresultr¦rHrZ alt_versionZcompilerZbuildnoZ builddateZ buildtimerºZbranchZrevisionrLr r r Ú _sys_version]s|                 rcCs tƒdS)Nr)rr r r r Úpython_implementationÈs rcCs tƒdS)Nr')rr r r r Úpython_versionÕsrcCsttƒdjdƒƒS)Nr'rg)rIrr,r r r r Úpython_version_tupleßs rcCs tƒdS)Nr%)rr r r r Ú python_branchês r cCs tƒdS)Nrh)rr r r r Úpython_revisionøs r cCstƒdd…S)Nrðr€)rr r r r Ú python_buildsr cCs tƒdS)Nr€)rr r r r Úpython_compiler sr cCs|tj||fdƒ}|dk r(|Stƒ\}}}}}}||krUd}|rvt|||ƒ\}}}|dkrÊt|ƒ\} } } } |r²t||ƒ} qht|||| ƒ} nž|d krztjƒ�-tjddt ƒt dƒ\}}}WdQRX|rC| rCt||||d|||ƒ} qht t j ƒ\}}t||||d||ƒ} nî|dkrçtƒ\}}}\}}}|s±| rÆt|||ƒ} qht|||d|||ƒ} n�|d kr |r t||ƒ} qht|||ƒ} nH|r8t||ƒ} n0tt j ƒ\}}t||||||ƒ} | t||f<| S) Nrr´ÚLinuxÚignorez?dist\(\) and linux_distribution\(\) functions are deprecated .*ÚwithrñZonZMacOS)r )Ú_platform_cacher�r�r¶r˜rÆrOÚcatch_warningsÚfilterwarningsrQrar#rurr°rî)ÚaliasedÚterserryrørzrržr÷ZrelZversr”r•rvr2Z distversionZdistidZlibcnameZ libcversionrVÚvrªr­r®r¯rêrër r r rvs\           rvÚ__main__rz--terseZ nonaliasedz --nonaliased)rrr)r$r:r;r<r=r>r?r@r)rArBrCrDrErFr*)rrr)rr)rr')rr%)rN)r€r)r€r')r€r%)r€rh)r€N)r„r)r„N)rr%)r€r)r€r')r€r%)r€rh)r€N)rrr)rrr)rrr)rrá)rr´)rrâ)LZ __copyright__Ú __version__Ú collectionsrurÚrerØrOÚdevnullrÑr‘rvrZÚcompileÚASCIIrrr#r9r\rGrJZ_supported_distsrMrUrRrarcrqrxr~r�r“r˜r¢r£r¨r°r¶rÆrÉrÐrÕràrérîÚ namedtuplerïrôr�ryrørzrržr÷rrþrÿrrürrrrr r r r rÚ__name__ÚargvrrÚprintÚexitr r r r ÚpsÐ 0        7 0       6  0  0  # 6   T   Š     k   [