+
    nDjI                     .   ^ RI Ht ^ RIt^ RIt^ RIt^ RIHtHtHtH	t	H
t
HtHtHtHtHtHtHt ^ RIHtHtHtHt ^ RIt]P0                  ! RR7      R,          R,          t]R	,          '       d   ]P4                  ! R
RR7      t^ RIHt ^tR t  ! R R4      t!  ! R R]!4      t" ! R R]!4      t$  ! R R]!4      t% ! R R]!4      t& ! R R4      t'  ! R R]'4      t( ! R  R!]'4      t)  ! R" R#]'4      t* ! R% R&]'4      t+ ! R' R(4      t,  ! R) R*],4      t- ! R, R-],4      t.  ! R. R/],4      t/ ! R1 R2],4      t0 ! R3 R44      t1  ! R5 R6]14      t2 ! R8 R9]14      t3  ! R: R;]14      t4 ! R= R>]14      t5 ! R? R@4      t6  ! RA RB]64      t7 ! RD RE]64      t8  ! RF RG]64      t9 ! RI RJ]64      t: R#   ]# d     ! R R4      t" ELi ; i  ]# d     ! R R4      t% ELi ; i  ]# d     ! R R4      t( ELi ; i  ]# d     ! R$ R#4      t* ELi ; i  ]# d     ! R+ R*4      t- EL	i ; i  ]# d     ! R0 R/4      t/ EL
i ; i  ]# d     ! R7 R64      t2 ELi ; i  ]# d     ! R< R;4      t4 ELi ; i  ]# d     ! RC RB4      t7 Li ; i  ]# d     ! RH RG4      t9 Li ; i)K    )productN)float32float64	complex64
complex128arangearrayzerosshape	transposenewaxiscommon_type	conjugate)assert_array_equalassert_allcloseassert_array_almost_equalassert_dicts)modezBuild Dependenciesblaszcython blas ilp64TzLP64 _fblas wasn't built)allow_module_levelreason)_fblasc                    \        VP                  4      ^8X  d   RpVR\        3,          pMRp\        V P                  ^,          VP                  ^ ,          8H  4       \	        V P                  ^ ,          VP                  ^,          3\        W4      4      p\        V P                  ^ ,          4       Fo  p\        VP                  ^,          4       FL  p^ p\        V P                  ^,          4       F"  pW`WG3,          WV3,          ,          ,          pK$  	  WcWE3&   KN  	  Kq  	  V'       d$   VP                  V P                  ^ ,          34      pV# )   TNNNF)lenr   r   r   r
   r   rangereshape)abb_is_vectorcijsks   &&      W/data/cameron/venvs/s3viz/lib/python3.14/site-packages/scipy/linalg/tests/test_fblas.pymatrixmultiplyr)   %   s    
177|qajMAGGAJ!''!*$%qwwqz1771:&A(9:A1771:qwwqz"AA1771:&qtWqAw&& 'adG	 #  IIqwwqzm$H    c                   N   a  ] tR t^;t o RtR tR tR tR tR t	R t
R tR	tV tR
# )BaseAxpyzMixin class for axpy tests c                    \        R V P                  R7      p\        R VP                  R7      pVR,          V,           pV P                  W4      p\        W24       R# )      @dtype      ?Nr   r0   	blas_funcr   selfxyreal_ys   &   r(   test_default_aBaseAxpy.test_default_a>   sE    2TZZ(2QWW%2aNN1 6%r*   c                    \        R V P                  R7      p\        R VP                  R7      pVR ,          V,           pV P                  WR R7      p\        W24       R# )r.   r/   )r    Nr2   r4   s   &   r(   test_simpleBaseAxpy.test_simpleE   sI    2TZZ(2QWW%2aNN12N&6%r*   c                    \        R V P                  R7      p\        ^VP                  4      p\        RVP                  R7      pVR,          R,          V,           pV P                  WR^^R7      p\	        W24       R# )      @r/   r.   NN   )r    nincxNr   r0   r
   r3   r   r4   s   &   r(   test_x_strideBaseAxpy.test_x_strideL   sa    2TZZ(!QWW2QWW%31NN12N36%r*   c                    \        R V P                  R7      p\        ^VP                  4      pVR ,          VR,          ,           pV P                  WR ^^R7      p\	        W2R,          4       R# )r.   r/   r@   )r    rB   incyNrD   r4   s   &   r(   test_y_strideBaseAxpy.test_y_strideT   sU    2TZZ(!QWW2afNN12N36S6*r*   c           	         \        R V P                  R7      p\        ^VP                  4      pVR,          R,          VR,          ,           pV P                  WR^^^R7      p\	        W2R,          4       R# )      (@r/   NN   r.   r@   )r    rB   rC   rH   NrD   r4   s   &   r(   test_x_and_y_strideBaseAxpy.test_x_and_y_stride[   s\    3djj)!QWW31S6!NN12N;6S6*r*   c           	     
   \        R V P                  R7      p\        ^VP                  4      p\        P                  ! \
        RR7      ;_uu_ 4        V P                  W^^R7       RRR4       R#   + '       g   i     R# ; irL   r/   failed for 1st keywordmatchrB   rC   Nr   r0   r
   pytestraises	Exceptionr3   r5   r6   r7   s   &  r(   test_x_bad_sizeBaseAxpy.test_x_bad_sizeb   V    3djj)!QWW]]9,DEENN111N- FEEE   A11B	c           	     
   \        R V P                  R7      p\        ^VP                  4      p\        P                  ! \
        RR7      ;_uu_ 4        V P                  W^^R7       RRR4       R#   + '       g   i     R# ; irL   r/   rS   rT   rB   rH   NrW   r[   s   &  r(   test_y_bad_sizeBaseAxpy.test_y_bad_sizeh   r^   r_    N)__name__
__module____qualname____firstlineno____doc__r9   r<   rE   rI   rO   r\   rc   __static_attributes____classdictcell____classdict__s   @r(   r,   r,   ;   s0     &&&&++.. .r*   r,   c                   2    ] tR t^pt]P
                  t]tRt	R# 	TestSaxpyre   N)
rf   rg   rh   ri   fblassaxpyr3   r   r0   rk   re   r*   r(   rq   rq   p       KK	r*   rq   c                       ] tR t^ttRtR# rp   rf   rg   rh   ri   rk   re   r*   r(   rq   rq   t       r*   c                   2    ] tR t^xt]P
                  t]tRt	R# )	TestDaxpyre   N)
rf   rg   rh   ri   rr   daxpyr3   r   r0   rk   re   r*   r(   ry   ry   x       IEr*   ry   c                   2    ] tR t^~t]P
                  t]tRt	R# 	TestCaxpyre   N)
rf   rg   rh   ri   rr   caxpyr3   r   r0   rk   re   r*   r(   r~   r~   ~       KK	r*   r~   c                       ] tR t^tRtR# r}   rv   re   r*   r(   r~   r~      rw   r*   c                   2    ] tR t^t]P
                  t]tRt	R# )	TestZaxpyre   N)
rf   rg   rh   ri   rr   zaxpyr3   r   r0   rk   re   r*   r(   r   r          IEr*   r   c                   6   a  ] tR t^t o RtR tR tR tRtV t	R# )BaseScalzMixin class for scal testing c                    \        R V P                  R7      pVR ,          pV P                  R V4      p\        W!4       R# r.   r/   Nr2   r5   r6   real_xs   &  r(   r<   BaseScal.test_simple   s3    2TZZ(2NN2q!6%r*   c                    \        R V P                  R7      pVP                  4       pVR,          \        RV P                  4      ,          VR&   V P	                  RV^^R7      p\        W!4       R# )r?   r/   r@   r.   rV   N)r   r0   copyr	   r3   r   r   s   &  r(   rE   BaseScal.test_x_stride   sX    2TZZ(fU2tzz22sNN2qAAN.6%r*   c           	         \        R V P                  R7      p\        P                  ! \        RR7      ;_uu_ 4        V P                  RV^^R7       RRR4       R#   + '       g   i     R# ; i)rL   r/   rS   rT   g       @rV   N)r   r0   rX   rY   rZ   r3   )r5   r6   s   & r(   r\   BaseScal.test_x_bad_size   sH    3djj)]]9,DEENN2qAAN. FEEEs   AA-	re   N)
rf   rg   rh   ri   rj   r<   rE   r\   rk   rl   rm   s   @r(   r   r      s     (&&/ /r*   r   c                   2    ] tR t^t]P
                  t]tRt	R# 	TestSscalre   N)
rf   rg   rh   ri   rr   sscalr3   r   r0   rk   re   r*   r(   r   r      rt   r*   r   c                       ] tR t^tRtR# r   rv   re   r*   r(   r   r      rw   r*   c                   2    ] tR t^t]P
                  t]tRt	R# )	TestDscalre   N)
rf   rg   rh   ri   rr   dscalr3   r   r0   rk   re   r*   r(   r   r      r{   r*   r   c                   2    ] tR t^t]P
                  t]tRt	R# 	TestCscalre   N)
rf   rg   rh   ri   rr   cscalr3   r   r0   rk   re   r*   r(   r   r      r   r*   r   c                       ] tR t^tRtR# r   rv   re   r*   r(   r   r      rw   r*   c                   2    ] tR t^t]P
                  t]tRt	R# )	TestZscalre   N)
rf   rg   rh   ri   rr   zscalr3   r   r0   rk   re   r*   r(   r   r      r   r*   r   c                   H   a  ] tR t^t o RtR tR tR tR tR t	R t
RtV tR	# )
BaseCopyzMixin class for copy testing c                    \        R V P                  R7      p\        \        V4      VP                  4      pV P	                  W4      p\        W4       R# r   )r   r0   r
   r   r3   r   r[   s   &  r(   r<   BaseCopy.test_simple   s<    2TZZ(%(AGG$NN1 1 r*   c                    \        R V P                  R7      p\        ^VP                  4      pV P                  W^^R7      p\	        VR,          V4       R# )r?   r/   rV   r@   NrD   r[   s   &  r(   rE   BaseCopy.test_x_stride   sD    2TZZ(!QWWNN111N-1S61%r*   c                    \        R V P                  R7      p\        ^VP                  4      pV P                  W^^R7      p\	        WR,          4       R# )r.   r/   rb   r@   NrD   r[   s   &  r(   rI   BaseCopy.test_y_stride   sB    2TZZ(!QWWNN111N-1f%r*   c                    \        R V P                  R7      p\        ^VP                  4      pV P                  W^^^R7      p\	        VR,          VR,          4       R# )rL   r/   rB   rC   rH   rM   r@   NrD   r[   s   &  r(   rO   BaseCopy.test_x_and_y_stride   sJ    3djj)!QWWNN1111N51S61S6*r*   c           	     
   \        R V P                  R7      p\        ^VP                  4      p\        P                  ! \
        RR7      ;_uu_ 4        V P                  W^^R7       RRR4       R#   + '       g   i     R# ; irR   rW   r[   s   &  r(   r\   BaseCopy.test_x_bad_size   r^   r_   c           	     
   \        R V P                  R7      p\        ^VP                  4      p\        P                  ! \
        RR7      ;_uu_ 4        V P                  W^^R7       RRR4       R#   + '       g   i     R# ; ira   rW   r[   s   &  r(   rc   BaseCopy.test_y_bad_size   r^   r_   re   Nrf   rg   rh   ri   rj   r<   rE   rI   rO   r\   rc   rk   rl   rm   s   @r(   r   r      s+     (!&&+.. .r*   r   c                   2    ] tR t^t]P
                  t]tRt	R# 	TestScopyre   N)
rf   rg   rh   ri   rr   scopyr3   r   r0   rk   re   r*   r(   r   r      rt   r*   r   c                       ] tR t^tRtR# r   rv   re   r*   r(   r   r      rw   r*   c                   2    ] tR t^t]P
                  t]tRt	R# )	TestDcopyre   N)
rf   rg   rh   ri   rr   dcopyr3   r   r0   rk   re   r*   r(   r   r      r{   r*   r   c                   2    ] tR tRt]P
                  t]tRt	R# )	TestCcopyi  re   N)
rf   rg   rh   ri   rr   ccopyr3   r   r0   rk   re   r*   r(   r   r     r   r*   r   c                       ] tR tRtRtR# )r   i  re   Nrv   re   r*   r(   r   r     rw   r*   c                   2    ] tR tRt]P
                  t]tRt	R# )	TestZcopyi	  re   N)
rf   rg   rh   ri   rr   zcopyr3   r   r0   rk   re   r*   r(   r   r   	  r   r*   r   c                   H   a  ] tR tRt o RtR tR tR tR tR t	R t
R	tV tR
# )BaseSwapi  zMixin class for swap tests c                   \        R V P                  R7      p\        \        V4      VP                  4      pVP	                  4       pVP	                  4       pV P                  W4      w  r\        W14       \        WB4       R# r   )r   r0   r
   r   r   r3   r   r5   r6   r7   	desired_x	desired_ys   &    r(   r<   BaseSwap.test_simple  s\    2TZZ(%(AGG$FFH	FFH	~~a#9(9(r*   c                   \        R V P                  R7      p\        ^VP                  4      pVP                  4       pVP                  4       R,          pV P	                  W^^R7      w  r\        W1R,          4       \        WB4       R# )r?   r/   r@   rV   Nr   r0   r
   r   r3   r   r   s   &    r(   rE   BaseSwap.test_x_stride  sf    2TZZ(!QWWFFH	FFHSM	~~aaa~09f-9(r*   c                   \        R V P                  R7      p\        ^VP                  4      pVP                  4       R,          pVP                  4       pV P	                  W^^R7      w  r\        W14       \        WBR,          4       R# )r.   r/   r@   rb   Nr   r   s   &    r(   rI   BaseSwap.test_y_stride&  sf    2TZZ(!QWWFFHSM	FFH	~~aaa~09(9f-r*   c                2   \        R V P                  R7      p\        ^VP                  4      pVP                  4       R,          pVP                  4       R,          pV P	                  W^^^R7      w  r\        W1R,          4       \        WBR,          4       R# )rL   r/   r@   rM   r   Nr   r   s   &    r(   rO   BaseSwap.test_x_and_y_stride/  sp    3djj)!QWWFFHSM	FFHSM	~~aaaa~89f-9f-r*   c           	     
   \        R V P                  R7      p\        ^VP                  4      p\        P                  ! \
        RR7      ;_uu_ 4        V P                  W^^R7       RRR4       R#   + '       g   i     R# ; irR   rW   r[   s   &  r(   r\   BaseSwap.test_x_bad_size8  r^   r_   c           	     
   \        R V P                  R7      p\        ^VP                  4      p\        P                  ! \
        RR7      ;_uu_ 4        V P                  W^^R7       RRR4       R#   + '       g   i     R# ; ira   rW   r[   s   &  r(   rc   BaseSwap.test_y_bad_size>  r^   r_   re   Nr   rm   s   @r(   r   r     s+     &)).... .r*   r   c                   2    ] tR tRt]P
                  t]tRt	R# )	TestSswapiF  re   N)
rf   rg   rh   ri   rr   sswapr3   r   r0   rk   re   r*   r(   r   r   F  rt   r*   r   c                       ] tR tRtRtR# )r   iJ  re   Nrv   re   r*   r(   r   r   J  rw   r*   c                   2    ] tR tRt]P
                  t]tRt	R# )	TestDswapiN  re   N)
rf   rg   rh   ri   rr   dswapr3   r   r0   rk   re   r*   r(   r   r   N  r{   r*   r   c                   2    ] tR tRt]P
                  t]tRt	R# )	TestCswapiT  re   N)
rf   rg   rh   ri   rr   cswapr3   r   r0   rk   re   r*   r(   r   r   T  r   r*   r   c                       ] tR tRtRtR# )r   iX  re   Nrv   re   r*   r(   r   r   X  rw   r*   c                   2    ] tR tRt]P
                  t]tRt	R# )	TestZswapi\  re   N)
rf   rg   rh   ri   rr   zswapr3   r   r0   rk   re   r*   r(   r   r   \  r   r*   r   c                   j   a  ] tR tRt o RtRR l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# )BaseGemvie  zMixin class for gemv tests c                   \         P                  P                  R 4      p\        ^V P                  R7      pV P                  \
        \        39   d   \        RV P                  R7      p\        RV P                  R7      V,          p\        RV P                  R7      V,          pVP                  RRR4      P                  V P                  4      V,          p\        \        V4      ^ ,          V,          V P                  R7      V,          p\        \        V4      ^,          V,          V P                  R7      V,          p	WVWxV	3# )  r/   r1   g        y      ?      ?)   r   )nprandomdefault_rngr	   r0   r   r   normalastyper   r   )
r5   x_stridey_striderngmultalphabetar    r6   r7   s
   &&&       r(   get_dataBaseGemv.get_datah  s    ii##D)Qdjj)::)Z00TZZ0Db

+d2Rtzz*T1JJr2v&--djj9D@58A;x'tzz:TA58A;x'tzz:TAA!##r*   c                    V P                  4       w  rr4pV\        W44      ,          W%,          ,           pV P                  WWBV4      p\        We4       R # )Nr   r)   r3   r   r5   r   r   r    r6   r7   r   s   &      r(   r<   BaseGemv.test_simplet  sD    #}}Q1...tv5	NN5Qa0!)/r*   c                ~    V P                  4       w  rr4p\        W44      pV P                  ^W44      p\        We4       R# )r   Nr   r   s   &      r(   test_default_beta_yBaseGemv.test_default_beta_yz  s6    #}}Q1"1(	NN1a#!)/r*   c           	         V P                  4       w  rr4pV\        \        V4      V4      ,          W%,          ,           pV P                  WWBV^R7      p\	        We4       R# )r   transNr   r)   r   r3   r   r   s   &      r(   test_simple_transposeBaseGemv.test_simple_transpose  sN    #}}Q1.1q99$&@	NN5QaqN9!)/r*   c           	         V P                  4       w  rr4pV\        \        \        V4      4      V4      ,          W%,          ,           pV P	                  WWBV^R7      p\        We4       R# )rA   r   N)r   r)   r   r   r3   r   r   s   &      r(   test_simple_transpose_conj#BaseGemv.test_simple_transpose_conj  sS    #}}Q1.9Q<)@!DDTVK	NN5QaqN9!)/r*   c           	         V P                  ^R7      w  rr4pV\        W4R,          4      ,          W%,          ,           pV P                  WWBV^R7      p\        We4       R# )rA   r   r@   )rC   Nr   r   s   &      r(   rE   BaseGemv.test_x_stride  sQ    #}}a}8Q1.cF33DF:	NN5QaaN8!)/r*   c           
         V P                  ^R7      w  rr4pV\        \        V4      VR,          4      ,          W%,          ,           pV P                  WWBV^^R7      p\	        We4       R# )rA   r  r@   r   rC   Nr   r   s   &      r(   test_x_stride_transpose BaseGemv.test_x_stride_transpose  sY    #}}a}8Q1.1qv>>tvE	NN5QaqqNA!)/r*   c                   V P                  ^R7      w  rr4p\        P                  ! \        RR7      ;_uu_ 4        V P	                  ^W4^V^ ^R7      pRRR4       \        P                  ! \        RR7      ;_uu_ 4        V P	                  ^W4^V^^R7      pRRR4       R#   + '       g   i     LV; i  + '       g   i     R# ; i)rA   r  zfailed for 3rd argumentrT   r  Nr   rX   rY   rZ   r3   r5   r   r   r    r6   r7   s   &     r(   test_x_stride_assertBaseGemv.test_x_stride_assert  s    #}}a}8Q1]]9,EFFq!1AA>A G]]9,EFFq!1AA>A GF GFFFF   B!?B4!B1	4C	c           	         V P                  ^R7      w  rr4pVP                  4       pV\        W44      ,          W%R,          ,          ,           VR&   V P                  WWBV^R7      p\	        We4       R# )rA   r   r@   )rH   N)r   r   r)   r3   r   r   s   &      r(   rI   BaseGemv.test_y_stride  s`    #}}a}8Q1FFH	~a33D3K?	#NN5QaaN8!)/r*   c           
         V P                  ^R7      w  rr4pVP                  4       pV\        \        V4      V4      ,          W%R,          ,          ,           VR&   V P	                  WWBV^^R7      p\        We4       R# )rA   r  r@   r   rH   N)r   r   r)   r   r3   r   r   s   &      r(   test_y_stride_transpose BaseGemv.test_y_stride_transpose  sh    #}}a}8Q1FFH	~ilA>>tcF{J	#NN5QaqqNA!)/r*   c                   V P                  ^R7      w  rr4p\        P                  ! \        RR7      ;_uu_ 4        V P	                  ^W4^V^ ^R7      pRRR4       \        P                  ! \        RR7      ;_uu_ 4        V P	                  ^W4^V^^R7      pRRR4       R#   + '       g   i     LV; i  + '       g   i     R# ; i)rA   r  zfailed for 2nd keywordrT   r  Nr  r  s   &     r(   test_y_stride_assertBaseGemv.test_y_stride_assert  s    #}}a}8Q1]]9,DEEq!1AA>A F]]9,DEEq!1AA>A FE FEEEEr  re   N)r   r   )rf   rg   rh   ri   rj   r   r<   r   r   r  rE   r  r  rI   r  r  rk   rl   rm   s   @r(   r   r   e  sD     &
$000000?00? ?r*   r   c                      a  ] tR tRt o ]P
                  t]t]	P                  P                  ]P                  R8g  RR7      R 4       tRtV tR# )	TestSgemvi  darwinzMacOS specific test)r   c                  a a RR loRV3R llpV 3R lp\        RR	R
R4      p\        P                  P                  R4      pV Fz  w  rVrxVP                  Wg34      p	VP                  V4      p
\        P                  ! W4      pV! W\        P
                  VR7      pV! W\        P
                  VR7      pV! WV4       K|  	  R# )Cc                    V! 4       p\         P                  ! V 4      p\         P                  ! WTP                  ,          V,           \         P                  R 7      pVP
                  R,          ^ ,          p\        V4       F  pWx,           V,          ^ 8X  g   K   M	  VXWVP                  ,          ,            P                  VR 7      pVP                  WR7      # )r/   dataorder)	r   prodr
   nbytesuint8__array_interface__r   viewr   )	r   alignr0   r"  dNtmpaddressoffsets	   &&&&     r(   aligned_array2TestSgemv.test_sgemv_on_osx.<locals>.aligned_array  s    GGGENhhq88|e3288D11&9!<#ElF(E1Q6 + &!((
!2388u8E{{5{66r*   c                 H   < S! V P                   WV4      pV R ,          VR &   V# )r   )r   )arrr(  r0   r"  alignedr.  s   &&&& r(   
as_aligned/TestSgemv.test_sgemv_on_osx.<locals>.as_aligned  s'    '		5G V
r*   c                 F   < \        SP                  R W4      VRRR7       R# )r1   gh㈵>gHz>)rtolatolN)r   r3   )AXdesiredr5   s   &&&r(   assert_dot_close5TestSgemv.test_sgemv_on_osx.<locals>.assert_dot_close  s    sA 97%)6r*   r   r!  N)r  )       )i'  )   Y   )r  F)r   r   r   r   dotr   )r5   r3  r;  testdatar   r(  mrB   a_orderA_dX_dr:  A_fX_fr.  s   f             @r(   test_sgemv_on_osxTestSgemv.test_sgemv_on_osx  s    76 x9jIH))''-C(0$!jj!(jjm&&* RZZwG RZZwG 73 )1r*   re   N)rf   rg   rh   ri   rr   sgemvr3   r   r0   rX   markskipifsysplatformrJ  rk   rl   rm   s   @r(   r  r    sD     KK				CLLH4=R		S"	4 
T"	4r*   r  c                       ] tR tRtRtR# )r  i  re   Nrv   re   r*   r(   r  r    rw   r*   c                   2    ] tR tRt]P
                  t]tRt	R# )	TestDgemvi  re   N)
rf   rg   rh   ri   rr   dgemvr3   r   r0   rk   re   r*   r(   rS  rS    r{   r*   rS  c                   2    ] tR tRt]P
                  t]tRt	R# )	TestCgemvi  re   N)
rf   rg   rh   ri   rr   cgemvr3   r   r0   rk   re   r*   r(   rV  rV    r   r*   rV  c                       ] tR tRtRtR# )rV  i  re   Nrv   re   r*   r(   rV  rV    rw   r*   c                   2    ] tR tRt]P
                  t]tRt	R# )	TestZgemvi  re   N)
rf   rg   rh   ri   rr   zgemvr3   r   r0   rk   re   r*   r(   rZ  rZ    r   r*   rZ  );	itertoolsr   rO  numpyr   rX   r   r   r   r   r   r	   r
   r   r   r   r   r   numpy.testingr   r   r   r   scipyshow_configblas_configskip
pytestmarkscipy.linalgr   rr   accuracyr)   r,   rq   AttributeErrorry   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  rS  rV  rZ  re   r*   r(   <module>rg     s    
  K K K K  W-.BCFK"##$>@J ) ,1. 1.hH  
H  / /,H  
H  %. %.^H  
H  1. 1.hH  
H  O? O?d,'4H '4\ 
H  
-d7q      N      @      J      T      s   F) 0G G (G1 	H	  H! H9 I 9I) J  )F>=F>GGG.-G.1HH	HH!H65H69III&%I&)I=<I= JJ