grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|jÀ9ã@s dZddlZddlZddlZddlZddlZddlZejdedd�gd¢Z Gdd„de ƒZ dZ d Z d Zd Zd ZGd d„dƒZdd„ZGdd„dƒZejdd„ƒZGdd„dƒZGdd„dƒZGdd„dƒZdd„ZGdd„dƒZGdd „d ƒZGd!d"„d"ƒZd#d$„ZdS)%z‰Macintosh binhex compression/decompression. easy interface: binhex(inputfilename, outputfilename) hexbin(inputfilename, outputfilename) éNzthe binhex module is deprecatedé)Ú stacklevel)ÚbinhexÚhexbinÚErrorc@s eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©r r ú-/opt/alt/python310/lib64/python3.10/binhex.pyr%sréi€é@ó�c@seZdZdd„ZdS)ÚFInfocCsd|_d|_d|_dS)Nz????r)ÚTypeÚCreatorÚFlags©Úselfr r r Ú__init__6s zFInfo.__init__N)rrr rr r r r r5s rcCsˆtƒ}t |d¡�}| d¡}d|vrd|_| dd¡| ¡}Wdƒn1s*wYtj  |¡\}}|  ddd¡}|||dfS) NÚrbirZTEXTrú:ú-r ) rÚioÚopenÚreadrÚseekÚtellÚosÚpathÚsplitÚreplace)ÚnameÚfinfoÚfpÚdataZdsizeÚdirÚfiler r r Ú getfileinfo;s   ú r(c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚopenrsrccGódS©Nr ©rÚargsr r r rIózopenrsrc.__init__cGsdS©Nór r,r r r rLr.z openrsrc.readcGr*r+r r,r r r ÚwriteOr.zopenrsrc.writecCr*r+r rr r r ÚcloseRr.zopenrsrc.closeN)rrr rrr1r2r r r r r)Hs  r)ccsD�t ¡�t ddt¡dVWdƒdS1swYdS)NÚignoreÚ)ÚwarningsÚcatch_warningsÚfilterwarningsÚDeprecationWarningr r r r Ú_ignore_deprecation_warningXs € "þr9c@ó0eZdZdZdd„Zdd„Zdd„Zdd „Zd S) Ú_Hqxcoderenginez(Write data to the coder in 3-byte chunkscCs ||_d|_d|_td|_dS)Nr0r )Úofpr%ÚhqxdataÚLINELENÚlinelen©rr<r r r rbsz_Hqxcoderengine.__init__cCsŽ|j||_t|jƒ}|dd}|jd|…}|j|d…|_|s$dStƒ�|jt |¡|_Wdƒn1s;wY| d¡dS)Nér)r%Úlenr9r=ÚbinasciiÚb2a_hqxÚ_flush)rr%ZdatalenZtodor r r r1hs   ÿz_Hqxcoderengine.writecCsˆd}|t|jƒ|jkr-||j}|j |j||…d¡t|_|}|t|jƒ|jks |j|d…|_|rB|j |jd¡dSdS)Nró s: )rBr=r?r<r1r>)rZforceÚfirstZlastr r r rEts üÿz_Hqxcoderengine._flushcCs\|jr tƒ�|jt |j¡|_Wdƒn1swY| d¡|j ¡|`dS)Nr )r%r9r=rCrDrEr<r2rr r r r2sÿ  z_Hqxcoderengine.closeN)rrr Ú__doc__rr1rEr2r r r r r;_s  r;c@ó(eZdZdZdd„Zdd„Zdd„ZdS) Ú_Rlecoderenginez4Write data to the RLE-coder in suitably large chunkscCó||_d|_dSr/)r<r%r@r r r rŠó z_Rlecoderengine.__init__cCsf|j||_t|jƒtkrdStƒ�t |j¡}Wdƒn1s#wY|j |¡d|_dSr/)r%rBÚREASONABLY_LARGEr9rCÚ rlecode_hqxr<r1)rr%Úrledatar r r r1Žs ÿ  z_Rlecoderengine.writecCsV|jr"tƒ�t |j¡}Wdƒn1swY|j |¡|j ¡|`dSr+)r%r9rCrNr<r1r2)rrOr r r r2—sÿ  z_Rlecoderengine.closeN)rrr rHrr1r2r r r r rJ‡s  rJc@óLeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dS)ÚBinHexc Cs˜|\}}}}d}t|tƒr|}t |d¡}d}z*| d¡t|ƒ} t| ƒ|_d|_|dur0t ƒ}||_ ||_ |  ||¡t |_WdS|rK| ¡‚)NFÚwbTs0(This file must be converted with BinHex 4.0) :r)Ú isinstanceÚstrrrr1r;rJr<ÚcrcrÚdlenÚrlenÚ _writeinfoÚ _DID_HEADERÚstater2) rZname_finfo_dlen_rlenr<r"r#rVrWZclose_on_errorZofnameZhqxerr r r r s*       zBinHex.__init__c Cs´t|ƒ}|dkr tdƒ‚t|gƒ| d¡d}|j|j}}t|tƒr)| d¡}t|tƒr3| d¡}||}t  d|j ¡}t  d|j |j ¡} |||| } |  | ¡| ¡dS)Né?zFilename too longzlatin-1óú>hz>ii)rBrÚbytesÚencoderrrSrTÚstructÚpackrrVrWÚ_writeÚ _writecrc) rr"r#ÚnlÚdÚtpZcrZd2Zd3Zd4Úinfor r r rX·s      zBinHex._writeinfocCs t ||j¡|_|j |¡dSr+)rCÚcrc_hqxrUr<r1©rr%r r r rbÊsz BinHex._writecCs4|jdkrd}nd}|j t ||j¡¡d|_dS)Nrr]z>H)rUr<r1r`ra)rZfmtr r r rcÎs  zBinHex._writecrccCs0|jtkr tdƒ‚|jt|ƒ|_| |¡dS)NzWriting data at the wrong time)rZrYrrVrBrbrir r r r1Øs z BinHex.writecCs,|jdkr td|jfƒ‚| ¡t|_dS)NrzIncorrect data size, diff=%r)rVrrWrcÚ _DID_DATArZrr r r Ú close_dataÞs  zBinHex.close_datacCsB|jtkr | ¡|jtkrtdƒ‚|jt|ƒ|_| |¡dS)Nz'Writing resource data at the wrong time)rZrjrkrrWrBrbrir r r Ú write_rsrcäs  zBinHex.write_rsrccCsŽ|jdurdSz2|jtkr| ¡|jtkrtdƒ‚|jdkr'td|jfƒ‚| ¡Wd|_|j}|`| ¡dSd|_|j}|`| ¡w)NzClose at the wrong timerz$Incorrect resource-datasize, diff=%r)rZrjrkrrWrcr<r2r@r r r r2ìs$      ý z BinHex.closeN) rrr rrXrbrcr1rkrlr2r r r r rQŸs  rQcCs t|ƒ}t||ƒ}t |d¡�} | d¡}|sn| |¡q| ¡Wdƒn1s-wYt|dƒ} | d¡}|s@n| |¡q8|  ¡|  ¡dS)zEbinhex(infilename, outfilename): create binhex-encoded copy of a filerTéôN) r(rQrrrr1rkr)rlr2)ÚinpÚoutr#r<Úifprer r r rýs$   ý ú   ý rc@rI) Ú_Hqxdecoderenginez*Read data via the decoder in 4-byte chunkscCrK)Nr)rpÚeof©rrpr r r rrLz_Hqxdecoderengine.__init__cCsÜd}|}|dkrl|jr |S|ddd}|j |¡} ztƒ�t |¡\}|_Wdƒn1s3wYWntjyCYnw|j d¡}|sPtd ƒ‚||}q||}|t|ƒ}|sh|jshtd ƒ‚|dks|S) z&Read at least wtd bytes (or until EOF)r0rrrAéTNr zPremature EOF on binhex file) rrrprr9rCZa2b_hqxZ IncompleterrB)rZtotalwtdZdecdataÚwtdr%Z decdatacurÚnewdatar r r rs4  ÿÿ ö  éz_Hqxdecoderengine.readcCó|j ¡dSr+©rpr2rr r r r2:óz_Hqxdecoderengine.closeN)rrr rHrrr2r r r r rqs  !rqc@r:) Ú_RledecoderenginezRead data via the RLE-codercCs||_d|_d|_d|_dS)Nr0r)rpÚ pre_bufferÚ post_bufferrrrsr r r r@s z_Rledecoderengine.__init__cCsD|t|jƒkr| |t|jƒ¡|jd|…}|j|d…|_|Sr+)rBr|Ú_fill)rruÚrvr r r rFs z_Rledecoderengine.readcCs@|j|j |d¡|_|jjr2tƒ�|jt |j¡|_Wdƒn1s(wYd|_dSt|jƒ}|jdd…t dt krI|d}n,|jdd…t krW|d}n|jdd…t dkrg|d}n|jdd…t krqn|d }tƒ�|jt |jd|…¡|_Wdƒn1s‘wY|j|d…|_dS) Nrtr0éýÿÿÿr\rAéÿÿÿÿréþÿÿÿr ) r{rprrrr9r|rCZ rledecode_hqxrBÚRUNCHAR)rruZmarkr r r r}Ms2 ÿÿ    ÿÿz_Rledecoderengine._fillcCrwr+rxrr r r r2rryz_Rledecoderengine.closeN)rrr rHrrr}r2r r r r rz=s  %rzc@rP)ÚHexBincCsht|tƒr t |d¡} | d¡}|stdƒ‚|dkrq |dkr!nq t|ƒ}t|ƒ|_d|_ |  ¡dS)NrTr zNo binhex data foundrFó:r) rSrTrrrrrqrzrprUÚ _readheader)rrpZchZhqxifpr r r rvs   ÷  zHexBin.__init__cCs |j |¡}t ||j¡|_|Sr+)rprrCrhrU)rrBr%r r r Ú_readŒs z HexBin._readcCsNt d|j d¡¡dd@}|jd@|_||jkr"td|j|fƒ‚d|_dS)Nr]rriÿÿzCRC error, computed %x, read %x)r`ÚunpackrprrUr)rZfilecrcr r r Ú _checkcrc‘s  ÿ zHexBin._checkcrccCs¾| d¡}| t|ƒ¡}| d¡}| ¡|dd…}|dd…}t d|dd…¡d}t d|dd …¡d|_t d|d d…¡d|_||_tƒ|_||j_ ||j_ ||j_ t |_ dS) Nr ééé r]é rz>lé)r†Úordrˆr`r‡rVrWÚFNamerrrrrYrZ)rrBZfnameÚrestÚtypeZcreatorÚflagsr r r r…›s     zHexBin._readheadercGst|jtkr tdƒ‚|r|d}t||jƒ}n|j}d}t|ƒ|kr2|| |t|ƒ¡}t|ƒ|ks!|j||_|S)NzRead data at wrong timerr0)rZrYrÚminrVrBr†)rÚnr~r r r r¯s   ÿ z HexBin.readcCs6|jtkr tdƒ‚|jr| |j¡}| ¡t|_dS)Nzclose_data at wrong time)rZrYrrVr†rˆrj©rZdummyr r r rk½s   zHexBin.close_datacGsZ|jtkr | ¡|jtkrtdƒ‚|r|d}t||jƒ}n|j}|j||_| |¡S)Nz Read resource data at wrong timer)rZrYrkrjrr“rWr†)rr”r r r Ú read_rsrcÅs    zHexBin.read_rsrccCsR|jdurdSz|jr| |j¡}| ¡Wd|_|j ¡dSd|_|j ¡wr+)rZrWr–rˆrpr2r•r r r r2Òs   ÿ z HexBin.closeN) rrr rr†rˆr…rrkr–r2r r r r rƒus  rƒcCs¾t|ƒ}|j}|s |j}t |d¡�} | d¡}|sn| |¡qWdƒn1s,wY| ¡| d¡}|rYt |dƒ}| |¡ | d¡}|sOn| |¡qG|  ¡|  ¡dS)z6hexbin(infilename, outfilename) - Decode binhexed filerRTrmN) rƒrr�rrrr1rkr–r)r2)rnrorpr#r<rer r r rÝs0  ýü     ý r)rHrCÚ contextlibrrr`r5Úwarnr8Ú__all__Ú ExceptionrrYrjrMr>r‚rr(r)Úcontextmanagerr9r;rJrQrrqrzrƒrr r r r Ús<ÿ  (^+8 h