+
    Pj"6              
      0   ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIHt ^ RIHt ^ RIt^RIHt ]
P$                  '       d   ^RIHt RRR	R
/t]P-                  ]! ^ 4       U u/ uF#  q ^8w  g   K  ]! V 4      RP3                  V 4      bK%  	  up 4       ]P4                  ! RP7                  ]P9                  4        U u. uF  p ]P;                  V 4      NK  	  up 4      4      tR=R R lltR=R R llt R R lt!R R lt"R R lt#R R lt$R R lt%R R lt&RR0t'R R  lt(R! R" lt)R# R$ lt*R% R& lt+R' R( lt,R>R) R* llt-R>R+ R, llt.R- R. lt/R/ R0 lt0R1 R2 lt1R3 R4 lt2 ! R5 R64      t3 ! R7 R84      t4R9 R: lt5R; R< lt6R# u up i u up i )?    )annotationsN)Path)
getproxies)PrimitiveDataURL"z%22\z\\z%{:02X}|c               (    V ^8  d   QhRRRRRRRR/# )	   valuestr | byteslowerboolencoding
str | Nonereturnbytes )formats   "e/Users/ahmed/devFolder/Ultron/claude-voice/gateway/.venv/lib/python3.14/site-packages/httpx/_utils.py__annotate__r      s0     9 999 9 	9    c                    \        V \        4      '       d   T pMT P                  T;'       g    R4      pV'       d   VP                  4       # T# )z=
Coerce str/bytes into a strictly byte-wise HTTP header key.
ascii)
isinstancer   encoder   )r   r   r   bytes_values   &&& r   normalize_header_keyr       sB     %ll8#6#6w7"';8[8r   c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   r   r   r   r   )r   s   "r   r   r   /   s!     - -+ - -u -r   c                h    \        V \        4      '       d   V # T P                  T;'       g    R4      # )z?
Coerce str/bytes into a strictly byte-wise HTTP header value.
r   )r   r   r   r   r   s   &&r   normalize_header_valuer$   /   s-     %<<++G,,r   c                    V ^8  d   QhRRRR/# )r   r   r   r   strr   )r   s   "r   r   r   8   s      - C r   c                D    V RJ d   R# V RJ d   R# V f   R# \        V 4      # )z{
Coerce a primitive data type into a string value.

Note that we prefer JSON-style 'true'/'false' for boolean values here.
TtrueFfalse )r&   r   s   &r   primitive_value_to_strr,   8   s*     }	%	u:r   c                    V ^8  d   QhRRRR/# )r   r   r&   r   r   r   )r   s   "r   r   r   G   s        r   c                X     \         P                  ! V 4       R#   \         d     R# i ; i)z/
Return `True` if `encoding` is a known codec.
FT)codecslookupLookupError)r   s   &r   is_known_encodingr2   G   s,    h   s    ))c               $    V ^8  d   QhRRRRRR/# )r   namer&   r   r   r   r   )r   s   "r   r   r   R   s!     	( 	(C 	( 	( 	(r   c                d    R R lp\         P                  W!4      pV  RV R2P                  4       # )z3
Encode a name/value pair within a multipart form.
c                    V ^8  d   QhRRRR/# )r   matchztyping.Match[str]r   r&   r   )r   s   "r   r   'format_form_param.<locals>.__annotate__W   s     A A) Ac Ar   c                :    \         V P                  ^ 4      ,          # )r   )!_HTML5_FORM_ENCODING_REPLACEMENTSgroup)r7   s   &r   replacer#format_form_param.<locals>.replacerW   s    0Q@@r   z="r	   )_HTML5_FORM_ENCODING_REsubr   )r4   r   r<   s   && r   format_form_paramr@   R   s6    
A $''8EV2eWA%%''r   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   ^   s     	 	
 	r   c                 ^   R \         P                  9   dB   \        \         P                  R ,          4      p V P                  4       '       d   \	        V 4      # R\         P                  9   dB   \        \         P                  R,          4      pVP                  4       '       d   \	        V4      # R# )SSL_CERT_FILESSL_CERT_DIRN)osenvironr   is_filer&   is_dir)ssl_filessl_paths     r   get_ca_bundle_from_envrK   ^   ss    "**$

?34x= #

>23??x= r   c                    V ^8  d   QhRRRR/# )r   r   r&   r   zlist[dict[str, str]]r   )r   s   "r   r   r   j   s     " "c "&: "r   c                   . pRpV P                  V4      p V '       g   V# \        P                  ! RV 4       F  p VP                  R^4      w  rERVP                  R4      /pVP                  R4       F9  p VP                  R4      w  rT P                  T4      YhP                  T4      &   K;  	  VP	                  V4       K  	  V#   \         d    TRrT Li ; i  \         d      K:  i ; i)a  
Returns a list of parsed link headers, for more info see:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Link
The generic syntax of those is:
Link: < uri-reference >; param1=value1; param2="value2"
So for instance:
Link; '<http:/.../front.jpeg>; type="image/jpeg",<http://.../back.jpeg>;'
would return
    [
        {"url": "http:/.../front.jpeg", "type": "image/jpeg"},
        {"url": "http://.../back.jpeg"},
    ]
:param value: HTTP Link entity-header field
:return: list of parsed link headers
z '"z, *<;r*   urlz<> '"=)stripresplit
ValueErrorappend)	r   linksreplace_charsvalrO   paramslinkparamkeys	   &        r   parse_header_linksr]   j   s      #%EMKK&Exx&	"))C+KC syy*+\\#&E"[[-
 .3[[-GD=)* ' 	T ' L  	"r	"  s#   C7CCCC+*C+c                    V ^8  d   QhRRRR/# )r   content_typer&   r   r   r   )r   s   "r   r   r      s     1 1S 1Z 1r   c                j    \         P                  P                  4       pWR &   VP                  RR7      # )zcontent-typeN)failobj)emailmessageMessageget_content_charset)r_   msgs   & r   parse_content_type_charsetrg      s2     --


!C&""4"00r   authorizationzproxy-authorizationc                    V ^8  d   QhRRRR/# )r   itemsz4typing.Iterable[tuple[typing.AnyStr, typing.AnyStr]]r   z4typing.Iterator[tuple[typing.AnyStr, typing.AnyStr]]r   )r   s   "r   r   r      s      ?9r   c              #     "   V  F9  w  r\        VP                  4       4      \        9   d   \        R VR7      pW3x  K;  	  R# 5i)z[secure])match_type_ofN)to_strr   SENSITIVE_HEADERSto_bytes_or_str)rj   kvs   &  r   obfuscate_sensitive_headersrr      s:      !'') 11
!<Ad
 s   AAc                    V ^8  d   QhRRRR/# )r   rO   r   r   
int | Noner   )r   s   "r   r   r      s     6 6 6 6r   c                t    V P                   e   V P                   # R^PRR/P                  V P                  4      # )Nhttphttps  )portgetscheme)rO   s   &r   port_or_defaultr|      s3    
xxxxB%))#**55r   c               $    V ^8  d   QhRRRRRR/# )r   rO   r   otherr   r   r   )r   s   "r   r   r      s!      S   r   c                    V P                   VP                   8H  ;'       d9    V P                  VP                  8H  ;'       d    \        V 4      \        V4      8H  # )z8
Return 'True' if the given URLs share the same origin.
)r{   hostr|   )rO   r~   s   &&r   same_originr      sO    
 	

ell" 	; 	;HH

"	; 	;C OE$::r   c               $    V ^8  d   QhRRRRRR/# )r   rO   r   locationr   r   r   )r   s   "r   r   r      s!      3 # $ r   c                    V P                   VP                   8w  d   R# V P                  R8H  ;'       d<    \        V 4      ^P8H  ;'       d&    VP                  R8H  ;'       d    \        V4      R8H  # )z9
Return 'True' if 'location' is a HTTPS upgrade of 'url'
Frv   rw   rx   )r   r{   r|   )rO   r   s   &&r   is_https_redirectr      sp     xx8==  	

f 	- 	-C B&	- 	-OOw&	- 	- H%,	r   c                   V ^8  d   QhRR/# )r   r   zdict[str, str | None]r   )r   s   "r   r   r      s     . .!6 .r   c                 .   \        4       p / pR F7  pV P                  V4      '       g   K  W,          pRV9   d   TMRV 2W R2&   K9  	  V P                  RR4      P                  R4       Uu. uF  qDP                  4       NK  	  ppV F  pVR8X  d   / u # V'       g   K  RV9   d   RW&   K%  \	        V4      '       d   RVRV 2&   K@  \        V4      '       d   RVR	V R
2&   K\  VP                  4       R8X  d   RVRV 2&   K{  RVRV 2&   K  	  V# u upi )z+Gets proxy information from the environmentz://zhttp://nor*   ,*Nzall://zall://[]	localhostzall://*)rv   rw   all)r   rz   rS   rQ   is_ipv4_hostnameis_ipv6_hostnamer   )
proxy_infomountsr{   hostnamer   no_proxy_hostss         r   get_environment_proxiesr      s-    J$&F*>>&!!!)H!X-WXJ3G XS>" + 0:~~dB/G/M/Mc/RS/Rtjjl/RNS" s?
 IX  #' !(++.2z*+!(++04
!,-![0.2z*+/3
+,5 #8 M; Ts   -Dc               $    V ^8  d   QhRRRRRR/# )r   r   r   r   r&   r   r   r   )r   s   "r   r   r      s&     G GK G3 GU Gr   c                T    \        V \        4      '       d   V P                  V4      # T # Nr   r&   r   r#   s   &&r   to_bytesr      s"    %/s%;%;5<<!FFr   c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   r&   r   r   )r   s   "r   r   r      s&     G G+ G G3 Gr   c                T    \        V \        4      '       d   V # V P                  V4      # r   )r   r&   decoder#   s   &&r   rm   rm      s"    uc**5FX0FFr   c               $    V ^8  d   QhRRRRRR/# )r   r   r&   rl   ztyping.AnyStrr   r   )r   s   "r   r   r      s&     G G3 G} G Gr   c                R    \        V\        4      '       d   V # V P                  4       # r   r   )r   rl   s   &&r   ro   ro      s    }c225FFr   c                    V ^8  d   QhRRRR/# )r   r   r&   r   r   )r   s   "r   r   r      s     B B3 B3 Br   c                P    V ^ ,          V R,          u;8X  d   R8X  d	   M MV ^R # T # )r   r	   r   r+   s   &r   unquoter      s'    (eBi63652;AEAr   c                    V ^8  d   QhRRRR/# )r   filenamer   r   r   )r   s   "r   r   r     s       
 r   c                d    V '       d(   \         P                  ! V 4      ^ ,          ;'       g    R# R# )r   zapplication/octet-streamN)	mimetypes
guess_type)r   s   &r   guess_content_typer     s'    ##H-a0NN4NNr   c                    V ^8  d   QhRRRR/# )r   stream
typing.Anyr   rt   r   )r   s   "r   r   r   
  s       
 r   c                N    V P                  4       p\        P                  ! V4      P                  pV#   \        \
        3 d`     T P                  4       pT P                  ^ \        P                  4      pT P                  T4        T#   \        \
        3 d      R# i ; ii ; i)zg
Given a file-like stream object, return its length in number of bytes
without reading it into memory.
N)	filenorE   fstatst_sizeAttributeErrorOSErrortellseekSEEK_END)r   fdlengthoffsets   &   r   peek_filelike_lengthr   
  s    
]]_"%% M G$ 
	 [[]F[[BKK0FKK
 M	 ( 		
s(   04 B$AB

B B$B  B$c                  R    ] tR tRtR R ltR R ltR R ltR R	 ltR
 R ltRt	R# )Timeri#  c                   V ^8  d   QhRR/# r   r   floatr   )r   s   "r   r   Timer.__annotate__$  s     	3 	3 	3r   c                	   "   \         P                  ! 4       pVR 8X  d   ^ RIpVP                  4       # ^ RIpVP                  4       P                  4       # 5i)trioN)sniffiocurrent_async_libraryr   current_timeasyncioget_event_looptime)selflibraryr   r   s   &   r   	_get_timeTimer._get_time$  sH     //1f$$&&))+0022s   AAc                   V ^8  d   QhRR/# r   r   Noner   )r   s   "r   r   r   /  s     + +D +r   c                	:    \         P                  ! 4       V n        R # r   r   perf_counterstartedr   s   &r   
sync_startTimer.sync_start/  s    ((*r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   2  s     . .4 .r   c                	L   "   V P                  4       G R j  xL
 V n        R #  L5ir   r   r   r   s   &r   async_startTimer.async_start2  s     !^^---s   $"$c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   5  s     " "e "r   c                	P    \         P                  ! 4       pWP                  ,
          # r   r   r   nows   & r   sync_elapsedTimer.sync_elapsed5  s    !\\!!r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   9  s     " "U "r   c                	b   "   V P                  4       G R j  xL
 pWP                  ,
          #  L5ir   r   r   s   & r   async_elapsedTimer.async_elapsed9  s&     NN$$\\!! %s   /-/)r   N)
__name__
__module____qualname____firstlineno__r   r   r   r   r   __static_attributes__r   r   r   r   r   #  s     	3+."" "r   r   c                  l    ] tR tRtRtR R ltR R lt]R R l4       tR	 R
 lt	R R lt
R R ltRtR# )
URLPatterni>  aC  
A utility class currently used for making lookups against proxy keys...

# Wildcard matching...
>>> pattern = URLPattern("all://")
>>> pattern.matches(httpx.URL("http://example.com"))
True

# Witch scheme matching...
>>> pattern = URLPattern("https://")
>>> pattern.matches(httpx.URL("https://example.com"))
True
>>> pattern.matches(httpx.URL("http://example.com"))
False

# With domain matching...
>>> pattern = URLPattern("https://example.com")
>>> pattern.matches(httpx.URL("https://example.com"))
True
>>> pattern.matches(httpx.URL("http://example.com"))
False
>>> pattern.matches(httpx.URL("https://other.com"))
False

# Wildcard scheme, with domain matching...
>>> pattern = URLPattern("all://example.com")
>>> pattern.matches(httpx.URL("https://example.com"))
True
>>> pattern.matches(httpx.URL("http://example.com"))
True
>>> pattern.matches(httpx.URL("https://other.com"))
False

# With port matching...
>>> pattern = URLPattern("https://example.com:1234")
>>> pattern.matches(httpx.URL("https://example.com:1234"))
True
>>> pattern.matches(httpx.URL("https://example.com"))
False
c                    V ^8  d   QhRRRR/# )r   patternr&   r   r   r   )r   s   "r   r   URLPattern.__annotate__h  s     8 8 8 8r   c                	   ^RI Hp V'       d   RV9  d   \        RV RV R24      hV! V4      pWn        VP                  R8X  d   RMVP                  V n        VP
                  R8X  d   RMVP
                  V n        VP                  V n        VP
                  '       d   VP
                  R8X  d
   R	V n        R	# VP
                  P                  R
4      '       dI   \        P                  ! VP
                  R,          4      p\        P                  ! RV R24      V n        R	# VP
                  P                  R4      '       dI   \        P                  ! VP
                  R,          4      p\        P                  ! RV R24      V n        R	# \        P                  ! VP
                  4      p\        P                  ! RV R24      V n        R	# )   r   :zUProxy keys should use proper URL forms rather than plain scheme strings. Instead of "z", use "z://"r   r*   r   Nz*.:r   NNz^.+\.$:r   NNz^(.+\.)?^)_urlsr   rT   r   r{   r   ry   
host_regex
startswithrR   escapecompile)r   r   r   rO   domains   &&   r   __init__URLPattern.__init__h  sK   s')&ixy>  'lJJ%/bSZZ((c/Bsxx	HH	xxx388s?:>DOXX  &&YYsxx|,F jj6&);<DOXX  %%YYsxx|,F jj9VHA)>?DO YYsxx(F jj1VHA7DOr   c                    V ^8  d   QhRRRR/# )r   r~   r   r   r   r   )r   s   "r   r   r     s      S T r   c                	T   V P                   '       d   V P                   VP                   8w  d   R # V P                  '       d<   V P                  e.   V P                  P                  VP                  4      '       g   R # V P                  e   V P                  VP                  8w  d   R # R# )FT)r{   r   r   r7   ry   r   r~   s   &&r   matchesURLPattern.matches  sk    ;;;4;;%,,6III+OO))%**5599 TYY%**%<r   c                   V ^8  d   QhRR/# )r   r   ztuple[int, int, int]r   )r   s   "r   r   r     s     ? ?. ?r   c                    V P                   e   ^ M^p\        V P                  4      ) p\        V P                  4      ) pWV3# )zu
The priority allows URLPattern instances to be sortable, so that
we can match from most specific to least specific.
)ry   lenr   r{   )r   port_priorityhost_priorityscheme_prioritys   &   r   priorityURLPattern.priority  s?     "YY2TYYt{{++o>>r   c                   V ^8  d   QhRR/# )r   r   intr   )r   s   "r   r   r     s     " "# "r   c                	,    \        V P                  4      # r   )hashr   r   s   &r   __hash__URLPattern.__hash__  s    DLL!!r   c                    V ^8  d   QhRRRR/# )r   r~   r   r   r   r   )r   s   "r   r   r     s     . .J .4 .r   c                	4    V P                   VP                   8  # r   )r  r   s   &&r   __lt__URLPattern.__lt__  s    }}u~~--r   c                    V ^8  d   QhRRRR/# )r   r~   r   r   r   r   )r   s   "r   r   r     s     O OJ O4 Or   c                	d    \        V\        4      ;'       d    V P                  VP                  8H  # r   )r   r   r   r   s   &&r   __eq__URLPattern.__eq__  s$    %,NN1NNr   )r   r   r   ry   r{   N)r   r   r   r   __doc__r   r   propertyr  r  r  r  r   r   r   r   r   r   >  s<    'R8< ? ?".O Or   r   c                    V ^8  d   QhRRRR/# r   r   r&   r   r   r   )r   s   "r   r   r           s t r   c                     \         P                  ! V P                  R 4      ^ ,          4       R#   \         d     R# i ; i/FT)	ipaddressIPv4AddressrS   	Exceptionr   s   &r   r   r     <    hnnS1!45      ,0 ??c                    V ^8  d   QhRRRR/# r  r   )r   s   "r   r   r     r  r   c                     \         P                  ! V P                  R 4      ^ ,          4       R#   \         d     R# i ; ir  )r  IPv6AddressrS   r   r!  s   &r   r   r     r"  r#  r   )zutf-8)7
__future__r   r/   email.messagerb   r  r   rE   rR   r   typingpathlibr   urllib.requestr   r   _typesr   TYPE_CHECKINGr   r   r:   updaterangechrr   r   joinkeysr   r>   r    r$   r,   r2   r@   rK   r]   rg   rn   rr   r|   r   r   r   r   rm   ro   r   r   r   r   r   r   r   )cs   0r   <module>r4     sn   "     	 	    %  !	 &)%v$> ! ! ( (*//G/Q$Y SVYa  /G **II%F%K%K%MN%Mryy|%MNO 
9 -	(	"J1 %&;< 6.bGGGB2" "6jO jOZw H Os   0F=F	F