
    dK                         d dl mZ d dlZd dlZd dlmZ d dlmZ d dl	Z
d dl	mZmZmZmZmZ d dlmZ d dlmZ  edgdz  d	gd
z  z   dgdz  z    ej        d          d eddd                    Z e            d             Zd Zd Zd Zd Zd Zd Zej                            dg d          d             Z d Z!ej                            dddg          d              Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+ej                            d*d+gd+d,gg          d-             Z,ej                            d.d/d0g          d1             Z-d2 Z.ej                            d*d+gd+d,gg          d3             Z/d4 Z0d5 Z1d6 Z2d7 Z3d8 Z4dS )9    )dedentN)is_platform_windows)
async_mark)	DataFrameIndexSeriesTimedeltaIndex	Timestamp)
date_range                  (   AB1/1/2000sfreqperiodsindexc                 Z  K   ddl m} t          d          }|                     |           d {V  t	          j        d           5   |d          5  t          | j                            dd                     d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr   )provisionalcompleterzZ    import pandas._testing as tm
    s = tm.makeTimeSeries()
    rs = s.resample("D")
    ignorezrs.r   )	IPython.core.completerr   r   run_codetmassert_produces_warninglist	Completercompletions)ipr   codes      h/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/resample/test_resampler_grouper.py"test_tab_complete_ipython6_warningr*      sO     ;;;;;;	 D ++d

 
	#D	)	) 5 5!!(++ 	5 	5))%33444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	55 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s6   B )B<B B	B B	B  B$'B$c                  *   g dg dg dg dg dg dg dg dg d	g d
g
} t          | g d          }t          j        |j                  |_        d }|                    d                              |          }|                    d                              d                              d                                          }t          j
        ||           t          t          ddd          g dg dd                              d          }d }|                    d                              |          }|                    d                              d                                          }t          j
        ||           d S )N)
2010-01-01r   r   )z
2010-01-02r   r   )z
2010-01-05r   r   )z
2010-01-10r      )z
2010-01-13r   r   )r,   r      )z
2010-01-03r   r   )z
2010-01-04r   r   )z
2010-01-11r   r-   )z
2010-01-14r   r   )dateidscorecolumnsc                 v    |                      d                              d                                          S )Nr/   D)	set_indexresampleasfreqxs    r)   f_0z'test_deferred_with_groupby.<locals>.f_0A   s.    {{6""++C0077999    r0   r/   r5   
2016-01-01   W)startr   r   )r   r   r   r   )r.      r-   r   r/   groupvalc                 P    |                      d                                          S )N1D)r7   ffillr9   s    r)   f_1z'test_deferred_with_groupby.<locals>.f_1P   s     zz$%%'''r<   rC   rF   )r   pdto_datetimer/   groupbyapplyr6   r7   r8   r"   assert_frame_equalr   rG   )datadfr;   expectedresultrH   s         r)   test_deferred_with_groupbyrR   .   s    	D 
4!8!8!8	9	9	9BnRW%%BG: : : zz$%%c**H\\&!!))$//88==DDFFF&(+++	\13GGG!\\<<	
 	

 
 i ( ( ( zz'""((--HZZ  ))$//5577F&(+++++r<   c                     t                               d          } | j                            d           }|                     d          j                                        }t          j        ||           | j                            d                                          }t          j        ||           |                     d                                          j        }t          j        ||           d S )Nr   c                 P    |                      d                                          S N2s)r7   meanr9   s    r)   <lambda>ztest_getitem.<locals>.<lambda>[   s    1::d#3#3#8#8#:#: r<   rV   )
test_framerK   r   rL   r7   rW   r"   assert_series_equal)grP   rQ   s      r)   test_getitemr\   X   s    3Asyy::;;HZZ$$&&F68,,,S\\$$$&&F68,,,ZZ""$$&F68,,,,,r<   c            
         ddddddg} t          | t          dd                    }|                    d	                              d
          }|d                                         }t          ddgt          j                            dt          d          fdt          d          fgd	d g          d          }t          j        ||           |d                                         }t          j        ||           d S )Nr   r   )r0   buyerr   r   r=   r   r   r0   rF   r^   z
2016-01-02names)r   name)r   r   rK   r7   countr   rI   
MultiIndexfrom_tuplesr
   r"   rZ   )rN   rO   rrQ   rP   s        r)   test_getitem_multiplerg   g   s    s##A%<%<=D	4z,BBB	C	C	CB


4!!$''AwZF	
Am''<(()Ay/F/F+GH, ( 
 
   H 68,,,wZF68,,,,,r<   c                     t          t          d          t          dd          dd          } |                     d                              d                              d	          d
                                         }|                     d                              d	d          d
                                         }t          j        ||           d S )Naabbbz1-1-2016r.   r_   r   )r0   r/   rN   r/   r0   2DrN   on)	r   r$   r   r6   rK   r7   sumr"   rZ   )rO   exprQ   s      r)   )test_groupby_resample_on_api_with_getitemro   |   s    	G}}jQ&G&G&GQRSS
 
B ,,v


&
&t
,
,
5
5d
;
;F
C
G
G
I
ICZZ&&t&77?CCEEF63'''''r<   c                     d} d\  }}d}t          ||d          }t          t          j                            t          |                    |          }|||         }t          j        |           }|                    |          	                    d          }|||         }|                    |          	                    d          }	t          j        t          d	          5  t          j        |j        |	j                   d d d            n# 1 swxY w Y   t!          d
          }
t          j        | |
          }|                    |          	                    d          }|||         }|                    |          	                    d          }t          j        ||           t!          d
          t          j        d          dz  z   }t          j        | |          }|                    |          	                    d          }|||         }|                    |          	                    d          }t          j        ||           t          j        ||           d S )N1399min)z1/1/2000 00:00:00z1/31/2000 00:00z1/15/2000 00:00:001231minr   r   rc   zIndex are differentmatchr   )r   origini0u  )r   r   nprandomrandnlenrI   GrouperrK   aggpytestraisesAssertionErrorr"   assert_index_equalr   r
   rZ   	Timedelta)r   r@   endmiddlerngtsts2simple_groupercount_ts	count_ts2rv   adjusted_grouperadjusted_count_tsadjusted_count_ts2origin_futureadjusted_grouper2adjusted2_count_tsadjusted2_count_ts2s                     r)   test_groupby_with_originr      s    D7JE3!F
UCi
0
0
0C		C))	5	5	5B
VCZ.C ZT***Nzz.))--g66Hs
#HN++//88I	~-B	C	C	C ? ?
hnio>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? q\\FztF;;;

#34488AA)&*5%566::7CC,.@AAA aLL2<	#:#:V#CCM
]CCC$566::7CC+F3J7++&788<<WEE-/BCCC ,.ABBBBBs   + DDDc                  .   t          ddd          } t          t          d          |                               d                                          }t          g dt          j        g dd	d
                    }t          j        ||           d S )Nr   r   Tr   r   r   20s)r   r   r   r   r   r   r   )z2000-01-01 00:00:00z2000-01-01 00:00:20z2000-01-01 00:00:40z2000-01-01 00:01:00z2000-01-01 00:01:20z2000-01-01 00:01:40z2000-01-01 00:02:00zdatetime64[ns]20S)dtyper   )	r   r   ranger7   nearestrI   DatetimeIndexr"   rZ   )r   rQ   rP   s      r)   test_nearestr      s     z13777EE!HHE***33E::BBDDF   #
 
 
  H  68,,,,,r<   f)firstlastmediansemrm   rW   minmaxsizerc   r   bfillrG   r8   ohlcc                      t                               d          }|                    d          } t          |                       }|                     fd          }t          j        ||           d S )Nr   rV   c                 Z     t          |                     d                                S rU   getattrr7   r:   r   s    r)   rX   ztest_methods.<locals>.<lambda>   s&    !=D)9)91!=!=!?!? r<   )rY   rK   r7   r   rL   r"   assert_equalr   r[   rf   rQ   rP   s   `    r)   test_methodsr      so    * 	3A	

4AWQ]]__Fww????@@HOFH%%%%%r<   c                      t                               d          } |                     d          }|j                                        }| j                            d           }t          j        ||           d S )Nr   rV   c                 P    |                      d                                          S rU   )r7   nuniquer9   s    r)   rX   z&test_methods_nunique.<locals>.<lambda>   s    1::d#3#3#;#;#=#= r<   )rY   rK   r7   r   r   rL   r"   rZ   )r[   rf   rQ   rP   s       r)   test_methods_nuniquer      se    3A	

4AS[[]]Fsyy==>>H68,,,,,r<   stdvarc                      t                               d          }|                    d          } t          |           d          }|                     fd          }t          j        ||           d S )Nr   rV   r   ddofc                 ^     t          |                     d                    d          S )NrV   r   r   r   r   s    r)   rX   z&test_methods_std_var.<locals>.<lambda>   s+    !=D)9)91!=!=1!E!E!E r<   )rY   rK   r7   r   rL   r"   rM   r   s   `    r)   test_methods_std_varr      su    3A	

4AWQ]]"""FwwEEEEFFH&(+++++r<   c                     t                               d          } |                     d          }|                     d                                          }d }|                    |          }t          j        ||           d }|                     |          }|                    d          }t          j        ||           d S )Nr   rV   c                 P    |                      d                                          S rU   )r7   rm   r9   s    r)   r;   ztest_apply.<locals>.f_0   s     zz$##%%%r<   c                 T    |                      d                              d           S )NrV   c                 *    |                                  S Nrm   )ys    r)   rX   z)test_apply.<locals>.f_1.<locals>.<lambda>  s     r<   )r7   rL   r9   s    r)   rH   ztest_apply.<locals>.f_1  s&    zz$%%&7&7888r<   int64)rY   rK   r7   rm   rL   r"   rM   astype)r[   rf   rP   r;   rQ   rH   s         r)   
test_applyr      s    3A	

4A zz$##%%H& & & WWS\\F&(+++9 9 9 WWS\\Fw''H&(+++++r<   c                     t          ddd          } t          dt          j                            t          |                     i|           }d }|                    t          j        d                    	                    |          }|
                    d          	                    |          }t          j        ||           |d                             t          j        d          d	
          	                    |          }|d         
                    d          	                    |          }t          j        ||           d S )Nz1-1-2015z12-31-15r5   rs   col1rN   r   c                 0    t          ddgddg          }|S )Nr   r   abr   )r   )r:   r   s     r)   r   z(test_apply_with_mutated_index.<locals>.f  s!    Aq6#s,,,r<   MF)
group_keys)r   r   rw   rx   randrz   rK   rI   r{   rL   r7   r"   rM   rZ   )r   rO   r   rP   rQ   s        r)   test_apply_with_mutated_indexr     s(   z:C888E	E

!;!;<E	J	J	JB   zz"*#...//55a88H[[##A&&F&(+++ &z!!"*#"6"6"65!IIOOPQRRHZ  %%++A..F68,,,,,r<   c                     t           j                            ddg          } t          ddd          }t	          t          j        dgdz                                dd	          || 
          }d |j        D             |	                    d          
                    fd          }t	          d	ddggz  t          ddd	          t           j                            ddg          
          }t          j        ||           d S )N)r   r    one)r   r   itwoz
2017-01-0115Minr   )r@   r   r   r      r   r   r3   c                 X    i | ]'}||d          dk    rt           j        nt           j        (S )r   r   )rw   rm   rW   ).0cols     r)   
<dictcomp>z1test_apply_columns_multilevel.<locals>.<dictcomp>&  s.    TTT#A%bffRWTTTr<   Hc                 0     | j                  |           S r   rb   )r:   agg_dicts    r)   rX   z/test_apply_columns_multilevel.<locals>.<lambda>'  s    .>hqv.>q.A.A r<   g        1H)rI   rd   re   r   r   rw   arrayreshaper3   r7   rL   r"   rM   )colsindrO   rQ   rP   r   s        @r)   test_apply_columns_multilevelr   !  s   =$$&;=S%TUUD
<gq
A
A
AC	28QC"H%%--a333	M	M	MBTTTTTH[[##$A$A$A$ABBF	aXJ|$BBB))"$:;
 
  H &(+++++r<   c                     t          ddd          } t          | g dg dd          }|                    d	                              d
d                                          }t          j        g dt
          j                  t          j	        t          j        g d                    g}t          j
                            |d	d g          }t          g dg dd|          }t          j        ||           d S )Nz
2000-01-01rj   r.   r   )r   r   r   r   r   )r   r   r   r   r   )col0r   )r   rN   r   1Wleft)label)r   r   r   r   r   )z
1999-12-26
2000-01-02r   r   r`   )r   r   r   r   )r   r   r   r   r   )r   r   rK   r7   rm   rw   r   r   rI   rJ   rd   from_arraysr"   rM   )r   rO   rQ   mimindexrP   s         r)    test_resample_groupby_with_labelr   2  s   |$:::E	ooo%W%W	X	X	XBZZ((V(<<@@BBF 	RX...
HMMMNN	
 	

B ]&&r&$&@@F"llLLL99  H &(+++++r<   c                     t           } t          g dd          }|                     d                              d                                          }|j        j        dk    sJ t          j        |j        j	        d         |           |                     d          
                    d                                          }|j        j        dk    sJ t          j        |j        j	        d         |           d S )N)r   r   r   r   r   rV   r   r   r   )rY   r   rK   r7   rW   r   nlevelsr"   r   levelsrolling)rO   rP   rQ   s      r)   test_consistency_with_windowr   F  s    	BYYYS)))HZZ__%%d++0022F<1$$$$&,-a0(;;;ZZ__$$R((--//F<1$$$$&,-a0(;;;;;r<   c            	         t          t          j                            dd          t	          d          t          ddd                    } |                                 }g d|_        |                    d	          	                                }|                     d	          	                                }|j        |_        t          j        ||           d S )
Nr   r   aaa
2012-01-01r   r   r3   r   )r   r   c5s)r   rw   rx   ry   r$   r   copyr3   r7   r   r"   rM   )rO   df2rP   rQ   s       r)   test_median_duplicate_columnsr   S  s     

	AUr<<<
 
 
B
 ''))C!//CK||D!!((**H[[%%''F~H&(+++++r<   c                     t          t          d          t          dd          dt          ddd                    } |                     d                              d	           }t          g d
t          ddd                    }t          j        ||           |                     d                              d           }t          j        ||           d S )N
   r   )r   r   r   20minr   r   r   c                 4    | j                                         S r   )r   rm   rC   s    r)   rX   z0test_apply_to_one_column_of_df.<locals>.<lambda>k  s    %)--// r<   )r   r      	   r>   c                 6    | d                                          S )Nr   r   r   s    r)   rX   z0test_apply_to_one_column_of_df.<locals>.<lambda>r  s    %,2B2B2D2D r<   )r   r   r   r7   rL   r   r"   rZ   rO   rQ   rP   s      r)   test_apply_to_one_column_of_dfr  c  s    	b		5R==11r@@@
 
 
B [[##$A$ABBFjqsKKK  H 68,,, [[##$D$DEEF68,,,,,r<   c                  T   t          g dg dg dd          } t          j        | d                   | d<   |                     d                              dd          }|d	g                                         }|                    d	d
i          }t          j        ||           d S )N)cat_1r  cat_2r  r  r  r  r  )r.   r      r   r>      r   2   )z2019-2-1z
2018-02-03	2020-3-112019-2-2r  z	2018-12-4r  z
2020-12-12)catnumr/   r/   r  Yrk   r  rm   )	r   rI   rJ   rK   r7   rm   r|   r"   rM   )rO   	resampledrP   rQ   s       r)   test_resample_groupby_aggr  v  s    		 	 	 100	 	 		
 	

 
B2 6
++BvJ

5!!**36*::I%!%%''H]]E5>**F&(+++++r<   c                     t          d          } t          dgdgdt          | gd                    }|                    d                              d	          d
         }|                    ddg          }t          ddggt          j                            d| fgddg          ddg          }t          j
        ||           d S )Nz2021-02-28 00:00:00betaE   )classvaluer/   r   r   r  r   r  rm   r   r   r`   r   )r
   r   r   rK   r7   r|   rI   rd   re   r"   rM   )r   rO   r  rQ   rP   s        r)   "test_resample_groupby_agg_listliker    s    	(	)	)B	fX55UB4f=U=U=U	V	V	VB

7##,,S11':I]]E6?++F
a	m''&"w>O'PP  H
 &(+++++r<   keysr   r   c                    t          g ddgt          g                     }|                    |                               t	          j        d                                                    }t          ddg                              | d                              t          g           d	
          }t          |           dk    r| d         |j	        _
        t          j        ||           d S )Nr   r   r   00:00:01ruler2   FdropT)appendr   r   )r   r	   rK   r7   rI   to_timedeltarW   r6   rz   r   rb   r"   rM   r  rO   rQ   rP   s       r)   
test_emptyr#    s     
2Sz1C1C	D	D	DBZZ&&BOJ,G,G&HHMMOOF3*%%%	4e	$	$	>"%%d	3	3 
 4yyA~~"1g&(+++++r<   consolidateTFc                    t          ddd          }t          d|t          d          dd          }t          d|t          d          d	          }t          j        ||gd
          }| r|                                }|                    dg                              dd                                          }t          j	        
                    dgdz  dgdz  z   t          j        g ddz            gddg          }t          dgdz  dgdz  z   g ddz  dgdz  t          j        gdz  z   d|          }t          j        ||           d S )Nz
2020-01-01   r5   r   r   rD   )keyr/   r   
col_objectr   )r'  r/   r   T)ignore_indexr'  r?   r/   rk   r   )z
2020-01-05z
2020-01-12z
2020-01-19r   r`   )r   r.   r   )r'  r   r(  r   )r   r   r   rI   concat_consolidaterK   r7   r   rd   r   rJ   rw   nanr"   rM   )r$  datesdf1r   rO   rQ   idxrP   s           r)   .test_resample_groupby_agg_object_dtype_all_nanr0    s    |Rc:::E
Cb		QVWW
X
XC
Cb		BB
C
CC	C:D	1	1	1B __ZZ  ))#&)99==??F
-
#
#EAI	!NEEEIJJ	
 fo $  C 519uqy(JJN 'A+14	
 	

   H &(+++++r<   c                     t          t          dd          g dg dd          } |                     d                              d	d
          dg                                         }t          dg dit          dt          d          fdt          d          fdt          d          fdt          d          fgd                    }t          j        ||           d S )Nr=   r   r@   r   r   r   r   r   r   r   r   r   )r   r-   r.   r   r   r   r.   r   rB   )rN   rC   rj   r/   rk   rD   )      @g      @g      @g      @r   
2016-01-03r   
2016-01-05
2016-01-07rC   r/   rN   rb   r   )	r   r   rK   r7   rW   r   r
   r"   rM   r  s      r)   'test_groupby_resample_with_list_of_keysr:    s   	\1===---,,,
 

 
 
B ZZ  ))$6)::E7CHHJJF'''
 Il++,Il++,Il++,Il++,	 #
 
 
	  H &(+++++r<   c                 V   t          g g d          }t          j        |d                   |d<   |                    d          }|                    |                               t          j        d                                                    }t          g d                              | d          }t          j        |d                   |d<   |                    ddd	          }t          |           d
k    r| d         |j	        _
        t          j        ||           d S )N)r   r   r/   r2   r/   r  r  Fr  T)r   r  r   r   )r   rI   rJ   r6   rK   r7   r!  rW   rz   r   rb   r"   rM   r"  s       r)   test_resample_no_indexr<    s    
2111	2	2	2B6
++BvJ	f		BZZ&&BOJ,G,G&HHMMOOF!3!3!3444>>t%>PPH~hv&677HV!!&D!AAH
4yyA~~"1g&(+++++r<   c                     t          t          t          j        g d          d                    } |                     g d                              t          j        d                                                    }t          j        g d          }t          t          j        t          j
        d	d
gt          j                  |gg dg dgd dg                    }t          j        ||t                                  d S )N)2018-01-01 00:00:002018-01-01 12:00:002018-01-02 00:00:00r/   r   r   )r   r   r   z06:00:00r  )r>  z2018-01-01 06:00:00r?  r@  r   r   r   )r   r   r   r   )r   r   r   r   )r   codesra   )check_index_type)r   r   rI   rJ   rK   r7   r!  rW   rd   rw   r   intpr"   rM   r   )rO   rQ   r   rP   s       r)   test_resample_no_columnsrD    s+   	NUUU  	
 
 

 
 
B ZZ			""++1L1L+MMRRTTFN	
 	
 	
 E mHaV27333U;<<..
 
 
  H &(ATAVAV=VWWWWWWr<   c                  &   t          dgdz  dgdz  z   dgdz  z   dgdz  z   t          j        d          dt          ddd          	          } |                     d
                              d                                          }t          dt          j	        
                    dt          d          fdt          d          fdt          d          fdt          d          fgd
d g          	          }t          j        ||           d S )Nr   r   r   r   r   z31/12/2000 18:00r   r   r   r   r5   z
2000-12-31z
2001-01-01r`   )r   rw   aranger   rK   r7   r   r   rI   rd   re   r
   r"   rZ   r  s      r)   )test_groupby_resample_size_all_index_samerG     s(   	cAga1#')QC!G3")B--HH+#rBBB
 
 
B ZZ__%%c**//11F	m''Il++,Il++,Il++,Il++,	 + ( 
 
  H 68,,,,,r<   c                     t          g dg ddt          t          dd          d          	          } |                     d
                              d          dg                                         }t          dg dit          dt          d          fdt          d          fdt          d          fdt          d          fgd          	          }t          j	        ||           d S )Nr3  r   r   r>   r   r.   r  r   rA   rC   rD   r=   r   r2  r/   r   r   rC   rj   rD   g       @g      @g      @r4  r   r5  r   r6  r7  r8  r9  
r   r   r   rK   r7   rW   r   r
   r"   rM   r  s      r)   0test_groupby_resample_on_index_with_list_of_keysrM  6  s+   	---+++
 
 \1555
 
 
	
 	
 	
B ZZ  ))$//8==??F'''
 Il++,Il++,Il++,Il++,	 #
 
 
	  H &(+++++r<   c                     t          g dg dg dg ddt          t          dd          d	
                    } |                     d                              d          ddg                                         }t          g dg ddt          dt          d          fdt          d          fdt          d          fdt          d          fgd                    }t          j	        ||           d S )Nr3  rI  )r   r-   r   r   r   r   r   r   )r   r>   r   r>   r   r   r   r.   )rC   	first_val
second_val	third_valr=   r   r2  r/   r   r   rC   rj   rO  rP  rK  )      @rR  g      @rR  )rO  rP  r   r5  r   r6  r7  r8  r9  rL  r  s      r)   >test_groupby_resample_on_index_with_list_of_keys_multi_columnsrS  T  sK   	---111222111	
 
 \1555
 
 

 
 
B ZZ  ))$//l0KLQQSSF---...
 
 Il++,Il++,Il++,Il++,	 #
 
 
  H &(+++++r<   c            	      \   t          g dg ddt          t          dd          d          	          } t          j        t
          d
          5  |                     d                              d          dg                                          d d d            d S # 1 swxY w Y   d S )Nr3  rI  rJ  r=   r   r2  r/   r   r   zColumns not foundrt   rC   rj   val_not_in_dataframe)	r   r   r   r}   r~   KeyErrorrK   r7   rW   )rO   s    r)   ?test_groupby_resample_on_index_with_list_of_keys_missing_columnrW  u  s   	---+++
 
 \1555
 
 
	
 	
 	
B 
x':	;	;	; L L


7$$T**,B+CDIIKKKL L L L L L L L L L L L L L L L L Ls   AB!!B%(B%)5textwrapr   numpyrw   r}   pandas.compatr   pandas.util._test_decoratorsr   pandasrI   r   r   r   r	   r
   pandas._testing_testingr"   pandas.core.indexes.datetimesr   rF  rY   r*   rR   r\   rg   ro   r   r   markparametrizer   r   r   r   r   r   r   r   r   r  r  r  r#  r0  r:  r<  rD  rG  rM  rS  rW   r<   r)   <module>rc     s              - - - - - - 3 3 3 3 3 3                        4 4 4 4 4 4Y#(aS2X
a
'ibimm<<
*Zc2
6
6
6  
 5 5 5&', ', ',T- - -- - -*( ( (&C &C &CR- - -2    (& &) (&- - - uen--, , .-,, , ,,- - -(, , ,", , ,(
< 
< 
<, , , - - -&!, !, !,H, , , 3%#s!455, , 65, u66, , 76,:, , ,6 3%#s!455, , 65,X X X>- - -,, , ,<, , ,BL L L L Lr<   