+
    Bi                       ^ RI t ^ RIHtHt ^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
t
^ RIHt ^ RIt^ RIt^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIH t  ^ RIH!t! ^ RI"t"]PF                  ! RR.R7      t$]PF                  ! RR.R7      t%]PF                  ! RR.R7      t&]PN                  R 4       t(R t)R t* ! R R]+4      t, ! R R]+4      t- ! R R].4      t/ ! R R]P`                  4      t1 ! R R4      t2]Pf                  ! ]%R 4       ! R! R"]2]P`                  4      4       t4 ! R# R$]2]P`                  4      t5]%'       d    ! R% R&]%Pl                  4      t7 ! R' R(]$Pl                  4      t8]Pf                  ! ]%R 4       ! R) R*]44      4       t9 ! R+ R,]54      t: ! R- R.]P`                  4      t; ! R/ R0]P`                  4      t< ! R1 R2]<4      t= ! R3 R44      t>]Pf                  ! ]%R 4       ! R5 R6]>]P`                  4      4       t? ! R7 R8]>]P`                  4      t@ ! R9 R:4      tA]Pf                  ! ]%R 4       ! R; R<]A]P`                  4      4       tB ! R= R>]A]P`                  4      tC ! R? R@]P`                  4      tD]"P                   ! RA RB4      4       tF ! RC RD4      tG ! RE RF]G]P`                  4      tH]Pf                  ! ]%R 4       ! RG RH]G]P`                  4      4       tI ! RI RJ4      tJ]$P                  4       RK 4       tL]%'       d   ]%P                  4       RL 4       tM ! RM RN]J]P`                  4      tN]Pf                  ! ]%R 4       ! RO RP]J]P`                  4      4       tO ! RQ RR]P`                  4      tP ! RS RT4      tQ ! RU RV4      tR ! RW RX4      tS ! RY RZ]P`                  4      tT]UR[8X  d   ]P                  ! 4        R# R# )\    N)Formatget_annotations)permutations)choice)support)proxy)	Signature)	ALWAYS_EQ)import_helper)threading_helper)cpython_only)EqualToForwardRef	functools
_functools)blocked)freshdecimal_decimalc              #      "   \         P                  V ,          pV\         P                  V &    R x  V\         P                  V &   R #   T\         P                  T &   i ; i5iN)sysmodules)namereplacementoriginal_modules   && */usr/lib/python3.14/test/test_functools.pyreplaced_moduler   (   sE     kk$'O#CKK,+DODs   +AA AAAc                     W3# )z,capture all positional and keyword arguments )argskws   *,r   capturer"   1   s	    8O    c                ^    V P                   V P                  V P                  V P                  3# )z)return the signature of a partial object )funcr    keywords__dict__)parts   &r   	signaturer)   6   s!    IItyy$--??r#   c                       ] tR t^:tRtR# )MyTupler   N__name__
__module____qualname____firstlineno____static_attributes__r   r#   r   r+   r+   :       r#   r+   c                   &   a  ] tR t^=t o R tRtV tR# )BadTuplec                8    \        V 4      \        V4      ,           # r   listselfothers   &&r   __add__BadTuple.__add__>   s    DzDK''r#   r   N)r-   r.   r/   r0   r;   r1   __classdictcell____classdict__s   @r   r4   r4   =   s     ( (r#   r4   c                       ] tR t^AtRtR# )MyDictr   Nr,   r   r#   r   rA   rA   A   r2   r#   rA   c                   0   a  ] tR t^Dt o ]R 4       tRtV tR# )TestImportTimec                8    \         P                  ! R 0 Rm4       R# )r   N>   ostypingweakrefwarningsannotationlib)r   ensure_lazy_importsr9   s   &r   test_lazy_importTestImportTime.test_lazy_importF   s    ))Q	
r#   r   N)r-   r.   r/   r0   r   rL   r1   r=   r>   s   @r   rC   rC   D   s     
 
r#   rC   c                   <  a  ] tR t^Mt o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t ]!PD                  ! RRR 7      ]!PF                  ! 4       R! 4       4       t$R" t%R# t&R$ t'R%t(V t)R&# )'TestPartialc           
     :   V P                  \        ^^^
^R7      pV P                  \        V4      4       V P	                  V! ^^^^(R7      R\        ^
^^(R7      34       V P                  \        R 4      pV P	                  \        V! . RO4      4      . RO4       R# )   ab)rT   crS   rT   rU   c                     V ^
,          # 
   r   xs   &r   <lambda>1TestPartial.test_basic_examples.<locals>.<lambda>T   s    "r#   NrQ            )rY         (   )partialr"   
assertTruecallableassertEqualdictmapr7   r9   ps   & r   test_basic_examplesTestPartial.test_basic_examplesO   s    LL!Q"L3$1a2,&rR2(>?	ALLn-a	l+-=>r#   c                    V P                  \        ^^^
^R7      pV P                  VP                  \        4       V P                  VP                  R4       V P                  VP
                  \        ^
^R7      4       R# )rQ   rR   NrQ   r_   )re   r"   rh   r%   r    r&   ri   rk   s   & r   test_attributesTestPartial.test_attributesW   s]    LL!Q"L3)(TB"%56r#   c                    V P                  \        V P                  4        V P                  ^4      ! 4        V P                  R4       R#   \         d     R# i ; i)r_   z%First arg not checked for callabilityN)assertRaises	TypeErrorre   failrK   s   &r   test_argument_checking"TestPartial.test_argument_checking^   sL    )T\\2	?LLO II=>  		s   A AAc                    RR lpR^/pV P                  V^R7      pV P                  V! R/ VB ^4       V P                  VR^/4       V! ^R7       V P                  VR^/4       R# )rY   c                     V # r   r   rR   s   &&r   r%   BTestPartial.test_protection_of_callers_dict_argument.<locals>.funci   s    Hr#   rS   rS   rT   N)rY   rb   r   )re   rh   )r9   r%   drl   s   &   r   (test_protection_of_callers_dict_argument4TestPartial.test_protection_of_callers_dict_argumentg   sg    	GLLL#Q#SG$	ASG$r#   c                    R ^/pV P                   ! \        3/ VB pV P                  V! 4       RR ^/34       ^VR &   V P                  V! 4       RR ^/34       R# )rS   Nr   re   r"   rh   )r9   r~   rl   s   &  r   test_kwargs_copyTestPartial.test_kwargs_copyr   s]     !HLL&A&rC8n-#rC8n-r#   c                .   V P                  \        4      pV P                  V! 4       R/ 34       V P                  V! ^^4      R/ 34       V P                  \        ^^4      pV P                  V! 4       R/ 34       V P                  V! ^^4      R/ 34       R# )rQ   Nr   rp   r^   r   rk   s   & r   test_arg_combinations!TestPartial.test_arg_combinations{   s     LL!r2h'1Q%-LL!Q'ubk*1Q)R1r#   c                   V P                  \        4      pV P                  VP                  / 4       V P                  V! 4       R/ 34       V P                  V! ^R7      RR^/34       V P                  \        ^R7      pV P                  VP                  R^/4       V P                  V! 4       RR^/34       V P                  V! ^R7      RR^R^/34       V P                  V! ^^R7      RR^R^/34       R# )rQ   r|   rS   r}   rT   rR   Nr   )re   r"   rh   r&   rk   s   & r   test_kw_combinations TestPartial.test_kw_combinations   s     LL!R(r2h'Q"s1g/LLAL&c!W-rC7m,Q"s1c!n!56Q!rC3q>&:;r#   c                    R FN  pV P                   ! \        .VO5!  pVR,           pV! R4      w  rET P                  W48H  ;'       d    V/ 8H  4       KP  	  R# )r   r[   N)r   r   r   rQ   )r   rQ   r_   )r   rQ   r_   r`   rZ   re   r"   rf   )r9   r    rl   expectedgotemptys   &     r   test_positionalTestPartial.test_positional   sM    9DW,t,Af}H3JCOOHO;;<	 :r#   c                    R FK  pV P                  \        VR7      pR VRR/pV! RR7      w  rET P                  W58H  ;'       d    VR8H  4       KM  	  R# )rS   Nr|   r[   rZ   )rS   r   Ng      @r   r   )r9   rS   rl   r   r   r   s   &     r   test_keywordTestPartial.test_keyword   sQ    $AW*AAc$'HTJEOOHO;;<	 %r#   c                    V P                  \        ^ ^R7      pV! ^^R7      w  r#T P                  VR8H  ;'       d
    VR^R^/8H  4       V! 4       w  rET P                  VR8H  ;'       d    VR^/8H  4       R# )r   r|   r}   rS   rT   Nr   r   r   )r9   rl   args1kw1args2kw2s   &     r   test_no_side_effects TestPartial.test_no_side_effects   sq    LL!qL)qAY
??33qQ-+?@S
88##a.9r#   c                F   R  pV P                  \        V P                  V^^ 4      4       V P                  \        V P                  V^4      ^ 4       V P                  \        V P                  V4      ^^ 4       V P                  \        V P                  V^ R7      ^4       R# )c                     W,           R # r   r   r[   ys   &&r   f-TestPartial.test_error_propagation.<locals>.f   s	    EEr#   )r   N)rt   ZeroDivisionErrorre   r9   r   s   & r   test_error_propagation"TestPartial.test_error_propagation   s    	+T\\!Q-BC+T\\!Q-?C+T\\!_aC+T\\!q\-A1Er#   c                    V P                  \        ^R7      p\        V4      pV P                  VP                  VP                  4       Rp\
        P                  ! 4        V P                  \        \        VR4       R# )   baseNr%   )
re   intr   rh   r%   r   
gc_collectrt   ReferenceErrorgetattrr9   r   rl   s   &  r   test_weakrefTestPartial.test_weakref   sZ    LL2L&!H(.'1f=r#   c                    \        \        \        \        ^
4      4      4      pV P	                  \        P
                  R4      pV P                  V! V4      R4       V P	                  RP
                  4      pV P                  V! V4      R4       R# )rY    
0123456789N)r7   rj   strrangere   joinrh   )r9   datar   s   &  r   #test_with_bound_and_unbound_methods/TestPartial.test_with_bound_and_unbound_methods   se    CU2Y'(||CHHb)d\2||BGG$d\2r#   c                    V P                   pV! \        R 4      pV! VRR7      pV! \        R RR7      pV P                  \        V4      \        V4      4       R# asdfTbarN)re   r)   rh   )r9   re   innernestedflats   &    r   test_nested_optimization$TestPartial.test_nested_optimization   sJ    ,,	6*D)y&d36*IdO<r#   c                   a V P                   o ! V3R  lR4      pV! 4       pVP                  pV! ^^^R7      RR\        ^R7      38X  g   Q hR# )c                   4   <a  ] tR t^t o R tV3R ltRtV tR# )9TestPartial.test_nested_optimization_bug.<locals>.Builderc                
    WV3# r   r   )r9   tagchildrenattribs   &&*,r   __call__BTestPartial.test_nested_optimization_bug.<locals>.Builder.__call__   s    v..r#   c                   < S! W4      # r   r   )r9   r   re   s   &&r   __getattr__ETestPartial.test_nested_optimization_bug.<locals>.Builder.__getattr__   s    t))r#   r   N)r-   r.   r/   r0   r   r   r1   r=   )r?   re   s   @r   Builderr      s     /* *r#   r   r|   mNrp   )re   r   ri   )r9   r   Br   re   s   &   @r   test_nested_optimization_bug(TestPartial.test_nested_optimization_bug   sI    ,,	* 	* ICCA|VTAY7777r#   c                    V P                   pR  pV! VR4      pV! VR4      pRVn        V P                  VP                  R4       R# )c                     V # r   r   r   s   &r   foo;TestPartial.test_nested_partial_with_attribute.<locals>.foo   s    Jr#   firstsecondspamN)re   new_attrrh   )r9   re   r   rl   p2s   &    r   "test_nested_partial_with_attribute.TestPartial.test_nested_partial_with_attribute   sE    ,,	 C!Q!f-r#   c                    V P                   P                  pV3^ V3^ V^WV33 FA  pV P                  \        4      ;_uu_ 4        V P                  ! \
        .VO5!   RRR4       KC  	  R#   + '       g   i     KX  ; i)r   N)modulePlaceholderrt   ru   re   r"   )r9   PHr    s   &  r    test_placeholders_trailing_raise,TestPartial.test_placeholders_trailing_raise   sg    [[$$UQGaQ%;<D""9--W,t, .- =---s   A++A<c                   V P                   P                  pV^ 3pV P                  ! \        .VO5!  pV! R4      w  rEV P	                  VR4       V P	                  V/ 4       V^ V^3pV P                  ! \        .VO5!  pV P                  \        4      ;_uu_ 4        V! R4       RRR4       V! RR4      w  rEV P	                  VR4       V P	                  V/ 4       V P                  \        \        4      pV! 4       w  rEV P	                  \        V4      ^4       V P                  V^ ,          \        4       V P	                  V/ 4       R#   + '       g   i     L; i)r   r[   Nr   )r[   r   )r[   r   r   rQ   )
r   r   re   r"   rh   rt   ru   r
   lenassertIs)r9   r   r    rl   actual_argsactual_kwdss   &     r   test_placeholdersTestPartial.test_placeholders   s!   [[$$AwLL(4(#$S6 h/b)Ar1~LL(4(y))cF *#$S#; &67b) LL),#$3 [)1-k!ni0b) *)s   	EE	c                   V P                   P                  pV P                  \        V^ 4      pV P                  W!^^^4      pV P	                  VP
                  V^ ^^^34       V P                  VR^4      pV! ^4      w  rVV P	                  VR4       V P	                  V/ 4       V P                  \        V^ 4      pV P                  V4      pV P	                  VP
                  V^ 34       V P	                  V! ^4      R/ 34       R# )r   N)r   r   rQ   r_   r`   ra      )rQ   r   )r   r   re   r"   rh   r    )r9   r   rl   r   p3r   r   s   &      r   test_placeholders_optimization*TestPartial.test_placeholders_optimization   s    [[$$LL"a(\\!Aq)2q!Q"23\\"b!$#%a5 &<=b)LL"a(\\!_2q'*A-r#   c                   V P                   P                  pV P                  \        R 4      ;_uu_ 4        V P	                  \
        VR7       RRR4       V P	                  \
        \        R7      pV! 4       w  r4V P                  VR4       V P                  \        V4      ^4       V P                  VR,          \        4       R#   + '       g   i     L; i)r   r|   NrS   r   )
r   r   assertRaisesRegexru   re   r"   r
   rh   r   r   )r9   r   rl   r   r   s   &    r    test_placeholders_kw_restriction,TestPartial.test_placeholders_kw_restriction  s    [[$$##I}==LLBL' > LLIL.#$3 b)[)1-k#&	2 >=s   CC	c                    V P                   P                  p\        V4      pV P                  V! 4       V4       V P	                  \
        V^^4       V P	                  \
        V^^R7       R# )rQ   rR   N)r   r   typer   rt   ru   )r9   r   tps   &  r   $test_construct_placeholder_singleton0TestPartial.test_construct_placeholder_singleton  sU    [[$$"XbdB)RA.)R12r#   c                   \        4       \        4       3pR P                  R V 4       4      pR\        4       R\        4       /pRP                  V4      RP                  V4      .pV P                  P                   RV P                  P
                   2pV P                  \        4      pV P                  V R\        : R2\        V4      4       V P                  ! \        .VO5!  pV P                  V R\        : R V R2\        V4      4       V P                  ! \        3/ VB pT P                  \        V4      V Uu. uF  pV R\        : R V R2NK  	  up4       V P                  ! \        .VO5/ VB pT P                  \        V4      V Uu. uF  pV R\        : R V R V R2NK  	  up4       R	# u upi u upi )
z, c              3   8   "   T F  p\        V4      x  K  	  R # 5ir   )repr).0rS   s   & r   	<genexpr>(TestPartial.test_repr.<locals>.<genexpr>#  s     4t!d1ggts   rS   rT   za={a!r}, b={b!r}zb={b!r}, a={a!r}.()N)
objectr   
format_mapre   r.   r/   r"   rh   r   assertIn)r9   r    	args_reprkwargskwargs_reprsr   r   kwargs_reprs   &       r   	test_reprTestPartial.test_repr!  s   &(#II4t44	vxfh/*55f=*55f=?,,))*!DLL,E,E+FGLL!D67+Q/a9LL(4(D67+R	{!<d1gFLL+F+d1g*68*6; q2k]!<*68	9 LL24262d1g*68*6; q2i[;-qI*68	9	8
8s    F8
F=
c                   V P                   P                   R V P                   P                   2pV P                  \        4      pVP	                  VR/ / 34        V P                  \        V4      V: R24       VP	                  \        R/ / 34       V P                  \        4      pVP	                  \        V3/ / 34        V P                  \        V4      V: R\        : R24       VP	                  \        R/ / 34       V P                  \        4      pVP	                  \        RRV// 34        V P                  \        V4      V: R\        : R24       VP	                  \        R/ / 34       R#   TP	                  \        R/ / 34       i ; i  TP	                  \        R/ / 34       i ; i  TP	                  \        R/ / 34       i ; i)r  z(...)r  z, ...)rS   z, a=...)Nr   )re   r.   r/   r"   __setstate__rh   r   )r9   r   r   s   &  r   test_recursive_reprTestPartial.test_recursive_repr9  sv   ,,))*!DLL,E,E+FGLL!	2r2'	2T!W4&9:NNGRR01LL!	!r2./	2T!WtW&FGNNGRR01LL!	c1Xr23	2T!Ww&HINNGRR01 NNGRR01 NNGRR01 NNGRR01s$   E6 'F 4'F2 6FF/2Gc           	        \        R V P                  4      ;_uu_ 4        V P                  \        R.R.R7      p. Vn        \        \        P                  ^,           4       FQ  p\        P                  ! \        P                  ! W4      4      pV P                  \        V4      \        V4      4       KS  	  RRR4       R#   + '       g   i     R# ; i)r   r   Tr   N)r   r   re   r)   attrr   pickleHIGHEST_PROTOCOLloadsdumpsrh   r9   r   protof_copys   &   r   test_pickleTestPartial.test_pickleQ  s    [$++66Ytf=AAFv66:;fll1&<=  6!2IaLA < 7666s   BC  C	c                   V P                  \        R .R.R7      p. Vn        \        P                  ! V4      pV P	                  \        V4      \        V4      4       V P                  VP                  VP                  4       V P                  VP                  VP                  4       V P                  VP                  VP                  4       R# r   )re   r)   r  copyrh   r   r    r&   r9   r   r  s   &  r   	test_copyTestPartial.test_copyY  s    LLVH4&L916*IaL9fkk166*fkk166*fooqzz2r#   c                p   V P                  \        R .R.R7      p. Vn        \        P                  ! V4      pV P                  \        V4      \        V4      4       V P                  VP                  VP                  4       V P                  VP                  VP                  4       V P                  VP                  ^ ,          VP                  ^ ,          4       V P                  VP                  VP                  4       V P                  VP                  R,          VP                  R,          4       R# )r   Tr   r   N)	re   r)   r  r   deepcopyrh   assertIsNotr    r&   r!  s   &  r   test_deepcopyTestPartial.test_deepcopyb  s    LLVH4&L9q!6*IaL9aff-aff-Q3!**5/E1BCr#   c                \   V P                  \        4      pVP                  \        R\	        ^
R7      \	        . R7      34       V P                  \        V4      \        R\	        ^
R7      \	        . R7      34       V P                  V! ^^R7      RR^
R^/34       VP                  \        R\	        ^
R7      R34       V P                  \        V4      \        R\	        ^
R7      / 34       V P                  V! ^^R7      RR^
R^/34       VP                  \        RRR34       V P                  V! ^^R7      RR^/34       V P                  V! ^4      R/ 34       V P                  V! 4       R/ 34       VP                  \        R/ R34       V P                  \        V4      \        R/ / 34       V P                  V! ^^R7      RR^/34       V P                  V! ^4      R/ 34       V P                  V! 4       R/ 34       V P                  P                  pV P                  \        4      pVP                  \        V^3\	        ^
R7      \	        . R7      34       V P                  \        V4      \        V^3\	        ^
R7      \	        . R7      34       \        P                  ! R4      pV P                  \        RV R	24      ;_uu_ 4       pV! 4        RRR4       V P                  V! ^4      R\	        ^
R7      34       V P                  \        4      p\        P                  ! R
4      pV P                  \        RV R	24      ;_uu_ 4       pVP                  \        ^V3\	        ^
R7      \	        . R7      34       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)rQ   r|   r  r}   rS   rT   NzJmissing positional arguments in 'partial' call; expected at least 1, got 0^$z%trailing Placeholders are not allowedrQ   rp   r   r_   )r_   rQ   )re   r)   r  r"   ri   rh   r   r   reescaper   ru   )r9   r   r   	msg_regexcms   &    r   test_setstateTestPartial.test_setstatem  s   LL#	tbz4R=AB1!4Tr]C	E1fsBR.@%AB	tbz4891tbz2'FG1fsBR.@%AB	tT231fsBi%891|,tRj)	R./1R'<=1dS"I%671bz*r2h' [[$$LL#	"a$*dmDE1"a$*dPRm'TUII ; <	##I9+Q/?@@BC A1r
34 LL#IIEF	##I9+Q/?@@BNNGaWdRj$B-HI A@ A@ A@@s   N0NN	N+	c           	     f   V P                  \        4      pV P                  \        VP                  \
        R/ 34       V P                  \        VP                  \
        R/ / R 34       V P                  \        VP                  \
        R/ R .4       V P                  \        VP                  R R/ R 34       V P                  \        VP                  \
        R / R 34       V P                  \        VP                  \
        . / R 34       V P                  \        VP                  \
        R. R 34       R # Nr   )re   r)   rt   ru   r  r"   r   s   & r   test_setstate_errors TestPartial.test_setstate_errors  s    LL#)Q^^gr25FG)Q^^gr2r45PQ)Q^^gr2t5LM)Q^^dBD5IJ)Q^^gtR5NO)Q^^gr2t5LM)Q^^gr2t5LMr#   c           	        V P                  \        4      pVP                  \        \	        R4      \        ^
R7      R34       \        V4      pV P                  V\        R\        ^
R7      / 34       V P                  \        V^,          4      \        4       V P                  \        V^,          4      \        4       V! 4       pV P                  VRR^
/34       V P                  \        V^ ,          4      \        4       V P                  \        V^,          4      \        4       VP                  \        \        R4      / R34       \        V4      pV P                  V\        R/ / 34       V P                  \        V^,          4      \        4       V! ^4      pV P                  VR/ 34       V P                  \        V^ ,          4      \        4       R# )rQ   r|   NrS   r-  rp   )re   r)   r  r"   r+   rA   rh   ri   r   r   tupler4   )r9   r   srs   &   r   test_setstate_subclasses$TestPartial.test_setstate_subclasses  sO   LL#	dCDaLWdD2J;<d1Q4j%(d1Q4j$'CTC9-.d1Q4j%(d1Q4j$'	$T:;aLWdB34d1Q4j%(aDVRL)d1Q4j%(r#   z-thread sanitizer crashes in __tsan::FuncEntryT)threadc                   \        R V P                  4      ;_uu_ 4        V P                  \        4      pVP	                  VR/ / 34        \        \        P                  ^,           4       Ff  p\        P                  ! ^d4      ;_uu_ 4        V P                  \        4      ;_uu_ 4        \        P                  ! W4       RRR4       RRR4       Kh  	  VP	                  \        R/ / 34       V P                  \        4      pVP	                  \        V3/ / 34        \        \        P                  ^,           4       Fj  p\        P                  ! \        P                  ! W4      4      p V P                  VP                  ^ ,          V4       VP	                  \        R/ / 34       Kl  	  VP	                  \        R/ / 34       V P                  \        4      pVP	                  \        RRV// 34        \        \        P                  ^,           4       Fj  p\        P                  ! \        P                  ! W4      4      p V P                  VP                   R,          V4       VP	                  \        R/ / 34       Kl  	  VP	                  \        R/ / 34        RRR4       R#   + '       g   i     EL; i  + '       g   i     EKc  ; i  TP	                  \        R/ / 34       i ; i  TP	                  \        R/ / 34       i ; i  TP	                  \        R/ / 34       i ; i  TP	                  \        R/ / 34       i ; i  TP	                  \        R/ / 34       i ; i  + '       g   i     R# ; i)r   NrS   r   )r   r   re   r"   r  r   r  r  r   infinite_recursionrt   RecursionErrorr  r  r   r    r&   r  s   &   r   test_recursive_pickle!TestPartial.test_recursive_pickle  s    [$++66W%ANNAr2r?+6"6#:#:Q#>?E 33C88!..~>>"LL2 ? 98 @ R45W%ANNGaT2r236"6#:#:Q#>?E#\\&,,q*@AFCfkk!nf=++Wb"b,AB @ R45W%ANNGR#q2676"6#:#:Q#>?E#\\&,,q*@AFCfooc&:FC++Wb"b,AB @ R45E 76 ?>> 988 R45 ++Wb"b,ABR45 ++Wb"b,ABR45E 766s   +M'AKJ<*J(J<	KAM'AL,#K/L,A	M'6AM	#L+'M	M'(J93	J<<K
KK,,M'/L
	
LL((M'+M	M		M$$M''M8	c                     ! R  R4      pV P                  \        4      pV P                  \        VP                  V! 4       4       R# )c                   ,   a  ] tR tRt o R tR tRtV tR# )7TestPartial.test_setstate_refcount.<locals>.BadSequencei  c                    ^# )ra   r   rK   s   &r   __len__?TestPartial.test_setstate_refcount.<locals>.BadSequence.__len__      r#   c                p    V^ 8X  d   \         # V^8X  d   \        \        R4      4      # VR9   d   / # \        h)r   i@B )r_   r`   )maxr:  r   
IndexError)r9   keys   &&r   __getitem__CTestPartial.test_setstate_refcount.<locals>.BadSequence.__getitem__  s6    !8JAX w00F]I  r#   r   N)r-   r.   r/   r0   rI  rP  r1   r=   r>   s   @r   BadSequencerG    s     ! !r#   rR  N)re   r  rt   ru   r  )r9   rR  r   s   &  r   test_setstate_refcount"TestPartial.test_setstate_refcount  s4    
	! 
	! LL )Q^^[]Cr#   c                .  a   ! V 3R  lR4      pV! 4       pS P                  VP                  ^^R7      RR^R^/34       S P                  VP                  ^^R7      ^V^3R^R^/34       S P                  VP                  ^^R7      RR^R^/34       S P                  VP                  ^^R7      ^V^3R^R^/34       S P                  VP                  ^^R7      ^V^3R^R^/34       S P                  VP                  ^^R7      RR^R^/34       R# )c                      < ] tR tRt Z P	                  ]^^R7      t]!  Z P	                  ]^^R7      4      t]	!  Z P	                  ]^^R7      4      t
RtR# )-TestPartial.test_partial_as_method.<locals>.Ai  r|   r   N)r-   r.   r/   r0   re   r"   methclassmethodcmethstaticmethodsmethr1   rK   s   r   ArW    sI    <<a<0DWa1 =>E gqA!>?Er#   r]  r}   rS   rT   N)rQ   r`   )rh   rX  rZ  r\  r9   r]  rS   s   f  r   test_partial_as_method"TestPartial.test_partial_as_method  s&   	@ 	@
 CQ&332B)CDaAq!9sAsA6F*GHa6CC3C*DEQ1a)c1c15E)FGaAq!9sAsA6F*GHa6CC3C*DEr#   c                    V P                   \        ,          pV P                  VP                  V P                   4       V P	                  VP
                  \        34       V P	                  VP                  R4       R # r6  )re   r   r   
__origin__rh   __args____parameters__)r9   aliass   & r   test_partial_genericalias%TestPartial.test_partial_genericalias  sT    S!e&&5#0--r2r#   r   N)*r-   r.   r/   r0   rm   rq   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r"  r'  r3  r7  r=  r   skip_if_sanitizerskip_emscripten_stack_overflowrC  rS  r_  rf  r1   r=   r>   s   @r   rO   rO   M   s     ?7?	%.2<==:F>3=8
.-*0.	339020B3	D(JTN)( NW[\++-#6 . ]#6LD F3 3r#   rO   z requires the C _functools modulec                   d   a  ] tR tRt o ]'       d   ]t]P                  tR tR tR t	R t
RtV tR# )TestPartialCi  c                |   V P                  \        ^^^
^R7      pV P                  \        \        VR\
        4       V P                  \        \        VRR4       V P                  \        \        VR\        ^^R7      4       V P                  \        4      p V=V P                  R4       R#   \         d     R# i ; i)rQ   rR   r%   r    r&   z-partial object allowed __dict__ to be deletedNrp   )re   r"   rt   AttributeErrorsetattrrj   ri   hexr'   rv   ru   rk   s   & r   test_attributes_unwritable'TestPartialC.test_attributes_unwritable  s    LL!Q"L3.'1fcB.'1ffE.'1j$a.QLL	G
 IIEF  		s   B, ,B;:B;c                .   V P                  \        4      pR VP                  R&   \        V4      pV P	                  RV4       V P	                  RV4       V P                  \        4      ;_uu_ 4        V! 4        RRR4       R#   + '       g   i     R# ; i)value  1234z'value'N)re   r"   r&   r   r	  rt   ru   )r9   rl   r<  s   &  r   'test_manually_adding_non_string_keyword4TestPartialC.test_manually_adding_non_string_keyword  sh    LL!"

4Gfa i#y))C *)))s   1BB	c                   a V P                  \        4      o ! V3R  lR\        4      pR.SP                  V! 4       &   \	        S4      pV P                  RV4       V P                  RV4       R# )c                   .   <a  ] tR tRt o V3R ltRtV tR# )@TestPartialC.test_keystr_replaces_value.<locals>.MutatesYourDicti$  c                (   < R .SP                   V &   R# )sth2astr)r&   rk   s   &r   __str__HTestPartialC.test_keystr_replaces_value.<locals>.MutatesYourDict.__str__%  s    $*8

4 r#   r   N)r-   r.   r/   r0   r~  r1   r=   )r?   rl   s   @r   MutatesYourDictrz  $  s      r#   r  sthr}  z['sth']N)re   r"   r  r&   r   r	  )r9   r  r<  rl   s   &  @r   test_keystr_replaces_value'TestPartialC.test_keystr_replaces_value!  sW    LL!	f 	 */

?$%Gfa i#r#   c                   V P                   P                  p. . r2V P                  \        W4      p\	        ^
4       F  pV! W".4       K  	  / / rvV P                  \
        P                  W4      p\	        ^
4       F  pV! Ww4       K  	  R# rY   N)r   r   re   sumr   collectionsChainMap)	r9   r   lst1start	sum_listsimap1map2
partial_cms	   &        r    test_placeholders_refcount_smoke-TestPartialC.test_placeholders_refcount_smoke0  su    [[$$"eLLb0	rAtl#  d\\+"6"6A
rAt" r#   r   N)r-   r.   r/   r0   c_functoolsr   re   rp  rv  r  r  r1   r=   r>   s   @r   rk  rk    s2     %%G$# #r#   rk  c                   2    ] tR tRt]t]P                  tRtR# )TestPartialPyi>  r   N)r-   r.   r/   r0   py_functoolsr   re   r1   r   r#   r   r  r  >  s    F""Gr#   r  c                       ] tR tRtRtR# )CPartialSubclassiD  r   Nr,   r   r#   r   r  r  D  s    r#   r  c                       ] tR tRtRtR# )PyPartialSubclassiG  r   Nr,   r   r#   r   r  r  G  r2   r#   r  c                   .    ] tR tRt]'       d   ]tRtRtR# )TestPartialCSubclassiJ  Nr   )	r-   r.   r/   r0   r  r  re   r   r1   r   r#   r   r  r  J  s    "  $r#   r  c                   *   a  ] tR tRt o ]tR tRtV tR# )TestPartialPySubclassiR  c                   \         P                  \        ^4      pV P                  V^4      pV P                  VP                  \        4       V P                  V! ^ 4      ^ 4       V P                  \        ^4      pV P                  V^4      pV P                  VP                  \        4       V P                  V! ^ 4      ^ 4       R# r_   N)r  re   minr   r%   rh   )r9   rl   r   s   &  r   test_subclass_optimization0TestPartialPySubclass.test_subclass_optimizationU  s      a(\\!Qbggs#A"LLa \\!Qbggs#A"r#   r   N)	r-   r.   r/   r0   r  re   r  r1   r=   r>   s   @r   r  r  R  s     G
# 
#r#   r  c                      a  ] tR tRt o  ! R R]4      t]! 4       tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tRtV tR# )TestPartialMethodb  c                      ] tR tRt]P
                  ! ]4      t]P
                  ! ]^4      t]P
                  ! ]^R7      t	]P
                  ! ]^^R7      t
]P
                  ! ]^^R7      t]P
                  ! ]^4      t]P
                  ! ]P                  ! ]^R7      ^4      t]P
                  ! ]! ]4      ^4      t]P
                  ! ]! ]4      ^	R7      tRtR# )	TestPartialMethod.Aid  r|   r}   )r9   r%   rU   r~   r   N)r-   r.   r/   r0   r   partialmethodr"   nothing
positionalr&   bothspec_keywordsr   re   over_partialr[  staticrY  clsr1   r   r#   r   r]  r  d  s    ))'2,,Wa8
**7a8&&wQ7!//aaH((Q7 ..y/@/@A/NPQR((g)>B%%k'&:a@r#   r]  c                   V P                  V P                  P                  4       V P                  3/ 34       V P                  V P                  P                  ^4      V P                  ^3/ 34       V P                  V P                  P                  ^R7      V P                  3R^/34       V P                  V P                  P                  ^^R7      V P                  ^3R^/34       V P                  V P                  P                  4       V P                  ^3/ 34       V P                  V P                  P                  ^4      V P                  ^^3/ 34       V P                  V P                  P                  ^R7      V P                  ^3R^/34       V P                  V P                  P                  ^^R7      V P                  ^^3R^/34       V P                  V P                  P	                  4       V P                  3R^/34       V P                  V P                  P	                  ^4      V P                  ^3R^/34       V P                  V P                  P	                  ^R7      V P                  3R^R^/34       V P                  V P                  P	                  ^^R7      V P                  ^3R^R^/34       V P                  V P                  P                  4       V P                  ^3R^/34       V P                  V P                  P                  ^4      V P                  ^^3R^/34       V P                  V P                  P                  ^R7      V P                  ^3R^R^/34       V P                  V P                  P                  ^^R7      V P                  ^^3R^R^/34       V P                  V P                  P                  V P                  ^^R7      V P                  ^^3R^R^/34       V P                  V P                  P                  4       V P                  3R^R^/34       R# )r   r  rU   rS   rT   r9   r%   N)rh   rS   r  r  r&   r  r]  r  rK   s   &r   r   'TestPartialMethod.test_arg_combinationst  sp   )TVVIr?;*dffa[",=>!,y3(.CDQ/4661+Qx1HI**,{B.?@**1-A/CD**Q*/4661+Qx1HI**1*2dffa^c1X4NO*dffYa,AB+tvvqkC8-DE1-	CC;K/LMa0DFFA;aa@P2QR$&&!sAh(?@Q4661a.3()CDq)TVVQK#q#q9I+JKQ!,1~QQ?O.PQTVVQ!41~QPSUVGW6XY--/466)faQR=S1TUr#   c                z   V P                  V P                  P                  4       V P                  ^^3/ 34       V P                  V P                  P                  ^4      V P                  ^^^3/ 34       V P                  V P                  P                  ^R7      V P                  ^^3R^/34       V P                  V P                  P                  ^^R7      V P                  ^^^3R^/34       V P                  V P                  P                  V P                  ^^R7      V P                  ^^^3R^/34       R# )rQ   r  r~   N)rh   rS   r   r]  rK   s   &r   test_nestedTestPartialMethod.test_nested  s   DFFAq>2*>?q)TVVQ1,=r+BC+tvvq!nsAh-GHqA.$&&!Q1BS!H0MNtvvqA6$&&!Q9JSRSH8UVr#   c                   V P                  V P                  P                  4       V P                  ^3R^/34       V P                  V P                  P                  ^4      V P                  ^^3R^/34       V P                  V P                  P                  ^R7      V P                  ^3R^R^/34       V P                  V P                  P                  ^^R7      V P                  ^^3R^R^/34       V P                  V P                  P                  V P                  ^^R7      V P                  ^^3R^R^/34       R# )   rU   r  r~   N)rh   rS   r  r]  rK   s   &r   test_over_partial#TestPartialMethod.test_over_partial  s   ,,.$&&!sAh0GH,,Q/4661a.3(1KL,,q,1TVVQK#q#qAQ3RS,,Q!,41~QPSUVGW6XY,,TVVQ!,<1~PSUVX[]^O_>`ar#   c                   V P                   pV P                  VP                  P                  V4       V P                  VP                  P                  V4       V P                  VP
                  P                  V4       V P                  VP                  P                  V P                  4       V P                  V P                  P                  P                  V P                  4       R # r   )rS   r   r  __self__r   r  r  r]  r9   objs   & r   test_bound_method_introspection1TestPartialMethod.test_bound_method_introspection  s    ffchh''-cjj))3/c&&//5cgg&&/dffjj))4662r#   c                J   V P                   pV P                  VP                  R 4       V P                  VP                  R 4       V P                  VP                  R 4       V P                  VP
                  R 4       V P                  V P                  P
                  R 4       R# )r  N)r]  assertNotHasAttrr  r   r  r  rS   r  s   & r   test_unbound_method_retrieval/TestPartialMethod.test_unbound_method_retrieval  su    ffchh
3cjj*5c..
;cjj*5dffmmZ8r#   c                l   V P                   V P                  3 EF  pV P                  VR 7      ;_uu_ 4        V P                  VP	                  4       R/ 34       V P                  VP	                  ^4      R/ 34       V P                  VP	                  ^R7      RR^/34       V P                  VP	                  ^^R7      RR^/34       V P                  VP                  4       V P                   3R^	/34       V P                  VP                  ^4      V P                   ^3R^	/34       V P                  VP                  ^R7      V P                   3R^R^	/34       V P                  VP                  ^^R7      V P                   ^3R^R^	/34       RRR4       EK  	  R#   + '       g   i     EK  ; i)r  r  r~   r  rU   N)   )r  r   )r]  rS   subTestrh   r  r  r  s   & r   test_descriptors"TestPartialMethod.test_descriptors  si   FFDFF#C#&&  bz:  A=  a4#q2BC  A!3fsAh5GH  dffYa,AB  tvvqkC8-DE  1	CC;K/LM  aDFFA;aa@P2QR '& $&&&s   EF!!F3c                   V P                  V P                  P                  ^R7      V P                  3R^/34       V P                  V P                  P                  V P                  ^R7      V P                  3R^/34       R# )r`   r|   rS   N)rh   rS   r&   r]  rK   s   &r   test_overriding_keywords*TestPartialMethod.test_overriding_keywords  sd    1-	C8/DE15	C87LMr#   c                   V P                  \        4      ;_uu_ 4         ! R  R\        4      pRRR4       V P                  \        4      ;_uu_ 4         ! R R4      pRRR4       V P                  \        4      ;_uu_ 4         ! R R4      pRRR4       R#   + '       g   i     Lr; i  + '       g   i     LU; i  + '       g   i     R# ; i)c                   <    ] tR tRt]P
                  ! R^4      tRtR# ).TestPartialMethod.test_invalid_args.<locals>.Bi  Nr   r-   r.   r/   r0   r   r  methodr1   r   r#   r   r   r    s    "00q9r#   r   Nc                   8    ] tR tRt]P
                  ! 4       tRtR# )r  i  r   Nr  r   r#   r   r   r    s    "002r#   c                   >    ] tR tRt]P
                  ! ]^R7      tRtR# )r  i  )r%   rS   r   N)	r-   r.   r/   r0   r   r  r"   r  r1   r   r#   r   r   r    s    "00gCr#   )rt   ru   r  )r9   r   s   & r   test_invalid_args#TestPartialMethod.test_invalid_args  s    y)):F : * y))3 3 * y))D D *) *) *) *))s#   BB+B>B(	+B;	>C	c                   V P                  \        \        V P                  4      R ,          4      RP	                  \
        4      4       V P                  \        \        V P                  4      R,          4      RP	                  \
        4      4       V P                  \        \        V P                  4      R,          4      RP	                  \
        4      4       V P                  \        \        V P                  4      R,          4      RP	                  \
        4      4       V P                  \        \        V P                  4      R,          4      R	P	                  \
        4      4       R
# )r  zfunctools.partialmethod({})r  zfunctools.partialmethod({}, 1)r&   z functools.partialmethod({}, a=2)r  z+functools.partialmethod({}, self=1, func=2)r  z#functools.partialmethod({}, 3, b=4)N)rh   r   varsr]  formatr"   rK   s   &r   r  TestPartialMethod.test_repr  s    d466l9566==gF	Hd466l<899@@I	Kd466l:67;BB7K	Md466l?;<FMMgV	Xd466l623>EEgN	Pr#   c                    ! R  R\         P                  4      pV P                  VP                  P                  4       V P                  VP
                  P                  4       V P                  P                  V P                  P                  V P                  P                  V P                  P                  V P                  P                  3 F  pV P                  \        VRR4      4       K!  	  R# )c                   j   a  ] tR tRt o ]P
                  R 4       t]P                  ! ]^4      t	Rt
V tR# )1TestPartialMethod.test_abstract.<locals>.Abstracti  c                    R # r   r   r9   r[   r   s   &&&r   add5TestPartialMethod.test_abstract.<locals>.Abstract.add      r#   r   N)r-   r.   r/   r0   abcabstractmethodr  r   r  add5r1   r=   r>   s   @r   Abstractr    s1        **32Dr#   r  __isabstractmethod__FN)r  ABCMetarf   r  r  r  r]  r  r  r  r   r  assertFalser   )r9   r  r%   s   &  r   test_abstractTestPartialMethod.test_abstract  s    	3s{{ 	3 	99:::;VV]]DFFJJ0C0CTVV]]TXTZTZT_T_`DWT+A5IJ ar#   c                x    R  p\         P                  ! V^4      pV P                  V! ^4      V! ^^4      4       R# )c                    W,           # r   r   rR   s   ""r   r   1TestPartialMethod.test_positional_only.<locals>.f  	    5Lr#   N)r   re   rh   r   s   &  r   test_positional_only&TestPartialMethod.test_positional_only  s5    	 a#1qAw'r#   c                    ! R  R\         P                  4      p\         P                  ! \        ^4      pV! V^4      pV P                  VP                  \        4       V P                  VP                  ^ 4      ! 4       ^ 4       V! \        ^4      pV! V^4      pV P                  VP                  \        4       V P                  VP                  ^ 4      ! 4       ^ 4       R# )c                       ] tR tRtRtR# )KTestPartialMethod.test_subclass_optimization.<locals>.PartialMethodSubclassi  r   Nr,   r   r#   r   PartialMethodSubclassr        r#   r  N)r   r  r  r   r%   rh   __get__)r9   r  rl   r   s   &   r   r  ,TestPartialMethod.test_subclass_optimization  s    	I$;$; 	 ##C+"1a(bggs#A!,!#q)"1a(bggs#A!,r#   r   N)r-   r.   r/   r0   r  r]  rS   r   r  r  r  r  r  r  r  r  r  r  r  r1   r=   r>   s   @r   r  r  b  se     AF A 	
AV2Wb39SN	D
PK(- -r#   r  c                   ^  a  ] tR tRt o ]P
                  ]P                  3R ltR tR t	]
P                  ! ]P                  P                  ^8  R4      R 4       tR tR tR	 t]P(                  ]
P                  ! ]P                  P                  ^8  R4      R
 4       4       tR tR tRtV tR# )TestUpdateWrapperi  c                D   V F'  pV P                  \        W4      \        W%4      4       K)  	  V FP  p\        W4      p\        W%4      pV F1  pVR 8X  d
   VR8X  d   K  V P                  Wx,          Wh,          4       K3  	  KR  	  V P                  VP                  V4       R# )r'   __wrapped__N)r   r   r  )	r9   wrapperwrappedassignedupdatedr   wrapper_attrwrapped_attrrO  s	   &&&&&    r   check_wrapperTestUpdateWrapper.check_wrapper  s     DMM''0''2HI  D"71L"71L#:%#*>l/1BC	 $  	g))73r#   c                l    R  ! 4       pRVn         RVn        R R lp\        P                  ! W!4       W!3# )c                      R 5;p3R R lu6# )Tc                    V ^8  d   QhRR/# )r_   rS   This is a new annotationr   )r  s   "r   __annotate__7TestUpdateWrapper._default_update.<locals>.__annotate__  s     	 	- 	r#   c                    R# zThis is a testNr   r|   s   &r   r   ,TestUpdateWrapper._default_update.<locals>.f      r#   r   )	.defaultsr  s     r   <generic parameters of f>DTestUpdateWrapper._default_update.<locals>.<generic parameters of f>  s	    a 	r#   This is also a testzThis is a bald faced liec                    V ^8  d   QhRR/# )r_   rT   zThis is the prior annotationr   )r  s   "r   r
  r    s     	 	4 	r#   c                     R # r   r   r}   s   &r   r  2TestUpdateWrapper._default_update.<locals>.wrapper      r#   )r  r  r   update_wrapperr9   r   r  s   &  r   _default_update!TestUpdateWrapper._default_update  s2    	 '2	  ,zr#   c                   V P                  4       w  rV P                  W4       VP                  w  pV P                  VP                  V4       V P                  VP                  R 4       V P                  VP                  VP                  4       V P                  VP                  R4       V P                  VP                  R,          R4       V P                  RVP                  4       V P                  VP                  V34       R# )r   r  rS   r	  rT   N)r  r  __type_params__r   r  rh   r-   r/   r  __annotations__assertNotIn)r9   r  r   r  s   &   r   test_default_update%TestUpdateWrapper.test_default_update  s    ))+
7&g))1-))3/--q~~>'<=0057QRg556001$7r#   )Docstrings are omitted with -O2 and abovec                b    V P                  4       w  rV P                  VP                  R 4       R# r  r  rh   __doc__r9   r  r   s   &  r   test_default_update_doc)TestUpdateWrapper.test_default_update_doc&  )     ))+
*:;r#   c                   R  pRVn         R p\        P                  ! W!RR4       V P                  W!RR4       V P	                  VP
                  R4       V P                  VP                  VP                  4       V P	                  VP                  R4       V P	                  VP                  / 4       V P                  VR4       R# )c                     R# r  r   r   r#   r   r   +TestUpdateWrapper.test_no_update.<locals>.f-  r  r#   r  c                      R # r   r   r   r#   r   r  1TestUpdateWrapper.test_no_update.<locals>.wrapper1  r  r#   r  Nr  r   )r  r   r  r  rh   r-   assertNotEqualr/   r%  r  r  r  s   &  r   test_no_update TestUpdateWrapper.test_no_update,  s    	 '	  R47r2.))95G00!..A$/00"5gv.r#   c                   R  pRVn         \        ^^^R7      Vn        R p/ Vn        RpRp\        P                  ! W!W44       V P                  W!W44       V P                  VP                  R4       V P                  VP                  VP                  4       V P                  VP                  R4       V P                  VP                   R4       V P                  VP                  VP                  4       R# )c                      R # r   r   r   r#   r   r   2TestUpdateWrapper.test_selective_update.<locals>.f<  r  r#   This is a different testrV   c                      R # r   r   r   r#   r   r  8TestUpdateWrapper.test_selective_update.<locals>.wrapper@  r  r#   r  Nr*  	dict_attr)r  ri   r9  r   r  r  rh   r-   r/  r/   r%  r9   r   r  assignupdates   &    r   test_selective_update'TestUpdateWrapper.test_selective_update;  s    	+Q!q)	  V<7v6))95G00!..A$/'AB**AKK8r#   c                   R  pR p/ Vn         RpRp\        P                  ! W!W44       V P                  RVP                  4       V P                  VP                   / 4       V= V P                  \        4      ;_uu_ 4        \        P                  ! W!W44       RRR4       ^Vn         V P                  \        4      ;_uu_ 4        \        P                  ! W!W44       RRR4       R#   + '       g   i     LV; i  + '       g   i     R# ; i)c                      R # r   r   r   r#   r   r   4TestUpdateWrapper.test_missing_attributes.<locals>.fN  r  r#   c                      R # r   r   r   r#   r   r  :TestUpdateWrapper.test_missing_attributes.<locals>.wrapperP  r  r#   r  Nr*  r8  )r9  r   r  r  r'   rh   rt   rm  r:  s   &    r   test_missing_attributes)TestUpdateWrapper.test_missing_attributesM  s    		  V<!1!12**B/~..$$W@ /~..$$W@ /. /. /..s    C&C9&C6	9D
	c                    R  p\         P                  ! V\        4       V P                  VP                  R4       V P                  VP                  R4       V P                  VP                  / 4       R# )c                      R # r   r   r   r#   r   r  6TestUpdateWrapper.test_builtin_update.<locals>.wrapperf  r  r#   rM  zmax(N)r   r  rM  rh   r-   assertStartsWithr%  r  r9   r  s   & r   test_builtin_update%TestUpdateWrapper.test_builtin_updatea  sW    
	  #.))51goov600"5r#   c                    R  p\         P                  ! V\        4       V P                  VP                  R4       V P                  VP
                  / 4       V P                  VP                  R4       R# )c                      R # r   r   r    s   *r   r  ;TestUpdateWrapper.test_update_type_wrapper.<locals>.wrappern      Dr#   r   Nr   )r   r  r   rh   r-   r  r  rJ  s   & r   test_update_type_wrapper*TestUpdateWrapper.test_update_type_wrapperm  sW       $/))6200"500"5r#   c                8  a R  R lpR p\         P                  ! W!4       V P                  VP                  R\        /4       V P                  VP                  VP                  4       V3R lR lpR p\         P                  ! W#4       V P                  VP                  VP                  4       V P                  \        4      ;_uu_ 4        VP                   RRR4       \        oV P                  VP                  RS/4       R#   + '       g   i     L6; i)c                $    V ^8  d   QhR\         /# r_   r[   r   )r  s   "r   r
  GTestUpdateWrapper.test_update_wrapper_annotations.<locals>.__annotate__v  s    Sr#   c                     R # r   r   rZ   s   &r   r   @TestUpdateWrapper.test_update_wrapper_annotations.<locals>.innerv  s    4r#   c                      R # r   r   rO  s   *r   r  BTestUpdateWrapper.test_update_wrapper_annotations.<locals>.wrapperw  rQ  r#   r[   c                   < V ^8  d   QhRS/# rV  r   )r  	undefineds   "r   r
  rX  }  s    00	0r#   c                     R # r   r   rZ   s   &r   with_forward_refKTestUpdateWrapper.test_update_wrapper_annotations.<locals>.with_forward_ref}  s    Dr#   c                      R # r   r   rO  s   *r   r  r\  ~  rQ  r#   N)
r   r  rh   r  r   r   r
  rt   	NameErrorr   )r9   r   r  r`  r^  s   &   @r   test_update_wrapper_annotations1TestUpdateWrapper.test_update_wrapper_annotationsu  s       0003*=g**E,>,>?00   ;g**,<,I,IJy))## * 	003	2BC	 *)s   D		D	r   N)r-   r.   r/   r0   r   WRAPPER_ASSIGNMENTSWRAPPER_UPDATESr  r  r   unittestskipIfr   flagsoptimizer'  r0  r=  rD  r   requires_docstringsrK  rR  rd  r1   r=   r>   s   @r   r  r    s       )<<'774&	
8 __SYY''1,@B<B</9$A(   __SYY''1,@B6B !66D Dr#   r  c                      a  ] tR tRt o R tR t]P                  ! ]P                  P                  ^8  R4      R 4       tR tR tRtV tR	# )
	TestWrapsi  c                b    R  pRVn         RVn        \        P                  ! V4      R 4       pW!3# )c                     R# r  r   r   r#   r   r   $TestWraps._default_update.<locals>.f  r  r#   r  zThis is still a bald faced liec                      R # r   r   r   r#   r   r  *TestWraps._default_update.<locals>.wrapper  r  r#   )r  r  r   wrapsr  s   &  r   r  TestWraps._default_update  s:    	 '8			 
	zr#   c                   V P                  4       w  rV P                  W4       V P                  VP                  R 4       V P                  VP                  VP                  4       V P                  VP
                  R4       R# )r   r  N)r  r  rh   r-   r/   r  r&  s   &  r   r   TestWraps.test_default_update  se    ))+
7&))3/--q~~>'<=r#   r"  c                b    V P                  4       w  rV P                  VP                  R 4       R# r  r$  )r9   r  _s   &  r   r'  !TestWraps.test_default_update_doc  r)  r#   c                \   R  pRVn         \        P                  ! VRR4      R 4       pV P                  W!RR4       V P	                  VP
                  R4       V P                  VP                  VP                  4       V P	                  VP                  R4       V P                  VR4       R# )c                     R# r  r   r   r#   r   r   #TestWraps.test_no_update.<locals>.f  r  r#   r  c                      R # r   r   r   r#   r   r  )TestWraps.test_no_update.<locals>.wrapper  r  r#   r  Nr  r   )
r  r   rt  r  rh   r-   r/  r/   r%  r  r  s   &  r   r0  TestWraps.test_no_update  s    	 '	B	#	 
$	7r2.))95G00!..A$/gv.r#   c                   R  pRVn         \        ^^^R7      Vn        R pRpRp\        P                  ! WV4      VR 4       4       pV P                  WQW44       V P                  VP                  R4       V P                  VP                  VP                  4       V P                  VP                  R4       V P                  VP                   R4       V P                  VP                  VP                  4       R# )	c                      R # r   r   r   r#   r   r   *TestWraps.test_selective_update.<locals>.f  r  r#   r5  rV   c                     / V n         V # r   r8  )r   s   &r   add_dict_attr6TestWraps.test_selective_update.<locals>.add_dict_attr  s    AKHr#   c                      R # r   r   r   r#   r   r  0TestWraps.test_selective_update.<locals>.wrapper  s     r#   r  Nr*  r8  )r  ri   r9  r   rt  r  rh   r-   r/  r/   r%  )r9   r   r  r;  r<  r  s   &     r   r=  TestWraps.test_selective_update  s    	+Q!q)	 	F	+		 
 
,	7v6))95G00!..A$/'AB**AKK8r#   r   N)r-   r.   r/   r0   r  r   rh  ri  r   rj  rk  r'  r0  r=  r1   r=   r>   s   @r   rn  rn    sQ     	> __SYY''1,@B<B</9 9r#   rn  c                   2   a  ] tR tRt o R tR tR tRtV tR# )
TestReducei  c           	     n    ! R  R4      pR pV P                  V P                  V. ROR4      R4       V P                  V P                  VRR.. RR... 4      . RO4       V P                  V P                  R	 \        ^^4      ^4      R
4       V P                  V P                  R \        ^^4      ^4      R4       V P                  V P                  W!! ^
4      4      R4       V P                  V P                  W!! ^
4      ^ 4      R4       V P                  V P                  W!! ^ 4      ^ 4      ^ 4       V P                  \        V P                  4       V P                  \        V P                  ^*^*4       V P                  \        V P                  ^*^*^*4       V P                  V P                  ^*R4      R4       V P                  V P                  ^*RR4      R4       V P                  \        V P                  ^*R4       V P                  \        V P                  V. 4       V P                  \        V P                  VR4       V P                  \        V P                  VR4       V P                  \        V P                  V\        4       4        ! R R4      pV P                  \        V P                  W#! 4       4       V P                  V P                  V. R4      R4       V P                  V P                  V. ^*4      ^*4        ! R R4      pV P                  \        V P                  ^*V! 4       4       R# )c                   2   a  ] tR tRt o R tR tR tRtV tR# )'TestReduce.test_reduce.<locals>.Squaresi  c                     Wn         . V n        R # r   rM  sofar)r9   rM  s   &&r   __init__0TestReduce.test_reduce.<locals>.Squares.__init__  s    
r#   c                ,    \        V P                  4      # r   )r   r  rK   s   &r   rI  /TestReduce.test_reduce.<locals>.Squares.__len__  s    4::&r#   c                   ^ Tu;8:  d   V P                   8  g   \        h \        h\        V P                  4      pW!8:  d-   V P                  P	                  W",          4       V^,          pK2  V P                  V,          # r   )rM  rN  r   r  append)r9   r  ns   && r   rP  3TestReduce.test_reduce.<locals>.Squares.__getitem__  s]    A((
*:(
*:

OfJJ%%ac*FAzz!}$r#   r  N)	r-   r.   r/   r0   r  rI  rP  r1   r=   r>   s   @r   Squaresr    s      '% %r#   r  c                     W,           # r   r   r   s   &&r   r  #TestReduce.test_reduce.<locals>.add  r  r#   rS   rU   r   r  r~   wc                     W,          # r   r   r   s   &&r   r\   (TestReduce.test_reduce.<locals>.<lambda>  s    !#r#   i  c                     W,          # r   r   r   s   &&r   r\   r        QSr#   l     h i  1c                   &   a  ] tR tRt o R tRtV tR# )/TestReduce.test_reduce.<locals>.TestFailingIteri  c                    \         hr   RuntimeErrorrK   s   &r   __iter__8TestReduce.test_reduce.<locals>.TestFailingIter.__iter__  s    ""r#   r   N)r-   r.   r/   r0   r  r1   r=   r>   s   @r   TestFailingIterr    s     # #r#   r  Nc                   &   a  ] tR tRt o R tRtV tR# )&TestReduce.test_reduce.<locals>.BadSeqi  c                    \         hr   )
ValueError)r9   indexs   &&r   rP  2TestReduce.test_reduce.<locals>.BadSeq.__getitem__  s      r#   r   N)r-   r.   r/   r0   rP  r1   r=   r>   s   @r   BadSeqr    s     ! !r#   r  rV   )rS   rU   r~   r  )*   r  r   )rh   reducer   rt   ru   r  r  r  )r9   r  r  r  r  s   &    r   test_reduceTestReduce.test_reduce  s   	% 	%	S/2>FKKsCj"sCj92>	
 	%5uQqz1EtLKK(%"+q9	
 	S'"+6<S'"+q93?S'!*a8!<)T[[1)T[["b9)T[["b"=R-s3RS137)T[["h?)T[[#r:)T[[#r:)T[[#r:)T[[#vx@	# 	# 	,S/:KLS"d3T:S"b126	! 	! 	*dkk2vx@r#   c                    ! R  R4      p^ RI Hp V P                  V P                  W!! ^4      4      ^
4       V P                  V P                  W!! ^4      ^*4      ^44       V P	                  \
        V P                  W!! ^ 4      4       V P                  V P                  W!! ^ 4      ^*4      ^*4       V P                  V P                  W!! ^4      4      ^ 4       V P                  V P                  W!! ^4      ^*4      ^*4       R^R^R^/pV P                  V P                  W#4      RP                  VP                  4       4      4       R# )c                   ,   a  ] tR tRt o R tR tRtV tR# )5TestReduce.test_iterator_usage.<locals>.SequenceClassi  c                    Wn         R # r   r  )r9   r  s   &&r   r  >TestReduce.test_iterator_usage.<locals>.SequenceClass.__init__      r#   c                T    ^ Tu;8:  d   V P                   8  d    V#  \        h\        hr   )r  rN  )r9   r  s   &&r   rP  ATestReduce.test_iterator_usage.<locals>.SequenceClass.__getitem__  s(    ?DFF?H # %$*$r#   r  N)r-   r.   r/   r0   r  rP  r1   r=   r>   s   @r   SequenceClassr    s     % %r#   r  )r  onetwothreer   N)operatorr  rh   r  rt   ru   r   keys)r9   r  r  r~   s   &   r   test_iterator_usageTestReduce.test_iterator_usage  s   	% 	% 	!S-*:;R@S-*:B?D)T[[#}Q7GHS-*:B?DS-*:;Q?S-*:B?DAua!,S,bggaffh.?@r#   c           
        R  pV P                  V P                  V. ROR4      V P                  V. RORR7      4       V P                  V P                  VRR.. RR... 4      V P                  VRR.. RR... R7      4       V P                  V P                  R \        ^^4      ^4      V P                  R \        ^^4      ^R7      4       V P                  V P                  R	 \        ^^4      ^4      V P                  R
 \        ^^4      ^R7      4       V P                  \        V P                  V^ ^.RR7       V P                  V P                  ^*RRR7      R4       R# )c                     W,           # r   r   r   s   &&r   r  ,TestReduce.test_initial_keyword.<locals>.add  r  r#   rS   rU   r   )initialr~   r  c                     W,          # r   r   r   s   &&r   r\   1TestReduce.test_initial_keyword.<locals>.<lambda>#  r  r#   c                     W,          # r   r   r   s   &&r   r\   r  $  r  r#   c                     W,          # r   r   r   s   &&r   r\   r  '  r  r#   c                     W,          # r   r   r   s   &&r   r\   r  (  r  r#   r  NrV   )rh   r  r   rt   ru   )r9   r  s   & r   test_initial_keywordTestReduce.test_initial_keyword  sI   	KK_b1KK_bK9	
 	KKsCj"sCj92>KKsCj"sCj92KF	
 	KK(%!*a8KK(%!*aK@	
 	KK(%"+q9KK(%"+qKA	
 	)T[[#1vrJRS93?r#   r   N)	r-   r.   r/   r0   r  r  r  r1   r=   r>   s   @r   r  r    s     5ApA,@ @r#   r  c                   F    ] tR tRt]'       d   ]P
                  tRtR# RtR# )TestReduceCi.  r   N)r-   r.   r/   r0   r  r  r1   r   r#   r   r  r  .  s    ## r#   r  c                   J   a  ] tR tRt o ]! ]P                  4      tR tRtV t	R# )TestReducePyi4  c                H   V P                  \        4      ;_uu_ 4        V P                  R  . RO^R7       RRR4       V P                  \        4      ;_uu_ 4        V P                  R . RO^R7       RRR4       R#   + '       g   i     LO; i  + '       g   i     R# ; i)c                     W,           # r   r   r   s   &&r   r\   6TestReducePy.test_reduce_with_kwargs.<locals>.<lambda>9  s    aer#   )functionsequencer  Nc                     W,           # r   r   r   s   &&r   r\   r  ;  s    QUr#   )r  r  )rQ   r_   r`   ra   r   )assertWarnsDeprecationWarningr  rK   s   &r   test_reduce_with_kwargs$TestReducePy.test_reduce_with_kwargs7  sm    011KK!3oWXKY 2011KK*_aKP 21 21111s   A=B=B	B!	r   N)
r-   r.   r/   r0   r[  r  r  r  r1   r=   r>   s   @r   r  r  4  s!     ,--.FQ Qr#   r  c                      a  ] tR tRt o R tR tR tR tR tR t	R t
]P                  ! ]P                  R	4      R
 4       tRtV tR# )TestCmpToKeyi>  c                   R  pV P                  V4      pV P                  V! ^4      V! ^4      4       V P                  V! ^4      V! ^4      4       V P                  V! ^4      V! ^4      4       R pV P                  V4      pV P                  V! R4      V! R4      4       V P	                  V! ^4      V! R4      4       V P                  V! ^4      V! R4      4       V P                  V! ^4      V! R4      4       R# )c                     W8  W8  ,
          # r   r   r   s   &&r   cmp1*TestCmpToKey.test_cmp_to_key.<locals>.cmp1A      Eae$$r#   c                 8    \        V 4      \        V4      ,
          # r   rW  r   s   &&r   cmp2*TestCmpToKey.test_cmp_to_key.<locals>.cmp2H  s    q6CF?"r#   g      @435N)
cmp_to_keyrh   assertGreaterassertGreaterEqual
assertLessassertLessEqualr/  )r9   r  rO  r  s   &   r   test_cmp_to_keyTestCmpToKey.test_cmp_to_key@  s    	%ood#QQ(3q63q6*AA/	#ood#S3s8,AD	*SVSY/CFCI.r#   c                ,   R  pV P                  VR7      pV P                  V! ^R7      V! ^R7      4       V P                  V! ^R7      V! ^R7      4       V P                  \        \
        34      ;_uu_ 4        V! ^4      ^8   RRR4       V P                  \        \
        34      ;_uu_ 4        ^V! ^4      8   RRR4       V P                  \        4      ;_uu_ 4        V P                  4       pRRR4       V P                  \        4      ;_uu_ 4        V P                  VR4      pRRR4       V P                  V4      pV P                  \        4      ;_uu_ 4        V! 4        RRR4       V P                  \        4      ;_uu_ 4        V! RR4       RRR4       R#   + '       g   i     EL%; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)c                     W8  W8  ,
          # r   r   r   s   &&r   r  4TestCmpToKey.test_cmp_to_key_arguments.<locals>.cmp1Q  r  r#   mycmpr  N)r  rh   r  rt   ru   rm  r9   r  rO  s   &  r   test_cmp_to_key_arguments&TestCmpToKey.test_cmp_to_key_argumentsP  s]   	%ooDo)SQZ031:sqz2	>:;;FQJ <	>:;;AJ <y))//#C *y))//$-C *ood#y))E *y))dO *) <;;;;;)))) *))))sH   9F!0F5!G	G G/
H!F2	5G		G	G,	/G?	H	c                z  a R  pV P                  V4      pV P                  \        4      ;_uu_ 4        V! ^4      V! ^4      8   RRR4        ! R R4      oV3R lpV P                  \        4      ;_uu_ 4        V! ^4      V! ^4      8   RRR4       R#   + '       g   i     LY; i  + '       g   i     R# ; i)c                     \         hr   r   r   s   &&r   r  'TestCmpToKey.test_bad_cmp.<locals>.cmp1e  s    ##r#   Nc                   &   a  ] tR tRt o R tRtV tR# ))TestCmpToKey.test_bad_cmp.<locals>.BadCmpik  c                    \         hr   r  r8   s   &&r   __lt__0TestCmpToKey.test_bad_cmp.<locals>.BadCmp.__lt__l  s    ''r#   r   N)r-   r.   r/   r0   r  r1   r=   r>   s   @r   BadCmpr   k  s     ( (r#   r  c                    < S! 4       # r   r   )r[   r   r  s   &&r   r  r  n  s
    8Or#   )r  rt   r   )r9   r  rO  r  s   &  @r   test_bad_cmpTestCmpToKey.test_bad_cmpd  s    	$ood#011FSVO 2	( 	(	011FSVO 21 21 211s   B:B)B&	)B:	c                t    R  pV P                  VR7      pV P                  V! ^24      P                  ^24       R# )c                     W8  W8  ,
          # r   r   r   s   &&r   r  )TestCmpToKey.test_obj_field.<locals>.cmp1t  r  r#   r  N)r  rh   r  r  s   &  r   test_obj_fieldTestCmpToKey.test_obj_fields  s/    	%ooDo)Rb)r#   c                z    R  pV P                  \        \        ^4      V P                  V4      R7      . RO4       R# )c                     W,
          # r   r   r   s   &&r   r  )TestCmpToKey.test_sort_int.<locals>.mycmpz  r  r#   rO  N)ra   r`   r_   rQ   r   )rh   sortedr   r  )r9   r  s   & r   test_sort_intTestCmpToKey.test_sort_inty  s.    	adooe.DE(	*r#   c                    R  p. ROp\        W P                  V4      R7      pT P                  V Uu. uF  p\        V4      NK  	  up. RO4       R# u upi )c                 F    \        V 4      \        V4      rW8  W8  ,
          # r   rW  r   s   &&r   r  -TestCmpToKey.test_sort_int_str.<locals>.mycmp  s     q63q6qEae$$r#   r  N)	r   3r  r_   0r  ra   10rQ   )	r   rQ   rQ   r_   r`   ra   r   r  rY   )r  r  rh   r   )r9   r  valuesrs  s   &   r   test_sort_int_strTestCmpToKey.test_sort_int_str  sJ    	% 6OOE$:;&9&#e*&95	79s   Ac                    R  pV P                  V4      pV! ^
4      pV P                  \        \        V4       V P	                  V\
        P                  P                  4       R# )c                     W,
          # r   r   r   s   &&r   r  %TestCmpToKey.test_hash.<locals>.mycmp  r  r#   N)r  rt   ru   hashassertNotIsInstancer  r  Hashable)r9   r  rO  ks   &   r   	test_hashTestCmpToKey.test_hash  sJ    	ooe$G)T1-  KOO$<$<=r#   z6Signature information for builtins requires docstringsc                   \         P                  ! V P                  4      pV P                  \	        V4      R 4       R p\         P                  ! V P                  V4      4      pV P                  \	        V4      R4       R# )z(mycmp)c                     W,
          # r   r   r   s   &&r   r  1TestCmpToKey.test_cmp_to_signature.<locals>.mycmp  r  r#   z(obj)N)r	   from_callabler  rh   r   )r9   sigr  s   &  r   test_cmp_to_signature"TestCmpToKey.test_cmp_to_signature  s^     %%doo6S9-	%%dooe&<=S7+r#   r   N)r-   r.   r/   r0   r  r  r  r  r  r  r$  rh  ri  r   MISSING_C_DOCSTRINGSr+  r1   r=   r>   s   @r   r  r  >  sR     / (**7> __W11MO,O,r#   r  c                   l   a  ] tR tRt o ]'       d   ]P
                  t]P                  R 4       tRt	V t
R# )TestCmpToKeyCi  c                l    \         P                  ! V \        \        P	                  R 4      4      4       R # r   )r   check_disallow_instantiationr   r  r  rK   s   &r   test_disallow_instantiation)TestCmpToKeyC.test_disallow_instantiation  s'     	,,${--d34	
r#   r   N)r-   r.   r/   r0   r  r  r   r   r2  r1   r=   r>   s   @r   r/  r/    s+      ++

 
r#   r/  c                   :    ] tR tRt]! ]P                  4      tRtR# )TestCmpToKeyPyi  r   N)r-   r.   r/   r0   r[  r  r  r1   r   r#   r   r5  r5    s    l556Jr#   r5  c                   \   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tRtV tR# )TestTotalOrderingi  c                    \         P                   ! R  R4      4       pV P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8*  4       V P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8*  4       V P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8  4       R# )c                   2   a  ] tR tRt o R tR tR tRtV tR# )3TestTotalOrdering.test_total_ordering_lt.<locals>.Ai  c                    Wn         R # r   rs  r9   rs  s   &&r   r  <TestTotalOrdering.test_total_ordering_lt.<locals>.A.__init__      "
r#   c                4    V P                   VP                   8  # r   r<  r8   s   &&r   r  :TestTotalOrdering.test_total_ordering_lt.<locals>.A.__lt__      zzEKK//r#   c                4    V P                   VP                   8H  # r   r<  r8   s   &&r   __eq__:TestTotalOrdering.test_total_ordering_lt.<locals>.A.__eq__      zzU[[00r#   r<  N	r-   r.   r/   r0   r  r  rD  r1   r=   r>   s   @r   r]  r:         #01 1r#   r]  Nr   total_orderingrf   r  r9   r]  s   & r   test_total_ordering_lt(TestTotalOrdering.test_total_ordering_lt      		!	!	1 	1 
"	1 	!qt$!qt$!!%!!%!!%!!%1!%r#   c                    \         P                   ! R  R4      4       pV P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8*  4       V P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8*  4       V P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8  4       R# )c                   2   a  ] tR tRt o R tR tR tRtV tR# )3TestTotalOrdering.test_total_ordering_le.<locals>.Ai  c                    Wn         R # r   r<  r=  s   &&r   r  <TestTotalOrdering.test_total_ordering_le.<locals>.A.__init__  r?  r#   c                4    V P                   VP                   8*  # r   r<  r8   s   &&r   __le__:TestTotalOrdering.test_total_ordering_le.<locals>.A.__le__  rF  r#   c                4    V P                   VP                   8H  # r   r<  r8   s   &&r   rD  :TestTotalOrdering.test_total_ordering_le.<locals>.A.__eq__  rF  r#   r<  N)	r-   r.   r/   r0   r  rU  rD  r1   r=   r>   s   @r   r]  rQ         #11 1r#   r]  NrI  rK  s   & r   test_total_ordering_le(TestTotalOrdering.test_total_ordering_le      		!	!	1 	1 
"	1 	!qt$!qt$!!%!!%!!%!!%11&r#   c                    \         P                   ! R  R4      4       pV P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8*  4       V P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8*  4       V P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8  4       R# )c                   2   a  ] tR tRt o R tR tR tRtV tR# )3TestTotalOrdering.test_total_ordering_gt.<locals>.Art  c                    Wn         R # r   r<  r=  s   &&r   r  <TestTotalOrdering.test_total_ordering_gt.<locals>.A.__init__  r?  r#   c                4    V P                   VP                   8  # r   r<  r8   s   &&r   __gt__:TestTotalOrdering.test_total_ordering_gt.<locals>.A.__gt__  rB  r#   c                4    V P                   VP                   8H  # r   r<  r8   s   &&r   rD  :TestTotalOrdering.test_total_ordering_gt.<locals>.A.__eq__  rF  r#   r<  N)	r-   r.   r/   r0   r  rc  rD  r1   r=   r>   s   @r   r]  r_    rH  r#   r]  NrI  rK  s   & r   test_total_ordering_gt(TestTotalOrdering.test_total_ordering_gt  rN  r#   c                    \         P                   ! R  R4      4       pV P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8*  4       V P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8*  4       V P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8*  4       R# )c                   2   a  ] tR tRt o R tR tR tRtV tR# )3TestTotalOrdering.test_total_ordering_ge.<locals>.Ai  c                    Wn         R # r   r<  r=  s   &&r   r  <TestTotalOrdering.test_total_ordering_ge.<locals>.A.__init__  r?  r#   c                4    V P                   VP                   8  # r   r<  r8   s   &&r   __ge__:TestTotalOrdering.test_total_ordering_ge.<locals>.A.__ge__  rF  r#   c                4    V P                   VP                   8H  # r   r<  r8   s   &&r   rD  :TestTotalOrdering.test_total_ordering_ge.<locals>.A.__eq__  rF  r#   r<  N)	r-   r.   r/   r0   r  ro  rD  r1   r=   r>   s   @r   r]  rk    rY  r#   r]  NrI  rK  s   & r   test_total_ordering_ge(TestTotalOrdering.test_total_ordering_ge  r\  r#   c                   \         P                   ! R  R\        4      4       pV P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8*  4       V P                  V! ^4      V! ^4      8  4       V P                  V! ^4      V! ^4      8*  4       V P                  V! ^4      V! ^4      8  4       R# )c                       ] tR tRtRtR# )=TestTotalOrdering.test_total_ordering_no_overwrite.<locals>.Ai  r   Nr,   r   r#   r   r]  rw        r#   r]  N)r   rJ  r   rf   rK  s   & r    test_total_ordering_no_overwrite2TestTotalOrdering.test_total_ordering_no_overwrite  s    		!	!	 	 
"	!qt$!qt$!!%!!%!!%!!%r#   c                    V P                  \        4      ;_uu_ 4        \        P                   ! R  R4      4       pRRR4       R#   + '       g   i     R# ; i)c                       ] tR tRtRtR# )7TestTotalOrdering.test_no_operations_defined.<locals>.Ai  r   Nr,   r   r#   r   r]  r}    s    r#   r]  N)rt   r  r   rJ  rK  s   & r   test_no_operations_defined,TestTotalOrdering.test_no_operations_defined  s?    z**%%  & +***s   AA	c                  aaaa \         P                   ! V3R  lR4      4       o\         P                   ! V3R lR4      4       o\         P                   ! V3R lR4      4       o\         P                   ! V3R lR4      4       oV P                  S! ^4      P                  ^4      \        4       V P                  S! ^4      P                  ^4      \        4       V P                  S! ^4      P                  ^4      \        4       V P                  S! ^4      P                  ^4      \        4       V P                  S! ^4      P                  ^4      \        4       V P                  S! ^4      P                  ^4      \        4       V P                  S! ^4      P                  ^4      \        4       V P                  S! ^4      P                  ^4      \        4       V P                  S! ^4      P                  ^4      \        4       V P                  S! ^4      P                  ^4      \        4       V P                  S! ^4      P                  ^4      \        4       V P                  S! ^4      P                  ^4      \        4       R# )	c                   @   <a  ] tR tRt o R tV3R ltV3R ltRtV tR# )ATestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThani  c                    Wn         R # r   r<  r=  s   &&r   r  JTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThan.__init__	  r?  r#   c                ^   < \        VS4      '       d   V P                  VP                  8H  # R # F
isinstancers  r9   r:   ImplementsLessThans   &&r   rD  HTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThan.__eq__  '    e%788::44r#   c                f   < \        VS4      '       d   V P                  VP                  8  # \        # r   r  rs  NotImplementedr  s   &&r   r  HTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThan.__lt__  *    e%788::33%%r#   r<  N	r-   r.   r/   r0   r  rD  r  r1   r=   r?   r  s   @r   r  r         #& &r#   r  c                   @   <a  ] tR tRt o R tV3R ltV3R ltRtV tR# )HTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThanEqualToi  c                    Wn         R # r   r<  r=  s   &&r   r  QTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThanEqualTo.__init__  r?  r#   c                ^   < \        VS4      '       d   V P                  VP                  8H  # R # r  r  r9   r:   ImplementsLessThanEqualTos   &&r   rD  OTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThanEqualTo.__eq__  '    e%>??::44r#   c                f   < \        VS4      '       d   V P                  VP                  8*  # \        # r   r  r  s   &&r   rU  OTestTotalOrdering.test_notimplemented.<locals>.ImplementsLessThanEqualTo.__le__  *    e%>??::44%%r#   r<  N	r-   r.   r/   r0   r  rD  rU  r1   r=   r?   r  s   @r   r  r    r  r#   r  c                   @   <a  ] tR tRt o R tV3R ltV3R ltRtV tR# )DTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThani!  c                    Wn         R # r   r<  r=  s   &&r   r  MTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThan.__init__#  r?  r#   c                ^   < \        VS4      '       d   V P                  VP                  8H  # R # r  r  r9   r:   ImplementsGreaterThans   &&r   rD  KTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThan.__eq__%  '    e%:;;::44r#   c                f   < \        VS4      '       d   V P                  VP                  8  # \        # r   r  r  s   &&r   rc  KTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThan.__gt__)  *    e%:;;::33%%r#   r<  N	r-   r.   r/   r0   r  rD  rc  r1   r=   r?   r  s   @r   r  r  !  r  r#   r  c                   @   <a  ] tR tRt o R tV3R ltV3R ltRtV tR# )KTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThanEqualToi.  c                    Wn         R # r   r<  r=  s   &&r   r  TTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThanEqualTo.__init__0  r?  r#   c                ^   < \        VS4      '       d   V P                  VP                  8H  # R # r  r  r9   r:   ImplementsGreaterThanEqualTos   &&r   rD  RTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThanEqualTo.__eq__2  '    e%ABB::44r#   c                f   < \        VS4      '       d   V P                  VP                  8  # \        # r   r  r  s   &&r   ro  RTestTotalOrdering.test_notimplemented.<locals>.ImplementsGreaterThanEqualTo.__ge__6  *    e%ABB::44%%r#   r<  N	r-   r.   r/   r0   r  rD  ro  r1   r=   r?   r  s   @r   r  r  .  r  r#   r  N)r   rJ  r   rU  r  rc  ro  r  )r9   r  r  r  r  s   &@@@@r   test_notimplemented%TestTotalOrdering.test_notimplemented  s   		!	!
	& 
	& 
"
	& 
	!	!
	& 
	& 
"
	& 
	!	!
	& 
	& 
"
	& 
	!	!
	& 
	& 
"
	& 	(+2215~F(+2215~F(+2215~F/299!<nM/299!<nM/299!<nM+A.55a8.I+A.55a8.I+A.55a8.I215<<Q?P215<<Q?P215<<Q?Pr#   c           	       aaaaa \         P                   ! V3R  lR4      4       o\         P                   ! V3R lR4      4       o\         P                   ! V3R lR4      4       o\         P                   ! V3R lR4      4       o\         P                   ! V3R lR	4      4       oV P                  R
4      ;_uu_ 4        V P                  \        4      ;_uu_ 4        S! R4      ^8   RRR4       RRR4       V P                  R4      ;_uu_ 4        V P                  \        4      ;_uu_ 4        S! ^ 4      S! ^ 4      8   RRR4       RRR4       V P                  R4      ;_uu_ 4        V P                  \        4      ;_uu_ 4        S! ^4      S! ^4      8   RRR4       RRR4       V P                  R4      ;_uu_ 4        V P                  \        4      ;_uu_ 4        S! ^4      S! ^4      8*   RRR4       RRR4       V P                  R4      ;_uu_ 4        V P                  \        4      ;_uu_ 4        S! ^4      S! ^4      8*   RRR4       RRR4       V P                  R4      ;_uu_ 4        V P                  \        4      ;_uu_ 4        S! ^4      S! ^4      8   RRR4       RRR4       V P                  R4      ;_uu_ 4        V P                  \        4      ;_uu_ 4        S! ^4      S! ^4      8   RRR4       RRR4       V P                  R4      ;_uu_ 4        V P                  \        4      ;_uu_ 4        S! ^4      S! ^4      8   RRR4       RRR4       V P                  R4      ;_uu_ 4        V P                  \        4      ;_uu_ 4        S! ^4      S! ^4      8   RRR4       RRR4       V P                  R4      ;_uu_ 4        S! ^4      pS! ^4      pV P                  W4       V P                  \        4      ;_uu_ 4        W8   RRR4       RRR4       V P                  R4      ;_uu_ 4        S! ^	4      pS! ^	4      pV P                  W4       V P                  \        4      ;_uu_ 4        W8*   RRR4       RRR4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL[; i  + '       g   i     ELg; i  + '       g   i     EL*; i  + '       g   i     EL6; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELf; i  + '       g   i     ELr; i  + '       g   i     EL5; i  + '       g   i     ELA; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     R# ; i)c                   @   <a  ] tR tRt o R tV3R ltV3R ltRtV tR# )RTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThaniK  c                    Wn         R # r   r<  r=  s   &&r   r  [TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThan.__init__M  r?  r#   c                ^   < \        VS4      '       d   V P                  VP                  8H  # R # r  r  r  s   &&r   rD  YTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThan.__eq__O  r  r#   c                f   < \        VS4      '       d   V P                  VP                  8  # \        # r   r  r  s   &&r   r  YTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThan.__lt__S  r  r#   r<  Nr  r  s   @r   r  r  K  r  r#   r  c                   @   <a  ] tR tRt o R tV3R ltV3R ltRtV tR# )UTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThaniX  c                    Wn         R # r   r<  r=  s   &&r   r  ^TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThan.__init__Z  r?  r#   c                ^   < \        VS4      '       d   V P                  VP                  8H  # R # r  r  r  s   &&r   rD  \TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThan.__eq__\  r  r#   c                f   < \        VS4      '       d   V P                  VP                  8  # \        # r   r  r  s   &&r   rc  \TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThan.__gt__`  r  r#   r<  Nr  r  s   @r   r  r  X  r  r#   r  c                   @   <a  ] tR tRt o R tV3R ltV3R ltRtV tR# )YTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanEqualToie  c                    Wn         R # r   r<  r=  s   &&r   r  bTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanEqualTo.__init__g  r?  r#   c                ^   < \        VS4      '       d   V P                  VP                  8H  # R # r  r  r  s   &&r   rD  `TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanEqualTo.__eq__i  r  r#   c                f   < \        VS4      '       d   V P                  VP                  8*  # \        # r   r  r  s   &&r   rU  `TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsLessThanEqualTo.__le__m  r  r#   r<  Nr  r  s   @r   r  r  e  r  r#   r  c                   @   <a  ] tR tRt o R tV3R ltV3R ltRtV tR# )\TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanEqualToir  c                    Wn         R # r   r<  r=  s   &&r   r  eTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanEqualTo.__init__t  r?  r#   c                ^   < \        VS4      '       d   V P                  VP                  8H  # R # r  r  r  s   &&r   rD  cTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanEqualTo.__eq__v  r  r#   c                f   < \        VS4      '       d   V P                  VP                  8  # \        # r   r  r  s   &&r   ro  cTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ImplementsGreaterThanEqualTo.__ge__z  r  r#   r<  Nr  r  s   @r   r  r  r  r  r#   r  c                   :   <a  ] tR tRt o R tV3R ltR tRtV tR# )XTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ComparatorNotImplementedi  c                    Wn         R # r   r<  r=  s   &&r   r  aTestTotalOrdering.test_type_error_when_not_implemented.<locals>.ComparatorNotImplemented.__init__  r?  r#   c                ^   < \        VS4      '       d   V P                  VP                  8H  # R # r  r  )r9   r:   ComparatorNotImplementeds   &&r   rD  _TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ComparatorNotImplemented.__eq__  s'    e%=>>::44r#   c                    \         # r   )r  r8   s   &&r   r  _TestTotalOrdering.test_type_error_when_not_implemented.<locals>.ComparatorNotImplemented.__lt__  s    %%r#   r<  Nr  )r?   r  s   @r   r  r    s     #& &r#   r  zLT < 1NzLT < LEzLT < GTzLE <= LTzLE <= GEzGT > GEzGT > LTzGE >= GTzGE >= LEzGE when equalzLE when equalr   )r   rJ  r  rt   ru   rh   )r9   rS   rT   r  r  r  r  r  s   &  @@@@@r   $test_type_error_when_not_implemented6TestTotalOrdering.test_type_error_when_not_implementedH  sf    
	!	!
	& 
	& 
"
	& 
	!	!
	& 
	& 
"
	& 
	!	!
	& 
	& 
"
	& 
	!	!
	& 
	& 
"
	& 
	!	!	& 	& 
"	& \\(##T%6%6y%A%Ar"Q& &B# \\)$$d&7&7	&B&Bq!$=a$@@ 'C$ \\)$$d&7&7	&B&Bq!$9!$<< 'C$ \\*%%t'8'8'C'C%a(,>q,AA (D% \\*%%t'8'8'C'C%a(,H,KK (D% \\)$$d&7&7	&B&B!!$'CA'FF 'C$ \\)$$d&7&7	&B&B!!$'9!'<< 'C$ \\*%%t'8'8'C'C(+/DQ/GG (D% \\*%%t'8'8'C'C(+/H/KK (D% \\/**(+A(+AQ"""9-- .	 + \\/**(+A(+AQ"""9-- .	 +*E &B%A%A### 'C&B&B$$$ 'C&B&B$$$ (D'C'C%%% (D'C'C%%% 'C&B&B$$$ 'C&B&B$$$ (D'C'C%%% (D'C'C%%% .--	 +** .--	 +**s  ?R1R	)R1S0S	S+T	S-	TT)"T	4T)U;T=	U6U9U%	&U9V!-V	?V!(W	V5	W	W1W	1W1?XX	X?YX-	YR.(	R11S	S	SS*	-S>8	TT	T& 	T))T:	=U	UU"	%U60	U99V
	V	V!!V2	5W 	W		W	W.(	W11X	X	XX*	-X>8	YY	c           
     j   \        \        P                  ^,           4       Fz  pR Fq  pV P                  W!R7      ;_uu_ 4        \	        \
        V4      p\        P                  ! \        P                  ! W14      4      pV P                  WC4       RRR4       Ks  	  K|  	  R#   + '       g   i     K  ; i)rQ   )r  r  N)r  rc  rU  ro  )	r   r  r  r  r   Orderable_LTr  r  r   )r9   r  r   r  method_copys   &    r   r  TestTotalOrdering.test_pickle  sx    622Q67E>\\\;;$\48F"(,,v||F/J"KKMM+6 <; ? 8;;;s   AB!	!B2c                   a \         P                   ! V3R  lR\        4      4       o ! R RSR7      p ! R RSR7      pV P                  W!8  4       V P	                  W!8  4       R# )c                   L   <a a ] tR tRt oV 3R ltV3R ltV3R ltRtVtV ;t	# )WTestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605.<locals>.SortableMetai  c                $   < \         SV `  WW#4      # r   )super__new__)r  r   basesns	__class__s   &&&&r   r  _TestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605.<locals>.SortableMeta.__new__  s    ws%<<r#   c                \   < \        VS4      '       g    V P                  VP                  8  # r   r  r-   r9   r:   SortableMetas   &&r   r  ^TestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605.<locals>.SortableMeta.__lt__  s&    !%66}}u~~55r#   c                \   < \        VS4      '       g    V P                  VP                  8H  # r   r  r  s   &&r   rD  ^TestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605.<locals>.SortableMeta.__eq__  s&    !%66}}66r#   r   )
r-   r.   r/   r0   r  r  rD  r1   r=   __classcell__)r  r?   r  s   @@r   r  r    s     =6
7 7r#   r  c                       ] tR tRtRtR# )LTestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605.<locals>.Bi  r   Nr,   r   r#   r   r   r    r  r#   r   	metaclassc                       ] tR tRtRtR# )LTestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605.<locals>.Ai  r   Nr,   r   r#   r   r]  r    r  r#   r]  N)r   rJ  r   rf   r  )r9   r   r]  r  s   &  @r   /test_total_ordering_for_metaclasses_issue_44605ATestTotalOrdering.test_total_ordering_for_metaclasses_issue_44605  sZ    		!	!	74 	7 
"	7	, 		, 	 	r#   r   N)r-   r.   r/   r0   rL  rZ  rg  rs  ry  r~  r  r  r  r	  r1   r=   r>   s   @r   r7  r7    sA     &"'"&"'"
&AQFiV7   r#   r7  c                   2   a  ] tR tRt o R tR tR tRtV tR# )r  i  c                    Wn         R # r   r<  r=  s   &&r   r  Orderable_LT.__init__  s    
r#   c                4    V P                   VP                   8  # r   r<  r8   s   &&r   r  Orderable_LT.__lt__  s    zzEKK''r#   c                4    V P                   VP                   8H  # r   r<  r8   s   &&r   rD  Orderable_LT.__eq__  s    zzU[[((r#   r<  NrG  r>   s   @r   r  r    s     () )r#   r  c                   &   a  ] tR tRt o R tRtV tR# )	TestCachei  c           
       a V P                   P                  V3R  l4       oT P                  \        ^4       Uu. uF  pS! V4      NK  	  up. RO4       V P                  SP	                  4       V P                   P                  ^^R^R7      4       SP                  4        V P                  SP	                  4       V P                   P                  ^ ^ R^ R7      4       R# u upi )c                 \   < V ^8  d   V # S! V ^,
          4      S! V ^,
          4      ,           # r.  r   r  fibs   &r   r  !TestCache.test_cache.<locals>.fib  *    1uqs8c!A#h&&r#   Nhitsmissesmaxsizecurrsizer   rQ   rQ   r_   r`   r   r        "   7   Y         iy  r  )r   cacherh   r   
cache_info
_CacheInfocache_clearr9   r  r  s   & @r   
test_cacheTestCache.test_cache  s    				' 
	' 	%)4)Q#a&)4I	K)KK""2tb"Q	S)KK""!TA"N	P 5s   C r   N)r-   r.   r/   r0   r,  r1   r=   r>   s   @r   r  r    s     P Pr#   r  c                       ] tR tRt]tRtR# )TestCachePyi  r   N)r-   r.   r/   r0   r  r   r1   r   r#   r   r/  r/    s    Fr#   r/  c                   2    ] tR tRt]'       d   ]tRtR# RtR# )
TestCacheCi  r   N)r-   r.   r/   r0   r  r   r1   r   r#   r   r1  r1    s     r#   r1  c                     a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR t]P,                  ! 4       R 4       t]P,                  ! 4       R 4       t]P,                  ! 4       R 4       tR tR tR tR tR tR tR t R t!R t"R t#]$PJ                  ]&PN                  ! ]$PP                  R 4      ]$PR                  ! R!R"R"R#7      ]$PT                  ! 4       R$ 4       4       4       4       t+R%t,V t-R&# )'TestLRUi  c                	  a R  pV P                   P                  ^R7      ! V4      pVP                  4       w  r4rVV P                  V^4       V P                  V^ 4       V P                  V^ 4       V P                  V^ 4       \	        ^4      p\	        R4       F9  p\        V4      \        V4      rV! W4      pV! W4      pV P                  W4       K;  	  VP                  4       w  r4rVV P                  W48  4       V P                  W4,           R4       V P                  V^4       VP                  4        VP                  4       w  r4rVV P                  V^ 4       V P                  V^ 4       V P                  V^ 4       V! X	X
4       VP                  4       w  r4rVV P                  V^ 4       V P                  V^4       V P                  V^4       V P                  VP                  V4       VP                  W4       VP                  4       w  r4rVV P                  V^ 4       V P                  V^4       V P                  V^4       V P                   P                  ^ 4      V3R l4       pV P                  VP                  4       P                  ^ 4       ^ o\	        ^4       F  pV P                  V! 4       ^4       K  	  V P                  S^4       VP                  4       w  r4rVV P                  V^ 4       V P                  V^4       V P                  V^ 4       V P                   P                  ^4      V3R l4       pV P                  VP                  4       P                  ^4       ^ o\	        ^4       F  pV P                  V! 4       ^4       K  	  V P                  S^4       VP                  4       w  r4rVV P                  V^4       V P                  V^4       V P                  V^4       V P                   P                  ^4      V3R l4       pV P                  VP                  4       P                  ^4       ^ oR F"  p	V P                  V! V	4      V	^
,          4       K$  	  V P                  S^4       VP                  4       w  r4rVV P                  V^4       V P                  V^4       V P                  V^4       R# )c                 "    ^V ,          V,           # r`   r   r   s   &&r   origTestLRU.test_lru.<locals>.orig      q519r#   r    c                     < S ^,          o ^# r-  r   f_cnts   r   r   TestLRU.test_lru.<locals>.f)       QJEr#   c                     < S ^,          o ^# r-  r   r=  s   r   r   r?  9  r@  r#   c                 (   < S^,          oV ^
,          # r-  r   )r[   r>  s   &r   r   r?  I  s     QJER4Kr#   N)r  	   r  rC  r  rC  r  r  r  rC  rC  rC  r  r  r  r  )r   	lru_cacher(  rh   r   r   rf   r*  r   r  r  )r9   r7  r   r  r  r  r  domainr  r[   r   actualr   r>  s   &            @r   test_lruTestLRU.test_lru   s   	KK!!"!-d3*+,,.'g"%1%q!#qtA&>6&>qqWFAzHV.	 
 +,,,.'g&-2&	*+,,.'gq!#1%	!Q*+,,.'gq!#1% 	ammT*	a*+,,.'gq!#1% 
		q	!	 
"	 	//3qAQS"% "*+,,.'gq!#1% 
		q	!	 
"	 	//3qAQS"% "*+,,.'gq!#1% 
		q	!	 
"	 	//3?AQqT1R4( @ 	"*+,,.'gr"#1%r#   c           	        V P                   P                  R  4       pV P                  \        \	        V. RO4      4      . RO4       V P                  VP                  4       P                  ^4       V P                  VP                  4       P                  ^4       V P                  VP                  4       P                  ^4       V P                  VP                  4       P                  ^4       R# )c                     V ^,          # r.  r   rZ   s   &r   square(TestLRU.test_lru_no_args.<locals>.squareZ  s    6Mr#   N)rY   rb   rY   )d   i  rM  )
r   rD  rh   r7   rj   r(  r  r  r  r  )r9   rK  s   & r   test_lru_no_argsTestLRU.test_lru_no_argsY  s    				 
	 	c&,78(	***,1115**,33Q7**,44c:**,55q9r#   c                  aa R oV P                   P                  ^
R7      VV3R l4       o\        ^4       F  pV P                  S! V4      RV R24       K!  	  V P                  SP	                  4       P
                  ^
4       V P                  S! ^4      R4       V P                  SP	                  4       P
                  ^
4       R# )Tr:  c                 F   < R V  R 2pV ^8X  d   S'       d   RoS! V 4      pV# )r  Fr   )r[   rvr   onces   & r   r   %TestLRU.test_lru_bug_35780.<locals>.fn  s.     QCqBBw4qTIr#   r  z.20.N)r   rD  r   rh   r(  r  )r9   r[   r   rS  s   & @@r   test_lru_bug_35780TestLRU.test_lru_bug_35780e  s     			r		*	 
+	 rAQqTQqc8, 00"5 	2'00"5r#   c                    V P                   P                  4       R  4       pV! ^ 4       V! R/ / B  V P                  VP                  4       P                  ^4       R# )c                     R # r   r   rZ   s   &r   r   %TestLRU.test_lru_bug_36650.<locals>.f  r  r#   Nr   )r   rD  rh   r(  r  r   s   & r   test_lru_bug_36650TestLRU.test_lru_bug_36650  sQ     
			 	 
!	 	
!	
r
,,a0r#   c                   V P                   P                  ^R7      R 4       p\        P                  P	                  4       p\        P                  P	                  ^R7      Vn        \        P                  P	                  RR7      Vn        V P                  V! V^4      ^4       V P                  VP                  P                  ^4       V P                  VP                  4       R4       V P                  V! V^4      ^4       V P                  VP                  P                  ^4       V P                  VP                  4       R4       V P                  V! ^^4      ^4       V P                  VP                  P                  ^4       V P                  VP                  4       R4       V P                  V! V^4      ^4       V P                  VP                  P                  ^4       V P                  VP                  4       R	4       R# )
rQ   r:  c                 "    V ^,          V,           # r6  r   r   s   &&r   r   *TestLRU.test_lru_hash_only_once.<locals>.f      q519r#   )return_value  N)r   rQ   rQ   rQ   )rQ   rQ   rQ   rQ   )rQ   r_   rQ   rQ   )rQ   r`   rQ   rQ   )
r   rD  rh  mockMock__mul____hash__rh   
call_countr(  )r9   r   mock_ints   &  r   test_lru_hash_only_onceTestLRU.test_lru_hash_only_once  s    
		q		)	 
*	 ==%%'#==--2->$MM..C.@ 	8Q,**55q96 	8Q,**55q96 	1a"%**55q96 	8Q,**55q96r#   c                   \         P                  p V P                  P                  ^4      ! \        4      \         n        R F!  pV P	                  \        RRV 4      V4       K#  	  V\         n        R#   T\         n        i ; i)ra   abcdefghijklmnN)r   r   rQ   r_   r`   r`   ra   r      rQ   r  r_   rQ   )builtinsr   r   rD  rh   )r9   old_lenr  s   &  r   test_lru_reentrancy_with_len$TestLRU.test_lru_reentrancy_with_len  se     ,,	#;;003C8HL<  %5bq%9!:A> = #HL7HLs   AA4 4Bc                    V P                   P                  4       R  4       pV P                  V! ^^4      R4       V P                  V! R4      R4       R# )c                      V # r   r   rO  s   *r   r   -TestLRU.test_lru_star_arg_handling.<locals>.f  s    Kr#   Nrp   )rp   r   rD  rh   r   s   & r   test_lru_star_arg_handling"TestLRU.test_lru_star_arg_handling  sM    				 	 
!	 	1a&)6I.r#   c                   V P                   P                  R R7      R 4       pV P                   P                  ^
R7      R 4       pV P                  \        4      ;_uu_ 4        V! . 4       R R R 4       V P                  \        4      ;_uu_ 4        V! . 4       R R R 4       R #   + '       g   i     L@; i  + '       g   i     R # ; i)Nr:  c                     R # r   r   os   &r   infinite_cache3TestLRU.test_lru_type_error.<locals>.infinite_cache  r  r#   c                     R # r   r   ry  s   &r   limited_cache2TestLRU.test_lru_type_error.<locals>.limited_cache  r  r#   )r   rD  rt   ru   )r9   r{  r~  s   &  r   test_lru_type_errorTestLRU.test_lru_type_error  s    
 
		t		,	 
-	 
		r		*	 
+	 y))2 * y))" *) *) *))s   "	B#	B6#B3	6C	c           
       a V P                   P                  R R7      V3R l4       oT P                  \        ^4       Uu. uF  pS! V4      NK  	  up. RO4       V P                  SP	                  4       V P                   P                  ^^R ^R7      4       SP                  4        V P                  SP	                  4       V P                   P                  ^ ^ R ^ R7      4       R # u upi )Nr:  c                 \   < V ^8  d   V # S! V ^,
          4      S! V ^,
          4      ,           # r.  r   r  s   &r   r  /TestLRU.test_lru_with_maxsize_none.<locals>.fib  r  r#   r  r  r   rD  rh   r   r(  r)  r*  r+  s   & @r   test_lru_with_maxsize_none"TestLRU.test_lru_with_maxsize_none  s    			t		,	' 
-	' 	%)4)Q#a&)4I	K)KK""2tb"Q	S)KK""!TA"N	P 5s   C&c           
     d   V P                   P                  RR7      R 4       pR FE  pT P                  \        ^4       Uu. uF
  q1! V4      NK  	  up\	        \        ^4      4      4       KG  	  V P                  VP                  4       V P                   P                  ^ R^ ^ R7      4       R# u upi )rY   r:  c                     V # r   r   r  s   &r   eq2TestLRU.test_lru_with_maxsize_negative.<locals>.eq      Hr#   i,  r  Nir   )r   rD  rh   r   r7   r(  r)  )r9   r  r  r  s   &   r   test_lru_with_maxsize_negative&TestLRU.test_lru_with_maxsize_negative  s    			s		+	 
,	AU3Z8ZbeZ8$uSz:JK KK""#q1"M	O 9s    B-
c                   R F  pV P                   P                  V4      R 4       pV P                  V! ^ 4      R4       V P                  \        4      ;_uu_ 4       pV! ^4       R R R 4       V P                  XP                  P                  4       V P                  \        4      ;_uu_ 4        V! ^4       R R R 4       K  	  R #   + '       g   i     Li; i  + '       g   i     K  ; i)Nc                     R V ,          # )r  r   r  s   &r   r%   .TestLRU.test_lru_with_exceptions.<locals>.func  s    Qxr#   rS   N   )r   rD  rh   rt   rN  assertIsNone	exception__context__)r9   r  r%   r2  s   &   r   test_lru_with_exceptions TestLRU.test_lru_with_exceptions  s     #G[[""7+  , T!Wc*"":.."R /bll667"":..R /. #
 /. /..s   	C/	CCC*c           	     "   R EF  pV P                   P                  VRR7      R 4       pV P                  V! ^4      ^	4       V P                  \        V! ^4      4      \        ^	4      4       V P                  V! R4      R4       V P                  \        V! R4      4      \        R4      4       V P                  V! ^R7      ^	4       V P                  \        V! ^R7      4      \        ^	4      4       V P                  V! RR7      R4       V P                  \        V! RR7      4      \        R4      4       V P                  VP	                  4       P
                  ^4       V P                  VP	                  4       P                  ^4       EK  	  R # )NTr  typedc                     W ,          # r   r   rZ   s   &r   rK  +TestLRU.test_lru_with_types.<locals>.square  s	    ur#   g      @g      "@rZ   r  )r   rD  rh   r   r(  r  r  )r9   r  rK  s   &  r   test_lru_with_typesTestLRU.test_lru_with_types   s4   "G[[""7$"? @VAY*T&)_d1g6VC[#.T&+.S	:Va[!,T&1+.Q8Vc]C0T&3-0$s)<V..055q9V..077; #r#   c                   V P                   P                  R R7      ! \        4      pV P                  V! ^4      R4       V P                  V! R 4      R4       V P                  V! R4      R4       V P                  V! ^ 4      R4       V P                  V! R4      R4       V P                  V! R	4      R
4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4        ! R R\        4      pV P                  V! V! R4      4      R4       V P                  V! V! R4      4      R4       V P                  V! V! R4      4      R4       V P                  V! V! R4      4      R4       V P                  V! V! R4      4      R4       V P                  V! V! R4      4      R4       R# )T)r  r  True      ?z1.0r  FFalse        z0.0z(1,)z(0,)c                       ] tR tRtRtR# )8TestLRU.test_lru_cache_typed_is_not_recursive.<locals>.Ti!  r   Nr,   r   r#   r   r  r  !  r  r#   r  Nr-  T)r  r   r  )r  )r   rD  r   rh   r:  )r9   cachedr  s   &  r   %test_lru_cache_typed_is_not_recursive-TestLRU.test_lru_cache_typed_is_not_recursive  s   &&T&248C(v.e,C(0e,v.&10v.)620	 	 	$&1'
+V4&	*F3$&1(,f5&	*F3r#   c           
       a V P                   P                  4       V3R  l4       oT P                  \        ^4       Uu. uF  pS! VR7      NK  	  up. RO4       V P                  SP	                  4       V P                   P                  ^^^^R7      4       SP                  4        V P                  SP	                  4       V P                   P                  ^ ^ ^^ R7      4       R# u upi )c                 `   < V ^8  d   V # S! V ^,
          R7      S! V ^,
          R7      ,           # r_   r  r   r  s   &r   r  /TestLRU.test_lru_with_keyword_args.<locals>.fib,  *    1u1:ac
**r#   r  r  Nr  r  r9   numberr  s   & @r   test_lru_with_keyword_args"TestLRU.test_lru_with_keyword_args+  s    				 	+ 
!	+ 	).r3vS6]3I	
 	)KK""2sR"P	R)KK""!S1"M	O 4s   C%c           
       a V P                   P                  R R7      V3R l4       oT P                  \        ^4       Uu. uF  pS! VR7      NK  	  up. RO4       V P                  SP	                  4       V P                   P                  ^^R ^R7      4       SP                  4        V P                  SP	                  4       V P                   P                  ^ ^ R ^ R7      4       R # u upi )Nr:  c                 `   < V ^8  d   V # S! V ^,
          R7      S! V ^,
          R7      ,           # r  r   r  s   &r   r  <TestLRU.test_lru_with_keyword_args_maxsize_none.<locals>.fib<  r  r#   r  r  r  r  r  s   & @r   'test_lru_with_keyword_args_maxsize_none/TestLRU.test_lru_with_keyword_args_maxsize_none;  s    			t		,	+ 
-	+ 	eBi@iF#-i@I	K)KK""2tb"Q	S)KK""!TA"N	P As   C'c           
     4   V P                   P                  ^
R7      R 4       pV P                  V! ^^R7      RR.4       V P                  V! ^^R7      RR.4       V P                  VP                  4       V P                   P	                  ^ ^^
^R7      4       R# )	rY   r:  c                  4    \        V P                  4       4      # r   )r7   items)r  s   ,r   r   $TestLRU.test_kwargs_order.<locals>.fK  s    ''r#   rR   )rT   rS   r  N)rS   rQ   )rT   r_   )r   rD  rh   r(  r)  r   s   & r   test_kwargs_orderTestLRU.test_kwargs_orderI  s    			r		*	( 
+	(Q!x&:;Q!x&:;KK""!R!"L	Nr#   c                    R  R lpV P                   P                  4       ! V4      pV P                   P                   F'  pV P                  \	        W#4      \	        W4      4       K)  	  R# )c                    V ^8  d   QhRR/# )r_   zomgzomg_annotationr   )r  s   "r   r
  7TestLRU.test_lru_cache_decoration.<locals>.__annotate__T  s     	 	% 	r#   c                    ^*# )zf doc stringr   )r  s   &r   r   ,TestLRU.test_lru_cache_decoration.<locals>.fT  s    r#   N)r   rD  rf  rh   r   )r9   r   gr  s   &   r   test_lru_cache_decoration!TestLRU.test_lru_cache_decorationS  sN    	 KK!!#A&KK33DWQ-wq/?@ 4r#   c           	     X  a aaaa ^^upoR oS P                   P                  VS,          R7      ! S4      oSP                  4       w  r#rES P                  V^ 4       \        P
                  ! 4       oVVVV V3R lpVVV3R lp\        P                  ! 4       p\        P                  ! R4        \        V4       U	u. uF  p	\        P                  ! Wi.R7      NK  	  p
p	\        P                  ! V
4      ;_uu_ 4        SP                  4        RRR4       SP                  4       w  r#rES P                   \        J d3   S P!                  W14       S P!                  VSV,          V,
          4       M1S P                  W14       S P                  VSV,          V,
          4       S P                  WQ4       \        P                  ! VR7      .p
T
\        V4       U	u. uF  p	\        P                  ! Wi.R7      NK  	  up	,          p
SP#                  4        \        P                  ! V
4      ;_uu_ 4        SP                  4        RRR4       \        P                  ! V4       R# u up	i   + '       g   i     EL`; iu up	i   + '       g   i     LF; i  \        P                  ! T4       i ; i)	r   c                 "    ^V ,          V,           # r6  r   r   s   &&r   r7  -TestLRU.test_lru_cache_threaded.<locals>.orig^  r9  r#   r:  c                    < SP                  ^
4       \        S4       F#  pSP                  S! V ^ 4      S! V ^ 4      4       K%  	  R# r  )waitr   rh   )r#  ry  r   r   r7  r9   r  s   & r   full-TestLRU.test_lru_cache_threaded.<locals>.fulle  s8    JJrN1X  1a$q!*5 r#   c                  |   < SP                  ^
4       \        ^S,          4       F  p SP                  4        K  	  R# r  )r  r   r*  )ry  r   r   r  s    r   clear.TestLRU.test_lru_cache_threaded.<locals>.clearj  s)    JJrN1Q3Z  r#   gư>targetr    Nr  )r   rD  r(  rh   	threadingEventr   getswitchintervalr   setswitchintervalr   Threadr   start_threadssetr  r  r  )r9   r  r  r  r  r  r  r  orig_sir#  threadsr   r   r7  r  s   f          @@@@r   test_lru_cache_threadedTestLRU.test_lru_cache_threaded[  s   "1	KK!!!A#!.t4*+,,.'g1%!	6 	6
	 
 '')!!$'	+ !&a* (1 !''t#> (  *!//88		 9 /0lln+D'{{l*$$V/$$T1Q3<8  +  qsV|4X) !''u56G!&q+!)A "((3?!)+ +GKKM!//88		 9 !!'*/*888+ 98 !!'*s[   /J <!I  J =I%C	J !I987J /I> J  J %I6	0J >J		J J)c                  a aaaa	a
 ^^upo\         P                  ! V^,           4      o	\         P                  ! V^,           4      o\         P                  ! V^,           4      o
S P                  P                  SV,          R7      V3R l4       oS P	                  SP                  4       ^ ^ SV,          ^ 34       VVV V	V
3R lp\        V4       Uu. uF  p\         P                  ! VR7      NK  	  pp\        P                  ! V4      ;_uu_ 4        \        S4       F  pS	P                  ^
4       S
P                  4        SP                  ^
4       S	P                  4        S
P                  ^
4       SP                  4        S P	                  SP                  4       ^ V^,           V,          SV,          V^,           34       K  	  RRR4       R# u upi   + '       g   i     R# ; i)r   r:  c                 8   < SP                  ^
4       ^V ,          # rX   )r  )r[   pauses   &r   r   +TestLRU.test_lru_cache_threaded2.<locals>.f  s    JJrNq5Lr#   c                     < \        S4       FD  p SP                  ^
4       SP                  S! V 4      ^V ,          4       SP                  ^
4       KF  	  R# r  )r   r  rh   )r  r   r   r9   r  stops    r   test.TestLRU.test_lru_cache_threaded2.<locals>.test  s?    1X

2  1q1u-		" r#   r  N)r  Barrierr   rD  rh   r(  r   r  r   r  r  reset)r9   r  r  r#  r  r  r   r   r  r  r  s   f     @@@@@r   test_lru_cache_threaded2 TestLRU.test_lru_cache_threaded2  sj    !1!!!A#&!!!A#&  1%			qs		+	 
,	 	!Q!Q8	 	
 ;@(C(Q9##40(C++G441X

2



2		"  !ac1Wac1Q31GH  54 D444s    GB6GG'	c           	     N  a a S P                   P                  ^R7      R 4       oVV 3R lp\        . RO4       UUu. uF  w  r#\        P                  ! WV3R7      NK   	  ppp\
        P                  ! V4      ;_uu_ 4         RRR4       R# u uppi   + '       g   i     R# ; i)r_   r:  c                 @    \         P                  ! R 4       ^V ,          # )g{Gz?)timesleeprZ   s   &r   r   +TestLRU.test_lru_cache_threaded3.<locals>.f  s    JJsOq5Lr#   c                 H   < SP                  S! V4      ^V,          V 4       R# )r`   N)rh   )r  r[   r   r9   s   &&r   r  .TestLRU.test_lru_cache_threaded3.<locals>.test  s    QqT1q5!,r#   r  N)rQ   r_   r_   r`   r_   )r   rD  	enumerater  r  r   r  )r9   r  r  vr  r   s   f    @r   test_lru_cache_threaded3 TestLRU.test_lru_cache_threaded3  s    			q		)	 
*		-  )9;9tq ##4!f=9 	 ;++G44 54;444s   $BBB$	c                   aa V P                   P                  ^
R7      R 4       o ! VV3R lR4      oS! S! ^4      4       S! S! ^4      4       V P                  S! S! ^4      4      S! ^4      4       R# )rY   r:  c                    V # )zEUsed to demonstrate a reentrant lru_cache call within a single threadr   rZ   s   &r   	test_func.TestLRU.test_need_for_rlock.<locals>.test_func  s	     Hr#   c                   @   <a  ] tR tRt o RtR tR tVV3R ltRtV t	R# )-TestLRU.test_need_for_rlock.<locals>.DoubleEqi  z=Demonstrate a reentrant lru_cache call within a single threadc                    Wn         R # r   rZ   r9   r[   s   &&r   r  6TestLRU.test_need_for_rlock.<locals>.DoubleEq.__init__  r  r#   c                    V P                   # r   rZ   rK   s   &r   re  6TestLRU.test_need_for_rlock.<locals>.DoubleEq.__hash__  s    vvr#   c                t   < V P                   ^8X  d   S! S! ^4      4       V P                   VP                   8H  # r.  rZ   )r9   r:   DoubleEqr  s   &&r   rD  4TestLRU.test_need_for_rlock.<locals>.DoubleEq.__eq__  s-    66Q;hqk*vv((r#   rZ   N)
r-   r.   r/   r0   r%  r  re  rD  r1   r=   )r?   r  r  s   @r   r  r    s     K) )r#   r  Nrt  )r9   r  r  s   &@@r   test_need_for_rlockTestLRU.test_need_for_rlock  sm     
		r		*	 
+			) 		) 	(1+(1+8A;/!!	&r#   c                  a   ! V 3R  lR\         4      pV! ^4      pV! ^4      pV! ^4      pS P                  VP                  P                  4       R4       R F2  pS P                  VP                  V4      V^
,          ^,           4       K4  	  S P                  VP                  VP                  VP                  3R4       S P                  VP                  P                  4       R4       R F2  pS P                  VP                  V4      V^
,          ^,           4       K4  	  S P                  VP                  VP                  VP                  3R4       S P                  VP                  P                  4       R	4       R
 F2  pS P                  VP                  V4      V^
,          ^,           4       K4  	  S P                  VP                  VP                  VP                  3R4       S P                  VP                  P                  4       R4       S P                  VP                  P                  4       VP                  P                  4       4       S P                  VP                  P                  4       VP                  P                  4       4       S P                  VP                  P                  4       VP                  P                  4       4       R# )c                   j   <a  ] tR tRt o ^ t ZP
                  P                  ^4      R 4       tRtV t	R# )"TestLRU.test_lru_method.<locals>.Xi  c                T    V ;P                   ^,          un         V^
,          V ,           # r-  r=  r   s   &&r   r   $TestLRU.test_lru_method.<locals>.X.f  s    

a
tDy r#   r   N)
r-   r.   r/   r0   r>  r   rD  r   r1   r=   r?   r9   s   @r   Xr    s+     E[[""1%! &!r#   r  N)r   r   r_   r   )
rQ   r_   r_   r`   rQ   rQ   rQ   r_   r`   r`   )rl  r   r   )ra   rl  r_   r_   )
rQ   r_   rQ   rQ   rQ   rQ   r`   r_   r_   r_   )rl  ra   r   )rY   rY   r_   r_   )
r_   rQ   rQ   rQ   rQ   r_   rQ   r`   r_   rQ   )rl  ra   r   )   r  r_   r_   )r   rh   r   r(  r>  )r9   r  rS   rT   rU   r[   s   f     r   test_lru_methodTestLRU.test_lru_method  s   	! 	! aDaDaD)<8-AQSSVQrTAX. .!''177AGG4i@)<8-AQSSVQrTAX. .!''177AGG4i@)>:-AQSSVQrTAX. .!''177AGG4i@)>:)133>>+;<)133>>+;<)133>>+;<r#   c           
        V P                   pVP                  ^ ,          VP                  VP                  3 F  p\	        \
        P                  ^,           4       Fa  pV P                  W2R7      ;_uu_ 4        \
        P                  ! \
        P                  ! W#4      4      pV P                  WB4       RRR4       Kc  	  K  	  R#   + '       g   i     K|  ; i)r   )r  r%   N)r  cached_funccached_methcached_staticmethr   r  r  r  r  r  r   )r9   r  r   r  r  s   &    r   r  TestLRU.test_pickle  s    nn#S__c6K6KKAv66:;\\\66#\\&,,q*@AFMM&, 76 < L666s   7<C	Cc                   V P                   pR  pV P                  P                  V^4      pVP                  ^ ,          VP                  VP
                  V P                  P                  ^4      ! V4      3pV FM  pV P                  VR7      ;_uu_ 4        \        P                  ! V4      pV P                  We4       RRR4       KO  	  R#   + '       g   i     Kd  ; i)c                 "    ^V ,          V,           # r6  r   r   s   &&r   r7  TestLRU.test_copy.<locals>.orig  r9  r#   r%   N)
r  r   re   r  r  r  rD  r  r   r   r9   r  r7  r(   funcsr   r  s   &      r   r"  TestLRU.test_copy  s    nn	{{""4+#S__c6K6K&&q)$/1A1%%1f( &% %%%   (CCc                   V P                   pR  pV P                  P                  V^4      pVP                  ^ ,          VP                  VP
                  V P                  P                  ^4      ! V4      3pV FM  pV P                  VR7      ;_uu_ 4        \        P                  ! V4      pV P                  We4       RRR4       KO  	  R#   + '       g   i     Kd  ; i)c                 "    ^V ,          V,           # r6  r   r   s   &&r   r7  #TestLRU.test_deepcopy.<locals>.orig  r9  r#   r  N)r  r   re   r  r  r  rD  r  r   r%  r   r  s   &      r   r'  TestLRU.test_deepcopy   s    nn	{{""4+#S__c6K6K&&q)$/1A1%%q)f( &% %%%r  c                    V P                   P                  ^R7      R 4       pV P                  VP                  4       R^RR/4       V P                   P                  RRR7      R	 4       pV P                  VP                  4       RRRR/4       R
# )r_   r:  c                      ^# r-  r   r   r#   r   r   ,TestLRU.test_lru_cache_parameters.<locals>.f      r#   r  r  Fr;  Tr  c                      ^# r-  r   r   r#   r   r   r&    r'  r#   N)r   rD  rh   cache_parametersr   s   & r   test_lru_cache_parameters!TestLRU.test_lru_cache_parameters  s    			q		)	 
*	++-	1gu/MN			t4		8	 
9	++-	4$/OPr#   c                  a  S P                   P                  R  4       p ! V 3R lR4      p\        P                  ! V4      \        P                  ! VP                  4      \        P                  ! VP
                  4      .pV F  pS P                  V! 4       4       K  	  ??\        P                  ! 4        V F  pS P                  V! 4       4       K  	  R# )c                     V # r   r   rZ   s   &r   test_function9TestLRU.test_lru_cache_weakrefable.<locals>.test_function  r  r#   c                      <a  ] tR tRt o  ZP                  P
                  R 4       t] ZP                  P
                  V3R l4       4       tRt	V t
R# )-TestLRU.test_lru_cache_weakrefable.<locals>.Ai  c                    W3# r   r   r   s   &&r   test_method9TestLRU.test_lru_cache_weakrefable.<locals>.A.test_method  s
    y r#   c                   < SV 3# r   r   )r[   r9   s   &r   test_staticmethod?TestLRU.test_lru_cache_weakrefable.<locals>.A.test_staticmethod!  s     ay r#   r   N)r-   r.   r/   r0   r   rD  r3  r[  r6  r1   r=   r  s   @r   r]  r1    sG     [[""! #! [[""! # !r#   r]  N)
r   rD  rG   refr3  r6  assertIsNotNonegccollectr  )r9   r.  r]  refsr8  s   f    r   test_lru_cache_weakrefable"TestLRU.test_lru_cache_weakrefable  s    				 
		! 	! M*AMM*A//02 C  '  


Cce$ r#   c                   RR lpV P                   P                  ^4      ! V4      pV P                  \        \        P
                  ! V4      4      R4       V P                  \        \        P
                  ! VP                  4      4      R4       V P                  \        \        P
                  ! VP                  4      4      R4       R# )Tc                    R # r   r   rV   s   "&&r   r7  ,TestLRU.test_common_signatures.<locals>.orig5  s    3r#   z(a, /, b, c=True)z()Nr  )r   rD  rh   r   r	   r)  r(  r*  r9   r7  lrus   &  r   test_common_signaturesTestLRU.test_common_signatures4  s    &kk##A&t,Y44S9:<OPY44S^^DEtLY44S__EFMr#   c                    R  R lpV P                   P                  ^4      ! V4      pV P                  \        V4      R\        R\
        /4       V P                  \        V4      R\        R\
        /4       R# )c                0    V ^8  d   QhR\         R\        /# r_   rS   returnr   r   )r  s   "r   r
  2TestLRU.test_get_annotations.<locals>.__annotate__=  s    $$C$C$r#   c                     R # r   r   r|   s   &r   r7  *TestLRU.test_get_annotations.<locals>.orig=  s    r#   rS   rI  N)r   rD  rh   r   r   r   rB  s   &  r   test_get_annotationsTestLRU.test_get_annotations<  sb    $kk##A&t,D!Ch#<	
 	C 3Xs";	
r#   c                   R  R lpV P                   P                  ^4      ! V4      pV P                  \        V\        P
                  R7      R\        R\        RVR7      /4       V P                  \        V\        P
                  R7      R\        R\        RVR7      /4       V P                  \        4      ;_uu_ 4        \        V\        P                  R7       RRR4       V P                  \        4      ;_uu_ 4        \        V\        P                  R7       RRR4       R#   + '       g   i     LS; i  + '       g   i     R# ; i)c                0    V ^8  d   QhR\         R\        /# rH  )r   nonexistent)r  s   "r   r
  BTestLRU.test_get_annotations_with_forwardref.<locals>.__annotate__H  s    ,,C,K,r#   c                     R # r   r   r|   s   &r   r7  :TestLRU.test_get_annotations_with_forwardref.<locals>.origH  s    r#   )r  rS   rI  rR  )ownerN)r   rD  rh   r   r   
FORWARDREFr   r   rt   rc  VALUErB  s   &  r   $test_get_annotations_with_forwardref,TestLRU.test_get_annotations_with_forwardrefG  s    ,kk##A&t,D):):;#x!2=!MN	
 	C(9(9:#x!2=!LM	
 y))D6 *y))C5 *) *))))s   D(D;(D8	;E	zWASI has limited C stackzrequires deep stackT)ubr?  c           	       a V P                   P                  V3R  l4       oS! ^d4       V P                   \        8X  dz   SP                  4        \        P
                  ! 4       ;_uu_ 4        V P                  \        4      ;_uu_ 4        S! \        P                  ! 4       4       RRR4       RRR4       R# R#   + '       g   i     L; i  + '       g   i     R# ; i)c                 \   < V ^8:  d   V # S! V ^,
          4      S! V ^,
          4      ,           # r-  r   r  s   &r   r  'TestLRU.test_lru_recursion.<locals>.fib^  s*    Avqs8c!A#h&&r#   N)	r   rD  r  r*  r   rA  rt   rB  exceeds_recursion_limit)r9   r  s   &@r   test_lru_recursionTestLRU.test_lru_recursionX  s     
			' 
	'
 	C;;+%OO++--&&~66779: 7 .- & 76 .--s$   +C	B9	%C9C	CC	r   N).r-   r.   r/   r0   rG  rN  rU  rZ  rh  ro  ru  r  r  r  r  r  r  r  r  r  r  r   requires_working_threadingr  r  r  r  r  r  r"  r'  r*  r=  rD  rN  rY  r   skip_on_s390xrh  ri  is_wasirh  ri  r`  r1   r=   r>   s   @r   r3  r3    sN    W&r
:661!7F
#/&PO < 46O PNA 002.+ 3.+` 002I 3I6 002
 3
&0=>-
)
)	Q%:N	
6" __W__&@A4dK++-; . L B ;r#   r3  c                 "    ^V ,          V,           # r6  r   r   s   &&r   py_cached_funcrf  l  s    q519r#   c                 "    ^V ,          V,           # r6  r   r   s   &&r   c_cached_funcrh  q      1uqyr#   c                      a  ] tR tRt o ]t]3t]P                  4       R 4       t	]
]P                  4       R 4       4       tRtV tR# )	TestLRUPyiv  c                "    ^V,          V,           # r6  r   r  s   &&&r   r  TestLRUPy.cached_methz  ri  r#   c                "    ^V ,          V,           # r6  r   r   s   &&r   r  TestLRUPy.cached_staticmeth~  s     1uqyr#   r   N)r-   r.   r/   r0   r  r   rf  r  rD  r  r[  r  r1   r=   r>   s   @r   rk  rk  v  sQ     F /K    r#   rk  c                      a  ] tR tRt o ]'       d=   ]t]3t]P                  4       R 4       t	]
]P                  4       R 4       4       tRtV tR# RtV tR# )TestLRUCi  c                "    ^V,          V,           # r6  r   r  s   &&&r   r  TestLRUC.cached_meth  r_  r#   c                "    ^V ,          V,           # r6  r   r   s   &&r   r  TestLRUC.cached_staticmeth  s     q519r#   r   N)r-   r.   r/   r0   r  r   rh  r  rD  r  r[  r  r1   r=   r>   s   @r   rq  rq    sY     #n					 
	 
					 
 
	 r#   rq  c                   l  a  ] tR tRt o R tR tR tR t]P                  ! ]
R4      ]P                  R 4       4       tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R t#R t$R t%R  t&R! t'R" t(R# t)R$ t*R% t+R& t,R' t-R( t.R) t/R* t0R+ t1R, t2R- t3R.t4V t5R/# )0TestSingleDispatchi  c                    \         P                  R  4       pR pVP                  \        V4       V P	                  V! R4      R4       V P	                  V! ^4      R4       V P	                  V! . RO4      R4       R# )c                     R # r   r   r  s   &r   r  3TestSingleDispatch.test_simple_overloads.<locals>.g      r#   c                     R # )integerr   r  s   &r   g_int7TestSingleDispatch.test_simple_overloads.<locals>.g_int  s    r#   r   r   r}  NrQ   r_   r`   )r   singledispatchregisterr   rh   r9   r  r~  s   &  r   test_simple_overloads(TestSingleDispatch.test_simple_overloads  si    		!	!	 
"			

356*1y)7V,r#   c                   \         P                  R  4       p ! R R4      p ! R RV4      p ! R RV4      p ! R RW44      pR	 pR
 pVP                  W&4       VP                  WG4       V P                  V! V! 4       4      R4       V P                  V! V! 4       4      R4       V P                  V! V! 4       4      R4       V P                  V! V! 4       4      R4       R# )c                     R # r   r   r  s   &r   r  &TestSingleDispatch.test_mro.<locals>.g  r{  r#   c                       ] tR tRtRtR# )&TestSingleDispatch.test_mro.<locals>.Ai  r   Nr,   r   r#   r   r]  r    r  r#   r]  c                       ] tR tRtRtR# )&TestSingleDispatch.test_mro.<locals>.Ci  r   Nr,   r   r#   r   Cr    r  r#   r  c                       ] tR tRtRtR# )&TestSingleDispatch.test_mro.<locals>.Bi  r   Nr,   r   r#   r   r   r    r  r#   r   c                       ] tR tRtRtR# )&TestSingleDispatch.test_mro.<locals>.Di  r   Nr,   r   r#   r   Dr    r  r#   r  c                     R # )r]  r   r|   s   &r   g_A(TestSingleDispatch.test_mro.<locals>.g_A      r#   c                     R # )r   r   r}   s   &r   g_B(TestSingleDispatch.test_mro.<locals>.g_B  r  r#   Nr   r  r  rh   )r9   r  r]  r  r   r  r  r  s   &       r   test_mroTestSingleDispatch.test_mro  s    		!	!	 
"		 		 		 		 				

1	

113%13%13%13%r#   c                   \         P                  R  4       pVP                  \        4      R 4       pV P	                  V! R4      R4       V P	                  V! ^4      R4       V P                  VP                  \        4      V4       V P                  VP                  \        4      VP                  \        4      4       R# )c                     R # r   r   r  s   &r   r  5TestSingleDispatch.test_register_decorator.<locals>.g  r{  r#   c                     R V : 2# )zint r   r  s   &r   r~  9TestSingleDispatch.test_register_decorator.<locals>.g_int  s
     ?"r#   r   r   zint 12N)	r   r  r  r   rh   r   dispatchr  r   r  s   &  r   test_register_decorator*TestSingleDispatch.test_register_decorator  s    		!	!	 
"		
C	# 
	#2'2)ajjou-ajj(!**S/:r#   c                    \         P                  R  4       pV P                  VP                  R4       \        P
                  P                  ^8  d   V P                  VP                  R4       R# R# )c                    R# )Simple testTestr   r  s   &r   r  6TestSingleDispatch.test_wrapping_attributes.<locals>.g  s     r#   r  r  N)r   r  rh   r-   r   rj  rk  r%  )r9   r  s   & r   test_wrapping_attributes+TestSingleDispatch.test_wrapping_attributes  s[    		!	!	 
"	 	S)99!QYY6 "r#   zrequires _decimalc                   \         P                  R  4       pVP                  \        P                  4      R 4       p\        P                  R4      p\        P                  R4      pV P                  V! V4      R4       V P                  V! V4      R4       VP                  \        P
                  4      R 4       pV P                  V! V4      R4       V P                  V! V4      R4       R# )	c                     R # r   r   r  s   &r   r  ,TestSingleDispatch.test_c_classes.<locals>.g  r{  r#   c                     V P                   # r   rO  r  s   &r   ry  ,TestSingleDispatch.test_c_classes.<locals>._  s    88Or#   Exponent < EminNumber got roundedc                     R # )Too small to care.r   r  s   &r   ry  r    s    'r#   r  N)r  )r  )r   r  r  r   DecimalException	SubnormalRoundedrh   )r9   r  ry  subnrnds   &    r   test_c_classes!TestSingleDispatch.test_c_classes  s     
	!	!	 
"		
G,,	-	 
.	  !23oo234"673!89	
G%%	&	( 
'	(4"673!89r#   c                   \         P                  p\        P                  pVP                  VP
                  VP                  VP                  .p\        V4       Fn  pV! \        V4      pV P                  V\        VP
                  VP                  VP                  VP                  VP                  VP                  \        .4       Kp  	  VP                  VP                  VP
                  \         P                   .p\        V4       F  pV! \         P"                  V4      pV P                  V\         P"                  VP
                  VP                  VP                  VP                  VP                  VP                  \        .4       K  	  VP                  VP                  \$        .p\        V4       Fv  pV! \         P&                  VP                  VP                  \$        .4      pV P                  V\         P&                  \        VP                  VP                  \        .4       Kx  	   ! R  R\         P&                  4      pVP(                  P+                  V4       VP(                  VP
                  .p\        V4       F  pV! Wd4      pV P                  WVVP(                  VP                  VP,                  \         P&                  \        VP
                  VP                  VP                  VP                  VP                  VP                  \        .4       K  	   ! R R\         P&                  4      pVP                  VP.                  VP                  VP                  .p\        V4       Fx  pV! Wt4      pV P                  WWVP.                  \         P&                  \        VP                  VP                  VP                  VP                  VP                  \        .
4       Kz  	  R# )c                       ] tR tRtRtR# ).TestSingleDispatch.test_compose_mro.<locals>.Di  r   Nr,   r   r#   r   r  r    r  r#   r  c                   &   a  ] tR tRt o R tRtV tR# ).TestSingleDispatch.test_compose_mro.<locals>.Ci	  c                    R # r   r   rK   s   &r   r   7TestSingleDispatch.test_compose_mro.<locals>.C.__call__	      r#   r   Nr-   r.   r/   r0   r   r1   r=   r>   s   @r   r  r  	        r#   r  N)r  r  r   _compose_mroSequenceMutableMappingMappingSetr   ri   rh   
CollectionSizedIterable	Containerr  OrderedDictr  r   defaultdictMutableSequencer  
ReversibleCallable)r9   rU   mror  haystackr   r  r  s   &       r   test_compose_mro#TestSingleDispatch.test_compose_mro  s   OO$$Q--qyy!%%@$U+HD(#AQq'7'7!"qww

!"f!6 7 ,
 aii)9)9;;R;RS$U+HK(((3AQ!5!5q7G7G!"qww

!"f!6 7 , aggs+$U+HK++aggq{{C-HIAQ!8!8$!"f!6 7 ,	'' 		""1%""A$4$45$U+HA AQA$5$5qzz1<<!,!8!8$@P@PRSR[R[!"qww

AKK!'!) * ,	'' 	 !**akk199=$U+HA AQAJJ0G0Gqyy!"qww

!"f!6 7 ,r#   c                r   \         P                  pR R/p. ROp\        4       R0p\        V4      pRp\        P
                  R 4       pV P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       VP                  VP                  R 4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       VP                  VP                  R 4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       VP                  \         P                  R	 4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       VP                  VP                  R
 4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       VP                  VP                  R 4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       VP                  VP                  R 4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       VP                  VP                  R 4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       VP                  VP                  R 4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       VP                  \         R 4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       VP                  \"        R 4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       VP                  \$        R 4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       VP                  \        R 4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       VP                  \&        R 4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  V! V4      R4       R# )rS   rT   Nc                     R # r   r   r  s   &r   r  /TestSingleDispatch.test_register_abc.<locals>.g	  r{  r#   r   c                     R # sizedr   r  s   &r   r\   6TestSingleDispatch.test_register_abc.<locals>.<lambda>&	      r#   r  c                     R # mutablemappingr   r  s   &r   r\   r  ,	  s    1Ar#   r  c                     R # )chainmapr   r  s   &r   r\   r  2	  s    Zr#   c                     R # )mutablesequencer   r  s   &r   r\   r  8	  s    2Cr#   r  c                     R # )
mutablesetr   r  s   &r   r\   r  >	  s    \r#   r  c                     R # mappingr   r  s   &r   r\   r  D	  s    )r#   c                     R # r  r   r  s   &r   r\   r  J	      :r#   r  c                     R # r  r   r  s   &r   r\   r  P	      er#   r  c                     R # ri   r   r  s   &r   r\   r  V	      Vr#   ri   c                     R # r6   r   r  s   &r   r\   r  \	  r  r#   r7   c                     R # )concrete-setr   r  s   &r   r\   r  b	  s    Nr#   r  c                     R # )
frozen-setr   r  s   &r   r\   r  h	  s    ,r#   r  c                     R # )r:  r   r  s   &r   r\   r  n	  s    gr#   r:  r  )r  r  r  	frozensetr   r  rh   r  r  r  r  r  
MutableSetr  r  r  ri   r7   r  r:  )r9   rU   r~   lr;  r   tr  s   &       r   test_register_abc$TestSingleDispatch.test_register_abc	  s   OO#JXtaL		!	!	 
"	1v&1v&1v&1v&1v&	

177/01w'1w'1w'1w'1w'	

1##%AB1/01w'1w'1w'1w'	

;'')?@1/01w'1w'1w'1w'	

1$$&CD1/01011w'1w'1w'	

1<<!9:1/01011|,1w'1w'	

199341/01011|,1w'1w'	

1::561/01011|,1w'1z*	

155+,1/01011|,1u%1z*	

4+,1v&1011|,1u%1z*	

4+,1v&1v&1|,1u%1z*	

3231v&1v&1~.1u%1z*	

9671v&1v&1~.1|,1z*	

5-.1v&1v&1~.1|,1w'r#   c           	        \         P                  p\        P                  p ! R  R\        4      p ! R RV4      pVP
                  P                   ! R R\        4      4       p ! R R\        4      p ! R R	WeV4      pWqP                  WeVP
                  WAP                  V\        .	p\        VP                  VP                  VP
                  .4       F  p	V P                  V! WyR
7      V4       K  	  VP                  VP                  VP                  VP
                  VP                  .p
V P                  V! WzR
7      V4       R# )c                       ] tR tRtRtR# ))TestSingleDispatch.test_c3_abc.<locals>.Aix	  r   Nr,   r   r#   r   r]  r  x	  r  r#   r]  c                   &   a  ] tR tRt o R tRtV tR# ))TestSingleDispatch.test_c3_abc.<locals>.Biz	  c                    ^ # r   r   rK   s   &r   rI  1TestSingleDispatch.test_c3_abc.<locals>.B.__len__{	  rK  r#   r   Nr-   r.   r/   r0   rI  r1   r=   r>   s   @r   r   r  z	        r#   r   c                       ] tR tRtRtR# ))TestSingleDispatch.test_c3_abc.<locals>.Ci}	  r   Nr,   r   r#   r   r  r  }	  rx  r#   r  c                       ] tR tRtRtR# ))TestSingleDispatch.test_c3_abc.<locals>.Di	  r   Nr,   r   r#   r   r  r  	  r  r#   r  c                   &   a  ] tR tRt o R tRtV tR# ))TestSingleDispatch.test_c3_abc.<locals>.Xi	  c                    R # r   r   rK   s   &r   r   2TestSingleDispatch.test_c3_abc.<locals>.X.__call__	  r  r#   r   Nr  r>   s   @r   r  r  	  r  r#   r  )abcsN)r  r  r   _c3_mror  r  r  r  r  r   rh   r  r  )r9   rU   r  r]  r   r  r  r  r   r  	many_abcss   &          r   test_c3_abcTestSingleDispatch.test_c3_abcu	  s    OO	 		 	 
			 	 
		 		a 	 zz1a!VL !''1::q{{!CDDS.9 E YYQ[[!**M	Q/:r#   c                     ! R  R\         4      p ! R RVR7      p ! R RV4      p\        P                  R 4       pVP                  V4      R 4       pV! 4       pV P	                  V! V4      R	4       R
# )c                   &   a  ] tR tRt o R tRtV tR# )1TestSingleDispatch.test_false_meta.<locals>.MetaAi	  c                    ^ # r   r   rK   s   &r   rI  9TestSingleDispatch.test_false_meta.<locals>.MetaA.__len__	  rK  r#   r   Nr  r>   s   @r   MetaAr  	  r	  r#   r  c                       ] tR tRtRtR# )-TestSingleDispatch.test_false_meta.<locals>.Ai	  r   Nr,   r   r#   r   r]  r  	  r  r#   r]  r  c                       ] tR tRtRtR# ).TestSingleDispatch.test_false_meta.<locals>.AAi	  r   Nr,   r   r#   r   AAr   	  r  r#   r!  c                     R # )zbase Ar   r|   s   &r   fun/TestSingleDispatch.test_false_meta.<locals>.fun	  s    r#   c                     R # )fun Ar   r|   s   &r   ry  -TestSingleDispatch.test_false_meta.<locals>._	      r#   r&  N)r   r   r  r  rh   )r9   r  r]  r!  r#  ry  aas   &      r   test_false_meta"TestSingleDispatch.test_false_meta	  ss    	D 		% 		 			!	!	 
"		a	 
	TR'*r#   c                   \         P                  p\        P                  R  4       p ! R RVP                  4      pV! 4       pV P                  V! V4      R4       VP                  VP                  R 4       VP                  VP                  R 4       VP                  VP                  R 4       VP                  VP                  R 4       V P                  V! V4      R4       VP                  P                  V4       V P                  V! V4      R4       VP                  P                  V4       V P                  V! V4      R4       VP                  P                  V4       V P                  V! V4      R	4        ! R
 R4      pV! 4       pV P                  V! V4      R4       VP                  P                  V4       V P                  V! V4      R4       VP                  P                  V4       V P                  \        4      ;_uu_ 4       pV! V4       RRR4       V P                  \        XP                  4      R'4        ! R RVP                  4      pV! 4       p	V P                  V! V	4      R4       VP                  P                  V4       V P                  V! V	4      R4       VP                  P                  V4       V P                  V! V	4      R	4       \        P                  R 4       p
V
P                  VP                  4      R 4       pV
P                  VP                  4      R 4       pV P                  \        4      ;_uu_ 4       pV
! \         P                  ! R 4      4       RRR4       V P                  \        XP                  4      R(4        ! R R\         P                  4      pVP                   P                  V4       \        P                  R 4       pVP                  VP"                  4      R 4       pVP                  VP                   4      R 4       pV! 4       pV P                  V! V4      R4        ! R R4      p ! R RVVP                  4      pV! 4       pV P                  V
! V4      R4       VP                  P                  V4       V P                  V
! V4      R4        ! R R4      pV! 4       pV P                  V
! V4      R4       VP                  P                  V4       V P                  \        4      ;_uu_ 4       pV
! V4       RRR4       V P                  \        XP                  4      R(4        ! R  R!VP                  V4      p\        P                  R" 4       pVP                  V4      R# 4       pVP                  VP                  4      R$ 4       pV! 4       pV P                  V! V4      R%4       VP                  P                  V4       V P                  V! V4      R&4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i))c                     R # r   r   args   &r   r  0TestSingleDispatch.test_mro_conflicts.<locals>.g	  r{  r#   c                   &   a  ] tR tRt o R tRtV tR# )0TestSingleDispatch.test_mro_conflicts.<locals>.Oi	  c                    ^ # r   r   rK   s   &r   rI  8TestSingleDispatch.test_mro_conflicts.<locals>.O.__len__	  rK  r#   r   Nr  r>   s   @r   Or2  	  r	  r#   r5  r   c                     R # )iterabler   r.  s   &r   r\   7TestSingleDispatch.test_mro_conflicts.<locals>.<lambda>	  r  r#   c                     R # 	containerr   r.  s   &r   r\   r8  	  s    Kr#   c                     R # r  r   r.  s   &r   r\   r8  	  r  r#   c                     R # r  r   r.  s   &r   r\   r8  	  r  r#   r  r  c                       ] tR tRtRtR# )0TestSingleDispatch.test_mro_conflicts.<locals>.Pi	  r   Nr,   r   r#   r   Pr?  	  r  r#   r@  r7  Nc                   &   a  ] tR tRt o R tRtV tR# )0TestSingleDispatch.test_mro_conflicts.<locals>.Qi	  c                    ^ # r   r   rK   s   &r   rI  8TestSingleDispatch.test_mro_conflicts.<locals>.Q.__len__	  rK  r#   r   Nr  r>   s   @r   QrB  	  r	  r#   rE  c                     R # r   r   r.  s   &r   h0TestSingleDispatch.test_mro_conflicts.<locals>.h	  r{  r#   c                     R # r  r   r.  s   &r   ry  0TestSingleDispatch.test_mro_conflicts.<locals>._	  r(  r#   c                     R # r:  r   r.  s   &r   ry  rJ  	      r#   c                      ^ # r   r   r   r#   r   r\   r8  	  s    ar#   c                       ] tR tRtRtR# )0TestSingleDispatch.test_mro_conflicts.<locals>.Ri	  r   Nr,   r   r#   r   RrO  	  r  r#   rP  c                     R # r   r   r.  s   &r   r  0TestSingleDispatch.test_mro_conflicts.<locals>.i	  r{  r#   c                     R # r  r   r.  s   &r   ry  rJ  	      r#   c                     R # r  r   r.  s   &r   ry  rJ  	      r#   r  c                       ] tR tRtRtR# )0TestSingleDispatch.test_mro_conflicts.<locals>.Si	  r   Nr,   r   r#   r   SrX  	  r  r#   rY  c                   &   a  ] tR tRt o R tRtV tR# )0TestSingleDispatch.test_mro_conflicts.<locals>.Ti	  c                    ^ # r   r   rK   s   &r   rI  8TestSingleDispatch.test_mro_conflicts.<locals>.T.__len__	  rK  r#   r   Nr  r>   s   @r   r  r[  	  r	  r#   r  c                   &   a  ] tR tRt o R tRtV tR# )0TestSingleDispatch.test_mro_conflicts.<locals>.Ui	  c                    ^ # r   r   rK   s   &r   rI  8TestSingleDispatch.test_mro_conflicts.<locals>.U.__len__	  rK  r#   r   Nr  r>   s   @r   Ur_  	  r	  r#   rb  c                   &   a  ] tR tRt o R tRtV tR# )0TestSingleDispatch.test_mro_conflicts.<locals>.Vi
  c                    ^ # r   r   rK   s   &r   rI  8TestSingleDispatch.test_mro_conflicts.<locals>.V.__len__
  rK  r#   r   Nr  r>   s   @r   Vrd  
  r	  r#   rg  c                     R # r   r   r.  s   &r   j0TestSingleDispatch.test_mro_conflicts.<locals>.j
  r{  r#   c                     R # r;  r   r.  s   &r   ry  rJ  
  s    r#   c                     R # r:  r   r.  s   &r   ry  rJ  
  rL  r#   r;  r;  )z]Ambiguous dispatch: <class 'collections.abc.Container'> or <class 'collections.abc.Iterable'>z]Ambiguous dispatch: <class 'collections.abc.Iterable'> or <class 'collections.abc.Container'>)zZAmbiguous dispatch: <class 'collections.abc.Container'> or <class 'collections.abc.Sized'>zZAmbiguous dispatch: <class 'collections.abc.Sized'> or <class 'collections.abc.Container'>)r  r  r   r  r  rh   r  r  r  r  rt   r  r	  r   r  r  r  r  )r9   rU   r  r5  rz  r@  rl   re_onerE  qrG  ry  re_tworP  r  r<  rY  r  r  rb  ure_threerg  ri  r  s   &                        r   test_mro_conflicts%TestSingleDispatch.test_mro_conflicts	  s   OO		!	!	 
"		 	 C1v&	

1::56	

1;; 78	

177/0	

155+,1w'	

A1w'	Q1w'	q1u%	 	C1v&	

A1z*	Q|,,aD -  !9	
	 	 C1w'	

A1w'	q1u%		!	!	 
"		
AGG		 
		
AKK	 	 
!	 |,,k%%i01 -  !9	
	'' 		""1%		!	!	 
"		
A$$	%	 
&		
A%%	&	 
'	C1z*	 		177 	 C1w'	Q1w'	 	 C1w'	Q|,,aD -""#9	
	 	 
	!	!	 
"		
A	 
		
AKK	 	 
!	C1s#	Q1{+A -,,@ -,,P -,,s$   	XX$"	X8X!	$X5	8Y		c                  aa	 ^ RI Hp ^ RIp ! V3R lRV4      oS! 4       o	\        P                  ! VRV	3R l4      ;_uu_ 4        \         P
                  p\        P                  R 4       p/ p. pV P                  \        S	4      ^ 4       V P                  V! V4      R4       V P                  \        S	4      ^4       V P                  S	P                  . 4       V P                  S	P                  \        .4       V P                  S	P                  \        ,          VP                  \        ,          4       V P                  V! V4      R4       V P                  \        S	4      ^4       V P                  S	P                  . 4       V P                  S	P                  \        \         .4       V P                  S	P                  \        ,          VP                  \        ,          4       V P                  S	P                  \         ,          VP                  \        ,          4       V P                  S	P                  \        ,          S	P                  \         ,          4       V P                  V! V4      R4       V P                  V! V4      R4       V P                  S	P                  \         \        .4       V P                  S	P                  \        \         .4       VP#                  \         R	 4       V P                  S	P                  \         \        .4       V P                  \        S	4      ^ 4       V P                  V! V4      R4       V P                  \        S	4      ^4       V P                  S	P                  \         \        .4       V P                  S	P                  \        \         \        .4       V P                  S	P                  \        ,          \        P$                  ! \        VP                  4      4       V P                  V! V4      R
4       V P                  \        S	4      ^4       V P                  S	P                  \         \        .4       V P                  S	P                  \        \         \        \         .4       V P                  S	P                  \         ,          \        P$                  ! \         VP                  4      4        ! R R4      pVP&                  P#                  V4       V P                  V! V4      R4       V P                  V! V4      R
4       V P                  S	P                  \         \        \        \         .4       V P                  S	P                  \        \         \        \         .4       VP#                  VP(                  R 4       V P                  \        S	4      ^ 4       V P                  V! V4      R4       V P                  \        S	4      ^4       V P                  S	P                  \         \        \        \         .4       V P                  S	P                  \        \         \        \         \        .4       V P                  V! V4      R
4       V P                  \        S	4      ^4       V P                  S	P                  \         \        \        \         .4       V P                  S	P                  \        \         \        \         \        \         .4       V P                  V! V4      R
4       V P                  V! V4      R4       V P                  S	P                  \         \        \        \         \         \        .4       V P                  S	P                  \        \         \        \         \        \         .4       VP+                  \         4       VP+                  \        4       V P                  S	P                  \         \        \        \         \         \        \         \        .4       V P                  S	P                  \        \         \        \         \        \         .4       VP,                  P#                  V4       V P                  \        S	4      ^4       V P                  V! V4      R
4       V P                  \        S	4      ^4       VP#                  VP&                  R 4       V P                  \        S	4      ^ 4       V P                  V! V4      R4       V P                  \        S	4      ^4       V P                  V! V4      R
4       V P                  \        S	4      ^4       VP#                  \        R 4       V P                  V! V4      R4       V P                  V! V4      R
4       VP/                  4        V P                  \        S	4      ^ 4       RRR4       R#   + '       g   i     R# ; i)r   )UserDictNc                   H   <a a ] tR tRt oVV 3R ltR tR tR tRtVt	V ;t
# )?TestSingleDispatch.test_cache_invalidation.<locals>.TracingDicti"
  c                D   < \         SV `  ! V/ VB  . V n        . V n        R # r   )r  r  set_opsget_ops)r9   r    r  TracingDictr  s   &*,r   r  HTestSingleDispatch.test_cache_invalidation.<locals>.TracingDict.__init__#
  s%    k414B6B!!r#   c                b    V P                   V,          pV P                  P                  V4       V# r   )r   r{  r  )r9   rO  results   && r   rP  KTestSingleDispatch.test_cache_invalidation.<locals>.TracingDict.__getitem__'
  s&    3##C(r#   c                X    V P                   P                  V4       W P                  V&   R # r   )rz  r  r   )r9   rO  rs  s   &&&r   __setitem__KTestSingleDispatch.test_cache_invalidation.<locals>.TracingDict.__setitem__+
  s    ##C(!&		#r#   c                :    V P                   P                  4        R # r   )r   r  rK   s   &r   r  ETestSingleDispatch.test_cache_invalidation.<locals>.TracingDict.clear.
  s    		!r#   )r{  rz  )r-   r.   r/   r0   r  rP  r  r  r1   r=   r  )r  r?   r|  s   @@r   r|  rx  "
  s     "'" "r#   r|  WeakKeyDictionaryc                     < S # r   r   )tds   r   r\   <TestSingleDispatch.test_cache_invalidation.<locals>.<lambda>2
  s    Rr#   c                     R # r   r   r.  s   &r   r  5TestSingleDispatch.test_cache_invalidation.<locals>.g4
      r#   r   c                     R # r6   r   r.  s   &r   r\   r  J
      r#   r7   c                       ] tR tRtRtR# )5TestSingleDispatch.test_cache_invalidation.<locals>.XiY
  r   Nr,   r   r#   r   r  r  Y
  s    r#   r  c                     R # r  r   r.  s   &r   r\   r  a
  s    Gr#   r  c                     R # r  r   r.  s   &r   r\   r  x
  s    5Er#   r  c                     R # r  r   r.  s   &r   r\   r  ~
  r  r#   ri   )r  rv  rG   r   	swap_attrr  r   r  rh   r   r{  rz  ri   r   registryr  r7   r  
_find_implr  r  r  r  _clear_cache)
r9   rv  rG   rU   r  r~   r  r  r|  r  s
   &       @@r   test_cache_invalidation*TestSingleDispatch.test_cache_invalidation
  s   (	"( 	" ]w(;ZHHA%% &AASWa(QqT6*SWa(RZZ,RZZ$0RWWT]AJJv,>?QqT6*SWa(RZZ,RZZ$6RWWT]AJJv,>?RWWT]AJJv,>?RWWT]BGGDM:QqT6*QqT6*RZZ$6RZZ$6JJt/0RZZ$6SWa(QqT6*SWa(RZZ$6RZZ$d);<RWWT]&11$

CEQqT6*SWa(RZZ$6RZZ$dD)ABRWWT]&11$

CE %%a(QqT6*QqT6*RZZ$dD)ABRZZ$dD)ABJJqww 34SWa(QqT7+SWa(RZZ$dD)ABRZZ$dD$)GHQqT6*SWa(RZZ$dD)ABRZZ$dD$)MNQqT6*QqT7+RZZ$dD$)MNRZZ$dD$)MNJJtJJtRZZ$dD$*.*6 7RZZ$dD$)MNLL!!!$SWa(QqT6*SWa(JJq'')EFSWa(QqT#34SWa(QqT6*SWa(JJt/0QqT6*QqT6*NNSWa(a IHHHs   e7gg	c                   \         P                  R  4       pVP                  R R l4       pVP                  R R l4       pV P                  V! R4      R4       V P                  V! R^/4      R4       V P                  V! . RO4      R	4       V P                  V! R4      R	4       V P                  V! R
4      R	4       VP                  \        4       ! R R4      4       pV P                  V! R
4      R
4       R# )c                     R # r   r   r.  s   &r   r  .TestSingleDispatch.test_annotations.<locals>.i
  r{  r#   c                L    V ^8  d   QhR\         P                  P                  /# r_   r/  )r  r  r  )r  s   "r   r
  9TestSingleDispatch.test_annotations.<locals>.__annotate__
  s     	 	;??** 	r#   c                     R # r  r   r.  s   &r   ry  .TestSingleDispatch.test_annotations.<locals>._
  rT  r#   c                    V ^8  d   QhRR/# )r_   r/  zcollections.abc.Sequencer   )r  s   "r   r
  r  
  s     	 	- 	r#   c                     R # r  r   r.  s   &r   ry  r  
  rV  r#   Nr   rS   r  r  r   c                   ,   a  ] tR tRt o R tR tRtV tR# )z.TestSingleDispatch.test_annotations.<locals>._i
  c                    Wn         R # r   r.  r9   r/  s   &&r   r  7TestSingleDispatch.test_annotations.<locals>._.__init__
      r#   c                     V P                   V8H  # r   r.  r8   s   &&r   rD  5TestSingleDispatch.test_annotations.<locals>._.__eq__
  s    xx5((r#   r.  N)r-   r.   r/   r0   r  rD  r1   r=   r>   s   @r   ry  r  
  s     ) )r#   ry  r  )r   r  r  rh   r   )r9   r  ry  s   &  r   test_annotations#TestSingleDispatch.test_annotations
  s    		!	!	 
"		
	 
		
	 
	4&)C8i09z29z25:. 
C	) 	) 
	) 	55)r#   c                    ! R  R4      pV! 4       pVP                  ^ 4       V P                  VP                  R4       V! 4       pV P                  VR4       VP                  R4       V P                  VP                  R4       V! 4       pV P                  VR4       VP                  R4       V P                  VP                  R4       V! 4       pV P                  VR4       R# )	c                      a  ] tR tRt o ]P
                  R 4       t]P                  ]4      R 4       t	]P                  ]
4      R 4       t	RtV tR# )2TestSingleDispatch.test_method_register.<locals>.Ai
  c                    R V n         R# )r   Nr.  r  s   &&r   r  4TestSingleDispatch.test_method_register.<locals>.A.t
  s	    !r#   c                    R V n         R# )r   Nr.  r  s   &&r   ry  4TestSingleDispatch.test_method_register.<locals>.A._
  	     r#   c                    R V n         R# )r   Nr.  r  s   &&r   ry  r  
  r  r#   r.  N)r-   r.   r/   r0   r   singledispatchmethodr  r  r   ry  r   r1   r=   r>   s   @r   r]  r  
  sQ     ++" ,"ZZ_! !ZZ_! !r#   r]  r   r/  r   r   r  r   N)r  rh   r/  r  )r9   r]  rS   r)  s   &   r   test_method_register'TestSingleDispatch.test_method_register
  s    		! 		! C	A&Sb%(	B&Sb%(	C'Sb%(r#   c                     ! R  R4      pV! 4       pV P                  VP                  ^ 4      4       V P                  VP                  R4      4       V P                  VP                  R4      R4       R# )c                      a  ] tR tRt o ]P
                  ]R 4       4       t]P                  ]	4      ]R 4       4       t
]P                  ]4      ]R 4       4       t
RtV tR# )8TestSingleDispatch.test_staticmethod_register.<locals>.Ai
  c                    V # r   r   r.  s   &r   r  :TestSingleDispatch.test_staticmethod_register.<locals>.A.t
  	     
r#   c                "    \        V \        4      # r   r  r   r.  s   &r   ry  :TestSingleDispatch.test_staticmethod_register.<locals>.A._
       "#s++r#   c                "    \        V \        4      # r   r  r   r.  s   &r   ry  r  
  r  r#   r   N)r-   r.   r/   r0   r   r  r[  r  r  r   ry  r   r1   r=   r>   s   @r   r]  r  
  si     ++  ,ZZ_,  ,ZZ_,  ,r#   r]  r   r  Nrf   r  rh   r^  s   &  r   test_staticmethod_register-TestSingleDispatch.test_staticmethod_register
  U    	, 	, CAB S3'r#   c                l     ! R  R4      pV! 4       pV P                  VP                  ^^4      ^4       R# )c                   x   a  ] tR tRt o Rt]P                  R 4       t]P                  V 3R lR l4       t	Rt
V tR# )3TestSingleDispatch.test_slotted_class.<locals>.Sloti
  c                    R # r   r   r9   itemr/  s   &&&r   go6TestSingleDispatch.test_slotted_class.<locals>.Slot.go
  r  r#   c                    < V ^8  d   QhRS[ /# r_   r  rW  )r  r?   s   "r   r
  @TestSingleDispatch.test_slotted_class.<locals>.Slot.__annotate__
  s     " "c "r#   c                    W,           # r   r   r  s   &&&r   ry  5TestSingleDispatch.test_slotted_class.<locals>.Slot._
  s
    z!r#   r   NrR   )r-   r.   r/   r0   	__slots__r   r  r  r  ry  r1   r=   r>   s   @r   Slotr  
  s:     "I++ , [[" "r#   r  Nrh   r  r9   r  r;  s   &  r   test_slotted_class%TestSingleDispatch.test_slotted_class
  s/    	" 	" FaQ'r#   c                     ! R  R4      pV! 4       pV P                  VP                  ^^4      ^4       V P                  VP                  ^^4      ^4       R# )c                      a  ] tR tRt o Rt]P                  ]R 4       4       t]P                  ]V 3R lR l4       4       t
RtV tR# )?TestSingleDispatch.test_classmethod_slotted_class.<locals>.Sloti
  c                    R # r   r   r  r  r/  s   &&&r   r  BTestSingleDispatch.test_classmethod_slotted_class.<locals>.Slot.go
       r#   c                    < V ^8  d   QhRS[ /# r  rW  )r  r?   s   "r   r
  LTestSingleDispatch.test_classmethod_slotted_class.<locals>.Slot.__annotate__
  s     " "S "r#   c                    W,           # r   r   r  s   &&&r   ry  ATestSingleDispatch.test_classmethod_slotted_class.<locals>.Slot._
  s     z!r#   r   NrR   )r-   r.   r/   r0   r  r   r  rY  r  r  ry  r1   r=   r>   s   @r   r  r  
  sJ     "I++  , [["  "r#   r  Nr  r  s   &  r   test_classmethod_slotted_class1TestSingleDispatch.test_classmethod_slotted_class
  sI    
	" 
	" FaQ'A*r#   c                    ! R  R4      pV! 4       pV P                  VP                  ^ 4      4       V P                  VP                  R4      4       V P                  VP                  R4      R4       V P                  VP                  ^ 4      4       V P                  VP                  R4      4       V P                  VP                  R4      R4       R# )c                      a  ] tR tRt o R.t]P                  ]R 4       4       t]P                  ]
4      ]R 4       4       t]P                  ]4      ]R 4       4       tRtV tR# )=TestSingleDispatch.test_staticmethod_slotted_class.<locals>.Ai
  rS   c                    V # r   r   r.  s   &r   r  ?TestSingleDispatch.test_staticmethod_slotted_class.<locals>.A.t
  r  r#   c                "    \        V \        4      # r   r  r.  s   &r   ry  ?TestSingleDispatch.test_staticmethod_slotted_class.<locals>.A._
  r  r#   c                "    \        V \        4      # r   r  r.  s   &r   ry  r  
  r  r#   r   N)r-   r.   r/   r0   r  r   r  r[  r  r  r   ry  r   r1   r=   r>   s   @r   r]  r  
  sp     I++  ,ZZ_,  ,ZZ_,  ,r#   r]  r   r  Nr  r^  s   &  r   test_staticmethod_slotted_class2TestSingleDispatch.test_staticmethod_slotted_class
  s    	, 	, CAB S3'AB S3'r#   c                     ! R  R4      pV! 4       pRVP                   n        V! 4       pV P                  \        4      ;_uu_ 4        VP                   P                   RRR4       R#   + '       g   i     R# ; i)c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )6TestSingleDispatch.test_assignment_behavior.<locals>.Ai  c                    V # r   r   r.  s   &r   r  8TestSingleDispatch.test_assignment_behavior.<locals>.A.t  s    
r#   r   N	r-   r.   r/   r0   r   r  r  r1   r=   r>   s   @r   r]  r    s     ++ ,r#   r]  r   N)r  r   rt   rm  )r9   r]  rS   a2s   &   r   test_assignment_behavior+TestSingleDispatch.test_assignment_behavior  sR    	 	
 CS~..DDHH /...s   A((A9	c                    ! R  R4      pV P                  VP                  ^ 4      P                  R4       V P                  VP                  R4      P                  R4       V P                  VP                  R4      P                  R4       R# )c                      a  ] tR tRt o R t]P                  ]R 4       4       t]P                  ]
4      ]R 4       4       t]P                  ]4      ]R 4       4       tRtV tR# )7TestSingleDispatch.test_classmethod_register.<locals>.Ai  c                    Wn         R # r   r.  r  s   &&r   r  @TestSingleDispatch.test_classmethod_register.<locals>.A.__init__  r  r#   c                    V ! R 4      # r   r   r  r/  s   &&r   r  9TestSingleDispatch.test_classmethod_register.<locals>.A.t       6{"r#   c                    V ! R 4      # rW  r   r  s   &&r   ry  9TestSingleDispatch.test_classmethod_register.<locals>.A._       5z!r#   c                    V ! R 4      # r   r   r  s   &&r   ry  r    r  r#   r.  N)r-   r.   r/   r0   r  r   r  rY  r  r  r   ry  r   r1   r=   r>   s   @r   r]  r    sp      ++#  ,#ZZ_"  "ZZ_"  "r#   r]  r   r   r   r  r   Nrh   r  r/  rK  s   & r   test_classmethod_register,TestSingleDispatch.test_classmethod_register  b    	" 	"" 	QU+Re,Sv.r#   c                    ! R  R4      pVP                   P                  \        4      \        R 4       4       pVP                   P                  \        4      \        R 4       4       pV P                  VP                  ^ 4      P                  R4       V P                  VP                  R4      P                  R4       V P                  VP                  R4      P                  R4       R	# )
c                   T   a  ] tR tRt o R t]P                  ]R 4       4       tRt	V t
R# )4TestSingleDispatch.test_callable_register.<locals>.Ai(  c                    Wn         R # r   r.  r  s   &&r   r  =TestSingleDispatch.test_callable_register.<locals>.A.__init__)  r  r#   c                    V ! R 4      # r   r   r  s   &&r   r  6TestSingleDispatch.test_callable_register.<locals>.A.t,  r  r#   r.  N)r-   r.   r/   r0   r  r   r  rY  r  r1   r=   r>   s   @r   r]  r  (  s,      ++#  ,#r#   r]  c                     V ! R 4      # rW  r   r  s   &&r   ry  4TestSingleDispatch.test_callable_register.<locals>._1       u:r#   c                     V ! R 4      # r	  r   r  s   &&r   ry  r  5  r  r#   r   r   r   r  r   N)r  r  r   rY  r   rh   r/  )r9   r]  ry  s   &  r   test_callable_register)TestSingleDispatch.test_callable_register'  s    	# 	# 
c			 
 
		
c			 
 
	 	QU+Re,Sv.r#   c                ^    ! R  R\         P                  R7      pV P                  VP                  P                  4       V P                  VP
                  R,          P                  4       V P                  \        4      ;_uu_ 4        V! 4        RRR4       R#   + '       g   i     R# ; i)c                   b   a  ] tR tRt o ]P
                  ]P                  R 4       4       tRt	V t
R# )ATestSingleDispatch.test_abstractmethod_register.<locals>.Abstracti?  c                    R # r   r   r  s   &&&r   r  ETestSingleDispatch.test_abstractmethod_register.<locals>.Abstract.addA  r  r#   r   N)r-   r.   r/   r0   r   r  r  r  r  r1   r=   r>   s   @r   r  r  ?  s+     ++   ,r#   r  r  r  N)r  r  rf   r  r  r'   rt   ru   )r9   r  s   & r   test_abstractmethod_register/TestSingleDispatch.test_abstractmethod_register>  sl    	 	 	99:))%0EEFy))J *)))s   	BB,	c                     ! R  R4      pV! 4       pV P                  VP                  ^ 4      R4       V P                  VP                  R4      R4       V P                  VP                  R4      R4       R# )c                      a  ] tR tRt o ]P
                  R 4       t]P                  V 3R lR l4       t]P                  V 3R lR l4       tRt	V t
R# )	4TestSingleDispatch.test_type_ann_register.<locals>.AiM  c                    R # r   r   r  s   &&r   r  6TestSingleDispatch.test_type_ann_register.<locals>.A.tN  r  r#   c                    < V ^8  d   QhRS[ /# r  rW  )r  r?   s   "r   r
  ATestSingleDispatch.test_type_ann_register.<locals>.A.__annotate__R        S r#   c                    R # rW  r   r  s   &&r   ry  6TestSingleDispatch.test_type_ann_register.<locals>.A._Q      r#   c                    < V ^8  d   QhRS[ /# r  r	  )r  r?   s   "r   r
  r(  U  r)  r#   c                    R # r	  r   r  s   &&r   ry  r+  T  r,  r#   r   N)r-   r.   r/   r0   r   r  r  r  ry  r1   r=   r>   s   @r   r]  r$  M  sI     ++ ,ZZ ZZ r#   r]  r   r   r   r  r   N)rh   r  r^  s   &  r   test_type_ann_register)TestSingleDispatch.test_type_ann_registerL  s]    		 		 CQ'R%(S6*r#   c                     ! R  R4      pV! 4       pV P                  VP                  ^ 4      4       V P                  VP                  R4      4       V P                  VP                  R4      R4       R# )c                      a  ] tR tRt o ]P
                  ]R 4       4       t]P                  ]V 3R lR l4       4       t	]P                  ]V 3R lR l4       4       t	Rt
V tR# )	ATestSingleDispatch.test_staticmethod_type_ann_register.<locals>.Ai^  c                    V # r   r   r.  s   &r   r  CTestSingleDispatch.test_staticmethod_type_ann_register.<locals>.A.t_  r  r#   c                    < V ^8  d   QhRS[ /# r  rW  )r  r?   s   "r   r
  NTestSingleDispatch.test_staticmethod_type_ann_register.<locals>.A.__annotate__e       , ,s ,r#   c                "    \        V \        4      # r   r  r.  s   &r   ry  CTestSingleDispatch.test_staticmethod_type_ann_register.<locals>.A._c  r  r#   c                    < V ^8  d   QhRS[ /# r  r	  )r  r?   s   "r   r
  r7  i  r8  r#   c                "    \        V \        4      # r   r  r.  s   &r   ry  r:  g  r  r#   r   N)r-   r.   r/   r0   r   r  r[  r  r  ry  r1   r=   r>   s   @r   r]  r3  ^  sa     ++  ,ZZ,  ,ZZ,  ,r#   r]  r   r  Nr  r^  s   &  r   #test_staticmethod_type_ann_register6TestSingleDispatch.test_staticmethod_type_ann_register]  r  r#   c                    ! R  R4      pV P                  VP                  ^ 4      P                  R4       V P                  VP                  R4      P                  R4       V P                  VP                  R4      P                  R4       R# )c                      a  ] tR tRt o R t]P                  ]R 4       4       t]P                  ]V 3R lR l4       4       t
]P                  ]V 3R lR l4       4       t
RtV tR	# )
@TestSingleDispatch.test_classmethod_type_ann_register.<locals>.Air  c                    Wn         R # r   r.  r  s   &&r   r  ITestSingleDispatch.test_classmethod_type_ann_register.<locals>.A.__init__s  r  r#   c                    V ! R 4      # r   r   r  s   &&r   r  BTestSingleDispatch.test_classmethod_type_ann_register.<locals>.A.tv  r  r#   c                    < V ^8  d   QhRS[ /# r  rW  )r  r?   s   "r   r
  MTestSingleDispatch.test_classmethod_type_ann_register.<locals>.A.__annotate__|       " "C "r#   c                    V ! R 4      # rW  r   r  s   &&r   ry  BTestSingleDispatch.test_classmethod_type_ann_register.<locals>.A._z  r  r#   c                    < V ^8  d   QhRS[ /# r  r	  )r  r?   s   "r   r
  rG    rH  r#   c                    V ! R 4      # r	  r   r  s   &&r   ry  rJ  ~  r  r#   r.  N)r-   r.   r/   r0   r  r   r  rY  r  r  ry  r1   r=   r>   s   @r   r]  rA  r  sh      ++#  ,#ZZ"  "ZZ"  "r#   r]  r   r   r   r  r   Nr
  rK  s   & r   "test_classmethod_type_ann_register5TestSingleDispatch.test_classmethod_type_ann_registerq  r  r#   c                    ! R  R4      pVP                   R,           pVP                  V! 4       P                  VP                  V! 4       P                  VP                  V! 4       P                  3 F  pV P	                  VR7      ;_uu_ 4        V P                  VP                  \        4       V P                  \        V4      P                  R4       V P                  VP                   W#P                  ,           4       T P                  VP                  \        P                  '       d   RMR4       V P                  VP                  R,          \        4       RRR4       K  	  V P                  VP                  P                  R4       V P                  V! 4       P                  P                  R4       V P                  VP                  P                  R	4       V P                  V! 4       P                  P                  R	4       V P                  VP                  P                  R
4       V P                  V! 4       P                  P                  R
4       R#   + '       g   i     EK  ; i)c                      a  ] tR tRt o ]P
                  V 3R lR l4       t]P
                  ]V 3R lR l4       4       t]P
                  ]	V 3R lR l4       4       t
RtV tR	# )
=TestSingleDispatch.test_method_wrapping_attributes.<locals>.Ai  c                &   < V ^8  d   QhRS[ RS[/# r_   r/  rI  rJ  )r  r?   s   "r   r
  JTestSingleDispatch.test_method_wrapping_attributes.<locals>.A.__annotate__  s            r#   c                    \        V4      # My function docstringr	  r  s   &&r   r%   BTestSingleDispatch.test_method_wrapping_attributes.<locals>.A.func       3xr#   c                &   < V ^8  d   QhRS[ RS[/# rS  rJ  )r  r?   s   "r   r
  rT    s        3  3  r#   c                    \        V4      # rV  r	  r  s   &&r   cls_funcFTestSingleDispatch.test_method_wrapping_attributes.<locals>.A.cls_func       3xr#   c                &   < V ^8  d   QhRS[ RS[/# rS  rJ  )r  r?   s   "r   r
  rT    s            r#   c                    \        V 4      # rV  r	  r.  s   &r   static_funcITestSingleDispatch.test_method_wrapping_attributes.<locals>.A.static_func  r^  r#   r   N)r-   r.   r/   r0   r   r  r%   rY  r\  r[  ra  r1   r=   r>   s   @r   r]  rQ    sa     ++  ,  ++   ,  ++   , r#   r]  r  rX  r   rW  Nr/  r%   r\  ra  )r/   r%   r\  ra  r  rh   r.   r-   r   r%  r   HAVE_PY_DOCSTRINGSr  r   )r9   r]  prefixrX  s   &   r   test_method_wrapping_attributes2TestSingleDispatch.test_method_wrapping_attributes  s   	  	   #%FFCHHJJCLLMMCOO
D 4((  (;  d!6!6D  !2!2F]]4JK  %,%?%?%? #:'+.   !5!5e!<cB )(
$ 	&1**F3,,j9..
;//?11=A )((s   CII.c                   aa  ! R  R4      o ! R R4      o ! VV3R lR4      pV P                  \        VP                  R,          4      RVP                   R24       V P                  \        VP                  R	,          4      RVP                   R
24       V P                  \        VP                  R,          4      RVP                   R24       V P                  \        VP                  R,          4      R4       V P                  \        VP                  R,          4      R4       V P                  \        VP                  4      RVP                   R24       V P                  \        VP
                  4      RVP                   R
24       V P                  \        VP                  4      RVP                   R24       V P                  \        VP                  4      R4       V P                  \        VP                  4      R4       V! 4       pV P                  \        VP                  4      RVP                   RV: R24       V P                  \        VP
                  4      RVP                   RV: R24       V P                  \        VP                  4      RVP                   RV: R24       V P                  \        VP                  4      RV: R24       V P                  \        VP                  4      RV: R24       R# )c                   &   a  ] tR tRt o R tRtV tR# )5TestSingleDispatch.test_method_repr.<locals>.Callablei  c                    R # r   r   r9   r    s   &*r   r   >TestSingleDispatch.test_method_repr.<locals>.Callable.__call__  r  r#   r   Nr  r>   s   @r   r  rj    r  r#   r  c                   *   a  ] tR tRt o Rt R tRtV tR# )=TestSingleDispatch.test_method_repr.<locals>.CallableWithNamei  
NOQUALNAMEc                    R # r   r   rl  s   &*r   r   FTestSingleDispatch.test_method_repr.<locals>.CallableWithName.__call__  r  r#   r   Nr  r>   s   @r   CallableWithNamero    s     #H r#   rs  c                     <a  ] tR tRt o ]P
                  R 4       t]P
                  ]R 4       4       t]P
                  ]	R 4       4       t
]P
                  !  Z! 4       4      t]P
                  !  Z! 4       4      tRtV tR# ).TestSingleDispatch.test_method_repr.<locals>.Ai  c                    R # r   r   r  s   &&r   r%   3TestSingleDispatch.test_method_repr.<locals>.A.func  r  r#   c                    R # r   r   r  s   &&r   r\  7TestSingleDispatch.test_method_repr.<locals>.A.cls_func  r  r#   c                    R # r   r   r.  s   &r   ra  :TestSingleDispatch.test_method_repr.<locals>.A.static_func  r  r#   r   N)r-   r.   r/   r0   r   r  r%   rY  r\  r[  ra  no_qualnameno_namer1   r=   )r?   r  rs  s   @r   r]  ru    s     ++ ,++  ,++  , $889I9KLK44XZ@Gr#   r]  r%   z#<single dispatch method descriptor z.func>r\  z
.cls_func>ra  z.static_func>r|  z.<single dispatch method descriptor NOQUALNAME>r}  z%<single dispatch method descriptor ?>z<single dispatch method z#<single dispatch method NOQUALNAME>z<single dispatch method ?>z<bound single dispatch method z	.func of >z.cls_func of z.static_func of z,<bound single dispatch method NOQUALNAME of z#<bound single dispatch method ? of N)	rh   r   r'   r/   r%   r\  ra  r|  r}  )r9   r]  rS   r  rs  s   &  @@r   test_method_repr#TestSingleDispatch.test_method_repr  s   	 		 	
	A 	A" 	ajj011!..1AH	Jajj451!..1AL	Najj781!..1AO	Qajj78<	?ajj343	6 	aff&q~~&6f=	?ajj)&q~~&6jA	Camm,&q~~&6mD	Famm,1	4aii(	+ Caff,Q^^,<IaU!L	Najj),Q^^,<M!aP	Ramm,,Q^^,<<LQEQRS	Uamm,:1%qA	Caii1!a8	:r#   c           
     n  a R  o ! V3R lR4      p ! V3R lR4      pVP                  ^4      ;_uu_ 4       pTpRRR4       VP                  ^4      ;_uu_ 4       pTpRRR4       V P                  XX4       V P                  VR4       V P                  VP                  ^4      VP                  ^4      4       V P                  VP                  ^4      R4       R F  pV P                  VR	7      ;_uu_ 4        V P                  \	        W&4      P
                  \	        W4      P
                  4       V P                  \	        V! 4       V4      P
                  \	        V! 4       V4      P
                  4       RRR4       K  	  VP                   V! 4       P                   VP                  V! 4       P                  3 F  pV P                  VR
7      ;_uu_ 4        T P                  VP                  \        P                  '       d   RMR4       V P                  VP                  R,          \        4       RRR4       K  	  V P                  VP                   P
                  R4       V P                  V! 4       P                   P
                  R4       V P                  VP                  P
                  R4       V P                  V! 4       P                  P
                  R4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EKA  ; i  + '       g   i     EKx  ; i)c                 p   a V P                   o\        \        P                  ! S4      V3R  l4       4       pV# )c                     < S! V / VB # r   r   )r    r  r  s   *,r   r  gTestSingleDispatch.test_double_wrapped_methods.<locals>.classmethod_friendly_decorator.<locals>.wrapper  s     ///r#   )__func__rY  r   rt  )r%   r  r  s   & @r   classmethod_friendly_decoratorVTestSingleDispatch.test_double_wrapped_methods.<locals>.classmethod_friendly_decorator  s4    mmG__W%0 & 0Nr#   c                      <a  ] tR tRt o ]]P                  V 3R lR l4       4       t Z]V 3R lR l4       4       tRt	V t
R# )MTestSingleDispatch.test_double_wrapped_methods.<locals>.WithoutSingleDispatchi  c                &   < V ^8  d   QhRS[ RS[/# rS  rJ  )r  r?   s   "r   r
  ZTestSingleDispatch.test_double_wrapped_methods.<locals>.WithoutSingleDispatch.__annotate__  s      c c r#   c              3  6   "    \        V4      x   R #   i ; i5i)Doner	  r  s   &&r   cls_context_manageraTestSingleDispatch.test_double_wrapped_methods.<locals>.WithoutSingleDispatch.cls_context_manager  s     c(N     c                &   < V ^8  d   QhRS[ RS[/# rS  rJ  )r  r?   s   "r   r
  r    s            r#   c                    \        V4      # r   r	  r  s   &&r   decorated_classmethodcTestSingleDispatch.test_double_wrapped_methods.<locals>.WithoutSingleDispatch.decorated_classmethod  rY  r#   r   N)r-   r.   r/   r0   rY  
contextlibcontextmanagerr  r  r1   r=   r?   r  s   @r   WithoutSingleDispatchr    sA     && '  ,   , r#   r  c                      <a  ] tR tRt o ]P
                  ]]P                  V 3R lR l4       4       4       t	]P
                   Z]V 3R lR l4       4       4       t
RtV tR# )JTestSingleDispatch.test_double_wrapped_methods.<locals>.WithSingleDispatchi  c                &   < V ^8  d   QhRS[ RS[/# rS  rJ  )r  r?   s   "r   r
  WTestSingleDispatch.test_double_wrapped_methods.<locals>.WithSingleDispatch.__annotate__  s      c c r#   c              3  6   "    \        V4      x   R#   i ; i5i)rW  r  r	  r  s   &&r   r  ^TestSingleDispatch.test_double_wrapped_methods.<locals>.WithSingleDispatch.cls_context_manager  s     
c(N r  c                &   < V ^8  d   QhRS[ RS[/# rS  rJ  )r  r?   s   "r   r
  r    s            r#   c                    \        V4      # rV  r	  r  s   &&r   r  `TestSingleDispatch.test_double_wrapped_methods.<locals>.WithSingleDispatch.decorated_classmethod  s    
 3xr#   r   N)r-   r.   r/   r0   r   r  rY  r  r  r  r  r1   r=   r  s   @r   WithSingleDispatchr    s]     ++&& '  , +++   , , r#   r  N5r  r  )r  rc  rW  r/  )r  r  )r  rh   r  r  r   r-   r%  r   rd  r  r   )	r9   r  r  r   without_single_dispatch_foosingle_dispatch_foomethod_namerX  r  s	   &       @r   test_double_wrapped_methods.TestSingleDispatch.test_double_wrapped_methods  s   		  	 	  	 * #66q99S*-' :  33A66#"% 7 	46IJ,c2!77:44Q7	

 	+AA!DcJ LK[11  .<EE1?HH
   .0+>GG13[AJJ 21 L 22 4444 66	
D 4((  %,%?%?%? #:'+.   !5!5e!<cB )(
 	22;;!	
 	 44==!	
 	44==#	
 	 66??#	
m :99 766 211" )((s1   K%K9;A=LAL"%K6	9L
	L"L4c                   R pRp\         P                  R 4       pV P                  \        4      ;_uu_ 4       pVP	                  ^*4      R 4       pRRR4       V P                  \        XP                  4      VR,           4       V P                  \        VP                  4      V4       V P                  \        4      ;_uu_ 4       pVP                  R 4       pRRR4       V P                  \        VP                  4      VR,           4       V P                  \        VP                  4      V4       V P                  \        4      ;_uu_ 4       pVP                  R R	 l4       pRRR4       V P                  \        VP                  4      R
4       V P                  \        VP                  4      R4       V P                  \        4      ;_uu_ 4       pVP                  R R l4       pRRR4       V P                  \        VP                  4      R
4       V P                  \        VP                  4      R4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL
; i  + '       g   i     L; i)z(Invalid first argument to `register()`: zS. Use either `@register(some_class)` or plain `@register` on an annotated function.c                     R # r   r   r.  s   &r   r  8TestSingleDispatch.test_invalid_registrations.<locals>.i]  r{  r#   c                     R # )zI annotated with a non-typer   r.  s   &r   ry  8TestSingleDispatch.test_invalid_registrations.<locals>._a  s    4r#   N42c                     R # )zI forgot to annotater   r.  s   &r   ry  r  g  s    -r#   zB<function TestSingleDispatch.test_invalid_registrations.<locals>._c                N    V ^8  d   QhR\         P                  \        ,          /# r  )rF   r  r   )r  s   "r   r
  CTestSingleDispatch.test_invalid_registrations.<locals>.__annotate__q  s     ? ?vs+ ?r#   c                     R # )z%I annotated with a generic collectionr   r.  s   &r   ry  r  p  s     ?r#   zInvalid annotation for 'arg'.z$typing.Iterable[str] is not a class.c                    V ^8  d   QhR\         P                  \        \         P                  \        ,          3,          /# r  )rF   Unionr   r  r   )r  s   "r   r
  r    s*     ' 'v||C)=$=> 'r#   c                     R # )zInvalid Unionr   r.  s   &r   ry  r    s    &r#   z9int | typing.Iterable[str] not all arguments are classes.)	r   r  rt   ru   r  rI  r   r  assertEndsWith)r9   
msg_prefix
msg_suffixr  excry  s   &     r   test_invalid_registrations-TestSingleDispatch.test_invalid_registrationsW  s	   ?
" 	 
	!	!	 
"	y))SZZ^5 5 * 	c#--0*t2CDC.
;y))SZZ. . * 	c#--0*P3Q 	
 	C.
;y))SZZ? ? * 	c#--0+	
 	C.2	
 y))SZZ' ' * 	c#--0+	
 	C.G	
K *)) *)) *)) *)s/   H>II&I:>I	I#	&I7	:J
	c                D   \         P                  R  4       pRpV P                  \        V4      ;_uu_ 4        V! 4        RRR4       RpV P                  \        V4      ;_uu_ 4        V! ^R7       RRR4       R#   + '       g   i     LD; i  + '       g   i     R# ; i)c                      R # r   r   )r    r  s   *,r   r   >TestSingleDispatch.test_invalid_positional_argument.<locals>.f  r  r#   z)f requires at least 1 positional argumentNr|   )r   r  r   ru   )r9   r   msgs   &  r    test_invalid_positional_argument3TestSingleDispatch.test_invalid_positional_argument  sx    		!	!	 
"	9##Is33C 49##Is33F 43 43 433s   A;'
B;B	B	c                d    ! R  R4      pRpV P                  \        V4      ;_uu_ 4        V! 4       P                  4        RRR4       RpV P                  \        V4      ;_uu_ 4        V! 4       P                  ^R7       RRR4       R#   + '       g   i     LR; i  + '       g   i     R# ; i)c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )STestSingleDispatch.test_invalid_positional_argument_singledispatchmethod.<locals>.Ai  c                    R # r   r   )r9   r    r  s   &*,r   r  UTestSingleDispatch.test_invalid_positional_argument_singledispatchmethod.<locals>.A.t  r  r#   r   Nr  r>   s   @r   r]  r    s     ++ ,r#   r]  z)t requires at least 1 positional argumentNr|   )r   ru   r  )r9   r]  r  s   &  r   5test_invalid_positional_argument_singledispatchmethodHTestSingleDispatch.test_invalid_positional_argument_singledispatchmethod  sz    	 	 :##Is33CEEG 49##Is33CEEAEJ 43 43 433s   B)BB	B/	c                v   \         P                  R  4       pVP                  R R l4       pVP                  R R l4       pV P                  V! . 4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! ^4      R	4       V P                  V! R
4      R	4       R# )c                     R # defaultr   r.  s   &r   r   (TestSingleDispatch.test_union.<locals>.f  rT  r#   c                Z    V ^8  d   QhR\         P                  \        \        3,          /# r  rF   r  r   bytes)r  s   "r   r
  3TestSingleDispatch.test_union.<locals>.__annotate__        	" 	"6<<U
+ 	"r#   c                     R # typing.Unionr   r.  s   &r   ry  (TestSingleDispatch.test_union.<locals>._      !r#   c                :    V ^8  d   QhR\         \        ,          /# r  )r   float)r  s   "r   r
  r    s     	% 	%3; 	%r#   c                     R # types.UnionTyper   r.  s   &r   ry  r        $r#   r  r   r  r#   r  r  Nr  r9   r   ry  s   &  r   
test_unionTestSingleDispatch.test_union  s    		!	!	 
"	 
	" 
	" 
	% 
	% 	2	*2/301013!23r#   c                F   \         P                  R  4       pVP                  R R l4       pVP                  R R l4       pV P                  V! . 4      R4       V P                  V! R4      R4       V P                  V! R4      R	4       V P                  V! ^4      R4       R
# )c                     R # r  r   r.  s   &r   r   1TestSingleDispatch.test_union_conflict.<locals>.f  rT  r#   c                Z    V ^8  d   QhR\         P                  \        \        3,          /# r  r  )r  s   "r   r
  <TestSingleDispatch.test_union_conflict.<locals>.__annotate__  r  r#   c                     R # r  r   r.  s   &r   ry  1TestSingleDispatch.test_union_conflict.<locals>._  r  r#   c                :    V ^8  d   QhR\         \        ,          /# r  rJ  )r  s   "r   r
  r    s     	% 	%39 	%r#   c                     R # r  r   r.  s   &r   ry  r    r  r#   r  r   r  r#   r  Nr  r  s   &  r   test_union_conflict&TestSingleDispatch.test_union_conflict  s    		!	!	 
"	 
	" 
	" 
	% 
	% 	2	*2 1230101r#   c                   \         P                  R  4       pVP                  R R l4       pV P                  V! ^4      R4       V P                  V! R4      R4       V P                  V! R4      R4       \         P                  R 4       pVP                  R R	 l4       pV P                  V! R4      R4       V P                  V! ^4      R
4       V P                  V! R4      R
4       R# )c                     R # r  r   r.  s   &r   typing_union8TestSingleDispatch.test_union_None.<locals>.typing_union  rT  r#   c                R    V ^8  d   QhR\         P                  \        R3,          /# r_   r/  N)rF   r  r   )r  s   "r   r
  8TestSingleDispatch.test_union_None.<locals>.__annotate__  s      	" 	"6<<T	* 	"r#   c                     R # r  r   r.  s   &r   ry  -TestSingleDispatch.test_union_None.<locals>._  r  r#   r  r   r  Nc                     R # r  r   r.  s   &r   types_union7TestSingleDispatch.test_union_None.<locals>.types_union  rT  r#   c                2    V ^8  d   QhR\         R,          /# r  rW  )r  s   "r   r
  r    s     	% 	%3: 	%r#   c                     R # r  r   r.  s   &r   ry  r    r  r#   r  r  )r9   r  ry  r  s   &   r   test_union_None"TestSingleDispatch.test_union_None  s    		!	!	 
"	 
			" 
	" 	a)4b)>:d+^<		!	!	 
"	 
			% 
	% 	R)4Q):;T*,=>r#   c                .   \         P                  R  4       pV P                  \        R4      ;_uu_ 4        VP	                  \
        \        ,          R 4       RRR4       V P                  \        R4      ;_uu_ 4        VP	                  \        P                  \        ,          R 4       RRR4       V P                  \        R4      ;_uu_ 4        VP	                  \
        \        ,          \        ,          R 4       RRR4       V P                  \        R4      ;_uu_ 4        VP	                  \        P                  \        ,          \        ,          R 4       RRR4       V P                  V! ^.4      R4       V P                  V! R.4      R4       V P                  V! R	4      R4       V P                  V! R
4      R4       R#   + '       g   i     ELz; i  + '       g   i     EL;; i  + '       g   i     L; i  + '       g   i     L; i)c                     R # r  r   r.  s   &r   r   8TestSingleDispatch.test_register_genericalias.<locals>.f  rT  r#   Invalid first argument to c                     R # ztypes.GenericAliasr   r.  s   &r   r\   ?TestSingleDispatch.test_register_genericalias.<locals>.<lambda>  s    .Br#   Nc                     R # ztyping.GenericAliasr   r.  s   &r   r\   r    s    5Jr#   c                     R # )z$types.UnionTypes(types.GenericAlias)r   r.  s   &r   r\   r    s    4Zr#   c                     R # z!typing.Union[typing.GenericAlias]r   r.  s   &r   r\   r    s    ?br#   r  r  r   r#   )r   r  r   ru   r  r7   r   rF   Listr   r  r  rh   r   s   & r   test_register_genericalias-TestSingleDispatch.test_register_genericalias  s^   		!	!	 
"	 ##I/KLLJJtCy"BC M##I/KLLJJv{{3')JK M##I/KLLJJtCy3(Z[ M##I/KLLJJv{{5)E13bc M 	A3+C59-2	*3+ MLLLLLLLLLs/   #G	>-G.G1%8H	G	G.	1H	H	c                Z   \         P                  R  4       pV P                  \        R4      ;_uu_ 4        VP	                  \
        \        ,          4       RRR4       V P                  \        R4      ;_uu_ 4        VP	                  \        P                  \        ,          4       RRR4       V P                  \        R4      ;_uu_ 4        VP	                  \
        \        ,          \        ,          4       RRR4       V P                  \        R4      ;_uu_ 4        VP	                  \        P                  \        ,          \        ,          4       RRR4       R#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)c                     R # r  r   r.  s   &r   r   BTestSingleDispatch.test_register_genericalias_decorator.<locals>.f  rT  r#   r  N)
r   r  r   ru   r  r7   r   rF   r  r   r   s   & r   $test_register_genericalias_decorator7TestSingleDispatch.test_register_genericalias_decorator  s    		!	!	 
"	 ##I/KLLJJtCy! M##I/KLLJJv{{3'( M##I/KLLJJtCy3' M##I/KLLJJv{{3'#-. ML MLLLLLLLLLs/   !E<+E3,F6FE0	3F	F	F*	c                r   \         P                  R  4       pV P                  \        R4      ;_uu_ 4        VP                  R R l4       pRRR4       V P                  \        R4      ;_uu_ 4        VP                  R R l4       pRRR4       V P                  \        R4      ;_uu_ 4        VP                  R R l4       pRRR4       V P                  \        R4      ;_uu_ 4        VP                  R	 R
 l4       pRRR4       V P                  V! ^.4      R4       V P                  V! R.4      R4       V P                  V! R4      R4       V P                  V! R4      R4       R#   + '       g   i     EL); i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i)c                     R # r  r   r.  s   &r   r   CTestSingleDispatch.test_register_genericalias_annotation.<locals>.f   rT  r#   zInvalid annotation for 'arg'c                :    V ^8  d   QhR\         \        ,          /# r  )r7   r   )r  s   "r   r
  NTestSingleDispatch.test_register_genericalias_annotation.<locals>.__annotate__  s     , ,tCy ,r#   c                     R # r  r   r.  s   &r   ry  CTestSingleDispatch.test_register_genericalias_annotation.<locals>._  s    +r#   Nc                N    V ^8  d   QhR\         P                  \        ,          /# r  )rF   r  r  )r  s   "r   r
  r  
  s     - -v{{5) -r#   c                     R # r  r   r.  s   &r   ry  r  	  s    ,r#   c                P    V ^8  d   QhR\         \        ,          \        ,          /# r  )r7   r   r   )r  s   "r   r
  r    s     = =tCy3 =r#   c                     R # )z#types.UnionType(types.GenericAlias)r   r.  s   &r   ry  r    s    <r#   c                d    V ^8  d   QhR\         P                  \        ,          \        ,          /# r  )rF   r  r  r  )r  s   "r   r
  r    s!     ; ;v{{5)E1 ;r#   c                     R # r  r   r.  s   &r   ry  r    s    :r#   r  r  r   r#   )r   r  r   ru   r  rh   r  s   &  r   %test_register_genericalias_annotation8TestSingleDispatch.test_register_genericalias_annotation  sf   		!	!	 
"	 ##I/MNNZZ, , O ##I/MNNZZ- - O ##I/MNNZZ= = O ##I/MNNZZ; ; O
 	A3+C59-2	*3+) ONN ONN ON ONs/   E+1E?-F)F&+E<	?F	F#	&F6	c                    \         P                  RR l4       pVP                  RR R ll4       pV P                  V! ^4      R4       V P                  V! R4      R4       R # )Nc                     R # r  r   r/  arg2s   &&r   r   4TestSingleDispatch.test_forward_reference.<locals>.f  rT  r#   c                0    V ^8  d   QhR\         R\        /# )r_   r/  r"  )r   r^  )r  s   "r   r
  ?TestSingleDispatch.test_forward_reference.<locals>.__annotate__   s     	' 	'3 	'i 	'r#   c                     R # forward referencer   r!  s   &&r   ry  4TestSingleDispatch.test_forward_reference.<locals>._  s    &r#   r  r   r(  r   r  r  s   &  r   test_forward_reference)TestSingleDispatch.test_forward_reference  s]    		!	!	 
"	 
	' 
	' 	1y)2 34r#   c                    \         P                  R  4       pV P                  \        R4      ;_uu_ 4        VP                  R R l4       pRRR4       R#   + '       g   i     R# ; i)c                     R # r  r   r.  s   &r   r   ?TestSingleDispatch.test_unresolved_forward_reference.<locals>.f'  rT  r#   z"is an unresolved forward referencec                $    V ^8  d   QhR\         /# r  )r^  )r  s   "r   r
  JTestSingleDispatch.test_unresolved_forward_reference.<locals>.__annotate__-  s     + +y +r#   c                     R # r'  r   r.  s   &r   ry  ?TestSingleDispatch.test_unresolved_forward_reference.<locals>._,  s    *r#   N)r   r  r   ru   r  r  s   &  r   !test_unresolved_forward_reference4TestSingleDispatch.test_unresolved_forward_reference&  sV    		!	!	 
"	 ##I/STTZZ+ + UTTTs   AA&	c                     ! R  R4      pV! 4       pV! 4       pV P                  VP                  ^4      V4       V P                  VP                  ^4      V4       R# )c                   P   a  ] tR tRt o R tR t]P                  R 4       tRt	V t
R# )9TestSingleDispatch.test_method_equal_instances.<locals>.Ai2  c                    R # r  r   r8   s   &&r   rD  @TestSingleDispatch.test_method_equal_instances.<locals>.A.__eq__3  s    r#   c                    ^# r-  r   rK   s   &r   re  BTestSingleDispatch.test_method_equal_instances.<locals>.A.__hash__5  rK  r#   c                    V # r   r   r  s   &&r   r  ;TestSingleDispatch.test_method_equal_instances.<locals>.A.t7  s    r#   r   Nr-   r.   r/   r0   rD  re  r   r  r  r1   r=   r>   s   @r   r]  r7  2  s'     ++ ,r#   r]  N)r   r  )r9   r]  rS   rT   s   &   r   test_method_equal_instances.TestSingleDispatch.test_method_equal_instances0  sH    	 	 CCacc!fa acc!fa r#   c                     ! R  R4      pV! 4       P                  ^4       \        V! 4       P                   4       V! 4       P                   V! 4       P                   8H   R# )c                   P   a  ] tR tRt o R tR t]P                  R 4       tRt	V t
R# )2TestSingleDispatch.test_method_bad_hash.<locals>.AiA  c                    \         hr   AssertionErrorr8   s   &&r   rD  9TestSingleDispatch.test_method_bad_hash.<locals>.A.__eq__B      $$r#   c                    \         hr   rE  rK   s   &r   re  ;TestSingleDispatch.test_method_bad_hash.<locals>.A.__hash__D  rH  r#   c                    R # r   r   r  s   &&r   r  4TestSingleDispatch.test_method_bad_hash.<locals>.A.tF  r  r#   r   Nr>  r>   s   @r   r]  rC  A  s'     %%++ ,r#   r]  N)r  r   rK  s   & r   test_method_bad_hash'TestSingleDispatch.test_method_bad_hash@  s;    	 	 	
aQSUU	r#   c                (    ! R  R4      pV! 4       pVP                  ^4      pV P                  V! 4       4       ?\        P                  ! RR7      '       g   \        P                  ! 4        V P                  V! 4       4       V! 4       pVP                   p?\        P                  ! 4        V! ^4      pV P                  V! 4       4       ?\        P                  ! RR7      '       g   \        P                  ! 4        V P                  V! 4       4       R# )c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )<TestSingleDispatch.test_method_no_reference_loops.<locals>.AiQ  c                .    \         P                  ! V 4      # r   )rG   r8  r  s   &&r   r  >TestSingleDispatch.test_method_no_reference_loops.<locals>.A.tR  s    {{4((r#   r   Nr  r>   s   @r   r]  rQ  Q  s     ++) ,)r#   r]  T)cpythonN)r  r9  r   check_impl_detailr   r  )r9   r]  rS   r<  r  s   &    r   test_method_no_reference_loops1TestSingleDispatch.test_method_no_reference_loopsO  s    	) 	)
 CCCFQS!((66 !#CCCaDQS!((66 !#r#   c                    \         P                  R  R l4       pVP                  R R l4       pV P                  \	        \
        P                  ! V4      4      R4       R# )c                0    V ^8  d   QhR\         R\        /# rS  rJ  )r  s   "r   r
  8TestSingleDispatch.test_signatures.<locals>.__annotate__k  s     	 	C 	C 	r#   c                     \        V 4      # r   r	  r  r/  s   &&r   r%   0TestSingleDispatch.test_signatures.<locals>.funcj      t9r#   c                <    V ^8  d   QhR\         R\        R\        /# )r_   r  r/  rI  )r   r  r   )r  s   "r   r
  rZ  n  s!     	 	C 	e 	 	r#   c                     \        V 4      # r   r	  r\  s   &&r   ry  -TestSingleDispatch.test_signatures.<locals>._m  r^  r#   (item, arg: int) -> strN)r   r  r  rh   r   r	   r)  )r9   r%   ry  s   &  r   test_signatures"TestSingleDispatch.test_signaturesi  sU    		!	!	 
"			 
	 	Y44T:;2	4r#   c                    ! R  R4      pV P                  \        \        P                  ! VP                  4      4      R4       V P                  \        \        P                  ! V! 4       P                  4      4      R4       V P                  \        \        P                  ! VP
                  4      4      R4       V P                  \        \        P                  ! VP                  4      4      R4       R# )c                     a  ] tR tRt o V 3R lR lt]V 3R lR l4       t]P                  V 3R lR l4       t	]	P                  V 3R lR	 l4       t]P                  ]V 3R
 lR l4       4       t]	P                  ]V 3R lR l4       4       t]P                  ]V 3R lR l4       4       t]	P                  ]V 3R lR l4       4       tRtV tR# )4TestSingleDispatch.test_method_signatures.<locals>.Aiu  c                &   < V ^8  d   QhRS[ RS[/# rS  rJ  )r  r?   s   "r   r
  ATestSingleDispatch.test_method_signatures.<locals>.A.__annotate__v       ! !3 !3 !r#   c                    \        V4      # r   r	  r  s   &&&r   r   6TestSingleDispatch.test_method_signatures.<locals>.A.mv  s    4y r#   c                &   < V ^8  d   QhRS[ RS[/# rS  rJ  )r  r?   s   "r   r
  ri  y  rj  r#   c                    \        V4      # r   r	  r  s   &&&r   r2  7TestSingleDispatch.test_method_signatures.<locals>.A.cmx      4y r#   c                &   < V ^8  d   QhRS[ RS[/# rS  rJ  )r  r?   s   "r   r
  ri  |  s     ! !c !c !r#   c                    \        V4      # r   r	  r  s   &&&r   r%   9TestSingleDispatch.test_method_signatures.<locals>.A.func{  rp  r#   c                &   < V ^8  d   QhRS[ RS[/# rS  r  r   )r  r?   s   "r   r
  ri    s     ! !5 !S !r#   c                    \        V4      # r   r	  r  s   &&&r   ry  6TestSingleDispatch.test_method_signatures.<locals>.A._~  rp  r#   c                &   < V ^8  d   QhRS[ RS[/# rS  rJ  )r  r?   s   "r   r
  ri    s            r#   c                    \        V4      # r   r	  r  s   &&&r   r\  =TestSingleDispatch.test_method_signatures.<locals>.A.cls_func  rY  r#   c                &   < V ^8  d   QhRS[ RS[/# rS  ru  )r  r?   s   "r   r
  ri    s     ! !% !C !r#   c                    \        V4      # r   r	  r  s   &&&r   ry  rw         4y r#   c                &   < V ^8  d   QhRS[ RS[/# rS  rJ  )r  r?   s   "r   r
  ri    s        s  s  r#   c                    \        V4      # r   r	  r\  s   &&r   ra  @TestSingleDispatch.test_method_signatures.<locals>.A.static_func  rY  r#   c                &   < V ^8  d   QhRS[ RS[/# rS  ru  )r  r?   s   "r   r
  ri    s     ! !U !s !r#   c                    \        V 4      # r   r	  r\  s   &&r   ry  rw    r}  r#   r   N)r-   r.   r/   r0   r   rY  r2  r   r  r%   r  ry  r\  r[  ra  r1   r=   r>   s   @r   r]  rg  u  s     ! !! !++! ,!]]! ! ++   , ]]!  ! ++   , ]]!  !r#   r]  z(self, item, arg: int) -> strz(cls, item, arg: int) -> strrb  N)rh   r   r	   r)  r%   r\  ra  rK  s   & r   test_method_signatures)TestSingleDispatch.test_method_signaturest  s    	! 	!> 	Y44QVV<=8	:Y44QSXX>?8	:Y44QZZ@A7	9Y44Q]]CD2	4r#   r   N)6r-   r.   r/   r0   r  r  r  r  rh  
skipUnlessr   r   r   r  r  r  r  r*  rs  r  r  r  r  r  r  r  r  r  r  r   r/  r=  rM  rf  r  r  r  r  r  r  r  r  r	  r  r  r*  r3  r?  rM  rV  rc  r  r1   r=   r>   s   @r   rw  rw    s    	-&.
;7 "56:  7:"47l\(|;.+$},@d)L*6)4(((+"(0/,/.+"((/,)BV;:zf
P0
d	
4&2$?2,&/,6
5+! 4	4'4 '4r#   rw  c                   N   a  ] tR tRt o ^tR t]P                  R 4       tRt	V t
R# )CachedCostItemi  c                8    \         P                  4       V n        R # r   )r  RLocklockrK   s   &r   r  CachedCostItem.__init__  s     &&(	r#   c                    V P                   ;_uu_ 4        V ;P                  ^,          un        RRR4       V P                  #   + '       g   i     T P                  # ; iThe cost of the item.N)r  _costrK   s   &r   costCachedCostItem.cost  s;     YYYJJ!OJ zz Yzzs   AA	)r  N)r-   r.   r/   r0   r  r  r  cached_propertyr  r1   r=   r>   s   @r   r  r    s)     E) !! "r#   r  c                   L   a  ] tR tRt o ^tR t]P                  ]4      tRt	V t
R# )OptionallyCachedCostItemi  c                L    V ;P                   ^,          un         V P                   # )r  r  rK   s   &r   get_cost!OptionallyCachedCostItem.get_cost  s    

a
zzr#   r   N)r-   r.   r/   r0   r  r  r  r  cached_costr1   r=   r>   s   @r   r  r    s!     E
 ..x8Kr#   r  c                   N   a  ] tR tRt o RtR t]P                  R 4       tRt	V t
R# )CachedCostItemWithSlotsi  r  c                    ^V n         R# )rQ   Nr  rK   s   &r   r   CachedCostItemWithSlots.__init__  s	    
r#   c                    \        R 4      h)z!never called, slots not supportedr  rK   s   &r   r  CachedCostItemWithSlots.cost  s    >??r#   r  N)r-   r.   r/   r0   r  r  r  r  r  r1   r=   r>   s   @r   r  r    s+     I !!@ "@r#   r  c                   b   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tRtV tR# )TestCachedPropertyi  c                    \        4       pV P                  VP                  ^4       V P                  VP                  ^4       R# r  )r  rh   r  r9   r  s   & r   test_cachedTestCachedProperty.test_cached  s2    A&A&r#   c                
   \        4       pV P                  VP                  4       ^4       V P                  VP                  ^4       V P                  VP                  4       ^4       V P                  VP                  ^4       R# r  )r  rh   r  r  r  s   & r   1test_cached_attribute_name_differs_from_func_nameDTestCachedProperty.test_cached_attribute_name_differs_from_func_name  sb    ')!,))1-!,))1-r#   c                    \        4       pV P                  \        R 4      ;_uu_ 4        VP                   RRR4       R#   + '       g   i     R# ; i)zWNo '__dict__' attribute on 'CachedCostItemWithSlots' instance to cache 'cost' property.N)r  r   ru   r  r  s   & r   test_object_with_slots)TestCachedProperty.test_object_with_slots  sA    &(##i
 
 II	
 
 
 
s   A  A	c                     ! R  R\         4      p ! R RVR7      pV P                  \        R4      ;_uu_ 4        VP                   RRR4       R#   + '       g   i     R# ; i)c                   D   a  ] tR tRt o ]P
                  R 4       tRtV tR# )6TestCachedProperty.test_immutable_dict.<locals>.MyMetai  c                    R # r  r   rK   s   &r   prop;TestCachedProperty.test_immutable_dict.<locals>.MyMeta.prop  s    r#   r   N)	r-   r.   r/   r0   r  r  r  r1   r=   r>   s   @r   MyMetar    s     )) *r#   r  c                       ] tR tRtRtR# )7TestCachedProperty.test_immutable_dict.<locals>.MyClassi  r   Nr,   r   r#   r   MyClassr    r  r#   r  r  zkThe '__dict__' attribute on 'MyMeta' instance does not support item assignment for caching 'prop' property.N)r   r   ru   r  )r9   r  r  s   &  r   test_immutable_dict&TestCachedProperty.test_immutable_dict  sS    	T 	
	 	 ##y
 
 LL	
 
 
 
s   AA"	c                    V P                  \        4      ;_uu_ 4       p ! R R4      pRRR4       V P                  \        XP                  4      \        \        R4      4      4       R#   + '       g   i     LI; i)zDDisallow this case because decorated function a would not be cached.c                   H   a  ] tR tRt o ]P
                  R 4       t]tRtV t	R# )KTestCachedProperty.test_reuse_different_names.<locals>.ReusedCachedPropertyi  c                    R # r   r   rK   s   &r   rS   MTestCachedProperty.test_reuse_different_names.<locals>.ReusedCachedProperty.a  s    r#   r   N)
r-   r.   r/   r0   r  r  rS   rT   r1   r=   r>   s   @r   ReusedCachedPropertyr    s$     -- . r#   r  NzLCannot assign the same cached_property to two different names ('a' and 'b').)rt   ru   rh   r   r  )r9   ctxr  s   &  r   test_reuse_different_names-TestCachedProperty.test_reuse_different_names  sW    y))S  * 		hij	
 *)s   A**A:	c                8  aa ^ o\         P                  V3R l4       o ! V3R lR4      p ! V3R lR4      pV! 4       pV! 4       pV P                  VP                  ^4       V P                  VP                  ^4       V P                  VP                  ^4       R# )zIReusing a cached_property on different classes under the same name is OK.c                    < S^,          oS# r-  r   )_selfcounters   &r   _cp4TestCachedProperty.test_reuse_same_name.<locals>._cp  s     qLGNr#   c                      < ] tR tRt Z tRtR# )2TestCachedProperty.test_reuse_same_name.<locals>.Ai  r   Nr-   r.   r/   r0   cpr1   r  s   r   r]  r        Br#   r]  c                      < ] tR tRt Z tRtR# )2TestCachedProperty.test_reuse_same_name.<locals>.Bi  r   Nr  r  s   r   r   r    r  r#   r   N)r  r  rh   r  )r9   r]  r   rS   rT   r  r  s   &    @@r   test_reuse_same_name'TestCachedProperty.test_reuse_same_name  s    		%	%	 
&	
	 		 	 CCq!q!q!r#   c                    \         P                  R  4      p ! R R4      pWn        V P                  \        R4      ;_uu_ 4        V! 4       P                   RRR4       R#   + '       g   i     R# ; i)c                     R # r   r   rl  s   &r   r\   =TestCachedProperty.test_set_name_not_called.<locals>.<lambda>  s    Dr#   c                       ] tR tRtRtR# )8TestCachedProperty.test_set_name_not_called.<locals>.Fooi  r   Nr,   r   r#   r   Foor    r  r#   r  zGCannot use cached_property instance without calling __set_name__ on it.N)r  r  r  r   ru   )r9   r  r  s   &  r   test_set_name_not_called+TestCachedProperty.test_set_name_not_called  s\    )).9	 	 ##Y
 
 EHH	
 
 
 
s   A!!A2	c                b    V P                  \        P                  \        P                  4       R # r   )assertIsInstancer  r  r  r  rK   s   &r   test_access_from_class)TestCachedProperty.test_access_from_class  s    n11<3O3OPr#   c                    T P                  \        P                  P                  \        P
                  '       d	   R 4       R# R4       R# r  )rh   r  r  r%  r   rd  rK   s   &r   test_docTestCachedProperty.test_doc  s9    ,,44$777 2	&  $	&r#   c                v    V P                  \        P                  P                  \        P                  4       R # r   )rh   r  r  r.   rK   s   &r   test_moduleTestCachedProperty.test_module"  s$    ,,779R9RSr#   c                   a  ! R R\         P                  4      o ! V3R lR4      pV! ^4      pV P                  VP                  ^4       RVn        V P                  VP                  ^4       R# )z4Caching still works for a subclass defining __set__.c                   &   a  ] tR tRt o R tRtV tR# )OTestCachedProperty.test_subclass_with___set__.<locals>.readonly_cached_propertyi'  c                    \        R 4      h)zread only property)rm  )r9   r  rs  s   &&&r   __set__WTestCachedProperty.test_subclass_with___set__.<locals>.readonly_cached_property.__set__(  s    $%9::r#   r   N)r-   r.   r/   r0   r  r1   r=   r>   s   @r   readonly_cached_propertyr  '  s     ; ;r#   r  c                   :   <a  ] tR tRt o R t ZR 4       tRtV tR# );TestCachedProperty.test_subclass_with___set__.<locals>.Testi+  c                    Wn         R # r   _prop)r9   r  s   &&r   r  DTestCachedProperty.test_subclass_with___set__.<locals>.Test.__init__,  s    !
r#   c                    V P                   # r   r  rK   s   &r   r  @TestCachedProperty.test_subclass_with___set__.<locals>.Test.prop/  s    zz!r#   r  N)r-   r.   r/   r0   r  r  r1   r=   )r?   r  s   @r   r  r  +  s     " &" &"r#   r  ra  N)r  r  rh   r  r  )r9   r  r  r  s   &  @r   test_subclass_with___set__-TestCachedProperty.test_subclass_with___set__%  sY    	;|'C'C 	;	" 	" G##r#   r   N)r-   r.   r/   r0   r  r  r  r  r  r  r  r  r  r  r  r1   r=   r>   s   @r   r  r    sC     '
.
".Q&T$ $r#   r  __main__)Wr  rI   r   r   rm  r  collections.abcr   	itertoolsr   r  randomr   r/  r   r  r   r  r  rF   rh  unittest.mockrG   r:  r   r  inspectr	   test.supportr
   r   r   r   r   r   import_fresh_moduler  r  r   r  r   r"   r)   r:  r+   r4   ri   rA   TestCaserC   rO   r  rk  r  re   r  r  r  r  r  r  rn  r  r  r  r  r/  r5  r7  rJ  r  r  r/  r1  r3  rD  rf  rh  rk  rq  rw  r  r  r  r  r-   mainr   r#   r   <module>r     s	   
 1     "   	 
        	    " & ) % * 00:FI//7CnF 
+
+Ij\
J , ,
@	e 	(u (	T 	
X&& 
r3 r3j 
["DE8#; 1 1 8# F8#v#K!2!2 #
 ;.. 	,, 	 
["DE$< $ F$#M # U-)) U-pMD)) MD`;9! ;9|c@ c@L 
["DE$*h// $ F$
Q:x00 QZ, Z,| 
["DE	
L("3"3 	
 F	
7\8#4#4 7g )) g T	 ) ) )P P&)X..  
["DEH--  F
k	; k	;\    **  
["DEw))  FG4** G4T( 9 9@ @t$** t$n zMMO r#   