
    9i                        S SK r S SKrS SKrS SKJr  S SKJrJr  S SK	J
s  Jr  S SKJ
s  Jr  S SKJrJrJrJrJr  S SKJrJrJr  S SKJrJr  S SKJr  S SKJ r   S	 r!S
 r"\"" \5      r#S r$S r%S r&S r'S r(S r)/ \$SS4P\$SS4P\$SS4P\$SS4P\$SS4P\$SS4P\$SS4P\$SS4P\$S S4P\$S!S4P\$S"S#4P\%SS$4P\%SS%4P\%SS%4P\%SS&4P\%SS$4P\%SS$4P\%SS'4P\%SS4P\%S S4P\%S!S(4P\%S"S4P\&SS4P\&SS4P\&SS4P\&SS)4P\&SS*4P\&SS(4P\&SS4P\&SS+4P\&S S+4P\&S!S4P\&S"S4P\'S,S'4P\'S-S4P\'S.S4P\'S/S4P\'S0S4P\'S1S'4P\'S2S'4P\'S3S'4P\'S4S)4P\'S5S)4P\'S6S)4P\(S,S%4P\(S-S&4P\(S.S$4P\(S/S)4P\(S0S'4P\(S1S$4P\(S2S&4P\(S3S&4P\(S4S'4P\(S5S'4P\(S6S$4Pr*\RV                  RY                  S7S8S99\RV                  RY                  S:S;S99\RV                  RY                  S<S=S99 " S> S?5      5       5       5       r-\RV                  RY                  S7S@S99\RV                  RY                  S<S=S99\RV                  RY                  S:S;S99 " SA SB5      5       5       5       r.g)C    N)deepcopy)statsspecial)array_namespaceis_cupyis_numpyxp_ravelxp_size)xp_assert_closexp_assert_equalxp_assert_less)find_minimum	find_root)_CHANDRUPATLA_TESTS)permutationsc                    ^  U 4S jnU$ )Nc                    >^  U U4S jnU$ )Nc                    > U S   R                   nU  Vs/ s H  n[        UTS9PM     n n/ n[        [        R                  " U5      5       H+  nU  Vs/ s H  o"U   PM	     nnUR                  T" U6 5        M-     U$ s  snf s  snf )Nr   )xp)shaper	   rangemathprodappend)
arg_arraysr   	arg_arrayresiarg_scalarsfr   s         f/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/scipy/optimize/tests/test_chandrupatla.pywrapped._vectorize.<locals>.decorator.<locals>.wrapped   s    qM''EFPQj(94jJQC499U+,=GHZ	|ZH

1k?+ - J R Is   A=B )r    r"   r   s   ` r!   	decorator_vectorize.<locals>.decorator   s    	     r$   )r   r%   s   ` r!   
_vectorizer(      s    
 r'   c                    ^  U 4S jnU$ )Nc                   >^ 1 SknU Vs0 s H  oDU;   d  M
  XBR                  U5      _M     nnUR                  SS 5      m[        T5      (       a  UU	4S jnOTnT	" X4XVS.UD6nT	[        :X  a3  UR                  u  Ul        Ul        UR                  u  Ul        Ul        O>UR                  u  Ul        Ul	        Ul        UR                  u  Ul        Ul
        Ul        UR                  Ul        U?U?U?U$ s  snf )N>   fatolfrtolxatolxrtolcallbackc                 8  > T[         :X  a3  U R                  u  U l        U l        U R                  u  U l        U l        O>U R                  u  U l        U l        U l        U R                  u  U l        U l        U l        U R                  U l
        U ?U ?U ?	T" U 5      $ N)r   bracketxlxr	f_bracketflfrxmfmf_xfun)r   	_callbackfuncs    r!   r/   C_wrap_chandrupatla.<locals>._chandrupatla_wrapper.<locals>.callback7   s}    9$%([[NCFCF%(]]NCFCF-0[[*CFCFCF-0]]*CFCFCF''KMG ~%r'   )
tolerancesr/   )popcallabler   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   )
r    r2   kwargstol_keyskeyr?   r/   r   r<   r=   s
           @r!   _chandrupatla_wrapper1_wrap_chandrupatla.<locals>._chandrupatla_wrapper1   s    76>Phs-*c::c?*h
PJJz40	I& !H1R*R6R9 [[NCFCF ]]NCFCF%([["CFCFCF%(]]"CFCFCF''KMG
; Qs
   	C:C:r$   )r=   rE   s   ` r!   _wrap_chandrupatlarG   0   s     B ! r'   c                 H    SSU S-  -
  S-  -  SU S-  -
  -   SSU -
  S-  -  -   $ )Nd            @          @r$   xs    r!   f1rP   X   s7    ArE	A~1b5)AqsRiK77r'   c                     SU S-
  S-  -   $ )N   rM      r$   rN   s    r!   f2rT   \   s    B{?r'   c                 F    [        U 5      nUR                  U 5      SU -  -
  $ )NrR   )r   exprO   r   s     r!   f3rX   `   s"    		B66!9qs?r'   c                 0    U S-  SU S-  -  -
  SU -  -
  S-   $ )N      @rR   rK   g      4@r$   rN   s    r!   f4r[   e   s&    b51QU7?SU"R''r'   c                 6    SU S-  -  SU S-  -  -
  SU -  -
  S-   $ )N      rL      r$   rN   s    r!   f5r`   i   s*    QT6AadF?QqS 1$$r'   c                     SnSnU " U5      nU " U5      nX!-
  nXe:  a  X!XeU* 4OXXVU4u  ppVn[        U5       H!  nXs-  nX'-   n	U " U	5      n
X:  a	  X)Xj4u  ppVM!    O   XW	XVW
4$ )Ngw?rI   )r   )r=   x1x2phimaxiterrP   rT   stepr   x3rX   s              r!   _bracket_minimumrh   m   s    
CG	bB	bB7D79wRRdU3"$"$!7 BBD 7^Y"X7R^NBB  2rr!!r'         i   i   i   i   i   i i i    r]   rS   r_   	      
         皙gg333333ÿgɿg      пg333333ӿgffffffֿgٿgܿ      gz
dask.arrayzno take_along_axis)reasonz	jax.numpyz*JAX arrays do not support item assignment.array_api_strictz)Currently uses fancy indexing assignment.c            
          \ rS rSrS r\R                  R                  SS5      \R                  R                  SS\R                  " SSS	5      /5      S
 5       5       r
\R                  R                  S\" 5       SSS/5      S 5       rS rS rS r\R                  R                  S\5      S 5       r\R                  R                  SSSS/45      \R                  R                  SS5      S 5       5       rS rS rS rSrg)TestChandrupatlaMinimize   c                     [        X5      nUR                  SX-
  S-  -  5      * SUR                  -  S-  -  nUR                  XAR                  S9S   $ )Nrz   rL   g      ?dtyper$   )r   rV   piasarrayr   )selfrO   locr   r   s        r!   r    TestChandrupatlaMinimize.f   sS    Q$vvdaeaZ'((AbeeGc>9zz#WWz-b11r'   r   float32float64r   333333?g?rv   c                   ^^ SSS.T   n[        TT5      mUU4S jS 5       nTR                  UTS9nTR                  TR                  [        R                  R                  S5      * TS9UR                  5      n[        U R                  /UQ7SU406n[        UR                  XS	9  [        UR                  U5        g )
Ng{Gzt?gƠ>r   c              3   D   >#    U  H  nTR                  UTS 9v   M     g7f)r   N)r   ).0xir   r   s     r!   	<genexpr>6TestChandrupatlaMinimize.test_basic.<locals>.<genexpr>   s     D22::b:.s    r   rR   r   r   argsrtol)getattrr   broadcast_tor   normpdfr   _chandrupatla_minimizer    r   rO   r   r;   )r   r   r   r   r   r2   r;   r   s     ``    r!   
test_basic#TestChandrupatlaMinimize.test_basic   s    
  D1%8E"DDjjEj*oobjj%**..*;);5jI399U$TVVCgCSFCs.%r'   r   ru   r^      r^   rL   rL   c           
        ^ ^^ U(       a"  UR                  SSS5      R                  U5      OUR                  S5      nU4nUR                  S5      UR                  S5      UR                  S5      4m[        U5      UU 4S j5       nUU 4S	 jmS
Tl        [        T/TQ7SU06nU" U5      n/ SQnU Hh  n	UR                  U V
s/ s H  n
[        X5      PM     sn
5      n[        [        Xi5      5      n[        X5        [        Xi5      R                  U:X  a  Mh   e   [        UR                  T R                  " UR                  /UQ76 5        [        UR                  T R                  " UR                  /UQ76 5        [        UR                   T R                  " UR"                  /UQ76 5        [        UR$                  T R                  " UR&                  /UQ76 5        UR)                  UR*                  5      TR                  :X  d   eUR)                  UR,                  5      TR                  S-
  :X  d   eUR/                  UR0                  R2                  S5      (       d   eUR/                  UR4                  R2                  S5      (       d   eUR/                  UR*                  R2                  S5      (       d   eUR/                  UR,                  R2                  S5      (       d   eg s  sn
f )Nry   r   ru   r                 rZ   c                 8   > [        TR                  /TQ7SU 406$ )Nr   )r   r    )
loc_singler2   r   s    r!   chandrupatla_singleHTestChandrupatlaMinimize.test_vectorization.<locals>.chandrupatla_single   s    )$&&O7O*OOr'   c                  R   > T=R                   S-  sl         TR                  " U 0 UD6$ NrJ   f_evalsr    r   rB   r    r   s     r!   r    6TestChandrupatlaMinimize.test_vectorization.<locals>.f   $    IINI664*6**r'   r   r   )rO   r;   successstatusnfevnitr3   r8   r4   r6   r9   r7   r^   boolintegral)linspacereshaper   r(   r   r   stackr   r	   r   r   r;   r    rO   r6   r3   r9   r8   r7   r4   maxr   r   isdtyper   r   r   )r   r   r   r   r   r   r   refsattrsattrrefref_attrres_attrr2   r    s   `            @@r!   test_vectorization+TestChandrupatlaMinimize.test_vectorization   sK    >Cbkk%r*2259

SVv**S/2::b>2::b>A	B	P 
	P	+ 	$Q<<t<"3'5Dxxt Dt!3t DEH 23HH/3%++u444	  	!5!56svv 5 56svv 5 56svv 5 56vvchh199,,,vvcgg!))a-///zz#++++V4444zz#****J7777zz#((..*5555zz#''--4444 !Es   K1
c                   ^ U4S jnTR                  STR                  S94nTR                  S/S-  TR                  S9TR                  S/S-  TR                  S9TR                  [        R
                  /S-  TR                  S94n[        U/UQ7USS.6nTR                  [        R                  [        R                  [        R                  [        R                  /TR                  S9n[        UR                  U5        g )Nc                    > S S S U4S j/n/ n[        [        U5      5       H9  nXS4   n[        [        U5      U   5      nUR	                  X&   " U5      5        M;     TR                  U5      $ )Nc                     U S-
  S-  $ )N      @rL   r$   rN   s    r!   <lambda>@TestChandrupatlaMinimize.test_flags.<locals>.f.<locals>.<lambda>      CA~r'   c                     U S-
  $ Nrv   r$   rN   s    r!   r   r         q2vr'   c                     U S-
  S-  $ )Nr   r   r$   rN   s    r!   r   r     r   r'   c                 Z   > TR                  U TR                  TR                  5      5      $ r1   	full_liker   nanrW   s    r!   r   r     s    r||Arzz"&&/ABr'   .)r   r
   intr	   r   r   )xsjsfuncsr   r   rO   jr   s          r!   r    .TestChandrupatlaMinimize.test_flags.<locals>.f  sp    -%-BDE C72;'#vJQ(

58A;' ( 88C= r'   r   r   r   rL   rv   r   re   )arangeint64r   r   npr   r   eim_ECONVERGED	_ESIGNERR	_ECONVERR
_EVALUEERRint32r   r   )r   r   r    r   r2   r   	ref_flagss    `     r!   
test_flags#TestChandrupatlaMinimize.test_flags   s    
	! 		!288	,.::qc!e2:::6::qc!e2:::6::ruugairzz::< %QHHtRHJJ # 079xx  A	

I.r'   c           	         [         R                  R                  S5      nUR                  UR                  SS95      nUR                  SUR                  S9UR                  S5      UR                  S5      4nU4n[        USSSSS9nUR                  5       nS	US
'   [        U R                  /UQ70 UD6nUR                  UR                  UR                  -
  5      n	UR                  SUS
   -  UR                  S9n
[        XR                  SXR                  S95        SUS
'   [        U R                  /UQ70 UD6nUR                  UR                  UR                  -
  5      nUR                  SUS
   -  UR                  S9n
[        XR                  SXR                  S95        [        X5        UR                  5       nS	US'   [        U R                  /UQ70 UD6nUR                  UR                  UR                  -
  5      n	UR                  SUS   -  UR                  UR                  5      -  UR                  S9n
[        X5        SUS'   [        U R                  /UQ70 UD6nUR                  UR                  UR                  -
  5      nUR                  SUS   -  UR                  UR                  5      -  UR                  S9n
[        X5        [        X5        UR                  5       nS	US'   [        U R                  /UQ70 UD6nUR                  UR                   SUR"                  -  -
  UR$                  -   5      nUR                  SUS   -  UR                  S9n
[        XR                  SXR                  S95        SUS'   [        U R                  /UQ70 UD6nUR                  UR                   SUR"                  -  -
  UR$                  -   5      nUR                  SUS   -  UR                  S9n
[        XR                  SXR                  S95        [        X5        UR                  5       nS	US'   [        U R                  /UQ70 UD6nUR                  UR                   SUR"                  -  -
  UR$                  -   5      nUR                  SUS   -  UR                  UR&                  5      -  UR                  S9n
[        X5        SUS'   [        U R                  /UQ70 UD6nUR                  UR                   SUR"                  -  -
  UR$                  -   5      nUR                  SUS   -  [        UR&                  5      -  UR                  S9n
[        X5        [        X5        g )N   FA92 r^   sizer   r   r   rR   )r   r-   r.   r+   r,   MbP?r-   r   r^   ư>r.   r+   rL   r,   )r   randomdefault_rngr   r   dictcopyr   r    absr4   r3   r   r   fullrO   r6   r9   r7   r;   )r   r   rngpr2   r   kwargs0rB   res1j1tolres2j2h1h2s                  r!   test_convergence)TestChandrupatlaMinimize.test_convergence  s   ii##$78JJszzqz)*::b

:3RZZ]BJJqMRtD!1Ew%dffAwA&AVVDGGdgg%&jj6'?*!''j:r774GG7<=w%dffAwA&AVVDGGdgg%&jj6'?*!''j:r774GG7<=rw%dffAwA&AVVDGGdgg%&jj6'?*266$&&>9jIrw%dffAwA&AVVDGGdgg%&jj6'?*266$&&>9jIrrw%dffAwA&AVVDGGa$''k)DGG34jj6'?*!''j:r774GG7<=w%dffAwA&AVVDGGa$''k)DGG34jj6'?*!''j:r774GG7<=rw%dffAwA&AVVDGGa$''k)DGG34jj6'?*266$((+;;177jKrw%dffAwA&AVVDGGa$''k)DGG34jj6'?*3txx=8jHrrr'   c                 >  ^ ^^^^^ TR                  S5      mTR                  S5      TR                  S5      TR                  S5      4mSm[        T R                  /TQ7T4TS.6nTR                  UR                  5      (       a   eTR                  UR                  TS-   :H  5      (       d   eTR                  UR                  T:H  5      (       d   eUUUUU U4S jmTR                  Tl	        TR                  Tl
        STl        S Tl        [        T R                  /TQ7T4TS	.6nUR                  5        H^  nUS
:X  a2  X$   [        R                  :X  d   eX4   [        R                   :X  d   eM;  X4   TR                  U   s=:X  a  X$   :X  a  M[   e   e   g )N~,?r   r   rR   r   r^   c                   > T=R                   S-  sl         U Tl        [        U S5      (       d   eTR                   S:X  a*  U R                  U R                  U R
                  4T:X  d   eOU R                  TR                  :H  U R
                  TR
                  :g  -  nU R                  TR                  :g  U R
                  TR
                  :H  -  nTR                  X-  5      (       d   eU R                  Tl        U R
                  Tl        U R                  [        R                  :X  d   e[        TR                  U R                  T5      U R                  5        [        TR                  U R                  T5      U R                  5        [        TR                  U R
                  T5      U R                  5        [        TR                  U R                  T5      U R                   5        TR                   T:X  a  ["        eg NrJ   rO   r   )iterr   hasattrr3   r8   r4   allr   r   _EINPROGRESSr   r    r6   r9   r7   rO   r;   StopIteration)	r   
changed_xr
changed_xlr2   r/   r   re   r   r   s	      r!   r/   @TestChandrupatlaMinimize.test_maxiter_callback.<locals>.callbacka  sq   MMQMHL3$$$$}}!/7:::!ff3(++8MN
!ff3(++8MN
vvj56666&&HK&&HK::!1!1111DFF3663/8DFF3663/8DFF3663/8DFF355#.8}}'## (r'   ri   r   r/   r   )r   r   r    anyr   r  r   r   r   r3   r4   r  r   keysr   r   
_ECALLBACK)	r   r   r   r   rD   r2   r/   r   re   s	   ``   @@@@r!   test_maxiter_callback.TestChandrupatlaMinimize.test_maxiter_callbackU  sp   jj"::b>2::a="**Q-@$TVV 6g 6SF-4666#++&&&&vvchh'!)+,,,,vvcgg())))	$ 	$, ffff%dff 9w 9cV/79
 88:Chx3==000yCNN222yHLL$5AAAAAA r'   casec                 :   Uu  p4nSnXF-   n[        X4U5      u  pGppSnSnSnSnUR                  U5      UR                  U5      UR                  XR                  S94n[        U/UQ7UXUS.6n[	        UR
                  UR                  XRR                  S95        g )Ng?g-C6?r   gؗҜ<r   )r-   r+   r.   r,   )rh   r   r   r   r   r   r   )r   r  r   r=   rb   r   rf   rc   rg   rP   rT   rX   r-   r+   r.   r,   r2   r   s                     r!   test_nit_expected*TestChandrupatlaMinimize.test_nit_expected  s    
 # Y!1$B!? **R."**R."**Rzz*2RR$T LG L5+0ULCxx!@Ar'   g?gffffff?float16r   r   c           	        ^^ [        TT5      mTR                  UTS9nTR                  STS9TR                  STS9TR                  STS94nUU4S jn[        U/UQ7SU406nUR                  R                  T:X  d   e[        UR                  U[        R                  " TR                  T5      R                  5      S9  g )Nr   rJ   rR   c                 V   > U R                   T:X  d   eTR                  X-
  S-  T5      $ NrL   )r   astype)rO   r   r   r   s     r!   r    .TestChandrupatlaMinimize.test_dtype.<locals>.f  s,    77e###99ag\511r'   r   r   )
r   r   r   rO   r   r   r   sqrtfinfoeps)r   r   r   r   r2   r    r   s     ``   r!   
test_dtype#TestChandrupatlaMinimize.test_dtype  s     E"jjEj*::b:.::au:-::au:-/	2 %Q>>v>uu{{e###s288E?3F3F)GHr'   c                    SnUR                  S5      UR                  S5      UR                  S5      4n[        R                  " [        US9   [	        S /UQ76   S S S 5        SnUR                  S5      UR                  S5      UR                  S5      4n[        R                  " [        US9   [	        S /UQ76   S S S 5        S	nUR                  S
S/5      UR                  SS/5      UR                  / SQ5      4n[        R                  " [        [
        4US9   [	        S /UQ76   S S S 5        SnUR                  SS/5      UR                  SS/5      UR                  SS/5      4n[        R                  " [        US9   [	        S /UQ76   S S S 5        SnUR                  S5      UR                  S5      UR                  S5      4n[        R                  " [        US9   [	        S /UQ7SS06  S S S 5        [        R                  " [        US9   [	        S /UQ7SUR                  06  S S S 5        [        R                  " [        US9   [	        S /UQ7SS06  S S S 5        [        R                  " [        US9   [	        S /UQ7SUR                  06  S S S 5        Sn[        R                  " [        US9   [	        S /UQ7SS06  S S S 5        [        R                  " [        US9   [	        S  /UQ7SS06  S S S 5        S!n[        R                  " [        US9   [	        S" /UQ7S#S$06  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNG= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNr= f! , (       d  f       GNR= f! , (       d  f       GN(= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)%N`func` must be callable.rm   r   r   match3Abscissae and function output must be real numbers.            ?c                     U $ r1   r$   rN   s    r!   r   @TestChandrupatlaMinimize.test_input_validation.<locals>.<lambda>      Qr'   z...be broadcast...rk   r  r^   r   rR   c                     U $ r1   r$   rN   s    r!   r   r)    r*  r'   z:The shape of the array returned by `func` must be the samerR   c                     U S   U S   U S   /$ )N)r   .)rJ   .r$   rN   s    r!   r   r)    s    ai6AfI-Nr'   (Tolerances must be non-negative scalars.c                     U $ r1   r$   rN   s    r!   r   r)    r*  r'   r-   ri   c                     U $ r1   r$   rN   s    r!   r   r)    r*  r'   r.   c                     U $ r1   r$   rN   s    r!   r   r)    r*  r'   r+   ekkic                     U $ r1   r$   rN   s    r!   r   r)    r*  r'   r,   )`maxiter` must be a non-negative integer.c                     U $ r1   r$   rN   s    r!   r   r)    r*  r'   re         ?c                     U $ r1   r$   rN   s    r!   r   r)    r*  r'   `callback` must be callable.c                     U $ r1   r$   rN   s    r!   r   r)    r*  r'   r/   	shrubbery)r   pytestraises
ValueErrorr   RuntimeErrorr   )r   r   messager2   s       r!   test_input_validation.TestChandrupatlaMinimize.test_input_validation  s    -**R."**Q-A>]]:W5"42'2 6 H**W%rzz!}bjjmC]]:W5";99 6 '**b"X&

Aq6(:BJJy<QQ]]J5WE";99 F O**b"X&

Aq6(:BJJ1v<NN]]:W5"#N -$+- 6 =**R."**Q-A>]]:W5";CCC 6]]:W5";GGG 6]]:W5";GGG 6]]:W5";GGG 6 >]]:W5";FF#F 6]]:W5";EE"E 6 1]]:W5";OO;O 65M 65
 65 FE
 65 65555555 6555 65s   M	0MM-M?+NN#N5O	O;O+/O<	
M
M*-
M<?
N
N #
N25
O
O
O(+
O9<
P
c                    UR                  SSS5      S S 2UR                  4   nUR                  [        [	        / SQ5      5      5      R
                  n[        U R                  /UQ7SU406nUR                  [        R                  " UR                  U5      UR                  U R                  X"5      :H  -  5      (       d   eUR                  S S 2S4   n[        UR                  UR                  R
                  U5      SS06  g )	Nri   rJ   rS   r   r   r   r   V瞯<)r   newaxisr   listr   Tr   r    r  xpxiscloserO   r;   r   broadcast_arrays)r   r   r   bracketsr   r   s         r!   test_bracket_order+TestChandrupatlaMinimize.test_bracket_order  s    kk"a#ArzzM2::d<
#;<=??$TVVDhDcVDvvckk#%%-DFF3<L1LMNNNNeeAqDk,,SUUWWc:GGr'   c                   ^ U4S jnTR                  S5      TR                  S5      TR                  S5      4n[        R                  " SS9   [        U/UQ7SSS.6nS S S 5        WR                  (       d   e[        UR                  TR                  S5      S	S
9  [        UR                  TR                  S5      SS9  S nTR                  S5      TR                  S5      TR                  S5      4n[        U/UQ76 nUR                  (       d   e[        UR                  TR                  S5      5        S nTR                  S5      TR                  S5      TR                  S5      4n[        U/UQ7SS06nUR                  (       d   UR                  U:H  5       eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eUR                  S:X  d   eS nTR                  S5      TR                  S5      TR                  S5      4nTR                  S5      n[        U/UQ7SU406n[        UR                  U5        U4S jnTR                  S5      TR                  S5      TR                  TR                  5      4n[        U/UQ7SSSSS.6nUR                  (       d   eUR                  UR                  s=:  a  UR                  :  d   e   eU" UR                  5      U" UR                  5      s=:X  a  U" UR                  5      :X  d   e   eg ! , (       d  f       GN= f)Nc                 Z   > TR                  U R                  S5      (       d   eU S-
  S-  $ )Nreal floatingrJ   rL   r   r   rW   s    r!   r    6TestChandrupatlaMinimize.test_special_cases.<locals>.f  s,    ::agg7777EA:r'   r   r]   ignoreinvalid)r+   r,         ?r   r   r   gN~hatolc                     U S-
  S-  $ NrJ   rL   r$   rN   s    r!   r    rQ        aC!8Or'   rJ   c                     U S-
  S-  $ rZ  r$   rN   s    r!   r    rQ    r[  r'   r  g?rR   re   r^   rk   c                     X-
  S-  S-
  $ )NrL   rJ   r$   rO   cs     r!   r    rQ    s    C!8a<r'   ri   UUUUUU?r   c                 (   > TR                  U 5      * $ r1   )sinrW   s    r!   r    rQ    s    FF1I:r'   r-   r.   r+   r,   )r   r   errstater   r   r   rO   r;   r   r3   r4   r   r   r   r   r8   )r   r   r    r2   r   r_  s    `    r!   test_special_cases+TestChandrupatlaMinimize.test_special_cases  s   	 **R."**Q-A>[[*(GWGAQGC +{{{rzz"~D9Bf=	 **Q-A

1=$Q11{{{rzz"~.	 **R."**S/2::a=@$Q<<!<vv(svv((vww!||xx1}}zzRuu||	  **R."**Q-A>JJsO$Q<<t<q!	 **Q-A

2550AA$QUU!STU{{{vv''''''yAcffI236622222] +*s   L22
Mr$   N)__name__
__module____qualname____firstlineno__r    r;  markparametrizer   r   r   tupler   r   r   r  casesr  r   r@  rK  re  __static_attributes__r$   r'   r!   r~   r~      s!   2
 [[W&<=[[US"++eT2*F$GH& I >& [[Wuwvy&IJ%5 K%5P/2:x2Bh [[VU+B ,B, [[UTD#;$78[[W&GHI I 9I",P\H73r'   r~   zboolean indexing assignmentc            	          \ rS rSrS r\R                  R                  SS\R                  " SSS5      /5      S 5       r
\R                  R                  S	\" 5       S
SS/5      S 5       rS rS rS r\R                  R                  S\5      S 5       r\R                  R                  SSSS/45      \R                  R                  SS5      S 5       5       rS rS rSrg)TestFindRooti$  c                 4    [         R                  " U5      U-
  $ r1   )r   ndtr)r   qr   s      r!   r    TestFindRoot.f+  s    ||A""r'   r   r   ry   r   rv   c                 T   UR                  S5      UR                  S5      pC[        U R                  X44UR                  U5      4S9nUR                  [        R                  " 5       R                  U5      UR                  U5      R                  S9n[        UR                  U5        g )Nr   rZ   r   r   )	r   r   r    r   r   ppfr   r   rO   )r   r   r   abr   r   s          r!   r   TestFindRoot.test_basic.  sy     zz#

21bjjm-=>jj))!,BJJqM4G4GjHs#r'   r   r   r   r   c           
        ^ ^ U(       a'  [         R                  " SSS5      R                  U5      O[         R                  " S5      nUR	                  U5      nU4nUR
                  n[         R                  U 4S j5       nUU 4S jmSTl        UR	                  SUR                  S	9UR	                  S
UR                  S	94n[        TXS9n	U" U5      R                  5       n
U
 Vs/ s H  oR                  PM     nnUR                  UR	                  XS	9U5      n[        U	R                  U5        U
 Vs/ s H  oR                  PM     nnUR                  UR	                  XS	9U5      n[        U	R                  USS9  [        U	R                  T R                  " U	R                  /UQ76 5        U
 Vs/ s H  n[        UR                   5      PM     nnUR                  UR	                  XR                  S	9U5      n[        U	R                   U5        U
 Vs/ s H  oR"                  PM     nnUR                  UR	                  XR$                  S	9U5      n[        U	R"                  U5        U
 Vs/ s H  oR&                  PM     nnUR                  UR	                  UUR$                  S	9U5      n[)        U5      (       aB  [        U	R&                  U5        UR+                  U	R&                  5      TR                  :X  d   eOBU	R&                  R,                  U:X  d   eU	R&                  R
                  UR$                  :X  d   eU
 Vs/ s H  oR.                  PM     nnUR                  UR	                  UUR$                  S	9U5      n[)        U5      (       aE  [        U	R.                  U5        UR+                  U	R.                  5      TR                  S-
  :X  d   eOBU	R.                  R,                  U:X  d   eU	R.                  R
                  UR$                  :X  d   eU
 Vs/ s H  oR0                  S   PM     nnUR                  UR	                  UUS	9U5      n[        U	R0                  S   U5        U
 Vs/ s H  oR0                  S   PM     nnUR                  UR	                  UUS	9U5      n[        U	R0                  S   U5        [3        U	R0                  S   U	R0                  S   5        UR5                  U	R                  5      nUR7                  U	R                  U   U	R0                  S   U   :H  U	R                  U   U	R0                  S   U   :H  -  5      (       d   e[)        U5      (       a  SOSnU
 Vs/ s H  oR8                  S   PM     nnUR                  UR	                  UUS	9U5      n[        U	R8                  S   UUS9  [        U	R8                  S   T R                  " U	R0                  S   /UQ76 5        U
 Vs/ s H  oR8                  S   PM     nnUR                  UR	                  UUS	9U5      n[        U	R8                  S   UUS9  [        U	R8                  S   T R                  " U	R0                  S   /UQ76 5        UR7                  UR;                  U	R                  U   5      UR=                  UR;                  U	R8                  S   U   5      UR;                  U	R8                  S   U   5      5      :H  5      (       d   eg s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf )Nry   r   ru   r   c                 0   > [        TR                  SU 4S9$ )N)r   rR   rw  )r   r    )r   r   s    r!   find_root_single9TestFindRoot.test_vectorization.<locals>.find_root_single@  s    TVVWA488r'   c                  R   > T=R                   S-  sl         TR                  " U 0 UD6$ r   r   r   s     r!   r    *TestFindRoot.test_vectorization.<locals>.fD  r   r'   r   r   r   rZ   rw  rC  rW  rL   rJ   g&.>)r   r   r   r   r   r   	vectorizer   r   ravelrO   r   r:   r   r    r   r   r   r   r   r   r   r   r   r2   r   isfiniter  r5   r   minimum)r   r   r   r   p_xpargs_xpr   r~  r2   r   r   r   ref_xref_fref_success
ref_statusref_nfevref_nitref_xlref_xrfiniterX  ref_flref_frr    s   `                       @r!   r   TestFindRoot.test_vectorization6  s    =BR[[b)11%8**S/ 	
zz!}'

		9 
	9	+ 	**S

*3RZZ"**Z5UU71"((*"&'$3$'

2::e:95Au%$()DSD)

2::e:95AU3!8!89489DStCKK(D9jjKww!GO[1,01DSjjD
1ZZ

:XX
 FN


J/(,-HH-::bjjjBEJB<<CHHh/66#((#qyy00088>>U***88>>RXX---&*+ds77d+**RZZrxxZ@%HB<<CGGW-66#''?aiik11177==E)))77==BHH,,,,01DS++a.D1BJJvUJ;UCA/,01DS++a.D1BJJvUJ;UCA/s{{1~s{{1~6SUU#vvsuuV}Av(>>v#++a.*@@B C C 	C C !u$.23ds--"d3BJJvUJ;UCa(&t<a($&&Q*J'*JK.23ds--"d3BJJvUJ;UCa(&t<a($&&Q*J'*JKvvbffSWWV_-jja(8(@!A!#a(8(@!ACC D D 	D D{ ( *
 : 2 . , 2 2 4
 4s<   &\#6\(6\-\24\7\<)] ]]]c                   ^ U4S jnTR                  STR                  S94nTR                  S/S-  5      TR                  TR                  /S-  5      pT[	        X$U4USS9nTR                  [
        R                  [
        R                  [
        R                  [
        R                  /TR                  S9n[        UR                  U5        g )Nc                 \  > UR                   TR                  :X  d   e[        T5      (       a?  S S S U4S j/n[        X5       VVs/ s H  u  p4U[	        U5         " U5      PM     snn$ S S S U4S j/n[        X5       VVs/ s H  u  p4X$   " U5      PM     snn$ s  snnf s  snnf )	Nc                     U S-
  $ Nr   r$   rN   s    r!   r   4TestFindRoot.test_flags.<locals>.f.<locals>.<lambda>  s    1s7r'   c                     U S-
  $ r   r$   rN   s    r!   r   r    s    1r6r'   c                     U S-
  S-  $ N皙?r^   r$   rN   s    r!   r   r    s    AGa<r'   c                 Z   > TR                  U TR                  TR                  5      5      $ r1   r   rW   s    r!   r   r    s    2<<2::bff3E#Fr'   c                     U S-
  $ r  r$   rN   s    r!   r   r    s    q3wr'   c                     U S-
  $ r   r$   rN   s    r!   r   r    r   r'   c                     U S-
  S-  $ r  r$   rN   s    r!   r   r    r   r'   c                    > TR                   $ r1   )r   rW   s    r!   r   r    s	    rvvr'   )r   r   r   zipr   )r   r   r   rO   r   r   s        r!   r    "TestFindRoot.test_flags.<locals>.f  s     88rxx'''r{{*)/FH 69[A[TQc!fa([AA&%-%'E -0K8KDAEHQKK88 B 9s   	 B"B(r   r   r   rL   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r    r   ry  rz  r   r   s    `      r!   r   TestFindRoot.test_flags  s    	9$ 		!288	,.zz2$q&!2::ruugai#81q6a8JJ # # # 0 8:xx  A	 	

I.r'   c           
      	   [         R                  R                  S5      nUR                  UR                  SS95      nUR                  S5      * UR                  S5      4nU4n[	        U[	        SSSSS9S9n[        U5      nSUS	   S
'   [        U R                  U40 UD6n[        UR                  S   UR                  S   -
  UR                  X1R                  S5      5      5        SUS	   S
'   [        U R                  U40 UD6n	[        U	R                  S   U	R                  S   -
  UR                  X1R                  S5      5      5        [        U	R                  S   U	R                  S   -
  UR                  S   UR                  S   -
  5        [        U5      nSUS	   S'   [        U R                  U40 UD6n[        UR                  S   UR                  S   -
  SUR                  UR                  5      -  5        SUS	   S'   [        U R                  U40 UD6n	[        U	R                  S   U	R                  S   -
  SUR                  U	R                  5      -  5        [        U	R                  S   U	R                  S   -
  UR                  S   UR                  S   -
  5        [        U5      nSUS	   S'   [        U R                  U40 UD6n[        UR                  UR                  5      UR                  X1R                  S5      5      5        SUS	   S'   [        U R                  U40 UD6n	[        UR                  U	R                  5      UR                  X1R                  S5      5      5        [        UR                  U	R                  5      UR                  UR                  5      5        [        U5      nSUS	   S'   Uu  pUR                  UR                  U R                  " U
/UQ76 5      UR                  U R                  " U/UQ76 5      5      n[        U R                  U40 UD6n[        UR                  UR                  5      SU-  5        SUS	   S'   [        U R                  U40 UD6n	[        UR                  U	R                  5      SU-  5        [        UR                  U	R                  5      UR                  UR                  5      5        g )Nr   r^   r   rZ   r   rc  r   r?   r   r?   r-   rJ   r   r.   r+   r,   )r   r   r   r   r   r   r   r    r   r2   r   r   rO   r:   r  )r   r   r   r   r2   r   r   rB   r   r   rb   rc   f0s                r!   r   TestFindRoot.test_convergence  s   ii##$78JJszzqz)*JJrN?BJJrN3tDT!ST-UV'"(,|W%3F3t||Aa8||Azz$'78	:(,|W%3F3t||Aa8||Azz$'78	:t||Aa8||Aa8	: '"(,|W%3F3t||Aa8$:OP(,|W%3F3t||Aa8bffTVVn,	.t||Aa8||Aa8	: '"(,|W%3F3rvvdhh'aD9I)JK(,|W%3F3rvvdhh'aD9I)JKrvvdhh')9:'"(,|W%ZZtvvb0401266$&&:Kd:K3LM3F3rvvdhh'b1(,|W%3F3rvvdhh'b1rvvdhh')9:r'   c           	        ^ ^^^^^^	 TR                  S5      m	TR                  S5      TR                  S5      4mSmU4S jmS Tl        S Tl        [        TTT	4TS9nTR	                  UR
                  5      (       a   eTR                  UR                  TS-   :H  5      (       d   eTR                  UR                  T:H  5      (       d   eUUUU	U U4S jmS	Tl	        S Tl
        S S /Tl        [        TTT	4TS
9nUR                  5        H  nUS:X  aj  [        X$   TR                  [        R                  TR                   S95        [        X4   TR                  [        R"                  TR                   S95        Ms  US;   a.  [        X4   S   X$   S   5        [        X4   S   X$   S   5        M  UR%                  S5      (       a  M  [        X4   X$   5        M     g )Nr   r   rZ   rR   c                 V   > [         R                  " U 5      U-
  nU Tl        UTl        U$ r1   )r   rs  rO   r:   )rt  r   r   r    s      r!   r    -TestFindRoot.test_maxiter_callback.<locals>.f  s(    ,,q/A%CACAEJr'   r   rL   c                   > T=R                   S-  sl         U Tl        [        U S5      (       d   eTR                   S:X  a%  U R                  S   U R                  S   4T:X  d   eOU R                  S   TR                  S   :H  U R                  S   TR                  S   :g  -  U R                  S   TR                  S   :g  U R                  S   TR                  S   :H  -  -  nTR	                  U5      (       d   eU R                  S   TR                  S'   U R                  S   TR                  S'   U R
                  [        R                  :X  d   e[        TR                  U R                  S   T5      U R                  S   5        [        TR                  U R                  S   T5      U R                  S   5        [        TR                  U R                  T5      U R                  5        TR                   T:X  a  [        eg r  )r  r   r  r2   r  r   r   r  r   r    r5   rO   r:   r  )r   changedr2   r/   re   r   r   r   s     r!   r/   4TestFindRoot.test_maxiter_callback.<locals>.callback  s   MMQMHL3$$$$}}!AA77BBB [[^x/?/?/BB"{{1~1A1A!1DDF"{{1~1A1A!1DD!$Q83C3CA3F!FHI vvg&"%++a.HQ"%++a.HQ::!1!1111DFF3;;q>15s}}Q7GHDFF3;;q>15s}}Q7GHDFF355!,cgg6}}'## (r'   ri   r  r   r   >   r2   r5   r   rJ   _)r   rO   r:   r   r  r   r  r   r   r  r   r2   r  r   r   r   r   r  
startswith)
r   r   r   r   rD   r2   r/   r    re   r   s
   ``   @@@@@r!   r  "TestFindRoot.test_maxiter_callback  s   JJx ::c?BJJrN3	
 7!w?66#++&&&&vvchh'!)+,,,,vvcgg())))	$ 	$,  $<G1$B 88:Ch"**S]]"((**ST	2::cnnBHH:+UV00	!chqk:	!chqk:$$	384 r'   r  c           	         Uu  p4pVnUR                  US   UR                  S9UR                  US   UR                  S94nUR                  XRR                  S9n[        X4[        SSS9S9n[	        UR
                  UR                  U" U5      UR                  S9SS	S
9  [        UR                  UR                  XbR                  S95        g )Nr   r   rJ   g|=gh㈵>)r.   r-   r?   g:0yE>gMb`?)r   rX  )	r   r   r   r   r   r:   r   r   r   )	r   r  r   r    r2   rootnfevalidr   s	            r!   r  TestFindRoot.test_nit_expected  s    
 (,$D"
 ::gaj

:;::gaj

:;=zz$jjz1t%t/LMAdG2::!F!	."**V88*"DEr'   r  gCl?gV-?r   r  c                   ^^ [        T5      (       + nU(       a  TS:X  a  [        R                  " S5        [        TTS 5      mTc  [        R                  " T ST 35        UU4S jnTR	                  STS9TR	                  STS9pvTR	                  UTS9n[        XVU4U4SS	0S
9n [        UR                  US	S9  g ! [         a=    UR                  R                  T:X  d   eTR                  UR                  S:H  5         g f = f)Nr  z0`float16` dtype only supported for NumPy arrays.z does not support c                 V   > X-
  S-  n[        T5      (       a  TR                  UTS9$ U$ )NrK   r   )r   r   )rO   r  r   r   r   s      r!   r    "TestFindRoot.test_dtype.<locals>.f<  s0    8"C||zz#Uz33Jr'   r  r   r^   r-   r   r  rW  r   )r   r;  skipr   r   r   r   rO   AssertionErrorr   r  r:   )	r   r  r   r   	not_numpyr    ry  rz  r   s	     ``     r!   r   TestFindRoot.test_dtype0  s     !$	)+KKJKE4(=KK2$089	 zz"Ez*BJJqJ,F1zz$ez,q6WdOL	!CEE4d3 	!55;;%'''FF377a< 	!s   (B> >ADDc           	      R   S nSn[         R                  " [        US9   UR                  S5      UR                  S5      4n[	        S U5        S S S 5        Sn[         R                  " [        US9   UR                  S5      UR                  S5      4n[	        X$5        S S S 5        Sn[         R                  " [        [
        4US9   UR                  S	S
/5      UR                  / SQ5      4n[	        X$5        S S S 5        Sn[         R                  " [        US9   UR                  S
S
/5      UR                  SS/5      4n[	        S U5        S S S 5        SnUR                  S5      UR                  S5      4n[         R                  " [        US9   [	        X$[        SS9S9  S S S 5        [         R                  " [        US9   [	        X$[        UR                  S9S9  S S S 5        [         R                  " [        US9   [	        X$[        SS9S9  S S S 5        [         R                  " [        US9   [	        X$[        UR                  S9S9  S S S 5        Sn[         R                  " [        US9   [	        X$SS9  S S S 5        [         R                  " [        US9   [	        X$SS9  S S S 5        Sn[         R                  " [        US9   [	        X$SS9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN`= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNb= f! , (       d  f       GNA= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nc                     U $ r1   r$   rN   s    r!   r=   0TestFindRoot.test_input_validation.<locals>.funcN  s    Hr'   r#  r$  rm   r   r&  r'  z@(not be broadcast|Attempting to broadcast a dimension of length)rk   r  r+  z,The shape of the array returned by `func`...rR   c                     U S   U S   U S   /$ )Nr   rJ   r$   rN   s    r!   r   4TestFindRoot.test_input_validation.<locals>.<lambda>e  s    1qtQqT 2r'   r.  ri   )r-   r  )r.   r2  )r+   )r,   r4  r6  re   r8  r:  )r/   )r;  r<  r=  r   r   r>  r   r   )r   r   r=   r?  r2   s        r!   r@  "TestFindRoot.test_input_validationK  s   	 -]]:W5jjnbjjm3GdG$ 6 H]]:W5jj'A6Gd$ 6 U]]J5WEjj"b*BJJy,AAGd$ F A]]:W5jj"b*BJJ1v,>>G2G< 6 =**R."**Q-/]]:W5d2? 6]]:W5d2660BC 6]]:W5d60BC 6]]:W5d2660BC 6 >]]:W5dS1 6]]:W5dR0 6 1]]:W5dk: 65O 65
 65 FE
 65 65555555 6555 65s   /K&1.K82L
4LL.	M M9M$8M6$NN&
K58
L

L
L+.
L= 
M
M!$
M36
N
N
N&c                 	  ^ S nTR                  / SQ5      TR                  / SQ5      pC[        R                  " SSS9   [        X#U45      nS S S 5        TR	                  WR
                  5      (       d   e[        UR                  SS  TR                  SUR                  S   5      5        U4S	 jn[        UTR                  S
5      TR                  S5      45      nUR
                  (       d   e[        UR                  TR                  S5      5        S nTR                  SS/5      n[        UTR                  S5      TR                  S5      4U4S9n[        UR
                  TR                  SS/5      5        [        UR                  TR                  TR                  S/5      5        S n[        R                  " SS9   TR                  TR                  5      n[        X'U45      nS S S 5        UR
                  (       d   e[        UR                  TR                  TR                  5      5        S nTR                  S5      TR                  S5      pC[        X#U4SS9n[        UR
                  TR                  S5      5        [        UR                  TR                  STR                  S95        [        UR                  TR                  STR                  S95        [        UR                  TR                  STR                  S95        [        UR                   S   U5        [        UR                   S   U5        [        UR                  U5        [        X$* U* 4SS9n[        UR                  U* 5        [        X#U4SS9n[        UR
                  TR                  S5      5        [        UR                  TR                  STR                  S95        [        UR                  TR                  STR                  S95        [        UR                  TR                  STR                  S95        [        UR                  TR                  S5      5        S n[        UTR                  S5      TR                  S5      4TR                  S5      S9n[        UR                  TR                  S5      5        g ! , (       d  f       GN= f! , (       d  f       GN= f)Nc                 &    SU -  S-   SU * S-   -  -
  $ r   r$   rN   s    r!   r    *TestFindRoot.test_special_cases.<locals>.f  s    q519qQBF|++r'   )r  r   r   r  )?rV  r  rV  rS  )dividerU  rJ   r   r   c                 Z   > TR                  U R                  S5      (       d   eU S-  S-
  $ )NrO     rJ   rP  rW   s    r!   r    r    s,    ::agg77777Q;r'   rR  rR   rV  c                     U S-  U-
  $ r  r$   )rO   r  s     r!   r    r    s    a4$;r'   rw  FTc                     SU -  $ r   r$   rN   s    r!   r    r    s    Q3Jr'   rT  c                     U S-  S-
  $ )Nr^   rJ   r$   rN   s    r!   r    r    s    a4!8Or'   g      rZ   r  rk   r   rL   r^   c                     X-  S-
  $ r   r$   r^  s     r!   r    r    s    37Nr'   ri   r`  )r   r   rd  r   r  r   r   rO   r   r   r   infr   r   r   r   r2   )r   r   r    ry  rz  r   r  r  s    `      r!   re  TestFindRoot.test_special_cases|  s   	, zz,-

;O0P1[[(;A1v&C < vvckk""""ab	2774q#:;	 BJJrNBJJqM:;{{{rzz"~.	 zz1a&!BJJqM2::a=9HRZZ%>?rzz2662,78	 [[***RVV$CASz*C + {{{rzz"&&12	 zz#

21q61-RZZ%67

BJJrJ$BCARXX!>?"**Qbhh*"?@A*A*q!B8Q/r" q61-RZZ%56

BJJqJ$ABARXX!>?"**Qbhh*"?@rzz"~.	 BJJrNBJJqM:AOrzz#/I <;> +*s   S
)S

S
S+r$   N)rg  rh  ri  rj  r    r;  rk  rl  r   r   r   rm  r   r   r   r  r   r  r   r@  re  ro  r$   r'   r!   rq  rq  $  s   # [[S3E4(D"EF$ G$ [[Wuwvy&IJUD KUDn/>1;f;5z [[V%89F :F$ [[VeeU^%<=[[W&GH! I >!2/;bM0r'   rq  )/r   r;  numpyr   r   r   scipyr   r   (scipy._lib._elementwise_iterative_method_lib_elementwise_iterative_methodr   scipy._lib.array_api_extraarray_api_extrarG  scipy._lib._array_apir   r   r   r	   r
   scipy._lib._array_api_no_0dr   r   r   scipy.optimize.elementwiser   r   scipy.optimize._tstutilsr   	itertoolsr   r(   rG   r   rP   rT   rX   r[   r`   rh   rn  rk  skip_xp_backendsr~   rq  r$   r'   r!   <module>r     s         6 6 ( ( W W9 9 ? 8 ":"!J ,L9 8
(%"(8	RL8	RL8	 RL8	 RL	8	
 bM8	 bM8	 bM8	 rN8	 rN8	 rN8	 O8	 QK8	 QK8	 QK8	 QK8	  aL!8	" aL#8	$ aL%8	& rN'8	( rN)8	* rN+8	, O-8	. RL/8	0 RL18	2 RL38	4 RL58	6 bM78	8 bM98	: bM;8	< rN=8	> rN?8	@ rNA8	B OC8	D NE8	F OG8	H OI8	J OK8	L OM8	N NO8	P NQ8	R NS8	T OU8	V OW8	X OY8	Z N[8	\ N]8	^ N_8	` Oa8	b Nc8	d Ne8	f Ng8	h Ni8	j Nk8	l Nm8	n No8	v l3GHk%Q  S0%P  R`3 `3RS I
`3F l3PQ0%P  Rk%Q  S`0 `0SR R
`0r'   