grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]Pã@sqddlZddlZddlZdddddddd d d d d ddddddgZeefZdd„Zddd„Zdddd„Z dd„Z dd„Z ej ddƒZ ej ddƒZdd„Zdd„ZdZdadad d„Zddd!d „Zd"d „Zdd#d „Zdadad$Zd%Zdddd&d'„Zd(dd)dd*dd+dd,d„Zd(dd+dd-d.d/d„Zd0Zda da!da"dd1d „Z#d2d „Z$d3Z%e%d4d5Z&d6d„Z'd7d„Z(d8d9„Z)d:d„Z*d;d<„Z+d=d„Z,d>d?„Z-d@dA„Z.dBdC„Z/e0dDkrme.ƒdS)EéNÚencodeÚdecodeÚ encodebytesÚ decodebytesÚ b64encodeÚ b64decodeÚ b32encodeÚ b32decodeÚ b16encodeÚ b16decodeÚ b85encodeÚ b85decodeÚ a85encodeÚ a85decodeÚstandard_b64encodeÚstandard_b64decodeÚurlsafe_b64encodeÚurlsafe_b64decodecCsšt|tƒrAy|jdƒSWntk r@tdƒ‚YnXt|tƒrT|Syt|ƒjƒSWn+tk r•td|j j ƒd‚YnXdS)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/python35/lib64/python3.5/base64.pyÚ_bytes_from_decode_data"s  r"cCsBtj|ƒdd…}|dk r>|jtjd|ƒƒS|S)Nés+/éÿÿÿÿ)ÚbinasciiÚ b2a_base64Ú translateÚbytesÚ maketrans)rÚaltcharsÚencodedr r r!r3s FcCstt|ƒ}|dk r?t|ƒ}|jtj|dƒƒ}|rgtjd|ƒ rgtjdƒ‚tj|ƒS)Ns+/s^[A-Za-z0-9+/]*={0,2}$zNon-base64 digit found) r"r'r(r)ÚreÚmatchr%ÚErrorÚ a2b_base64)rr*Zvalidater r r!rBs   cCs t|ƒS)N)r)rr r r!r[scCs t|ƒS)N)r)rr r r!rbss+/s-_cCst|ƒjtƒS)N)rr'Ú_urlsafe_encode_translation)rr r r!rpscCs%t|ƒ}|jtƒ}t|ƒS)N)r"r'Ú_urlsafe_decode_translationr)rr r r!rys s ABCDEFGHIJKLMNOPQRSTUVWXYZ234567cs¢tdkr>dd„tDƒ‰‡fdd†ˆDƒad‰t|tƒs_t|ƒjƒ}t|ƒd}|r‰|td|ƒ}tƒ}t j }t}x{t dt|ƒdƒD]a}||||d…dƒ}|||d?||d?d @||d ?d @||d @7}qºW|d kr>d |dd…–s zb32encode..cs'g|]}ˆD]}||‘qqSr r )r2ÚaÚb)Úb32tabr r!r4—s érÚbigééiÿé r#s======éés====éés===ó=iúÿÿÿéüÿÿÿéýÿÿÿr$) Ú_b32tab2Ú _b32alphabetrrrrÚlenr(Ú bytearrayÚintÚ from_bytesÚrange)rZleftoverr+rIZb32tab2r3Úcr )r7r!r�s4   +    c CsWtdkr%dd„ttƒDƒat|ƒ}t|ƒdrPtjdƒ‚|dk r‡t|ƒ}|jtj dd|ƒƒ}|r™|j ƒ}t|ƒ}|j dƒ}|t|ƒ}t ƒ}t}xžt dt|ƒdƒD]„}|||d…}d} y'x |D]} | d >|| } qWWn$tk rYtjd ƒd‚YnX|| jd d ƒ7}qìW|rM| d |K} | jd d ƒ} |d krÃ| dd…|dd…| dd…|dd…Ës zb32decode..ézIncorrect paddings01óOrArr8zNon-base32 digit foundr9r#r@r>r?r=r$éûÿÿÿéþÿÿÿrQrCrQrBrQ)Ú_b32revÚ enumeraterEr"rFr%r.r'r(r)ÚupperÚrstriprGrJÚKeyErrorÚto_bytes) rÚcasefoldZmap01ÚlZpadcharsÚdecodedZb32revr3ZquantaÚaccrKZlastr r r!r µsJ             cCstj|ƒjƒS)N)r%ZhexlifyrU)rr r r!r ÿscCsLt|ƒ}|r|jƒ}tjd|ƒr?tjdƒ‚tj|ƒS)Ns [^0-9A-F]zNon-base16 digit found)r"rUr,Úsearchr%r.Z unhexlify)rrYr r r!r s  s<~s~>c sãt|tƒs!t|ƒjƒ}t|ƒ d}|rF|d|}tjdt|ƒdƒj|ƒ}‡‡‡‡fdd†|Dƒ}|rÖ| rÖ|d dkr½ˆdd |d <|d d| …|d.r#r^rr8ór$r$r$r$) rrrrrFÚstructÚStructÚunpackÚjoin) r6rarbÚpadrcrdÚpaddingZwordsÚchunksr )rarbrcrdr!Ú _85encodes&  rmrdÚwrapcolrjÚadobecstdkr;dd„tddƒDƒadd„tDƒat|tt|d|ƒ‰|rftˆ‰ˆrñt|r{dndˆƒ‰‡‡fd d†td tˆƒˆƒDƒ}|rât|d ƒdˆkrâ|jd ƒd j|ƒ‰|rˆt 7‰ˆS)NcSsg|]}t|fƒ‘qSr )r()r2r3r r r!r4Ls za85encode..é!évcSs'g|]}tD]}||‘qqSr )Ú _a85chars)r2r5r6r r r!r4Ms Tr>r#cs$g|]}ˆ||ˆ…‘qSr r )r2r3)Úresultrnr r!r4Us rres r$) rrrJÚ _a85chars2rmÚ _A85STARTÚmaxrFÚappendriÚ_A85END)r6rdrnrjrorlr )rsrnr!r7s"    Ú ignorecharss c Cst|ƒ}|rh|jtƒs6tdjtƒƒ‚|jtƒrX|dd…}n|dd…}tjdƒj }g}|j }g}|j }|j } x6|dD]*} d| koÉdknrX|| ƒt |ƒdkrÖd} x |D]} d | | d } q÷Wy||| ƒƒWn$tj k rMtd ƒd‚YnX| ƒq¬| dkrƒ|rvtd ƒ‚|dƒq¬|r´| dkr´|r§tdƒ‚|dƒq¬| |krÆq¬q¬td| ƒ‚q¬Wdj|ƒ} dt |ƒ} | r| d| …} | S)Nz1Ascii85 encoded byte sequences must end with {!r}r>z!Ióur?ó!rr8r`rpzAscii85 overflowr^zz inside Ascii85 5-tuplesr_zy inside Ascii85 5-tuples zNon-Ascii85 digit found: %crerRrRsuuuurpéuézéy)r"ÚendswithrxrÚformatÚ startswithrurfrgÚpackrwÚclearrFÚerrorri)r6rdroryÚpackIr[Zdecoded_appendZcurrZ curr_appendZ curr_clearÚxr\rsrkr r r!r`sV              sU0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~cCsEtdkr2dd„tDƒadd„tDƒat|tt|ƒS)NcSsg|]}t|fƒ‘qSr )r()r2r3r r r!r4¸s zb85encode..cSs'g|]}tD]}||‘qqSr )Ú _b85chars)r2r5r6r r r!r4¹s )r‡Ú _b85alphabetÚ _b85chars2rm)r6rjr r r!r ®s c Cs¯tdkr@dgdax$ttƒD]\}}|t|xAt|ƒD]3\}}t|dkrt d||ƒd‚qW‚YnXy|j ||ƒƒWqœtj k r€t d|ƒd‚YqœXqœWd j |ƒ} |r«| d| …} | S) Nér8ó~z!Irr`z#bad base85 character at position %dz+base85 overflow in hunk starting at byte %dre)Ú_b85decrTrˆr"rFrfrgr‚rJrrrwr„ri) r6r3rKrkÚoutr…Úchunkr\Újrsr r r!r ¼s<     éLr?r@cCs€xy|jtƒ}|sPx@t|ƒtkr[|jtt|ƒƒ}|sNP||7}qWtj|ƒ}|j|ƒqWdS)N)ÚreadÚ MAXBINSIZErFr%r&Úwrite)ÚinputÚoutputrÚnsÚliner r r!rìscCs:x3|jƒ}|sPtj|ƒ}|j|ƒqWdS)N)Úreadliner%r/r“)r”r•r—rr r r!rûs  cCsÃyt|ƒ}WnDtk rV}z$d|jj}t|ƒ|‚WYdd}~XnX|jdkr‹d|j|jjf}t|ƒ‚|jdkr¿d|j|jjf}t|ƒ‚dS) Nz"expected bytes-like object, not %srKr6ÚBz-expected single byte elements, not %r from %sr#z(expected 1-D data, not %d-D data from %s)rKr6r™)rrrrr€Úndim)rÚmÚerrÚmsgr r r!Ú_input_type_checks" ržcCsjt|ƒg}xJtdt|ƒtƒD]0}|||t…}|jtj|ƒƒq)Wdj|ƒS)Nrre)ržrJrFr’rwr%r&ri)rÚpiecesr3rŽr r r!rs  cCs)ddl}|jdtdƒt|ƒS)NrzAencodestring() is a deprecated alias since 3.1, use encodebytes()r>)ÚwarningsÚwarnÚDeprecationWarningr)rr r r r!Ú encodestrings   r£cCst|ƒtj|ƒS)N)ržr%r/)rr r r!r's cCs)ddl}|jdtdƒt|ƒS)NrzHdecodestring() is a deprecated alias since Python 3.1, use decodebytes()r>)r r¡r¢r)rr r r r!Ú decodestring,s   r¤c Cstddl}ddl}y)|j|jdd…dƒ\}}Wn`|jk r£}z=|j|_t|ƒtd|jdƒ|jdƒWYdd}~XnXt}xa|D]Y\}}|dkrÏt}|dkrát }|dkrót }|d kr±t ƒdSq±W|rW|dd krWt |dd ƒ�}|||jj ƒWdQRXn||j j |jj ƒdS) Nrr#Zdeutz�usage: %s [-d|-e|-u|-t] [file|-] -d, -u: decode -e: encode (default) -t: encode and decode string 'Aladdin:open sesame'r>z-ez-dz-uz-tú-Úrb)ÚsysÚgetoptÚargvr„ÚstderrÚstdoutÚprintÚexitrrÚtestÚopenÚbufferÚstdin) r§r¨ZoptsÚargsr�ÚfuncÚor5Úfr r r!Úmain6s0)       r¶cCsRd}tt|ƒƒt|ƒ}tt|ƒƒt|ƒ}tt|ƒƒdS)NsAladdin:open sesame)r¬Úreprrr)Zs0Ús1Ús2r r r!r®Ps  r®Ú__main__)1r,rfr%Ú__all__r(rGrr"rrrrr)r0r1rrrErDrSrr r r rrrtrurxrmrrrˆr‡r‰rŒr r Z MAXLINESIZEr’rrržrr£rr¤r¶r®rr r r r!Ú sf             &J $)H -