grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/20263 Õì2aœOã@sšddlZddlZddlZdddddddd d d d d ddddddgZeefZdd„ZdBdd„ZdCdd„Z dd„Z dd„Z ej ddƒZ ej ddƒZdd„Zdd„ZdZdadad d„ZdDd!d „Zd"d „ZdEd#d „Zdadad$Zd%ZdFd&d'„Zddddd(œd)d„Zddd*d+œd,d„Zd-Zda da!da"dGd.d „Z#d/d „Z$d0Z%e%d1d2Z&d3d„Z'd4d„Z(d5d6„Z)d7d„Z*d8d9„Z+d:d„Z,d;d<„Z-d=d>„Z.d?d@„Z/e0dAk�r–e.ƒdS)HéNÚencodeÚdecodeÚ encodebytesÚ decodebytesÚ b64encodeÚ b64decodeÚ b32encodeÚ b32decodeÚ b16encodeÚ b16decodeÚ b85encodeÚ b85decodeÚ a85encodeÚ a85decodeÚstandard_b64encodeÚstandard_b64decodeÚurlsafe_b64encodeÚurlsafe_b64decodecCsxt|tƒr2y |jdƒStk r0tdƒ‚YnXt|tƒr@|Sy t|ƒjƒStk rrtd|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/python36/lib64/python3.6/base64.pyÚ_bytes_from_decode_data"s    r"cCs,tj|dd�}|dk r(|jtjd|ƒƒS|S)NF)Únewlines+/)ÚbinasciiÚ b2a_base64Ú translateÚbytesÚ maketrans)rÚaltcharsÚencodedr r r!r3sFcCsPt|ƒ}|dk r*t|ƒ}|jtj|dƒƒ}|rFtjd|ƒ rFtjdƒ‚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!rAs cCst|ƒS)N)r)rr r r!rZscCst|ƒS)N)r)rr r r!rass+/s-_cCst|ƒjtƒS)N)rr&Ú_urlsafe_encode_translation)rr r r!roscCst|ƒ}|jtƒ}t|ƒS)N)r"r&Ú_urlsafe_decode_translationr)rr r r!rxs  s ABCDEFGHIJKLMNOPQRSTUVWXYZ234567csBtdkr,dd„tDƒ‰‡fdd„ˆDƒad‰t|tƒsBt|ƒjƒ}t|ƒd}|rb|dd|}tƒ}tj }t}xjt dt|ƒdƒD]V}||||d…dƒ}|||d?||d ?d @||d ?d @||d @7}q„W|d krôd |dd…<nF|dk�r d|dd…<n.|dk�r$d|dd…<n|dk�r:d|dd…<t |ƒS)NcSsg|]}t|fƒ‘qSr )r')Ú.0Úir r r!ú •szb32encode..csg|]}ˆD] }||‘q qSr r )r1ÚaÚb)Úb32tabr r!r3–séórÚbigééiÿé és======éés====éés===ó=iúÿÿÿéüÿÿÿéýÿÿÿéÿÿÿÿ) Ú_b32tab2Ú _b32alphabetrrrrÚlenÚ bytearrayÚintÚ from_bytesÚranger')rÚleftoverr*rKZb32tab2r2Úcr )r6r!rŽs4   *    c Cs‚tdkrdd„ttƒDƒat|ƒ}t|ƒdr8tjdƒ‚|dk r^t|ƒ}|jtj dd|ƒƒ}|rj|j ƒ}t|ƒ}|j dƒ}|t|ƒ}t ƒ}t}x€t dt|ƒdƒD]l}|||d…}d} y"x|D]} | d >|| } qÄWWn tk rþtjd ƒd‚YnX|| jd d ƒ7}q¤W|d�s(|dk�r2tjdƒ‚|�rz|�rz| d |K} | jd d ƒ} dd |d} | d| …|dd…<t|ƒS)NcSsi|]\}}||“qSr r )r1ÚkÚvr r r!ú Êszb32decode..ézIncorrect paddings01óOrBrr7zNon-base32 digit foundr9r=rAr@r>é+>rr=rAr@r>éûÿÿÿ)Ú_b32revÚ enumeraterGr"rHr$r-r&r'r(ÚupperÚrstriprIrLÚKeyErrorÚto_bytes) rÚcasefoldZmap01ÚlZpadcharsÚdecodedZb32revr2ZquantaÚaccrNZlastrMr r r!r ´s@         cCstj|ƒjƒS)N)r$ZhexlifyrX)rr r r!r ÷scCs4t|ƒ}|r|jƒ}tjd|ƒr*tjdƒ‚tj|ƒS)Ns [^0-9A-F]zNon-base16 digit found)r"rXr+Úsearchr$r-Z unhexlify)rr\r r r!r ýs   s<~s~>c s®t|tƒst|ƒjƒ}t|ƒ d}|r4|d|}tjdt|ƒdƒj|ƒ}‡‡‡‡fdd„|Dƒ}|r¤| r¤|d dkrŽˆdd |d <|d d| …|d<d j|ƒS)Nr@r8z!%dIcsRg|]J}ˆr| rdn6ˆr&|dkr&dn&ˆ|dˆ|ddˆ|d‘qS)ózi óyií^ éUi9r )r1Zword)ÚcharsÚchars2ÚfoldnulsÚ foldspacesr r!r3!sz_85encode..r=rarr7órErErErE) rrrrrHÚstructÚStructÚunpackÚjoin) r5rdreÚpadrfrgÚpaddingZwordsÚchunksr )rdrerfrgr!Ú _85encodes     rp)rgÚwrapcolrmÚadobecsºtdkr*dd„tddƒDƒadd„tDƒat|tt|d|ƒ‰|rHtˆ‰ˆrªt|rVdndˆƒ‰‡‡fd d„td tˆƒˆƒDƒ}|r t|d ƒdˆkr |jd ƒd j|ƒ‰|r¶ˆt 7‰ˆS)NcSsg|]}t|fƒ‘qSr )r')r1r2r r r!r3Dsza85encode..é!évcSsg|]}tD] }||‘q qSr )Ú _a85chars)r1r4r5r r r!r3EsTr?r=csg|]}ˆ||ˆ…‘qSr r )r1r2)Úresultrqr r!r3Msrrhó rE) rurLÚ _a85chars2rpÚ _A85STARTÚmaxrHÚappendrlÚ_A85END)r5rgrqrmrrror )rvrqr!r/s"   s )rgrrÚ ignorecharsc Cs¤t|ƒ}|rH|jtƒs$tdjtƒƒ‚|jtƒr<|dd…}n |dd…}tjdƒj }g}|j }g}|j }|j } �x|dD�]ö} d| ko’dkn�r|| ƒt |ƒdk�rrd} x|D]} d | | d } qºWy||| ƒƒWn"tj k �rtd ƒd‚YnX| ƒqz| dk�r0|�r&td ƒ‚|dƒqz|�rX| dk�rX|�rNtdƒ‚|dƒqz| |k�rfqzqztd| ƒ‚qzWdj|ƒ} dt |ƒ} | �r | d| …} | S)Nz1Ascii85 encoded byte sequences must end with {!r}r?z!Ióur@ó!rr7rcrszAscii85 overflowrazz inside Ascii85 5-tuplesrbzy inside Ascii85 5-tuples zNon-Ascii85 digit found: %crhéþÿÿÿr€suuuurséuézéy)r"Úendswithr|rÚformatÚ startswithryrirjÚpackr{ÚclearrHÚerrorrl)r5rgrrr}ÚpackIr^Zdecoded_appendZcurrZ curr_appendZ curr_clearÚxr_rvrnr r r!rXsV           sU0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~cCs2tdkr$dd„tDƒadd„tDƒat|tt|ƒS)NcSsg|]}t|fƒ‘qSr )r')r1r2r r r!r3°szb85encode..cSsg|]}tD] }||‘q qSr )Ú _b85chars)r1r4r5r r r!r3±s)rŒÚ _b85alphabetÚ _b85chars2rp)r5rmr r r!r ¦s c CsZtdkr0dgdaxttƒD]\}}|t|<qWt|ƒ}t|ƒ d}|d|}g}tjdƒj}xÔtdt|ƒdƒD]À}|||d…}d}y"x|D]}|dt|}q”WWnJt k røx2t|ƒD]&\}}t|dkrÈt d||ƒd‚qÈW‚YnXy|j ||ƒƒWqttj k �r2t d|ƒd‚YqtXqtWd j |ƒ} |�rV| d| …} | S) Nér7ó~z!Irrcz#bad base85 character at position %dz+base85 overflow in hunk starting at byte %drh)Ú_b85decrWr�r"rHrirjr‡rLrrr{r‰rl) r5r2rNrnÚoutrŠÚchunkr_Újrvr r r!r ´s<       éLr@rAcCs`xZ|jtƒ}|sPx0t|ƒtkrB|jtt|ƒƒ}|s8P||7}qWtj|ƒ}|j|ƒqWdS)N)ÚreadÚ MAXBINSIZErHr$r%Úwrite)ÚinputÚoutputrÚnsÚliner r r!räs   cCs,x&|jƒ}|sPtj|ƒ}|j|ƒqWdS)N)Úreadliner$r.r˜)r™ršrœrr r r!rós  cCs’y t|ƒ}Wn8tk rD}zd|jj}t|ƒ|‚WYdd}~XnX|jdkrjd|j|jjf}t|ƒ‚|jdkrŽd|j|jjf}t|ƒ‚dS) Nz"expected bytes-like object, not %srNr5ÚBz-expected single byte elements, not %r from %sr=z(expected 1-D data, not %d-D data from %s)rNr5rž)rrrrr…Úndim)rÚmÚerrÚmsgr r r!Ú_input_type_checküs    r£cCsPt|ƒg}x8tdt|ƒtƒD]$}|||t…}|jtj|ƒƒqWdj|ƒS)Nrrh)r£rLrHr—r{r$r%rl)rÚpiecesr2r“r r r!r s cCsddl}|jdtdƒt|ƒS)NrzAencodestring() is a deprecated alias since 3.1, use encodebytes()r?)ÚwarningsÚwarnÚDeprecationWarningr)rr¥r r r!Ú encodestringsr¨cCst|ƒtj|ƒS)N)r£r$r.)rr r r!rscCsddl}|jdtdƒt|ƒS)NrzHdecodestring() is a deprecated alias since Python 3.1, use decodebytes()r?)r¥r¦r§r)rr¥r r r!Ú decodestring$sr©c Csddl}ddl}y|j|jdd…dƒ\}}WnP|jk r~}z2|j|_t|ƒtd|jdƒ|jdƒWYdd}~XnXt}xF|D]>\}}|dkržt}|dkrªt }|dkr¶t }|d krŠt ƒdSqŠW|oÚ|dd k�rt |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Úor4Úfr r r!Úmain.s0r»cCs<d}tt|ƒƒt|ƒ}tt|ƒƒt|ƒ}tt|ƒƒdS)NsAladdin:open sesame)r±Úreprrr)Zs0Ús1Ús2r r r!r³Hs   r³Ú__main__)N)NF)FN)F)FFF)F)1r+rir$Ú__all__r'rIrr"rrrrr(r/r0rrrGrFrVrr r r rurxryr|rprrr�rŒrŽr‘r r Z MAXLINESIZEr—rrr£rr¨rr©r»r³rr r r r!Ú sf     & C  )H -