
    Fgv                        S r SSKJr  SSKrSSKrSSKrSSKJr  SSKrSSK	J
r
  SSKJrJr  Sr\R                  " S5      r          SS	 jrSS
 jrg)z^
Defines helper methods useful for setting up ports, launching servers, and
creating tunnels.
    )annotationsN)Path)App)CERTIFICATE_PATHTunnelz(https://api.gradio.app/v3/tunnel-requestGRADIO_SHARE_SERVER_ADDRESSc                "   Uc  [         OUnUc   [        R                  " [        SS9nUR	                  5       S   nUS   [        US   5      pvUS   n[        [        5      R                  R                  SSS9  [        [        S	5       n	U	R                  U5        S S S 5        OUR                  S5      u  pg[        U5      n[        XgXU5      nUR!                  5       nU$ ! , (       d  f       N-= f! [         a  n
[        S
5      U
eS n
A
ff = f)N   )timeoutr   hostportroot_caT)parentsexist_okwz0Could not get share link from Gradio API Server.:)r   httpxgetGRADIO_API_SERVERjsonintr   r   parentmkdiropenwrite	ExceptionRuntimeErrorsplitr   start_tunnel)
local_host
local_portshare_tokenshare_server_addressresponsepayloadremote_hostremote_portcertificatefetunneladdresss                b/Users/admin/workspace/ai/PDFMathTranslate/myenv/lib/python3.13/site-packages/gradio/networking.pysetup_tunnelr.      s   
  ' 	$! 
 #	yy!2B?Hmmoa(G'.vGFO8L!),K!"))//t/L&,$ -, $8#=#=c#B +&KjkRF!!#GN -, 	B	s6   A:C3 
C"C3 "
C0,C3 0C3 3
D=D		Dc                    [        S5       Hu  n[        R                  " 5          [        R                  " S5        [        R
                  " U SSS9nS S S 5        WR                  S;   a    g[        R                  " S5        Mw     g! , (       d  f       N;= f! [        [        R                  [        R                  4 a     gf = f)	N   ignore   F)r   verify)   i  i.  i/  i3  Tg      ?)rangewarningscatch_warningsfilterwarningsr   headstatus_codetimesleepConnectionErrorConnectErrorTimeoutException)url_rs      r-   url_okrC   3   s    qA((*''1JJsAe< + !::JJu   +* U//1G1GH s.   #B -BB ,B 
B	B )CC)
r    strr!   r   r"   rD   r#   z
str | NonereturnrD   )r@   rD   rE   bool)__doc__
__future__r   osr;   r6   pathlibr   r   gradio.routesr   gradio.tunnelingr   r   r   getenvr   r.   rC        r-   <module>rP      sl   
 # 	      5>  ii(EF !$36NX:rO   