łň €‰Dc@sdZddkZddkZddkZddddddd d d d d dddgZgZedƒD]Zeeeƒqk[Z dZ d„Z dd„Z dd„Zd„Zd„Zd„Zd„Zhdd<dd<dd<d d!<d"d#<d$d%<d&d'<d(d)<d*d+<d,d-<d.d/<d0d1<d2d3<d4d5<d6d7<d8d9<d:d;<d<d=<d>d?<d@dA<dBdC<dDdE<dFdG<dHdI<dJdK<dLdM<dNdO<dPdQ<dRdS<dTdU<dVdW<dXdY7}||d@d>7}|it|d?t|d ?d @t|d?d @t|d ?t|d ?d @t|d ?d @t|d?t|d @gƒqUWti|ƒ}|djo|d dSnX|d jo|d dSn;|djo|d dSn|djo|d dSn|S(scEncode a string using Base32. s is the string to encode. The encoded string is returned. itis!HHBiiii iii iiiú˙˙˙s======iü˙˙˙s====iý˙˙˙s===ii˙˙˙˙t=( tdivmodtlentrangetstructtunpacktextendt_b32tabt EMPTYSTRINGR( Rtpartstquantatleftovertitc1tc2tc3R((s base64.pycR‡s8 .      c Cs'tt|ƒdƒ\}}|otdƒ‚n|o%t|hdd<|d<ƒ}n|o|iƒ}nd}tid|ƒ}|o5t|idƒƒ}|djo|| }qÉng}d}d } x|D]…} ti | ƒ} | djotd ƒ‚n|t| | >7}| d 8} | djo*|i t i d |ƒƒd}d } qâqâWt i d |ƒ} |djo d } ny|djo| d } n^|djo| d } nC|djo| d } n(|djo| d } n tdƒ‚|i | ƒti|ƒS(sGDecode a Base32 encoded string. s is the string to decode. Optional casefold is a flag specifying whether a lowercase alphabet is acceptable as input. For security purposes, the default is False. 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. The decoded string is returned. A TypeError is raised if s were incorrectly padded or if there are non-alphabet characters present in the string. isIncorrect paddingR9t0t1is(?P[=]*)$tpadi#sNon-base32 digit foundis%010xRii˙˙˙˙iiţ˙˙˙iiý˙˙˙iiü˙˙˙N(RFRGR"Rtuppertretsearchtgroupt_b32revtgetRtappendRt unhexlifyRMR( Rtcasefoldtmap01RORPtpadcharstmoRNtacctshifttctvaltlast((s base64.pycRąsR%            cCsti|ƒiƒS(scEncode a string using Base16. s is the string to encode. The encoded string is returned. (RthexlifyRX(R((s base64.pycRűscCsG|o|iƒ}ntid|ƒotdƒ‚nti|ƒS(swDecode a Base16 encoded string. s is the string to decode. Optional casefold is a flag specifying whether a lowercase alphabet is acceptable as input. For security purposes, the default is False. The decoded string is returned. A TypeError is raised if s were incorrectly padded or if there are non-alphabet characters present in the string. s [^0-9A-F]sNon-base16 digit found(RXRYRZR"RR_(RR`((s base64.pycR s iLcCs”xto…|itƒ}|pPnxGt|ƒtjo3|itt|ƒƒ}|pPn||7}q(Wti|ƒ}|i|ƒqWdS(sEncode a file.N(tTruetreadt MAXBINSIZERGRRtwrite(tinputtoutputRtnstline((s base64.pycRscCsGx@to8|iƒ}|pPnti|ƒ}|i|ƒqWdS(sDecode a file.N(RjtreadlineRR Rm(RnRoRqR((s base64.pycR,s cCs]g}xGtdt|ƒtƒD]-}|||t!}|iti|ƒƒqWdi|ƒS(sEncode a string.iR(RHRGRlR^RRR(RtpiecesRQtchunk((s base64.pycR6s cCs ti|ƒS(sDecode a string.(RR (R((s base64.pycR?sc CsRddk}ddk}y#|i|iddƒ\}}WnF|ij o7}|i|_|GHd|idGH|idƒnXt}xu|D]m\}}|djo t}n|d jo t}n|d jo t}n|d jot ƒdSq‘q‘W|o2|dd jo!|t |dd ƒ|iƒn||i |iƒdS(sSmall test programi˙˙˙˙Nitdeutsusage: %s [-d|-e|-u|-t] [file|-] -d, -u: decode -e: encode (default) -t: encode and decode string 'Aladdin:open sesame'iis-es-ds-us-tt-trb( tsystgetopttargvterrortstderrtstdouttexitRRttest1topentstdin(RxRytoptstargsR#tfunctota((s base64.pycttestFs.#       !cCs5d}t|ƒ}t|ƒ}|Gt|ƒG|GHdS(NsAladdin:open sesame(RRtrepr(ts0ts1ts2((s base64.pycR_s  t__main__(,t__doc__RYRIRt__all__t_[1]RHt_xtchrRRMRRRRR R R R t _b32alphabetRRLtsortt_[2]RRtdictt_[3]tlongR\RtFalseRRR t MAXLINESIZERlRRRRR‡Rt__name__(((s base64.pycssZ      -     $$$$$  '? *J