grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|jœ#ã@sÊ ddlZddlZddlZddgZdd„Ze d¡jZGdd„deƒZ d d„Z d d „Z d d „Z dd„Z dd„Zdd„Zddgfdd„Zd"dd„Zgfdd„Zdd„Zdd„Zdd „Zed!krceƒdSdS)#éNÚgetcapsÚ findmatchcCsd|vr d|dfSdS)NÚlinenor)ér©)Úentryrrú./opt/alt/python310/lib64/python3.10/mailcap.pyÚlineno_sort_key s r z[^\xa1-\U0010FFFF\w@+=:,./-]c@s eZdZdS)ÚUnsafeMailcapInputN)Ú__name__Ú __module__Ú __qualname__rrrrr sr c Cs¢ i}d}tƒD]F}zt|dƒ}Wn tyYqw|�t||ƒ\}}Wdƒn1s/wY| ¡D]\}}||vrE|||<q8|||||<q8q|S)NrÚr)ÚlistmailcapfilesÚopenÚOSErrorÚ_readmailcapfileÚitems)ÚcapsrZmailcapÚfpZmorecapsÚkeyÚvaluerrrrs$   ÿÿ ücCsT dtjvrtjd}| tj¡}|Sdtjvrtjd}nd}|ddddg}|S)NZMAILCAPSÚHOMEÚ.z /.mailcapz /etc/mailcapz/usr/etc/mailcapz/usr/local/etc/mailcap)ÚosÚenvironÚsplitÚpathsep)ZpathstrZmailcapsÚhomerrrr3s    ù ÿrcCs" t dtd¡t|dƒ\}}|S)Nz2readmailcapfile is deprecated, use getcaps insteadé)ÚwarningsÚwarnÚDeprecationWarningr)rrÚ_rrrÚreadmailcapfileEs ÿr$c Cs i} | ¡}|s||fS|ddks| ¡dkrq|}|dd…dkr=| ¡}|s-d}|dd…|}|dd…dks%t|ƒ\}}|rG|sHq|durT||d<|d7}| d ¡}tt|ƒƒD] }|| ¡||<q_d  |¡ ¡}||vr}|| |¡n|g||<q) Nrrú#Úéþÿÿÿz\ Ú rú/) ÚreadlineÚstripÚ parselinerÚrangeÚlenÚjoinÚlowerÚappend) rrrÚlineZnextlinerÚfieldsÚtypesÚjrrrrMs8çý   ärc Csâ g}dt|ƒ}}||kr#t|||ƒ\}}| |¡|d}||kst|ƒdkr+dS|d|d|dd…}}}d|i}|D]+}| d¡}|dkrQ|}d} n|d|… ¡}||dd… ¡} ||vrhqA| ||<qA||fS)Nrrr©NNÚviewú=r&)r.Ú parsefieldr1Úfindr+) r2r3ÚiÚnÚfieldrr7ÚrestZfkeyZfvaluerrrr,vs. ý    r,cCsV |}||kr!||}|dkrn|dkr|d}n|d}||ks|||… ¡|fS)Nú;ú\rr)r+)r2r;r<ÚstartÚcrrrr9•s ùr9r7z /dev/nullc Csš t|ƒrd|f}t |t¡dSt|||ƒ}|D]0}d|vr7t|d||ƒ}|dur-q|r7t |¡dkr7qt|||||ƒ} | durJ| |fSqdS)NzHRefusing to use mailcap with filename %r. Use a safe temporary filename.r6Útestr)Ú _find_unsafer r!r ÚlookupÚsubstrÚsystem) rÚMIMEtyperÚfilenameÚplistÚmsgÚentriesÚerCÚcommandrrrr¥s$    ÿcslg}||vr |||}| d¡}|dd}||vr!|||}ˆdur.‡fdd„|Dƒ}t|td�}|S)Nr)rz/*csg|]}ˆ|vr|‘qSrr)Ú.0rM©rrrÚ Észlookup..rP)rÚsortedr )rrHrrLZ MIMEtypesrrPrrEÀs     rEc Csdd}dt|ƒ}}||kr°||}|d}|dkr.|dkr)|||d…}|d}||}n~||}|d}|dkr?||}nm|dkrH||}nd|dkrbt|ƒr]d|f}t |t¡dS||}nJ|d kr¦|} ||kr€||d kr€|d}||kr€||d ksr|| |…} |d}t| |ƒ} t| ƒr¡d | | f}t |t¡dS|| }n|d|}||ks |S) Nr&rrú%r@ÚsÚtz9Refusing to substitute MIME type %r into a shell command.Ú{Ú}z=Refusing to substitute parameter %r (%s) into a shell command)r.rDr r!r Ú findparam) r=rHrIrJÚresr;r<rBrKrAÚnameZparamrrrrFÍsF      ÿ      Þ#rFcCsF| ¡d}t|ƒ}|D]}|d|… ¡|kr ||d…Sq dS)Nr8r&)r0r.)rZrJr<ÚprrrrXös ÿrXc CsÎddl}tƒ}|jdd…st|ƒdStdt|jƒdƒD]G}|j||d…}t|ƒdkr5tdƒdS|d}|d}t||d|ƒ\}}|sNtdtƒqtd|ƒt   |¡}t   |¡}|rdtd|ƒqdS) Nrrrz"usage: mailcap [MIMEtype file] ...r7zNo viewer found forz Executing:z Exit status:) ÚsysrÚargvÚshowr-r.ÚprintrÚtyperrGÚwaitstatus_to_exitcode) r\rr;ÚargsrHÚfilerNrMÚstsrrrrCs,      €ñrCcCs˜tdƒtƒD]}td|ƒqtƒ|stƒ}tdƒtƒt|ƒ}|D]$}t|ƒ||}|D]}t|ƒ}|D] }td|||ƒq9tƒq1q%dS)NzMailcap files:ú zMailcap entries:z %-15s)r_rrrR)rÚfnZckeysr`rLrMÚkeysÚkrrrr^s" üýr^Ú__main__)N)rr ÚreÚ__all__r ÚcompileÚsearchrDÚWarningr rrr$rr,r9rrErFrXrCr^r rrrrÚs. )  )  ÿ