+
    +QjE  c                       R t ^ RIt^ RIHu Ht ^ RIt^ RIt^ RI	t	0 Rmt
0 Rmt]
],          tR tR tR tR tR tR tR tR	 tR
 tR# )uD   Tool JSON schemas + executors. HTTP is monkeypatched — no network.Nc                     . p \         P                   EFJ  pVR ,          pRq2V8H  qD'       gy   \        P                  ! R/V3R0W#34      R\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCVR,          p. qR,          p\        V\        4      qq)'       d   VR,          qpV'       Egq   RR	R
\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MR
R\        P                  ! V4      RR\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MRR\        P                  ! V	4      /,          qP                  V4       V	'       d0   RR\        P                  ! X
4      /,          qP                  V4       \        P                  ! V^ 4      / ,          pRRV/,          p\        \        P                  ! V4      4      hR;p;p;p;r. qR,          p\        V\        4      qq)'       d   VR,          qpV'       Egq   RR	R
\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MR
R\        P                  ! V4      RR\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MRR\        P                  ! V	4      /,          qP                  V4       V	'       d0   RR\        P                  ! V
4      /,          qP                  V4       \        P                  ! V^ 4      / ,          pRRV/,          p\        \        P                  ! V4      4      hR;p;p;p;rVR,          pVR ,          pRq2V8H  qD'       gy   \        P                  ! R/V3R0W#34      R\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;rCVR,          p\        V\        4      pV'       Eg   RRR
\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MR
R	\        P                  ! V4      RR\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MRR\        P                  ! V4      /,          p\        \        P                  ! V4      4      hR;ppVP                  R. 4      p\        V\         4      q3'       Eg9   RRR
\        P                  ! 4       9   g!   \        P                  ! \        4      '       d   \        P                  ! \        4      MR
RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR	R\        P                  ! 4       9   g!   \        P                  ! \         4      '       d   \        P                  ! \         4      MRR\        P                  ! V4      /,          p\        \        P                  ! V4      4      hRpV F  pVR,          pVV9   q'       g   \        P                  ! R1V3R2VV34      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR\        P                  ! V4      /,          p\        P"                  ! VR,           RV R 24      R!,           RV/,          p\        \        P                  ! V4      4      hR;rK  	  \$        P&                  ! V4       V P                  VR,          4       EKM  	  \)        V 4      qD\*        8H  pV'       Egb   \        P                  ! R/V3R3V\*        34      RR"\        P                  ! 4       9   g!   \        P                  ! \(        4      '       d   \        P                  ! \(        4      MR"RR#\        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MR#R\        P                  ! V4      RR$\        P                  ! 4       9   g!   \        P                  ! \*        4      '       d   \        P                  ! \*        4      MR$/,          pR%RV/,          p\        \        P                  ! V4      4      hR;pp\-        V 4      p\)        V 4      p
\-        V
4      pVV8H  p\-        \*        4      pVV8H  pV'       d
   V'       Eg   \        P                  ! R4VV3R5VVV34      RR&\        P                  ! 4       9   g!   \        P                  ! \,        4      '       d   \        P                  ! \,        4      MR&RR#\        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MR#R\        P                  ! V4      RR&\        P                  ! 4       9   g!   \        P                  ! \,        4      '       d   \        P                  ! \,        4      MR&RR"\        P                  ! 4       9   g!   \        P                  ! \(        4      '       d   \        P                  ! \(        4      MR"R'R#\        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MR#R\        P                  ! V
4      R(\        P                  ! V4      RR&\        P                  ! 4       9   g!   \        P                  ! \,        4      '       d   \        P                  ! \,        4      MR&R)R$\        P                  ! 4       9   g!   \        P                  ! \*        4      '       d   \        P                  ! \*        4      MR$R*\        P                  ! V4      /,          pR+R,V/,          p\        \        P                  ! V4      4      hR;p;p;p;p
;pp\)        V 4      p\         P.                  p\)        V4      qV
8H  pV'       Eg   \        P                  ! R/V3R6WJ34      RR"\        P                  ! 4       9   g!   \        P                  ! \(        4      '       d   \        P                  ! \(        4      MR"RR#\        P                  ! 4       9   g   \        P                  ! V 4      '       d   \        P                  ! V 4      MR#R\        P                  ! V4      RR"\        P                  ! 4       9   g!   \        P                  ! \(        4      '       d   \        P                  ! \(        4      MR"RR-\        P                  ! 4       9   g!   \        P                  ! \         4      '       d   \        P                  ! \         4      MR-R'\        P                  ! V4      R\        P                  ! V
4      /,          pR.R(V/,          p\        \        P                  ! V4      4      hR;p;p;pp
R# )7typefunctionpy1py4assert %(py6)spy6Nnamez.%(py7)s
{%(py7)s = %(py2)s(%(py4)s, %(py5)s)
}py2
isinstancepy5strpy7z%(py10)spy10zassert %(py13)spy13description
parametersobject
propertiesz5assert %(py5)s
{%(py5)s = %(py0)s(%(py2)s, %(py3)s)
}py0py3dictrequiredz5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}reqlistrz: z not declaredz
>assert %(py5)ssetnames	_EXPECTEDzassert %(py7)slenpy8py12py14py16zassert %(py18)spy18toolszassert %(py12)s==z%(py1)s == %(py4)sin)z%(py0)s in %(py3)s)z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py5)s)r&   r&   )zp%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py12)s
{%(py12)s = %(py6)s(%(py10)s
{%(py10)s = %(py7)s(%(py8)s)
})
}zt%(py12)s
{%(py12)s = %(py6)s(%(py10)s
{%(py10)s = %(py7)s(%(py8)s)
})
} == %(py16)s
{%(py16)s = %(py13)s(%(py14)s)
})zp%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py10)s
{%(py10)s = %(py5)s(%(py8)s
{%(py8)s = %(py6)s._EXECUTORS
})
})r$   
TOOL_SPECS
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanationr
   r   @py_builtinslocals_should_repr_global_nameappend_format_boolopr   getr   _format_assertmsgjsondumpsr   r   r   
_EXECUTORS)r   spec@py_assert0@py_assert3@py_assert2@py_format5@py_format7fn@py_assert1@py_assert6@py_assert9@py_format8@py_format11@py_format12@py_format14params@py_assert4@py_format6r   r   @py_format4@py_assert11@py_assert15@py_assert5@py_format17@py_format19@py_assert7@py_format13s                               F/Users/ahmed/devFolder/Ultron/claude-voice/gateway/tests/test_tools.py1test_tool_specs_are_valid_openai_function_schemasrT      so   E  F|)z)z)))))|)))|)))z))))))))*9V*9z*c*9*r&z9999999z9999z999*999999c9999c999*9999*999z99999999999999G]+Gz+S1G1b6GGGGGGGGzGGGGzGGG+GGGGGGSGGGGSGGG1GGGG1GGG6GGGGGGGGGGGGGGGL!f~)))))))~)))~))))))))))) .5z.5555555555z5555z555.55555555555555555555jjR(#t$$$$$$$$$z$$$$z$$$$$$$#$$$$#$$$$$$$t$$$$t$$$$$$$$$$A|,O1,,OOOO1,OOOOOO1OOOO1OOO,OOOOFBqc.OOOOOOOOO  	

4RZ  !  u:"""""":""""""3""""3"""""""u""""u""":""""""""""""""""""u::SZ:Z::::C	N:N:::::::N::::::3::::3:::::::u::::u:::::::::::::::::::::S::::S::::::::::::::Z:::::::::C::::C:::::::	::::	:::N:::::::::u:.U--.-........:......3....3.......u....u...:.................U....U...-............    c                   "   RR lpV P                  \        RV4       \        P                  ! RRR/4      G R j  xL
 pRq3V9   qD'       g   \        P                  ! RV3RW234      R\        P
                  ! V4      RR	\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P
                  ! V4      MR	/,          pR
RV/,          p\        \        P                  ! V4      4      hR ;r4Rq3V9   qD'       g   \        P                  ! RV3RW234      R\        P
                  ! V4      RR	\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P
                  ! V4      MR	/,          pR
RV/,          p\        \        P                  ! V4      4      hR ;r4R #  EL5i)Nc                   "   . pR q`V8H  qwq'       d   RqV	8H  qpV'       Eg   \         P                  ! RV3RW34      RR\        P                  ! 4       9   g   \         P                  ! V 4      '       d   \         P
                  ! V 4      MRR\         P
                  ! V4      /,          pRRV/,          qP                  V4       V'       d   \         P                  ! RX
3RVX	34      RR\        P                  ! 4       9   g   \         P                  ! V4      '       d   \         P
                  ! V4      MRR	\         P
                  ! V	4      /,          pR
RV/,          qP                  V4       \         P                  ! V^ 4      / ,          pRRV/,          p\        \         P                  ! V4      4      hR;p;p;p;p;rVR,          pRqxV8H  pV'       gy   \         P                  ! RV3RW34      R\         P
                  ! V4      R\         P
                  ! V4      /,          pRRV/,          p\        \         P                  ! V4      4      hR;p;ppRRRRRRR/./# 5i) GETz/searchr	   methodr   %(py7)sr   py9pathr    %(py14)sr!   assert %(py17)spy17Nqcoffeer   r   r   r   factsfactAhmed likes flat whitesidm1linkedFr%   )z%(py2)s == %(py5)s)z%(py9)s == %(py12)sr'   )
r+   r,   r0   r1   r2   r-   r3   r4   r.   r/   )rY   r\   rH   bodytimeoutrA   rI   r<   r;   rL   @py_assert10rJ   rD   rR   @py_format15@py_format16@py_format18r=   r>   r?   s   &&&&&               rS   fake_req2test_memory_search_formats_facts.<locals>.fake_req1   sM    4444949#44444v444444v4444v4444444444444944444444444444494444444444444444c{&h&h&&&&&{&&&{&&&h&&&&&&&&6#<dD#U, - . 	.s    I!AI!4B)I!EI!_mem_requestmemory_searchqueryra   rd   r   r   outassert %(py5)sr   rf   NNg      4@r(   z%(py1)s in %(py3)s)setattrr$   executer+   r,   r-   r0   r1   r2   r.   r/   )monkeypatchrn   rs   r;   r=   rK   rJ   s   &      rS    test_memory_search_formats_factsrz   0   s     .
 ~x8o/BC
CC$++++++$+++$++++++++++++++++++3;4433 Ds   9GGA7G4B?G4AGc                 t  a"   / oRV3R llpV P                  \        RV4       \        P                  ! RRR/4      G R j  xL
 pRq2V8H  qD'       g   \        P                  ! RV3RW#34      RR\
        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MRR	\        P                  ! V4      /,          pR
RV/,          p\        \        P                  ! V4      4      hR ;rCSR,          pRqV8H  q3'       gy   \        P                  ! RV3RWx34      R\        P                  ! V4      R\        P                  ! V4      /,          p	RRV	/,          p
\        \        P                  ! V
4      4      hR ;p;r8SR,          R,          pRqV8H  q3'       gy   \        P                  ! RV3RWx34      R\        P                  ! V4      R\        P                  ! V4      /,          p	RRV	/,          p
\        \        P                  ! V
4      4      hR ;p;r8R #  EL5i)Nc                 (   <"   VSR &   VSR&   RR/# 5i)r\   rh   re   x )rY   r\   rH   rh   ri   seens   &&&&&rS   rn   ,test_memory_remember_posts.<locals>.fake_req>   s"     VVc{s   rp   memory_remembertextzAli is the new PMzRemembered.r   rs   r   rt   r   r\   z	/rememberr   r   r   r   rh   ru   r%   )z%(py0)s == %(py3)sr'   )rw   r$   rx   r+   r,   r0   r1   r2   r-   r.   r/   )ry   rn   rs   r=   rA   rK   rJ   r;   r<   r>   r?   r   s   &          @rS   test_memory_remember_postsr   <   sL    D ~x8/&:M1NO
OC-333-<&;&;&&&&&<&&&<&&&;&&&&&&&&<6#66#666666666666#666666666 Ps   >H8H5A!H8$FH8c                   "   RR lpV P                  \        RV4       \        P                  ! RRRRR/4      G R j  xL
 p. pRqDV9   qUqe'       d   RqwV9   qpV'       Eg   \        P                  ! RV3RWB34      R	\        P
                  ! V4      R
R\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P
                  ! V4      MR/,          p	RRV	/,          qP                  V
4       V'       d   \        P                  ! RX3RXV34      R\        P
                  ! V4      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P
                  ! V4      MR/,          pRRV/,          qP                  V4       \        P                  ! V^ 4      / ,          pRRV/,          p\        \        P                  ! V4      4      hR ;p;p;p;p;rx\        P                  ! R/ 4      G R j  xL
 p. pRqDV9   qUqe'       d   RqwV9   qpV'       Eg   \        P                  ! RV3RWO34      R	\        P
                  ! V4      R
R\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P
                  ! V4      MR/,          p	RRV	/,          qP                  V
4       V'       d   \        P                  ! RV3RW34      R\        P
                  ! V4      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P
                  ! V4      MR/,          pRRV/,          qP                  V4       \        P                  ! V^ 4      / ,          pRRV/,          p\        \        P                  ! V4      4      hR ;p;p;p;p;rxR #  EL EL5i)Nc                 H   "   VR 8X  d   RR/# VR8X  d   RRRRRRR	/./# / # 5i)
z/taskre   t9z/taskstaskst1r   Call supplierdue2026-07-11T09:00:00r~   )rY   r\   rH   rh   ri   s   &&&&&rS   rn   )test_tasks_list_and_add.<locals>.fake_reqJ   sH     7?$<8tT6?$&;= > ? ?	s    "rp   task_addr   z
Email Sarar   r   zreminder setr   r   addrZ   r   r   r    r]   r!   r^   r_   
tasks_listr   r   lstru   r(   )z%(py3)s in %(py5)s)z%(py10)s in %(py12)s)rw   r$   rx   r+   r,   r-   r0   r1   r2   r3   r4   r.   r/   )ry   rn   r   rA   r=   rI   r;   rC   rL   rJ   rD   rR   rk   rl   rm   r   s   &               rS   test_tasks_list_and_addr   I   s     ~x8j6<+02G+I J JC8<8388>8S#88888<888<888888388883888888888>S888>888888S8888S8888888888888888lB/
/C1?1c!11d1ck1111?111?111111c1111c111111111d111d111111c1111c1111111111111111	J 0sK   ;O$O#O$"A&O$	B)O$3B'O$O!#O$?A&O$&B(O$BO$!O$c           	        a
"   / o
RV
3R llpV P                  \        RV4       \        P                  ! RRRRRRR	/4      G R j  xL
 pS
R
,          pRqCV8H  qU'       gy   \        P                  ! RV3RW434      R\        P
                  ! V4      R\        P
                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR ;p;rTS
R,          R,          pRqCV8H  qU'       gy   \        P                  ! RV3RW434      R\        P
                  ! V4      R\        P
                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR ;p;rTS
R,          R,          pR	qCV8H  qU'       gy   \        P                  ! RV3RW434      R\        P
                  ! V4      R\        P
                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR ;p;rTRq3V9   qU'       g   \        P                  ! RV3RW234      R\        P
                  ! V4      RR\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P
                  ! V4      MR/,          pRRV/,          p	\        \        P                  ! V	4      4      hR ;r5R #  EL5i)Nc                 6   <"   V SR &   VSR&   RRRRRRRR	/.# 5i)
r@   argscompanyAcme Coffeecategorycafecity	Al Khobarphone
0501234567r~   )r@   r   ri   captureds   &&&rS   fake_rpc9test_ultron_leads_uses_search_leads_rpc.<locals>.fake_rpc[   s:     M:vg|= > 	>s   _rpcultron_leadsrr   ra   r   r   phone_filtermobiler@   search_leadsr   r   r   r   r   p_cityp_phoner   r   rs   rt   r   Ng      >@r%   r'   r(   rv   )rw   r$   rx   r+   r,   r-   r.   r/   r0   r1   r2   )ry   r   rs   r;   r<   r=   r>   r?   rK   rJ   r   s   &         @rS   'test_ultron_leads_uses_search_leads_rpcr   Y   s    H>
 vx0nw/5{/=x/I J JC D>+^+^+++++>+++>+++^++++++++FH%4444444%444%44444444444FI&2(2(22222&222&222(22222222C==CCJs   AKKH>KAKc                 :  "   RR lpV P                  \        RV4       Rp\        P                  ! R/ 4      G R j  xL
 q2V9   qD'       gy   \        P                  ! RV3RW#34      R\        P
                  ! V4      R\        P
                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR ;p;rCR	p\        P                  ! R
/ 4      G R j  xL
 q2V9   qD'       gy   \        P                  ! RV3RW#34      R\        P
                  ! V4      R\        P
                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR ;p;rC\        P                  ! RR^/4      G R j  xL
  R #  ELY L L5i)Nc                   "   V R 8X  d   RRR^/# V R8X  d   RRR^
/.# V R8X  d   VR	,          pR
qCV8H  qU'       gy   \         P                  ! RV3RW434      R\         P                  ! V4      R\         P                  ! V4      /,          pRRV/,          p\        \         P                  ! V4      4      hR;p;rTR. /# / # 5i)get_dashboard_statstotali  verifiedget_team_activityuserSaracontactsget_contact_statsp_range7dr   r   r   r   Ndaysr%   r'   )r+   r,   r-   r.   r/   )r@   r   ri   r;   r<   r=   r>   r?   s   &&&     rS   r   9test_ultron_stats_and_team_and_contacts.<locals>.fake_rpck   s     &&T:s33$$VZ455$$	?*d*d*****?***?***d********B<	s   B<B>r   1234ultron_statsr   r   r   r   r   ultron_team_activityultron_contact_statsr   r   r(   z%(py1)s in %(py4)s)rw   r$   rx   r+   r,   r-   r.   r/   )ry   r   r;   r<   r=   r>   r?   s   &      rS   'test_ultron_stats_and_team_and_contactsr   j   s      vx0<5==<<<<<<<<<6<<<6<<<<<<<<<<<<D5==)?DDDDDDDDD6DDD6DDDDDDDDDDDD
--.
<<< =D<s5   9FFB(F$F%B(FFFFFc                   "   R  pV P                  \        RV4       \        P                  ! RRR/4      G Rj  xL
 pRq2P                  qD! 4       qSV9   qf'       g   \        P
                  ! RV3RW534      R\        P                  ! V4      RR	\        P                  ! 4       9   g   \        P                  ! V4      '       d   \        P                  ! V4      MR	R
\        P                  ! V4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p;p;rER#  EL5i)c                      "   \        R 4      h5i)znetwork down)RuntimeError)aks   *,rS   boom6test_executor_never_raises_on_tool_error.<locals>.boom{   s     >**s   rp   rq   rr   r}   Nfailedr   r   rs   r   r   zassert %(py9)sr[   r(   )zD%(py1)s in %(py7)s
{%(py7)s = %(py5)s
{%(py5)s = %(py3)s.lower
}()
})rw   r$   rx   lowerr+   r,   r-   r0   r1   r2   r.   r/   )	ry   r   rs   r;   rI   rB   r=   rD   @py_format10s	   &        rS   (test_executor_never_raises_on_tool_errorr   z   s     +~t4o~>
>C"yy"y{"{"""""8"""8""""""s""""s"""y"""{"""""""" ?s   7EEBEA?Ec                  d  "   R p \         P                  ! R/ 4      G Rj  xL
 qV9   q"'       gy   \        P                  ! RV3RW34      R\        P                  ! V 4      R\        P                  ! V4      /,          pRRV/,          p\        \        P                  ! V4      4      hR;p ;r!R#  L5i)	zunknown toolnopeNr   r   r   r   r(   r   )r$   rx   r+   r,   r-   r.   r/   )r;   r<   r=   r>   r?   s        rS   test_unknown_toolr      sd     <5==#<<<<<<<<<><<<><<<<<<<<<<<<<s   B0B.BB0c                  ^   \         P                  p R q! V4      q"'       g   RRR\        P                  ! 4       9   g!   \        P
                  ! \         4      '       d   \        P                  ! \         4      MRR\        P                  ! V 4      R\        P                  ! V4      R\        P                  ! V4      /,          p\        \        P                  ! V4      4      hR;p ;r\         P                  p Rq! V4      q"'       * qD'       g   R	RR\        P                  ! 4       9   g!   \        P
                  ! \         4      '       d   \        P                  ! \         4      MRR\        P                  ! V 4      R\        P                  ! V4      R\        P                  ! V4      /,          p\        \        P                  ! V4      4      hR;p ;p;r$\         P                  p R
q! V4      q"'       * qD'       g   R	RR\        P                  ! 4       9   g!   \        P
                  ! \         4      '       d   \        P                  ! \         4      MRR\        P                  ! V 4      R\        P                  ! V4      R\        P                  ! V4      /,          p\        \        P                  ! V4      4      hR;p ;p;r$\         P                  p Rq! V4      q"'       * qD'       g   R	RR\        P                  ! 4       9   g!   \        P
                  ! \         4      '       d   \        P                  ! \         4      MRR\        P                  ! V 4      R\        P                  ! V4      R\        P                  ! V4      /,          p\        \        P                  ! V4      4      hR;p ;p;r$R# )z1The new supplier is Journey Joy, based in Riyadh.zMassert %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s._is_salient
}(%(py4)s)
}r   r$   r	   r   r   NhizQassert not %(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s._is_salient
}(%(py4)s)
}zwhat time is it?thanks)	r$   _is_salientr0   r1   r+   r2   r-   r.   r/   )rA   r<   rN   r?   rQ   rD   s         rS   test_salience_gater      s   QPQPQQQQQQQQQ5QQQQ5QQQQQQPQQQQQQQQQQ  && &&&&&&&&&&&u&&&&u&&& &&&&&&&&&&&&&&  4!34 !344444444444u4444u444 444!344444444444  ** ***********u****u*** **************rU   >	   r   	task_doner   r   r   rq   r   r   r   >   	get_place
save_placeget_contactlist_placesroutine_listsave_contactlist_contactssms_watch_addroutine_cancelroutine_createsms_watch_listsms_watch_remove)__doc__builtinsr0   _pytest.assertion.rewrite	assertionrewriter+   r7   pytestr$   _CORE_PHONEr   rT   rz   r   r   r   r   r   r   r   r~   rU   rS   <module>r      s[    J     	
 FN	/0	
72  "= #=+rU   