3 \¤O ã @ sš d dl Z d dlZd dlZdddddddd d ddd ddddddgZeefZdd„ ZdBdd„ZdCdd„Z dd„ Z dd„ ZejddƒZ ejddƒZdd„ Zdd„ ZdZdadad d„ ZdDd!d „Zd"d „ ZdEd#d„Zdadad$Zd%ZdFd&d'„Zdd ddd(œd)d„Zddd*d+œd,d„Zd-Zda da!da"dGd.d„Z#d/d „ Z$d0Z%e%d1 d2 Z&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_b64decodec C sx t | tƒr2y | jdƒS tk r0 tdƒ‚Y nX t | tƒr@| S yt| ƒjƒ S tk rr td| j j ƒd ‚Y nX d S )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 ú/usr/lib64/python3.6/base64.pyÚ_bytes_from_decode_data" s r" c C s, t j| dd�}|d k r(|jtjd|ƒƒS |S )NF)Únewlines +/)ÚbinasciiÚ b2a_base64Ú translateÚbytesÚ maketrans)r ÚaltcharsÚencodedr r r! r 3 s Fc C sP t | ƒ} |d k r*t |ƒ}| jtj|dƒƒ} |rFtjd| ƒ rFtjdƒ‚tj| ƒS )Ns +/s ^[A-Za-z0-9+/]*={0,2}$zNon-base64 digit found) r" r&