
    /hh                         S SK r S SKrS SKrS SKrS SKJr  S SKJr  S SKJr   " S S\ R                  5      r	 " S S\ R                  5      r
 " S	 S
\ R                  5      r\S:X  a  \ R                  " 5         gg)    N)array)	os_helper)script_helperc                   2    \ rS rSrS rS rS rS rS rSr	g)	LegacyBase64TestCase
   c                 "   U R                  [        US5        U R                  [        U/ 5        [        S5      R                  SS5      nU R                  [        X5        [        S5      R                  S5      nU R                  [        X5        g )N s   1234B)   r   I)assertRaises	TypeError
memoryviewcast)selffmultidimensionalint_datas       9/opt/python-3.13.8/usr/lib/python3.13/test/test_base64.pycheck_type_errors&LegacyBase64TestCase.check_type_errors   ss    )Q+)Q+%g.33C@)Q9g&++C0)Q1    c                    U R                   nU" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S	5      S	5        U" [        R                  " S
5      S5        U" [        R                  " S5      S5        U" [        R                  " [        S5      5      S5        U" [        R                  " [	        S5      5      S5        U" [        R                  " [        SS5      5      S5        U R                  [        R                  5        g )N   www.python.org   d3d3LnB5dGhvbi5vcmc=
   a   YQ==
   ab   YWI=
   abc   YWJj
r   R   abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}r   YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0
NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==
   Aladdin:open sesame   QWxhZGRpbjpvcGVuIHNlc2FtZQ==
r   )assertEqualbase64encodebytes	bytearrayr   r   r   r   eqs     r   test_encodebytes%LegacyBase64TestCase.test_encodebytes   s   
6/02KL
6d#Y/
6e$i0
6f%y1
6c"C(
6 A B3	4 	645?	A 	6i/0)<
6j019=
6eC019=v112r   c                    U R                   nU" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S	5      S
5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " [        S5      5      S5        U" [        R                  " [	        S5      5      S5        U" [        R                  " [        SS5      5      S5        U R                  [        R                  5        g )Nr   r   r   r   r    r   r"   r!   r$   r#   r   r&   r%   r   )r'   r(   decodebytesr*   r   r   r   r+   s     r   test_decodebytes%LegacyBase64TestCase.test_decodebytes*   s   
678:KL
6i($/
6i(%0
6i(&1
6 G H-	. 	6c"C(
6?@4	6 	6i	23V<
6j34f=
6eC34f=v112r   c                    U R                   nSSKJnJn  U" S5      nU" 5       n[        R
                  " XE5        U" UR                  5       S5        U R                  [        [        R
                  U" S5      U" 5       5        U R                  [        [        R
                  U" S5      U" 5       5        U R                  [        [        R
                  U" S5      U" 5       5        g )Nr   BytesIOStringIOr#   r$   abcr!   )	r'   ior5   r6   r(   encodegetvaluer   r   )r   r,   r5   r6   infpoutfps         r   test_encode LegacyBase64TestCase.test_encode?   s    ( 9 : 	d"
5>>3	4
 	)V]]HUOWYO)V]]GFOXZP)V]]HUOXZPr   c                    SSK JnJn  U" S5      nU" 5       n[        R                  " X45        U R                  UR                  5       S5        U R                  [        [        R                  U" S5      U" 5       5        U R                  [        [        R                  U" S5      U" 5       5        U R                  [        [        R                  U" S5      U" 5       5        g )Nr   r4      d3d3LnB5dGhvbi5vcmc=r   zYWJj
r"   )
r8   r5   r6   r(   decoder'   r:   r   r   r9   )r   r5   r6   r;   r<   s        r   test_decode LegacyBase64TestCase.test_decodeP   s    (./	d")+<=)V]]HX4F	R)V]]GI4F
S)V]]HX4F
Sr    N)
__name__
__module____qualname____firstlineno__r   r-   r1   r=   rB   __static_attributes__rD   r   r   r   r   
   s    23*3*Q"	Tr   r   c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$r&g%)&BaseXYTestCase\   c                 `    U R                  [        US5        U R                  [        U/ 5        g )Nr
   r   r   r   r   s     r   check_encode_type_errors'BaseXYTestCase.check_encode_type_errors`   s&    )Q+)Q+r   c                 2    U R                  [        U/ 5        g NrN   rO   s     r   check_decode_type_errors'BaseXYTestCase.check_decode_type_errorsd   s    )Q+r   c                 B   U R                   n[        U5      nU" U" U5      U5        U" XR5        U" U" [        U5      5      U5        U" U" [        SU5      5      U5        U R	                  [
        R                  U5        U R                  [
        R                  U5        g )Nr   )r'   r*   r   r   check_nonbyte_element_formatr(   	b64encodecheck_multidimensional)r   r   
bytes_dataexpectedr,   bs         r   check_other_types BaseXYTestCase.check_other_typesg   s    j!
1Q4
1
1Z
#$h/
1U3
#$h/))&*:*:JG##F$4$4jAr   c                     [        U5      S-  (       a  SOSnX#-   n[        U5      S-  S4n[        U5      R                  SU5      nU R                  U" U5      U" U5      5        g )Nr       r   r   lenr   r   r'   )r   r   datapaddingrZ   shaper   s          r   rY   %BaseXYTestCase.check_multidimensionals   s_     Y]'^
ZA%q)%j166sEB+,a
m<r   c                     SS[        U5      -
  S-  -  nX#-   n[        U5      R                  S5      nU R                  U" U5      U" U5      5        g )Nr`      r   ra   )r   r   rc   rd   rZ   r   s         r   rW   +BaseXYTestCase.check_nonbyte_element_formatz   sM    a#d)mq01^
j)..s38a
m4r   c           	      (   U R                   nU" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S	5      S
5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " SSS9S5        U" [        R                  " S[        S5      S9S5        U" [        R                  " S[	        S5      S9S5        U" [        R                  " S[        SS5      S9S5        U R                  [        R                  SS5        U R                  [        R                  5        U R                  [        [        R                  SSS9  U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S	5      S
5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U R                  [        R                  SS5        U R                  [        R                  5        U" [        R                  " S5      S5        U R                  [        R                  SS5        U R                  [        R                  5        g )Nr   r@   r`      AA==r      YQ==r      YWI=r!      YWJjr   r#   sp   YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==   Vo   *$altchars   01a*b$cdr      abcds   YWJjZA==z*$   01a-b_cd)r'   r(   rX   r*   r   r   r]   rP   r   r   standard_b64encodeurlsafe_b64encoder+   s     r   test_b64encodeBaseXYTestCase.test_b64encode   sv   
6-.0GH
6G$g.
6D!7+
6E"G,
6F#W-
6C #&
6 > ?1	2 	61EBKP
61Ie<LM	
61Ju<MN	
61E#u<MN	 	v//+F%%f&6&67)V%5%5sTJ
6$$%679PQ
6$$T*G4
6$$U+W5
6$$V,g6
6$$S)3/
6$$ &G H1	2 	v88&	5%%f&?&?@
6##$9:KHv774k	C%%f&>&>?r   c                 b   U R                   nSSSSSSSS.nUR                  5        HN  u  p4U" [        R                  " U5      U5        U" [        R                  " UR	                  S	5      5      U5        MP     U R                  [        R                  S
S5        U R                  [        R                  5        SS0nUR                  5        H  u  u  p6nUR	                  S	5      nUR	                  S	5      nU" [        R                  " X6S9U5        U" [        R                  " XvS9U5        U" [        R                  " X8S9U5        U" [        R                  " XxS9U5        M     UR                  5        HN  u  p4U" [        R                  " U5      U5        U" [        R                  " UR	                  S	5      5      U5        MP     U R                  [        R                  S
S5        U R                  [        R                  5        SSS.n	U	R                  5        HN  u  p4U" [        R                  " U5      U5        U" [        R                  " UR	                  S	5      5      U5        MP     U R                  [        R                  SS5        U R                  [        R                  5        g )Nr   r`   r   r   r!   r#   r   )r@   rk   rl   rm   rn   sq   YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0
NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==r   asciirn   )rs   rp   ro   rq   )ru   r   ru   )	r'   itemsr(   	b64decoderA   r]   rT   standard_b64decodeurlsafe_b64decode)
r   r,   testsrc   restests_altcharsrr   data_straltchars_strtests_urlsafes
             r   test_b64decodeBaseXYTestCase.test_b64decode   s;   *;! 
3  IDv%s+vG 45s; ' 	v//&A%%f&6&67 /0E %3%9%9%;!Tc{{7+H#??73Lv8#>v<cBv<cBv@#F &< IDv((.4v((W)=>D ' 	v88'6J%%f&?&?@ '<! ',,.IDv''-s3v''G(<=sC / 	v774	6%%f&>&>?r   c                     U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        g )Nr!   r7   )r   binasciiErrorr(   r}   r   s    r   test_b64decode_padding_error+BaseXYTestCase.test_b64decode_padding_error   s:    (..&*:*:FC(..&*:*:EBr   c           
      Z   Sn[         R                  [         R                  [         R                  4nU H  u  p4U HZ  nU R	                  X5S9   U R                  U" U5      U5        U R                  U" UR                  S5      5      U5        S S S 5        M\     U R                  [        R                  5         [         R                  " USS9  S S S 5        U R                  [        R                  5         [         R                  " UR                  S5      SS9  S S S 5        M     SnU R                  [         R                  " SS5      U5        U R                  [         R                  " S	5      U5        g ! , (       d  f       GMK  = f! , (       d  f       N= f! , (       d  f       GMv  = f)
N)
)s   %3d==   )s   $3d==r   )s   [==r   )s   YW]3=s   am)s   3{d==r   )s   3d}==r   )   @@r   )   !r   )r"   r!   )s	   YWJj
YWI=s   abcab)bstrfuncr{   T)validates   s   ++[[//]]s   []s   ++--//__)
r(   r}   r~   r   subTestr'   rA   r   r   r   )r   r   funcsr   r   r   s         r   test_b64decode_invalid_chars+BaseXYTestCase.test_b64decode_invalid_chars   sA   	, %%$$

 ID\\t\7$$T$Z5$$T$++g*>%?E 87  ""8>>2  5 3""8>>2  W!5E 32  *))+u=sC11+>D 87 3222s%   A E68F	5%F6
F	
F	
F*	c                 2   U R                   nU" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S5      S	5        U" [        R                  " S
5      S5        U" [        R                  " S5      S5        U R                  [        R                  S
S5        U R	                  [        R                  5        g )Nr   r`      AA======r      ME======r      MFRA====r!      MFRGG===rt      MFRGGZA=   abcde   MFRGGZDF)r'   r(   	b32encoder]   rP   r+   s     r   test_b32encodeBaseXYTestCase.test_b32encode  s    
6C #&
6G$k2
6D!;/
6E"K0
6F#[1
6G$k2
6H%{3v//+F%%f&6&67r   c                 t   U R                   nSSSSSSSS.nUR                  5        HN  u  p4U" [        R                  " U5      U5        U" [        R                  " UR	                  S	5      5      U5        MP     U R                  [        R                  S
S5        U R                  [        R                  5        g )Nr   r`   r   r   r!   rt   r   )r   r   r   r   r   r   r   r{   r   )r'   r|   r(   	b32decoderA   r]   rT   r   r,   r   rc   r   s        r   test_b32decodeBaseXYTestCase.test_b32decode  s    %"#$%& IDv%s+vG 45s; ' 	v//fE%%f&6&67r   c                 J   U R                   nSSSSSSSSSSSS.nUR                  5        HP  u  p4U" [        R                  " US5      U5        U" [        R                  " UR	                  S	5      S5      U5        MR     U R                  [        R                  [        R                  S
5        U R                  [        R                  [        R                  S5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        SSS.nUR                  5        H  u  u  p6nUR	                  S	5      nUR	                  S	5      nU" [        R                  " X6S9U5        U" [        R                  " XvS9U5        U" [        R                  " X8S9U5        U" [        R                  " XxS9U5        U R                  [        R                  [        R                  U5        U R                  [        R                  [        R                  U5        M     g )Nr   r   r   r!   rt   r   )r   r   r   r   r   r      me======s   mfra====s   mfrgg===s   mfrggza=s   mfrggzdfTr{   r   zme======s   MLO23456s   bݭMLO23456s   b))   M1023456   L)r      I)map01)r'   r|   r(   r   rA   r   r   r   )	r   r,   r   rc   r   	map_testsr   r   	map01_strs	            r   test_b32decode_casefold&BaseXYTestCase.test_b32decode_casefold-  s   "#$%&"#$%& IDvd+S1vG 4d;SA ' 	(..&*:*:KH(..&*:*:JG 	6K(*>?
6J')=>*>*>	 #,//"3MT3{{7+HW-Iv2C8v6<v6<v:C@hnnf.>.>Ehnnf.>.>I #4r   c                    / SQn/ SQn[        SS5       HR  nU(       a  UR                  SU-  5        U H.  n[        U5      U-   S:w  d  M  UR                  USU-  -   5        M0     MT     U H  nU R                  US9   U R	                  [
        R                  5         [        R                  " U5        S S S 5        U R	                  [
        R                  5         [        R                  " UR                  S5      5        S S S 5        S S S 5        M     g ! , (       d  f       Nh= f! , (       d  f       N,= f! , (       d  f       M  = f)	N)r!      ABCDEF==   ==ABCDEF   Ms   MEs   MFRAs   MFRGGs   MFRGGZAr   r         =   )rc   r{   )
rangeappendrb   r   r   r   r   r(   r   rA   r   r   prefixesiprefixrc   s         r   test_b32decode_error#BaseXYTestCase.test_b32decode_errorV  s    2Lq"AT!V$"v;?a'LL$q&1 #  D4(&&x~~6$$T* 7&&x~~6$$T[[%9: 7 )( 6666 )(<   ? D:D6'D:&D)D:
D&"D:)
D73D::
E		c                     / SQnU HC  u  p#U R                  US9   U R                  [        R                  " U5      U5        S S S 5        ME     g ! , (       d  f       MW  = f)N))r   r   )r`      00======)r      C4======)r      C5H0====)r!      C5H66===)rt      C5H66P0=)r      C5H66P35	to_decode)r   r'   r(   b32hexencode)r   
test_cases	to_encoder[   s       r   test_b32hexencode BaseXYTestCase.test_b32hexencodef  sP    	

 $.I	2  !4!4Y!?J 32 $.22s   'A
A	c                     U R                  [        R                  SS5        U R                  [        R                  5        g )Nrt   r   )r]   r(   r   rP   r   s    r   test_b32hexencode_other_types,BaseXYTestCase.test_b32hexencode_other_typesu  s.    v22G[I%%f&9&9:r   c           	      0   / SQnU Hz  u  p#nU R                  X$S9   U R                  [        R                  " X$5      U5        U R                  [        R                  " UR	                  S5      U5      U5        S S S 5        M|     g ! , (       d  f       M  = f)N))r   r   F)r   r`   F)r   r   F)r   r   F)r   r!   F)r   rt   F)r   r   F)r   r   T)r   r`   T)r   r   T)r   r   T)r   r!   T)r   rt   T)r   r   T)   c4======r   T)s   c5h0====r   T)s   c5h66===r!   T)s   c5h66p0=rt   T)s   c5h66p35r   T)r   casefoldr{   )r   r'   r(   b32hexdecoderA   )r   r   r   r[   r   s        r   test_b32hexdecode BaseXYTestCase.test_b32hexdecodey  s    

, .8)I	E  !4!4Y!I!)+  !4!4Y5E5Eg5N!)"+,46 FE .8EEs   AB
B	c                     U R                  [        R                  SS5        U R                  [        R                  5        g )Nr   r!   )r]   r(   r   rT   r   s    r   test_b32hexdecode_other_types,BaseXYTestCase.test_b32hexdecode_other_types  s.    v22KH%%f&9&9:r   c                    / SQn/ SQn[        SS5       HR  nU(       a  UR                  SU-  5        U H.  n[        U5      U-   S:w  d  M  UR                  USU-  -   5        M0     MT     U H  nU R                  US9   U R	                  [
        R                  5         [        R                  " U5        S S S 5        U R	                  [
        R                  5         [        R                  " UR                  S5      5        S S S 5        S S S 5        M     g ! , (       d  f       Nh= f! , (       d  f       N,= f! , (       d  f       M  = f)	N)r!   r   r   r   r   r   r   r   r   r   r{   )
r   r   rb   r   r   r   r   r(   r   rA   r   s         r   test_b32hexdecode_error&BaseXYTestCase.test_b32hexdecode_error  s    ?Lq"AT!V$"v;?a'LL$q&1 #  D-&&x~~6''- 7&&x~~6''G(<= 7 .- 6666 .-r   c                    U R                   nU" [        R                  " S5      S5        U" [        R                  " S5      S5        U R                  [        R                  SS5        U R	                  [        R                  5        g )N   
   0102ABCDEFr`      00)r'   r(   	b16encoder]   rP   r+   s     r   test_b16encodeBaseXYTestCase.test_b16encode  sh    
634mD
6G$e,v//1H,	.%%f&6&67r   c                 `   U R                   nU" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U R                  [        R
                  [        R                  S5        U R                  [        R
                  [        R                  S5        U" [        R                  " SS	5      S5        U" [        R                  " SS	5      S5        U R                  [        R                  SS5        U R                  [        R                  5        U" [        R                  " [        S5      S	5      S5        U" [        R                  " [        S5      S	5      S5        U" [        R                  " [        S
S5      S	5      S5        U R                  [        R
                  [        R                  S5        U R                  [        R
                  [        R                  S5        g )Nr   r   
0102ABCDEFr   r`   00s
   0102abcdef
0102abcdefTr   0102AG010)r'   r(   	b16decoder   r   r   r]   rT   r*   r   r   r+   s     r   test_b16decodeBaseXYTestCase.test_b16decode  s   
6M*,CD
6L)+BC
6E"G,
6D!7+(..&*:*:MJ(..&*:*:LI
6M402IJ
6L$/1HIv//6	8%%f&6&67
6Im4d;"	$
6J}5t<"	$
6E#}5t<"	$ 	(..&*:*:HE(..&*:*:EBr   c                    U R                   nSSSS[        [        S5      5      SSSSS	S
SSSSSSSSSSSSSSS0nUR                  5        Ha  u  p4U" [        R
                  " U5      XC5        U" [        R
                  " USS9XC5        U" [        R
                  " USS9SU-   S-   U5        Mc     U R                  [        R
                  SS5        U R                  [        [        R
                  S5        U" [        R
                  " SS SS!9S"5        U" [        R
                  " S#S SS!9S$5        U" [        R
                  " SS SS!9S%5        U" [        R
                  " S&SSS'9S(5        U" [        R
                  " S)SSS'9S*5        U" [        R
                  " S+SSS'9S,5        U" [        R
                  " S-SSS'9S.5        g )/Nr   r      GB\6`E-ZP=Df.1GEb>   s?  !!*-'"9eu7#RLhG$k3[W&.oNg'GVB"(`=52*$$(B+<_pR,UFcb-n-Vr/1iJ-0JP==1c70M3&s#]4?Ykm5X@_(6q'R884cEH9MJ8X:f1+h<)lt#=BSg3>[:ZC?t!MSA7]@cBPD3sCi+'.E,fo>FEMbNG^4U^I!pHnJ:W<)KS>/9Ll%"IN/`jYOHG]iPa.Q$R$jD4S=Q7DTV8*TUnsrdW2ZetXKAY/Yd(L?['d?O\@K2_]Y2%o^qmn*`5Ta:aN;TJbg"GZd*^:jeCE.%f\,!5gtgiEi8N\UjQ5OekiqBum-X60nF?)@o_%qPq"ad`r;HTr#   g   @:E_WAS,RgBkhF"D/O92EH6,BF`qtRH$VbC6UX@47n?3D92&&T:Jand;cHat='/U/0JP==1c70M3&r-I,;<FN.OZ`-3]oSW/g+A(H[P   no padding..   DJpY:@:Wn_DJ(RS   zero compression       H=_,8+Cf>,E,oN2F(oQ1z   zero compression      H=_,8+Cf>,E,oN2F(oQ1!!!!   Boundary:       6>q!aA79M(3WK-[!!   Space compr:       ;fH/TAKYK$D/aMV+<VdL      rr      s8N      s8W*      s8W-!FadobeT   <~   ~>r
      )wrapcolr	  s   GB\6`E-
ZP=Df.1
GEb>s       www.python.orgs   zGB\6`E
-ZP=Df.
1GEb>s   <~GB\6`
E-ZP=Df
.1GEb>
~>           
foldspacesr	     yy             y+<Vd            y+<U           y+9)	r'   bytesr   r|   r(   	a85encoder]   r   r   r   s        r   test_a85encodeBaseXYTestCase.test_a85encode  s    5%*  2I/')A%'B "6!8Uvwx-2 IDv%s1vE2C>vD153;3FM '
 	v//1B5	7 	)V%5%5r:
6-qF%	'
65qN&	(
6-qE+	- 	6Ft5A5I
6Ft5A8L
6Ft5A7K
6Ft5A6Jr   c                 &   U R                   nSSSS[        [        S5      5      SSSSS	S
SSSSSSSSSSSSSSS0nUR                  5        H"  u  p4U" [        R
                  " U5      U5        M$     U R                  [        R
                  SS5        g )Nr   r      cXxL#aCvlSZ*DGca%Tr   ?  009C61O)~M2nh-c3=Iws5D^j+6crX17#SKH9337XAR!_nBqb&%C@Cr{EG;fCFflSSG&MFiI5|2yJUu=?KtV!7L`6nNNJ&adOifNtP*GA-R8>}2SXo+ITwPvYU}0ioWMyV&XlZI|Y;A6DaB*^Tbai%jczJqze0_d@fPsR8goTEOh>41ejE#<ukdcy;l$Dm3n3<ZJoSmMZprN9pq@|{(sHv)}tgWuEu(7hUw6(UkxVgH!yuH4^z`?@9#Kp$P$jQpf%+1cv(9zP<)YaD4*xB0K+}+;a;Njxq<mKk)=;`X~?CtLF@bU8V^!4`l`1$(#{Qdpr#   g   VPa!sWoBn+X=-b1ZEkOHadLBXb#`}nd3r%YLqtVJM@UIZOH55pPf$@(Q&d$}S6EqEFflSSG&MFiI5{CeBQRbjDkv#CIy^osE+AW7dwlr      Zf_uPVPs@!Zf7nor      dS!BNAY*TBaB^jHb7^mG00000r      dS!BNAY*TBaB^jHb7^mG0000r      LT`0$WMOi7IsgCw00r      Q*dEpWgug3ZE$irARr(hr      {{r     |Njr     |Ns9r     |NsC0)r'   r  r   r|   r(   	b85encoder]   r   s        r   test_b85encodeBaseXYTestCase.test_b85encode       4%*  6H//1M+-H,.F!8Uvwx-
2 IDv%s+ ' 	v//1B4	6r   c                 &   U R                   nSSSS[        [        S5      5      SSSSS	S
SSSSSSSSSSSSSSS0nUR                  5        H"  u  p4U" [        R
                  " U5      U5        M$     U R                  [        R
                  SS5        g )Nr   r      CxXl-AcVLsz/dgCA+tr   ?  009c61o!#m2NH?C3>iWS5d]J*6CRx17-skh9337xar.{NbQB=+c[cR@eg&FcfFLssg=mfIi5%2YjuU>)kTv.7l}6Nnnj=ADoIFnTp/ga?r8($2sxO*itWpVyu$0IOwmYv=xLzi%y&a6dAb/]tBAI+JCZjQZE0{D[FpSr8GOteoH(41EJe-<UKDCY&L:dM3N3<zjOsMmzPRn9PQ[%@^ShV!$TGwUeU^7HuW6^uKXvGh.YUh4]Z})[9-kP:p:JqPF+*1CV^9Zp<!yAd4/Xb0k*$*&A&nJXQ<MkK!>&}x#)cTlf[Bu8v].4}L}1:^-@qDPr#   g   vpA.SwObN*x>?B1zeKohADlbxB-}$ND3R+ylQTvjm[uizoh55PpF:[^q=D:$s6eQefFLssg=mfIi5@cEbqrBJdKV-ciY]OSe*aw7DWLr      zF{UpvpS[.zF7NOr      Ds.bnay/tbAb]JhB7]Mg00000r      Ds.bnay/tbAb]JhB7]Mg0000r      lt}0:wmoI7iSGcW00r      q/DePwGUG3ze:IRarR^Hr   r   r     %nJr     %nS9r     %nSc0)r'   r  r   r|   r(   	z85encoder]   r   s        r   test_z85encodeBaseXYTestCase.test_z85encode$  r,  r   c                    U R                   nSS[        [        S5      5      SSSSSS	S
SSSS.nUR                  5        H  u  p4U" [        R
                  " U5      XC5        U" [        R
                  " USS9XC5        U" [        R
                  " UR                  S5      SS9XC5        U" [        R
                  " SU-   S-   SS9XC5        U" [        R
                  " US-   SS9XC5        U" [        R
                  " SUR                  S5      -  SS9XC5        M     U" [        R
                  " SSSS9S5        U" [        R
                  " SSSS9S5        U" [        R
                  " SSSS9S5        U" [        R
                  " SSSS9S5        U" [        R
                  " SSS 9S!5        U R                  [        R
                  S"S5        g )#Nr   r   r   r#   r   r   r   r   r   r   r  r  r  )r   r   sJ  ! ! * -'"
		9eu
7#  RLhG$k3[W&.oNg'GVB"(`=52*$$(B+<_pR,UFcb-n-Vr/1iJ-0JP==1c70M3&s#]4?Ykm5X@_(6q'R884cEH9MJ8X:f1+h<)lt#=BSg3>[:ZC?t!MSA7]@cBPD3sCi+'.E,fo>FEMbNG^4U^I!pHnJ:W<)KS>/9Ll%"IN/`jYOHG]iPa.Q$R$jD4S=Q7DTV8*TUnsrdW2ZetXKAY/Yd(L?['d?O\@K2_]Y2%o^qmn*`5Ta:aN;TJbg"GZd*^:jeCE.%f\,!5gtgiEi8N\UjQ5OekiqBum-X60nF?)@o_%qPq"ad`r;HTr   r   r   r   r   r   r  r  r  r  Fr  r{   r
  r  Tz<~%s~>r  r  r  r  r  r  r  r  r  s   aaaaayr  s   ɀ@    r   )r'   r  r   r|   r(   	a85decoderA   r]   r   s        r   test_a85decodeBaseXYTestCase.test_a85decodeF  s    $5 "%*-- /&I)H">%8-2 IDv%s1vE2C>vG 4EBCNvu 4DA3MvuD93Ev4;;w+? ?tL ' 	6Ed%@&I
6HUCVL
6GEBFK
6Ft5A6J
6I$79MNv//1G0	2r   c                 f   U R                   nSS[        [        S5      5      SSSSSS	S
SSSS.nUR                  5        HN  u  p4U" [        R
                  " U5      U5        U" [        R
                  " UR                  S5      5      U5        MP     U R                  [        R
                  SS5        g )Nr   r   r   r#   r   r   r   r   r   r   r  r  r  )r   r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r{   r  )r'   r  r   r|   r(   	b85decoderA   r]   r   s        r   test_b85decodeBaseXYTestCase.test_b85decodet       #4 #5:.6 /*M)H&F%8-
2 IDv%s+vG 45s; ' 	v//1F0	2r   c                 f   U R                   nSS[        [        S5      5      SSSSSS	S
SSSS.nUR                  5        HN  u  p4U" [        R
                  " U5      U5        U" [        R
                  " UR                  S5      5      U5        MP     U R                  [        R
                  SS5        g )Nr   r   r   r#   r   r   r   r   r   r   r  r  r  )r   r.  r/  r0  r1  r2  r3  r4  r5  r   r6  r7  r8  r{   r.  )r'   r  r   r|   r(   	z85decoderA   r]   r   s        r   test_z85decodeBaseXYTestCase.test_z85decode  rE  r   c                 V   U R                   nU" [        R                  " SSS9S5        U" [        R                  " SSS9S5        U" [        R                  " SSS9S5        U" [        R                  " S	SS9S
5        U" [        R                  " SSS9S5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S
5      S	5        U" [        R                  " S5      S5        g )N   xTpads   GQ7^D   xxs   G^'2g   xxxs   G^+H5   xxxxs   G^+IX   xxxxxs
   G^+IXGQ7^D   x      xx     xxx    xxxxx   )r'   r(   r  r>  r+   s     r   test_a85_paddingBaseXYTestCase.test_a85_padding      
6Dd+X6
6Et,h7
6F-x8
6G.9
6H$/?
6H%'78
6H%}5
6H%z2
6H%w/
6M*,@Ar   c                 V   U R                   nU" [        R                  " SSS9S5        U" [        R                  " SSS9S5        U" [        R                  " SSS9S5        U" [        R                  " S	SS9S
5        U" [        R                  " SSS9S5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S5      S5        U" [        R                  " S
5      S	5        U" [        R                  " S5      S5        g )NrK  TrL  s   cmMzZrN  s   cz6H+rO  s   czAdKrP  s   czAetrQ  s
   czAetcmMzZrR  rS  rT  rU  )r'   r(   r)  rB  r+   s     r   test_b85_paddingBaseXYTestCase.test_b85_padding  rX  r   c                    [        [        S5      5      [        [        SS5      5      -  [        S5      -
  nU H  nU R                  [        [	        U/5      S9   [
        R                  " S[	        U/5      -   5        S S S 5        U R                  [        [	        U/5      S9   [
        R                  " S[	        U/5      -   SS9  S S S 5        U R                  [        [	        U/5      S9   [
        R                  " S	[	        U/5      -   S
-   SS9  S S S 5        M     U R                  [        [
        R                  SSS9  U R                  [        [
        R                  SSS9  U R                  [        [
        R                  S5        U R                  [        [
        R                  SSS9  [
        R                  " SSS9  U R                  [        [
        R                  SSS9  U R                  [        [
        R                  SSS9  U R                  [        [
        R                  SSSS9  U R                  [        [
        R                  SSS9  U R                  [        [
        R                  SSS9  U R                  [        [
        R                  SSS9  U R                  [        [
        R                  SSS9  U R                  [        [
        R                  SSS9  U R                  [        [
        R                  SSS9  g ! , (       d  f       GN= f! , (       d  f       GN]= f! , (       d  f       GM  = f)N    v      s    	
msgs   !!!!Fr  s   <~!!!!r  Ts	   malformeds   <~still malformeds   <~~>s   abcxs   abcdeys   a b
cr   )r	  ignorechars   ss   s8s   s8Ws   s8W-s   s8W-"s   aaaayr=  )setr   r   
ValueErrorr  r(   r>  r   illegalcs      r   test_a85decode_errors$BaseXYTestCase.test_a85decode_errors  s   uRy>Cc3$88C<MMA"":5!:">  5!:!56 ?"":5!:">  5!:!5UC ?"":5!:">  UA3Z!7%!?tL ?>  	*f&6&6&2$ 	 	@*f&6&6&:$ 	 	H 	*f&6&6&-	/*f&6&6&-U 	 	<-*f&6&6&-U 	 	<*f&6&6&/u 	 	>*f&6&6&/u# 	 	O 	*f&6&6EJ*f&6&6UK*f&6&6eL*f&6&6uM*f&6&6N*f&6&6%) 	 	+? ?>>>>>s$   $L$#L-&L/
L	
L,	/
L?	c                    [        [        S5      5      [        S5      -   [        [        SS5      5      -   nU HM  nU R                  [        [	        U/5      S9   [
        R                  " S[	        U/5      -   5        S S S 5        MO     U R                  [        [
        R                  S5        U R                  [        [
        R                  S5        U R                  [        [
        R                  S	5        U R                  [        [
        R                  S
5        U R                  [        [
        R                  S5        g ! , (       d  f       GM  = f)N!   s	   "',./:[\]   r_  r`     0000   |s   |Ns   |Nss   |NsCs   |NsC1)listr   r   re  r  r(   rB  rf  s      r   test_b85decode_errors$BaseXYTestCase.test_b85decode_errors  s    uRy/~&'uS#'( A"":5!:">  5!:!56 ?>  	*f&6&6=*f&6&6>*f&6&6?*f&6&6@*f&6&6A ?>   $E
E	c                    [        [        S5      5      [        S5      -   [        [        SS5      5      -   nU HM  nU R                  [        [	        U/5      S9   [
        R                  " S[	        U/5      -   5        S S S 5        MO     U R                  [        [
        R                  S5        U R                  [        [
        R                  S5        U R                  [        [
        R                  S	5        U R                  [        [
        R                  S
5        U R                  [        [
        R                  S5        g ! , (       d  f       GM  = f)Nrl  s	   "',;_`|\~rm  r_  r`  rn     %s   %ns   %nSs   %nScs   %nSc1)rp  r   r   re  r  r(   rG  rf  s      r   test_z85decode_errors$BaseXYTestCase.test_z85decode_errors  s    uRy/~&'uS#'( A"":5!:">  5!:!56 ?> 
 	*f&6&6=*f&6&6>*f&6&6?*f&6&6@*f&6&6A ?>rs  c                 8   [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  [         R                  [         R                  4nU H  nU R                  [        US5        M     g )Nu   with non-ascii Ë)r(   r}   r~   r   r   r   rB  r>  rG  r   re  )r   decode_funcsr   s      r   test_decode_nonascii_str'BaseXYTestCase.test_decode_nonascii_str  sp    ((1100((((((((((* Aj!-BC r   c                 ^    U R                  [        [        R                  [        5      5        g rS   )
assertTrue
issubclassr   r   re  r   s    r   test_ErrorHeritage!BaseXYTestCase.test_ErrorHeritage&  s    
8>>:>?r   c                    [         R                  n[         R                  n[         R                  n[         R                  nU R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S	5        U R                  U" S
5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S
5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S
5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S
5      S5        U R                  U" S5      S5        g ) Nr      fs   Zg==s   fos   Zm8=s   foos   Zm9vs   foobs   Zm9vYg==s   foobas   Zm9vYmE=s   foobars   Zm9vYmFys   MY======s   MZXQ====s   MZXW6===s   MZXW6YQ=s   MZXW6YTBs   MZXW6YTBOI======s   CO======s   CPNG====s   CPNMU===s   CPNMUOG=s   CPNMUOJ1s   CPNMUOJ1E8======s   66s   666Fs   666F6Fs   666F6F62s
   666F6F6261s   666F6F626172)r(   rX   r   r   r   r'   )r   rX   r   r   r   s        r   test_RFC4648_test_cases&BaseXYTestCase.test_RFC4648_test_cases)  sv   $$	**$$	$$	3-4'25)736*G47+[98,k:9-{;3-4+65);76*K87+[98,k:9-/BCc*C0d+[9e,k:f-{;g.<h/=i02EF3-4%05)736*I67+[98,m<9-?r   rD   N)'rE   rF   rG   rH   rP   rT   r]   rY   rW   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r*  r:  r?  rC  rH  rV  rZ  ri  rq  rv  rz  r  r  rI   rD   r   r   rK   rK   \   s    ,,
B=50@d6@pCE@88"'JR; K;6<;>"8C60Kd 6D 6D,2\!2F!2FBB#+JBB
D@%@r   rK   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestMainiQ  c                     [         R                  R                  [        R                  5      (       a%  [         R
                  " [        R                  5        g g rS   )ospathexistsr   TESTFNunlinkr   s    r   tearDownTestMain.tearDownR  s2    77>>)**++IIi&&' ,r   c                 F    [         R                  " SS/UQ76 R                  $ )N-mr(   )r   assert_python_okout)r   argss     r   
get_outputTestMain.get_outputV  s     --dHDtDHHHr   c                    [        [        R                  S5       nUR                  S5        S S S 5        U R	                  S[        R                  5      nU R                  UR                  5       S5        g ! , (       d  f       NO= f)Nwb   ab
-e   Yf9iCg==openr   r  writer  r'   rstripr   fpoutputs      r   test_encode_fileTestMain.test_encode_fileY  sZ    )""D)RHH[! *y'7'78+6 *)   A66
Bc                     [         R                  " SSS5       nUR                  S5      u  p#S S S 5        U R                  WR	                  5       S5        U R                  W5        g ! , (       d  f       N@= f)Nr  r(   r  r  r  )r   spawn_pythoncommunicater'   r  assertIsNone)r   procr  errs       r   test_encode_from_stdinTestMain.test_encode_from_stdin_  sZ    ''h=''4HC >{3# >=s   A''
A5c                    [        [        R                  S5       nUR                  S5        S S S 5        U R	                  S[        R                  5      nU R                  UR                  5       S5        g ! , (       d  f       NO= f)Nr  r  z-ds   abr  r  s      r   rB   TestMain.test_decodee  sZ    )""D)RHH[! *y'7'78)4 *)r  c                 n    U R                  S5      nU R                  SU5        U R                  SU5        g )Nz-h   usage:    -d, -u: decode)r  assertInr   r  s     r    test_prints_usage_with_help_flag)TestMain.test_prints_usage_with_help_flagk  s-    &j&)'0r   c                     [         R                  " SSS5      R                  nU R                  SU5        U R                  SU5        g )Nr  r(   z-xr  r  )r   assert_python_failurer  r  r  s     r   #test_prints_usage_with_invalid_flag,TestMain.test_prints_usage_with_invalid_flagp  s9    44T8TJNNj&)'0r   rD   N)rE   rF   rG   rH   r  r  r  r  rB   r  r  rI   rD   r   r   r  r  Q  s&    (I751
1r   r  __main__)unittestr(   r   r  r   test.supportr   r   TestCaser   rK   r  rE   mainrD   r   r   <module>r     ss       	  " &OT8,, OTdr@X&& r@j"1x   "1H zMMO r   