grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a XC?h Mã@sjddlZddlZddlZgd¢ZeefZdd„Zd?dd„Zd@dd „Z d d „Z d d „Z e  dd¡Z e  dd¡Zdd„Zdd„ZdZdadadd„ZdAdd„Zdd„ZdBdd„ZdadadZdZdCdd „Zddddd!œd"d#„Zddd$d%œd&d'„Zd(Zda da!da"dDd)d*„Z#d+d,„Z$d-Z%e%d.d/Z&d0d1„Z'd2d3„Z(d4d5„Z)d6d7„Z*d8d9„Z+d:d;„Z,dk�rfe,ƒdS)EéN)ÚencodeÚdecodeÚ encodebytesÚ decodebytesÚ b64encodeÚ b64decodeÚ b32encodeÚ b32decodeÚ b16encodeÚ b16decodeÚ b85encodeÚ b85decodeÚ a85encodeÚ a85decodeÚstandard_b64encodeÚstandard_b64decodeÚurlsafe_b64encodeÚurlsafe_b64decodecCsxt|tƒr2z | d¡WSty0tdƒ‚Yn0t|tƒr@|Szt|ƒ ¡WStyrtd|j j ƒd‚Yn0dS)NÚasciiz4string argument should contain only ASCII charactersz>argument should be a bytes-like object or ASCII string, not %r) Ú isinstanceÚstrrÚUnicodeEncodeErrorÚ ValueErrorÚ bytes_typesÚ memoryviewÚtobytesÚ TypeErrorÚ __class__Ú__name__©Ús©r!ú+/opt/alt/python39/lib64/python3.9/base64.pyÚ_bytes_from_decode_data"s     ÿÿr#cCs,tj|dd�}|dur(| t d|¡¡S|S)NF)Únewlineó+/)ÚbinasciiÚ b2a_base64Ú translateÚbytesÚ maketrans)r ÚaltcharsÚencodedr!r!r"r3srFcCsNt|ƒ}|dur*t|ƒ}| t |d¡¡}|rDt d|¡sDt d¡‚t |¡S)Nr%s[A-Za-z0-9+/]*={0,2}zNon-base64 digit found) r#r(r)r*ÚreÚ fullmatchr&ÚErrorÚ a2b_base64)r r+Zvalidater!r!r"rAs rcCst|ƒS©N)rrr!r!r"rZsrcCst|ƒSr1)rrr!r!r"rasrr%s-_cCst|ƒ t¡Sr1)rr(Ú_urlsafe_encode_translationrr!r!r"rosrcCst|ƒ}| t¡}t|ƒSr1)r#r(Ú_urlsafe_decode_translationrrr!r!r"rxs  rs ABCDEFGHIJKLMNOPQRSTUVWXYZ234567cs>tdur,dd„tDƒ‰‡fdd„ˆDƒad‰t|tƒsBt|ƒ ¡}t|ƒd}|rb|dd|}tƒ}tj }t}t dt|ƒdƒD]V}||||d…dƒ}|||d?||d ?d @||d ?d @||d @7}q‚|d krðd |dd…<nF|dk�rd|dd…<n.|dk�r d|dd…<n|dk�r6d|dd…<t |ƒS)NcSsg|]}t|fƒ‘qSr!©r)©Ú.0Úir!r!r"Ú •ózb32encode..csg|]}ˆD] }||‘q qSr!r!©r6ÚaÚb©Zb32tabr!r"r8–r9éórÚbigééiÿé és======iúÿÿÿés====éüÿÿÿés===éýÿÿÿéó=éÿÿÿÿ) Ú_b32tab2Ú _b32alphabetrrrrÚlenÚ bytearrayÚintÚ from_bytesÚranger))r Úleftoverr,rQZb32tab2r7Úcr!r=r"rŽs<    ÿþ ý    rc Csxtdurdd„ttƒDƒat|ƒ}t|ƒdr8t d¡‚|dur^t|ƒ}| t  dd|¡¡}|rj|  ¡}t|ƒ}|  d¡}|t|ƒ}t ƒ}t}t dt|ƒdƒD]f}|||d…}d} z|D]} | d >|| } qÀWntyöt d ¡d‚Yn0||  d d ¡7}q¢|d�s|d v�r(t d¡‚|�rp|�rp| d |K} |  d d ¡} d d |d} | d| …|dd…<t|ƒS)NcSsi|]\}}||“qSr!r!)r6ÚkÚvr!r!r"Ú Êr9zb32decode..ézIncorrect paddings01óOrJrr>zNon-base32 digit foundr@>rrDrGrIéé+éûÿÿÿ)Ú_b32revÚ enumeraterMr#rNr&r/r(r)r*ÚupperÚrstriprOrRÚKeyErrorÚto_bytes) r ÚcasefoldZmap01ÚlZpadcharsÚdecodedZb32revr7ZquantaÚaccrTZlastrSr!r!r"r ´s@         r cCst |¡ ¡Sr1)r&Zhexlifyr_rr!r!r"r ÷sr cCs4t|ƒ}|r| ¡}t d|¡r*t d¡‚t |¡S)Ns [^0-9A-F]zNon-base16 digit found)r#r_r-Úsearchr&r/Z unhexlify)r rcr!r!r"r ýs   r s<~s~>c s¬t|tƒst|ƒ ¡}t|ƒ d}|r4|d|}t dt|ƒd¡ |¡}‡‡‡‡fdd„|Dƒ}|r¢|s¢|ddkrŒˆdd |d<|dd| …|d<d  |¡S) NrIr?z!%dIcsPg|]H}ˆr|sdn6ˆr$|dkr$dn&ˆ|dˆ|ddˆ|d‘qS)ózi óyií^ éUi9r!)r6Zword©ÚcharsÚchars2ÚfoldnulsÚ foldspacesr!r"r8!sû  ÿ þz_85encode..rKrhrr>r9) rrrrrNÚstructÚStructZunpackÚjoin) r<rlrmÚpadrnroÚpaddingZwordsÚchunksr!rkr"Ú _85encodes   û rv)roÚwrapcolrsÚadobecsºtdur*dd„tddƒDƒadd„tDƒat|tt|d|ƒ‰|rHtˆ‰ˆrªt|rVdndˆƒ‰‡‡fd d„td tˆƒˆƒDƒ}|r t|d ƒdˆkr | d ¡d  |¡‰|r¶ˆt 7‰ˆS)NcSsg|]}t|fƒ‘qSr!r4r5r!r!r"r8Dr9za85encode..é!évcSsg|]}tD] }||‘q qSr!)Ú _a85charsr:r!r!r"r8Er9TrErDcsg|]}ˆ||ˆ…‘qSr!r!r5©Úresultrwr!r"r8MsÿrrKr9ó ) Ú _a85chars2rRr{rvÚ _A85STARTÚmaxrNÚappendrrÚ_A85END)r<rorwrsrxrur!r|r"r/s$ ÿ  rs )rorxÚ ignorecharsc Cs�t|ƒ}|rH| t¡s$td t¡ƒ‚| t¡r<|dd…}n |dd…}t d¡j }g}|j }g}|j }|j } |dD]ê} d| krŽdkrünnj|| ƒt |ƒdkrúd } |D]} d | | d} q®z||| ƒƒWntj yòtd ƒd‚Yn0| ƒqv| d k�r|�rtd ƒ‚|dƒqv|�rF| dk�rF|�rrrjzAscii85 overflowézzz inside Ascii85 5-tupleséyzy inside Ascii85 5-tuples zNon-Ascii85 digit found: %cr9rI)r#ÚendswithrƒrÚformatÚ startswithr€rprqÚpackr‚ÚclearrNÚerrorrr)r<rorxr„ÚpackIreZdecoded_appendZcurrZ curr_appendZ curr_clearÚxrfr}rtr!r!r"rXsZ ÿÿ           rsU0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~cCs2tdur$dd„tDƒadd„tDƒat|tt|ƒS)NcSsg|]}t|fƒ‘qSr!r4r5r!r!r"r8°r9zb85encode..cSsg|]}tD] }||‘q qSr!)Ú _b85charsr:r!r!r"r8±r9)Ú _b85chars2Ú _b85alphabetr’rv)r<rsr!r!r"r ¦s r c CsFtdur,dgdattƒD]\}}|t|<qt|ƒ}t|ƒ d}|d|}g}t d¡j}tdt|ƒdƒD]´}|||d…}d}z|D]}|dt|}qŒWnDt yèt|ƒD]&\}}t|durºt d||ƒd‚qº‚Yn0z|  ||ƒ¡Wqntj �y t d|ƒd‚Yqn0qnd   |¡} |�rB| d| …} | S) Nér>ó~r†rrjz#bad base85 character at position %dz+base85 overflow in hunk starting at byte %dr9)Ú_b85decr^r”r#rNrprqr�rRrrr‚r�rr) r<r7rTrtÚoutr�ÚchunkrfÚjr}r!r!r"r ´sH      ÿÿÿÿ  r éLrIrGcCsX| t¡}|sqTt|ƒtkr>| tt|ƒ¡}|s4q>||7}qt |¡}| |¡qdSr1)ÚreadÚ MAXBINSIZErNr&r'Úwrite)ÚinputÚoutputr ÚnsÚliner!r!r"räs    rcCs(| ¡}|sq$t |¡}| |¡qdSr1)Úreadliner&r0rž)rŸr r¢r r!r!r"rós  rc Cs”z t|ƒ}Wn:tyF}z"d|jj}t|ƒ|‚WYd}~n d}~00|jdvrld|j|jjf}t|ƒ‚|jdkr�d|j|jjf}t|ƒ‚dS)Nz"expected bytes-like object, not %s)rTr<ÚBz-expected single byte elements, not %r from %srDz(expected 1-D data, not %d-D data from %s)rrrrr‹Úndim)r ÚmÚerrÚmsgr!r!r"Ú_input_type_checküs     ÿ  ÿr©cCsLt|ƒg}tdt|ƒtƒD]$}|||t…}| t |¡¡qd |¡S)Nrr9)r©rRrNr�r‚r&r'rr)r Úpiecesr7r™r!r!r"r s rcCst|ƒt |¡Sr1)r©r&r0rr!r!r"rsrc Cs6ddl}ddl}z| |jdd…d¡\}}WnR|jy€}z8|j|_t|ƒtd|jdƒ| d¡WYd}~n d}~00t}|D]@\}}|dkržt}|dkrªt }|dkr¶t }|d krŠt ƒdSqŠ|�r |dd k�r t |dd ƒ�}|||jj ƒWdƒn1�s0Yn||j j |jj ƒdS) NrrDZdeutz�usage: %s [-d|-e|-u|-t] [file|-] -d, -u: decode -e: encode (default) -t: encode and decode string 'Aladdin:open sesame'rEz-ez-dz-uz-tú-Úrb)ÚsysÚgetoptÚargvr�ÚstderrÚstdoutÚprintÚexitrrÚtestÚopenÚbufferÚstdin) r­r®ZoptsÚargsr¨ÚfuncÚor;Úfr!r!r"Úmains(ý     0r¼cCs<d}tt|ƒƒt|ƒ}tt|ƒƒt|ƒ}tt|ƒƒdS)NsAladdin:open sesame)r²Úreprrr)Zs0Ús1Ús2r!r!r"r´8s   r´Ú__main__)N)NF)FN)F)FFF)F)/r-rpr&Ú__all__r)rOrr#rrrrr*r2r3rrrMrLr]rr r r r{rr€rƒrvrrr”r’r“r—r r Z MAXLINESIZEr�rrr©rrr¼r´rr!r!r!r"Ú sX     & C  )H -