f1R ddlZddlZddlZgdZeefZdZd5dZd6dZ dZ dZ e d d Z e d d Zd Zd Zd ZdZdZdZdZiaiadZd7dZdZede_d7dZedee_dZede_d8dZedde_dZ d8dZ!da"da#dZ$d Z%d9d!Z&ddddd"d#Z'ddd$d%d&Z(d'Z)da*da+da,d8d(Z-d)Z.d*Z/e/d+zd,zZ0d-Z1d.Z2d/Z3d0Z4d1Z5d2Z6d3Z7e8d4kr e6dSdS):N)encodedecode encodebytes decodebytes b64encode b64decode b32encode b32decode b32hexencode b32hexdecode b16encode b16decode b85encode b85decode a85encode a85decodestandard_b64encodestandard_b64decodeurlsafe_b64encodeurlsafe_b64decodecZt|tr3 |dS#t$rt dwxYwt|t r|S t |S#t$rtd|j j zdwxYw)Nasciiz4string argument should contain only ASCII charactersz>argument should be a bytes-like object or ASCII string, not %r) isinstancestrrUnicodeEncodeError ValueError bytes_types memoryviewtobytes TypeError __class____name__ss -/opt/alt/python311/lib64/python3.11/base64.py_bytes_from_decode_datar&"s!SU U88G$$ $! U U USTT T U![!!K!}}$$&&& KKK)+,;+?@AAFJ KKs,A! B(B*c tj|d}|.|td|S|S)NF)newline+/)binascii b2a_base64 translatebytes maketrans)r$altcharsencodeds r%rr3sK !!U333G  !A!ABBB NFc t|}|=t|}|t|d}t j||S)Nr)) strict_mode)r&r,r-r.r* a2b_base64)r$r/validates r%rrAs^" ""A*844 KK%88 9 9  qh 7 7 77r1c" t|SN)rr#s r%rr[s Q<<r1c" t|Sr7)rr#s r%rrbs Q<<r1r)s-_cR t|tSr7)rr,_urlsafe_encode_translationr#s r%rrps$ Q<< ! !"= > >>r1ct t|}|t}t|Sr7)r&r,_urlsafe_decode_translationrr#s r%rrys4  ""A /00A Q<<r1zK Encode the bytes-like objects using {encoding} and return a bytes object. a Decode the {encoding} encoded bytes-like object or ASCII string s. Optional casefold is a flag specifying whether a lowercase alphabet is acceptable as input. For security purposes, the default is False. {extra_args} The result is returned as a bytes object. A binascii.Error is raised if the input is incorrectly padded or if there are non-alphabet characters present in the input. a RFC 3548 allows for optional mapping of the digit 0 (zero) to the letter O (oh), and for optional mapping of the digit 1 (one) to either the letter I (eye) or letter L (el). The optional argument map01 when not None, specifies which letter the digit 1 should be mapped to (when map01 is not None, the digit 0 is always mapped to the letter O). For security purposes the default is None, so that 0 and 1 are not allowed in the input. s ABCDEFGHIJKLMNOPQRSTUVWXYZ234567s 0123456789ABCDEFGHIJKLMNOPQRSTUVc|tvr$d|DfdDt|<dt|ts!t|}t |dz}|r |dd|z zz}t }tj}t|}tdt |dD]P}||||dz}|||dz ||dz dzz||d z dzz||dzzz }Q|d krd |d d<n)|d krd|dd<n|dkrd|dd<n |dkrd|dd<t|S)Nc.g|]}t|fSr-.0is r% z_b32encode..s 000!%++000r1c$g|] }D]}||z Sr?r?)rBabb32tabs r%rDz_b32encode..s*DDDVDDa!eDDDDr1ri s======is====s====) _b32tab2rrrrlen bytearrayint from_bytesranger-) alphabetr$leftoverr0rZb32tab2rCcrHs @r% _b32encoder`sx00x000DDDDVDDD a % %$ qMM ! ! # #1vvzH' X& &kkGJx G 1c!ffa  JqAE{ # #GAG$Q"W-./Q"W-./AI&'  1}}  Q Q Q >>r1c|tvr!dt|Dt|<t|}t|dzrt jd|@t|}|tdd|z}|r| }t|}| d}|t|z }t}t|}tdt|dD]a}|||dz} d} | D]} | dz|| z} n##t$rt jd dwxYw|| dz }b|dzs|d vrt jd|r9|r7| d|zz} | d} d d|zz dz} | d| |d d<t|S) Nci|]\}}|| Sr?r?)rBkvs r% z_b32decode..sBBBdaQBBBr1zIncorrect paddings01OrTrrIzNon-base32 digit found>rrNrQrS+)_b32rev enumerater&rWr*Errorr,r-r.upperrstriprXr[KeyErrorto_bytes)r\r$casefoldmap01lpadcharsdecodedb32revrCquantaaccr_lastr]s r% _b32decoder{swBBi.A.ABBB""A 1vvz2n0111 '.. KKte|<< = = GGII AA A3q66zHkkG X F 1c!ffa ##1a!e8 E - -ax6!9, - E E E.!9:: D E3<<??"1u2//n0111'G' H ||AX%!+IXI >>s 9E  E-c,tt|Sr7)r` _b32alphabetr#s r%r r s lA & &&r1base32)encodingc0tt|||Sr7)r{r})r$rrrss r%r r s lAx 7 77r1)r extra_argsc,tt|Sr7)r`_b32hexalphabetr#s r%r r s oq ) ))r1 base32hexc.tt||Sr7)r{rr$rrs r%r r s oq( 3 33r1cP tj|Sr7)r*hexlifyrnr#s r%r r s$  A   $ $ & &&r1c t|}|r|}tjd|rt jdt j|S)Ns [^0-9A-F]zNon-base16 digit found)r&rnresearchr*rm unhexlifyrs r%rrsa ""A GGII yq!!7n5666  a  r1s<~s~>ct|ts!t|}t | dz}|r|d|zz}t jdt |dzz|}fd|D}|r0|s.|ddkrddz|d<|dd| |d<d |S) NrSrJz!%dIc|g|]8}r|sdn/r|dkrdn%|dz|dzdzz|dzz9S)zi yi^ Ui9r?)rBwordcharschars2foldnuls foldspacess r%rDz_85encode..:s!!!  !t!dd !TZ%7%7dddfn%dbj4'()TBY !!!r1rUrrrIr1) rrrrrWstructStructunpackjoin) rGrrpadrrpaddingwordschunkss `` `` r% _85encoder0s a % %$ qMM ! ! # #Aw!mG   M&CFFaK0 1 1 8 8 ; ;E!!!!!!!  !!!F+s+ ":  qAF2JBZ ' *r 88F  r1)rwrapcolradobec t+dtddDadtDat|tt|d||r tzrt |rdndfdtd t D}|r1t |d dzkr|d d ||r tz S) Nc.g|]}t|fSr?r@rAs r%rDza85encode..]s 999QUA4[[999r1!vc,g|]}tD]}||zSr?) _a85charsrBrFrGs r%rDza85encode..^)DDD!)DDQq1uDDDDr1TrOrNc*g|]}||zSr?r?)rBrCresultrs r%rDza85encode..fs6;;;AK(;;;r1rrUr1 ) _a85chars2r[rr _A85STARTmaxrWappendr_A85END)rGrrrrrrs ` @r%rrHs#&99%C..999 DDyDDD q)ZdJ G GF $V#$5'aaa11;;;;; CKK99;;;  #6":"W,, c"""F## ' Mr1s )rr ignorecharsc t|}|rp|ts'tdt|t r |dd}n |dd}tjdj }g}|j }g}|j }|j } |dzD]} d| cxkrdkrwnnt|| t|dkrUd } |D] } d | z| dz z}  ||| n##tj $rtd dwxYw| | d kr|rtd |d|r#| dkr|rtd|d| |vrtd| zd|} dt|z } | r | d| } | S)Nz1Ascii85 encoded byte sequences must end with {!r}rO!IsuuuururIrrzAscii85 overflowzzz inside Ascii85 5-tuplesyzy inside Ascii85 5-tuples zNon-Ascii85 digit found: %cr1rS)r&endswithrrformat startswithrrrpackrclearrWerrorr)rGrrrpackIrvdecoded_appendcurr curr_append curr_clearxryrrs r%rrqsa ""A zz'"" "F7OO  << " " !B$AA#2#A M$   $EG^N D+KJ \@@ a " " " "7 " " " " " KNNN4yyA~~..As(a"f-CCC"N55::....|CCC$%788dBC '\\ = !;<<< N; ' ' ' '  @ALL = !;<<< N. / / / / +   :Q>?? ? XXg  F#d))mG# ' " Ms =D D2sU0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~c t"dtDadtDat|tt|S)Nc.g|]}t|fSr?r@rAs r%rDzb85encode..s 777QUA4[[777r1c,g|]}tD]}||zSr?) _b85charsrs r%rDzb85encode..rr1) _b85chars2 _b85alphabetrr)rGrs r%rrsI77,777 DDyDDD Q :s 3 33r1c t*dgdzattD]\}}|t|<t|}t | dz}|d|zz}g}t jdj}tdt |dD]}|||dz}d} |D]}|dzt|z}nG#t$r:t|D](\}}t|td||zzd)wxYw | ||#t j $rtd|zdwxYwd |} |r | d| } | S) NrI~rrrz#bad base85 character at position %dz+base85 overflow in hunk starting at byte %dr1)_b85decrlrr&rWrrrr[r rrrr) rGrCr_routrchunkryjrs r%rrs&3,l++  DAqGAJJ""AAw!mG D7NA C M$   $E 1c!ffa ,,!AE'   , ,Bh+ ,   !%(( 9 911:%$%J'(1u&.//489&     , JJuuSzz " " " "| , , ,J !""'+ , ,XXc]]F# ' " Ms(CAD D((#E LrSrQcZ |t}|sdSt|tkrJ|tt|z }|sn||z }t|tkJtj|}||r7)read MAXBINSIZErWr*r+write)inputoutputr$nslines r%rrs;  JJz " "  E!ffz!!Js1vv-..B  GA !ffz!! "1%% T r1c |}|sdStj|}||Br7)readliner*r4r)rrrr$s r%rr sJ;~~  E   % % Q r1cH t|}n1#t$r$}d|jjz}t||d}~wwxYw|jdvr&d|jd|jj}t||jdkr%d|j|jjfz}t|dS)Nz"expected bytes-like object, not %s)r_rGBz#expected single byte elements, not z from rNz(expected 1-D data, not %d-D data from %s)rr r!r"rndim)r$merrmsgs r%_input_type_checkrs& qMM &&&2Q[5IInn#%& x&&&+,888Q[5I5IKnnv{{9+,61;3G*HInn{s A;Ac t|g}tdt|tD];}|||tz}|t j|?Bhqk  JE ]]38ABB<99 dd <Z  c  e    D++1 99Vd 99Vd 99Vd 99dffffff 99eElllFFF9 2Q3 $q'4  'A DCJ% & & & ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' SY sz011111s)&A B ?BB!EE  E cd}tt|t|}tt|t|}tt|dS)NsAladdin:open sesame)rreprrr)s0s1s2s r%rrTsT B $r((OOO RB $r((OOO RB $r((OOOOOr1__main__r7)NF)FN)F)FFF)9rrr*__all__r-rXrr&rrrrr.r:r<rr_B32_ENCODE_DOCSTRING_B32_DECODE_DOCSTRING_B32_DECODE_MAP01_DOCSTRINGr}rrVrkr`r{r r__doc__r r r r rrrrrrrrrrrrrr MAXLINESIZErrrrrrrrr"r?r1r%r sqK     $i  K K K"    88884$ooeU;;#ooeU;;???   $ 3 5  """H,,,,^''')00(0CC 8888)00(3N1PP ***,33[3II 4444-33[?A4CC ''' !!!!*    0 %aU%'''''R %E|DDDDDPE    4 4 4 4'''Z 1na         """222: zDFFFFFr1