grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|j4¤ã @sÖ dZdZddlZddlZddlZddlZddlZddlZddlZddddddddd d d œ Z e  d ¡Z d d „Z e  dej ¡Zdƒdd„Zd„dd„Ze  d¡Z  d…dd„Zdddddddd d!d"d#d$œ Zdd%d&d'd(d)d*œZd+d,„Zd-d.„Zd†d/d0„Zd1d2„Zd‡d4d5„Zd6d7„Zdˆd8d9„Zd:d;„Zdd?„Zd@dA„Zd„dBdC„Z dDdEdFdœZ!ej"ddfdGdH„Z#dIdJ„Z$GdKdL„dLƒZ%dMdN„Z&GdOdP„dPe 'dQdR¡ƒZ(da)dSdT„Z*dUdV„Z+dWdX„Z,dYdZ„Z-d[d\„Z.d]d^„Z/d_d`„Z0e  daej ¡Z1e  dbej ¡Z2e  dc¡Z3e  dd¡Z4iZ5d‰dedf„Z6dgdh„Z7didj„Z8dkdl„Z9dmdn„Z:dodp„Z;dqdr„ZdŠdudv„Z?e  dw¡Z@e  dx¡ZAdyZBdaCdzd{„ZDd|d}„ZEeFd~k�ridejGv�pOd€ejGvZHd�ejGv�oZd‚ejGvZIeJe?eIeHƒƒe Kd¡dSdS)‹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.8éNé ééé(é2éÈ) ZdevZalphaÚaZbetaÚbÚcZRCZrcÚplÚpz([0-9]+|[._+-])c Cs`g}t |¡D]&}|dvr-z t|dƒ}d}Wnty%t |d¡}Ynw| ||f¡q|S)Nz._+-rédr)Ú _component_reÚsplitÚintÚ ValueErrorÚ _ver_stagesÚgetÚextend)ÚversionÚresultÚvÚt©rú//opt/alt/python310/lib64/python3.10/platform.pyÚ_comparable_versionŽs  ÿ€rsC(__libc_init)|(GLIBC_([0-9.]+))|(libc(_\w+)?\.so(?:\.(\d[0-9.]*))?)Úé@c Cs |s+zt d¡}|jdd�}t|ƒdkrt|ƒWSWn tttfy'Ynwtj }t }t tj dƒr9tj   |¡}t|dƒ�À}| |¡}d} | t|ƒkrêd|vsTd |vr[t || ¡} nd} | rg|  ¡t|ƒkrƒ| |¡} | r€|t| t|ƒd ƒd…| }d} qF| sƒnqd d „|  ¡Dƒ\} } }}}}| r™|s™d }n=| r¯|dkr¤d}|}n2||ƒ||ƒkr®|}n'|rÖ|dkrÖd }|rÅ|rÃ||ƒ||ƒkrÅ|}|rÖ|t|ƒ d…|krÖ||}|  ¡} | t|ƒksLWdƒ||fSWdƒ||fSWdƒ||fS1�swY||fS)NÚCS_GNU_LIBC_VERSIONé)ÚmaxsplitéÚrealpathÚrbrslibcsGLIBCiècSs"g|] }|dur | d¡n|‘qS)NÚlatin1)Údecode)Ú.0ÚsrrrÚ Ôsÿÿzlibc_ver..ZlibcÚglibc)ÚosÚconfstrrÚlenÚtupleÚAttributeErrorrÚOSErrorÚsysÚ executablerÚhasattrÚpathr"ÚopenÚreadÚ _libc_searchÚsearchÚendÚmaxÚgroups)r1ÚlibrZ chunksizeÚverÚpartsÚVÚfZbinaryÚposÚmÚchunkZlibcinitr)Z glibcversionZsoZthreadsZ soversionrrrÚlibc_ver¢sz     ÿþ      þ€á ý#à ý#ì ñ#Ý#rCcCs` | d¡}|r | |¡z ttttt|ƒƒƒ}Wn ty$|}Ynwd |dd…¡}|S)NÚ.é)rÚappendÚlistÚmapÚstrrrÚjoin)rÚbuildÚlZstringsrrrÚ _norm_versionés   ÿrMz'(?:([\w ]+) ([\w.]+) .*\[.* ([\d.]+)\])©Úwin32Úwin16Údosc Csæ tj|vr |||fSddl}dD]'}z|j||j|jddd�}Wnt|jfy6}zWYd}~qd}~wwn|||fS| ¡}t  |¡}|durn|  ¡\}}}|ddkr^|dd…}|ddkrj|dd…}t |ƒ}|||fS)Nr)r<zcommand /c verz cmd /c verT)ÚstdinÚstderrÚtextÚshelléÿÿÿÿrD) r0ÚplatformÚ subprocessÚ check_outputÚDEVNULLr/ÚCalledProcessErrorÚstripÚ _ver_outputÚmatchr:rM) ÚsystemÚreleaserZsupported_platformsrXÚcmdÚinfoZwhyrArrrÚ _syscmd_vers8  ü €þ       rcZ2000ZXPZ 2003ServerZpost2003ÚVistaÚ7Ú8z8.1zpost8.1Z10Zpost10) )ér)rgr©rgr!)rgN©ér©rjr©rjr!©rjrE©rjN)rr)rNZ 2008ServerZ 2008ServerR2Z 2012ServerZ 2012ServerR2Zpost2012ServerR2)rhrirkrlrmrncCs tƒdvS)N)ZIoTUAPZ NanoServerZWindowsCoreHeadlessZ IoTEdgeOS)Ú win32_editionrrrrÚ win32_is_iotSs rpcCs¢zzddl}Wn tyddl}YnwWn ty YdSwz%d}| |j|¡�}| |d¡dWdƒWS1s?wYWdStyPYdSw)Nrú,SOFTWARE\Microsoft\Windows NT\CurrentVersionZ EditionId)ÚwinregÚ ImportErrorÚ_winregÚ OpenKeyExÚHKEY_LOCAL_MACHINEÚ QueryValueExr/)rrÚcvkeyÚkeyrrrroVs*   ÿ€  ö$ÿ ýýroc CsÞzddlm}Wnty||||fYSw|ƒ}ztttƒd d¡ƒ\}}}Wnty@|jp:|dd…\}}}Ynwd  |||¡}t   ||f¡pWt   |df¡pW|}|dd…||fkr„zd  |j ¡}Wnt yƒ|dd…d kr�d |dd…}Ynwt|d dƒdkrœt  ||f¡p›t  |df¡p›|}zzddl} Wn ty°ddl} YnwWn ty»Yn.wz#d } |  | j| ¡�} |  | d ¡d}Wdƒn1sÙwYWn tyèYnw||||fS)Nr)Úgetwindowsversionr!rDrEz {0}.{1}.{2}zSP{}é z Service Pack ZSPZ product_typerqZ CurrentType)r0rzrsrHrrcrrZplatform_versionÚformatÚ_WIN32_CLIENT_RELEASESrZservice_pack_majorr.ÚgetattrÚ_WIN32_SERVER_RELEASESrrrtrurvrwr/) r`rÚcsdÚptyperzÚwinverÚmajorÚminorrKrrrxryrrrÚ win32_verhsf ÿ  ÿ ÿþ €þ ÿþ   ÿ€ ÿÿ€ ÿ r…cCs–d}tj |¡s dSzddl}Wn tyYdSwt|dƒ� }| |¡}Wdƒn1s0wY|d}d}t ¡j}|dvrFd}|||fS)Nz0/System/Library/CoreServices/SystemVersion.plistrr#ZProductVersion©rrr)ZppczPower MacintoshZPowerPC) r*r3ÚexistsÚplistlibrsr4ÚloadÚunameÚmachine)Úfnrˆr?r r`Ú versioninfor‹rrrÚ _mac_ver_xml›s"   ÿ  ÿ  rŽr†cCs tƒ}|dur |S|||fS©N)rŽ)r`r�r‹rbrrrÚmac_ver±s   r�cCsBddlm}z| |¡}|dur|WS|WSty |YSw)Nr)ÚSystem)Ú java.langr‘Z getPropertyr.)ÚnameÚdefaultr‘ÚvaluerrrÚ _java_getpropÄs   ÿr–c Cs² zddl}Wnty||||fYSwtd|ƒ}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’rsr–) r`ÚvendorÚvminfoÚosinfoÚjavaZvm_nameZ vm_releaseZ vm_vendorÚos_nameÚ os_versionÚos_archrrrÚjava_verÏs&  ÿ             ržcCs– |dkr@|dkr|||fS| d¡}|r6zt|dƒ}Wn ty&Ynw|d}t|ƒ|d<d |¡}|dkr=d}n d}n|dvrFd }|||fS) NZSunOSÚ5rDrrEÚ6ZSolaris©rOrPÚWindows)rrrrIrJ)r_r`rrLrƒrrrÚ system_aliasòs(   ÿ   r£cGsÎ d dd„tt|ƒDƒ¡}| dd¡}| dd¡}| dd¡}| dd¡}| d d¡}| d d¡}| d d¡}| d d¡}| d d¡} | dd¡}||krPn|}qE|ddkre|dd…}|ddksY|S)Nú-css�|]}| ¡VqdSr�)r\)r&ÚxrrrÚ "s€z_platform..ú Ú_ú/ú\ú:ú;ú"ú(ú)Úunknownrrz--rV)rJÚfilterr,Úreplace)ÚargsrWZcleanedrrrÚ _platforms*          ü   ÿr´cCsH zddl}Wn ty|YSwz| ¡WSty#|YSw©Nr)ÚsocketrsZ gethostnamer/)r”r¶rrrÚ_node<s  þ  þr·cCsN tj |¡}tj |¡r%tj tj tj |¡t |¡¡¡}tj |¡s |Sr�)r*r3ÚabspathÚislinkÚnormpathrJÚdirnameÚreadlink)ÚfilepathrrrÚ_follow_symlinksKs  ÿ ÿr¾c Csz tjdvr|Sddl}t|ƒ}ttjdd�}z|jdd|g|j|d�}Wnt |j fy3|YSw|s8|S|  d¡S) N)rQrOrPrÚC)ÚLC_ALLÚfilez-b)rSÚenvzlatin-1) r0rWrXr¾Údictr*ÚenvironrYrZr/r[r%)Útargetr”rXrÂÚoutputrrrÚ _syscmd_fileWs"   þÿ rÇ)rÚ WindowsPE)rr¢)rÚMSDOScCs |sddl}| d¡}t|dƒd}|rt|dƒ}nd}|s=|tjkr=tjtvr9ttj\}}|r5|}|r9|}||fSd|vrId|vrI||fSd|vrPd }nd |vrVd }d |vr`d }||fSd |vrtd|vrnd}||fSd }||fSd|vr~d}||fSd|vrˆd}||fS ||fS)NrÚPéÚbitrr1z shared objectz32-bitÚ32bitz64-bitZ64bitZELFZPEr¢rÈZCOFFzMS-DOSrÉ)ÚstructZcalcsizerIrÇr0r1rWÚ_default_architecture)r1ÚbitsÚlinkagerÎÚsizeZfileoutr rLrrrÚ architecture€sP    ò ÷ øúþrÓcCstj dd¡p tj dd¡S)NZPROCESSOR_ARCHITEW6432rZPROCESSOR_ARCHITECTURE)r*rÄrrrrrÚ_get_machine_win32Ìs þrÔc@s0eZdZedd„ƒZdd„Zdd„Zdd„Zd S) Ú _ProcessorcCs t|dtj›�|jƒ}|ƒpdS)NZget_r)r~r0rWÚfrom_subprocess)ÚclsÚfuncrrrrÚs z_Processor.getcCstj dtƒ¡S)NZPROCESSOR_IDENTIFIER)r*rÄrrÔrrrrÚ get_win32ßóz_Processor.get_win32cCsBzddl}Wn tyYdSw| dd¡\}}|dkrdSdS)NrzSYI$_CPUé€ZAlphaZVAX)Úvms_librsZgetsyi)rÜZcsidZ cpu_numberrrrÚ get_OpenVMSâs  ÿz_Processor.get_OpenVMSc Cs: ztjddgtjdd� ¡WSttjfyYdSw)NrŠz-pT)rSrT)rXrYrZr\r/r[rrrrrÖësýüÿz_Processor.from_subprocessN)Ú__name__Ú __module__Ú __qualname__Ú classmethodrrÙrÝrÖrrrrrÕÙs   rÕcCs|dkrdS|S)Nr°rr)ÚvalrrrÚ_unknown_as_blankùrÚrãcsTeZdZ dZejdd„ƒZ‡fdd„Zedd„ƒZ dd „Z d d „Z d d „Z ‡Z S)Ú uname_result)r_Únoder`rr‹Ú processorcCs tt ¡ƒSr�)rãrÕr©Úselfrrrræ s zuname_result.processorcst tƒ ¡|jf¡Sr�)Ú itertoolsÚchainÚsuperÚ__iter__rærç©Ú __class__rrrìsþzuname_result.__iter__cCsPt|jƒd}|j|g|¢RŽ}t|ƒ|dkr&d|›dt|ƒ›�}t|ƒ‚|S)Nrz Expected z arguments, got )r,Ú_fieldsÚ__new__Ú TypeError)r×ÚiterableÚ num_fieldsrÚmsgrrrÚ_makes zuname_result._makecCs t|ƒ|Sr�)r-)rèryrrrÚ __getitem__!s zuname_result.__getitem__cCsttt|ƒƒƒSr�)r,r-ÚiterrçrrrÚ__len__$rÚzuname_result.__len__cCstt|ƒdt|jƒd…fS©Nr)rär-r,rïrçrrrÚ __reduce__'szuname_result.__reduce__)rÞrßràrïÚ functoolsÚcached_propertyrærìrárõrörørúÚ __classcell__rrrírräÿs    räZuname_result_basez#system node release version machinec Cs~ tdurtSz t ¡\}}}}}}Wnty+tj}tƒ}d}}}d}Ynwt|ƒs•|dkr@tƒ\}}}}|p?t ƒ}|rD|sit |ƒ\}}}|dkrRd}n|dkri|dkrid}d|dd…krgd }nd}|d vr{|sx|dkrvd }nd }d}n|dd …dkr•t ƒ\}}} } d}d  | ¡}|s•|}|dkr£|rŸ|dkr£|}d}|dkr¯|dkr¯d}d }|||||f} t tt| ƒŽatS)NrrrOzMicrosoft Windowsr¢Z Microsoftz6.0rErdr¡rÍZ16bitéršÚJavaú, ZOpenVMSÚ0)Ú _uname_cacher*rŠr.r0rWr·Úanyr…rÔrcržrJrärHrã) r_rår`rr‹Zinfosr€r�r—r˜r™ZvalsrrrrŠ.s\   ü   rŠcCó tƒjSr�)rŠr_rrrrr_‡ór_cCrr�)rŠrårrrrrå�sråcCrr�)rŠr`rrrrr`šrr`cCrr�)rŠrrrrrr£rrcCrr�)rŠr‹rrrrr‹¬rr‹cCrr�)rŠrærrrrræµsræ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ö |durtj}t |d¡}|dur|Sd|vrBd}| d¡r%t |¡}nt |¡}|dur6tdt |ƒƒ‚|  ¡\}}}d}d}nytj  d¡rnd}t  |¡}|dur[tdt |ƒƒ‚|  ¡\}}}} } |durjd}tj }nMd|vr�d}t  |¡}|dur…tdt |ƒƒ‚|  ¡\}}}} d}n+t  |¡}|dur¡td t |ƒƒ‚|  ¡\}}}} }d }|dur³d}n| r»|d | }ttd ƒrÇtj\} } } nttd ƒrÓtj\} } } nd} d} | d¡} t| ƒdkrì|  d¡d | ¡}||| | |||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Ú _mercurialrDr!r)r0rÚ_sys_version_cacherÚ startswithÚ_ironpython_sys_version_parserr^Ú _ironpython26_sys_version_parserrÚreprr:rWÚ_sys_version_parserÚ_pypy_sys_version_parserr2rrrr,rFrJ)Ú sys_versionrr“r^rZ alt_versionZcompilerZbuildnoZ builddateZ buildtimer¨ÚbranchZrevisionrLrrrÚ _sys_versionßsŠ    ÿÿ  ÿÿ ÿ ÿÿ ÿ       rcCó tƒdSrµ©rrrrrÚpython_implementationGó rcCrrùrrrrrÚpython_versionTs rcCs ttƒd d¡ƒS)NrrD)r-rrrrrrÚpython_version_tuple^srcCr)Nr!rrrrrÚ python_branchis rcCr)NrErrrrrÚpython_revisionwrrcCs tƒdd…S)NrþrjrrrrrÚ python_build„srcCr)NrjrrrrrÚpython_compilerŒs rcCsZ t ||fd¡}|dur|Stƒ\}}}}}}||krd}|r)t|||ƒ\}}}|dkr8tƒd} | r8d}| }|dkrTt|ƒ\} } } } |rLt||ƒ}nYt|||| ƒ}nQ|dvritƒ\}}t||||d||ƒ}n<|dkr�tƒ\}}}\}}}|s{|s‚t|||ƒ}n#t|||d |||ƒ}n|r•t||ƒ}nt t j ƒ\}}t||||||ƒ}|t||f<|S) NrZDarwinrZmacOSr¢)ÚLinuxÚwithrÿZon) Ú_platform_cacherrŠr£r�r…r´rCržrÓr0r1)ÚaliasedÚterserr_rår`rr‹ræZ macos_releaseZrelZversr€r�rWZlibcnameZ libcversionÚrrr˜r›rœr�rÐrÑrrrrW˜sR    þþ ÿ rWzA^(?P[a-zA-Z0-9_]+)=(?P["']?)(?P.*)(?P=quote)$z\\([\\\$\"\'`]))z/etc/os-releasez/usr/lib/os-releasecCsHddddœ}|D]}t |¡}|dur!t d| d¡¡|| d¡<q|S)NrZlinux)ÚNAMEZIDZ PRETTY_NAMEz\1r•r“)Ú_os_release_liner^Ú_os_release_unescapeÚsubÚgroup)ÚlinesrbÚlineZmorrrÚ_parse_os_releaseñsý  ÿ€r)c Cs  tdurLd}tD]7}z t|dd�� }t|ƒaWdƒn1s!wYWt ¡Sty@}z |j}WYd}~q d}~wwt|dd t¡›�ƒ‚t ¡S)Nzutf-8)ÚencodingzUnable to read files r)Ú_os_release_cacheÚ_os_release_candidatesr4r)r/ÚerrnorJÚcopy)r-Ú candidater?ÚerrrÚfreedesktop_os_releases& ÿ ø€ÿþr1Ú__main__r z--terseZ nonaliasedz --nonaliased)Nrrr)r)rrrrN)rrrr)rr†r)rrr†r†r�)rr)LZ __copyright__Ú __version__Ú collectionsr*Úrer0rXrûrérÚcompilerrÚASCIIr6rCrMr]rcr}rrpror…rŽr�r–ržr£r´r·r¾rÇrÏr1rÓrÔrÕrãÚ namedtuplerärrŠr_rår`rr‹rær r r rrrrrrrrrrrrWr#r$r,r+r)r1rÞÚargvr rÚprintÚexitrrrrÚsðY ø ü  G   þ2ñù  3  #*  $ýL  þÿ,Y     ûüÿÿ h     Oÿ  û