+
    i"1                       ^ 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HtHt ^RIHt ^RIHt ]t]P.                  ! R4      t]P2                  ! ]4      t]P8                  ! R	4      t]P8                  ! R
4      tR R ltR R lt  ! R R]PB                  ],          4      t" ! R R]4      t# ! R R]4      t$R# )    )annotationsN)
_TYPE_BODY)HTTPHeaderDict)HTTPSConnection_get_default_user_agent)ConnectionError)BaseHTTPResponseTs   ^[!#$%&'*+\-.^_`|~0-9a-z]+$s*   [\0\x00\x0a\x0d\r\n]|^[ \r\n\t]|[ \r\n\t]$c                    V ^8  d   QhRRRR/# )   namebytesreturnbool )formats   "^/Users/ahmad/.openclaw/workspace/venv/lib/python3.14/site-packages/urllib3/http2/connection.py__annotate__r      s     5 5 5$ 5    c                >    \        \        P                  V 4      4      # )a  
"An implementation that validates fields according to the definitions in Sections
5.1 and 5.5 of [HTTP] only needs an additional check that field names do not
include uppercase characters." (https://httpwg.org/specs/rfc9113.html#n-field-validity)

`http.client._is_legal_header_name` does not validate the field name according to the
HTTP 1.1 spec, so we do that here, in addition to checking for uppercase characters.

This does not allow for the `:` character in the header name, so should not
be used to validate pseudo-headers.
)r   RE_IS_LEGAL_HEADER_NAMEmatch)r   s   &r   _is_legal_header_namer      s     '--d344r   c                    V ^8  d   QhRRRR/# )r   valuer   r   r   r   )r   s   "r   r   r   ,   s     : :E :d :r   c                >    \        \        P                  V 4      4      # )a7  
"A field value MUST NOT contain the zero value (ASCII NUL, 0x00), line feed
(ASCII LF, 0x0a), or carriage return (ASCII CR, 0x0d) at any position. A field
value MUST NOT start or end with an ASCII whitespace character (ASCII SP or HTAB,
0x20 or 0x09)." (https://httpwg.org/specs/rfc9113.html#n-field-validity)
)r   RE_IS_ILLEGAL_HEADER_VALUEsearch)r   s   &r   _is_illegal_header_valuer   ,   s     *11%899r   c                  B    ] tR t^6tRtR
tR R ltR R ltR R ltRt	R	# )_LockedObjecta@  
A wrapper class that hides a specific object behind a lock.
The goal here is to provide a simple way to protect access to an object
that cannot safely be simultaneously accessed from multiple threads. The
intended use of this class is simple: take hold of it with a context
manager, which returns the protected object.
c                   V ^8  d   QhRR/# )r   objr
   r   )r   s   "r   r   _LockedObject.__annotate__D   s      A r   c                	F    \         P                  ! 4       V n        Wn        R # N)	threadingRLocklock_obj)selfr#   s   &&r   __init___LockedObject.__init__D   s    OO%		r   c                   V ^8  d   QhRR/# )r   r   r
   r   )r   s   "r   r   r$   H   s      1 r   c                	N    V P                   P                  4        V P                  # r&   )r)   acquirer*   r+   s   &r   	__enter___LockedObject.__enter__H   s    		yyr   c               (    V ^8  d   QhRRRRRRRR/# )	r   exc_typeztype[BaseException] | Noneexc_valzBaseException | Noneexc_tbztypes.TracebackType | Noner   Noner   )r   s   "r   r   r$   L   s2      , & +	
 
r   c                	:    V P                   P                  4        R # r&   )r)   release)r+   r5   r6   r7   s   &&&&r   __exit___LockedObject.__exit__L   s     			r   )r*   r)   N)r)   r*   )
__name__
__module____qualname____firstlineno____doc__	__slots__r,   r2   r;   __static_attributes__r   r   r   r!   r!   6   s"    I
 r   r!   c                     a  ] tR t^UtRR V 3R llltR R ltR V 3R lltR R ltR	 R
 ltRR R llt	R R lt
RR R lltR R ltRRRRRRR/R R llltR V 3R lltRtV ;t# )HTTP2Connectionc               (    V ^8  d   QhRRRRRRRR/# )	r   hoststrport
int | Nonekwargs
typing.Anyr   r8   r   )r   s   "r   r   HTTP2Connection.__annotate__V   s2     O OO)O<FO	Or   c                	   < V P                  4       V n        R V n        . V n        RV9   g   RV9   d   \	        R4      h\
        SV `  ! W3/ VB  V P                  e   \	        R4      hR # )Nproxyproxy_configz$Proxies aren't supported with HTTP/2z%Tunneling isn't supported with HTTP/2)_new_h2_conn_h2_conn
_h2_stream_headersNotImplementedErrorsuperr,   _tunnel_host)r+   rG   rI   rK   	__class__s   &&&,r   r,   HTTP2Connection.__init__V   sm     ))+&*35f& 8%&LMM.v.(%&MNN )r   c                   V ^8  d   QhRR/# )r   r   z)_LockedObject[h2.connection.H2Connection]r   )r   s   "r   r   rM   e   s     H HG Hr   c                	    \         P                  P                  R R7      p\        \         P                  P                  VR7      4      # )T)client_side)config)h2r]   H2Configurationr!   
connectionH2Connection)r+   r]   s   & r   rQ   HTTP2Connection._new_h2_conne   s6    **t*<R]]77v7FGGr   c                   V ^8  d   QhRR/# r   r   r8   r   )r   s   "r   r   rM   i   s     0 0 0r   c                	  < \         SV `  4        V P                  ;_uu_ 4       pVP                  4        VP	                  4       ;p'       d   V P
                  P                  V4       R R R 4       R #   + '       g   i     R # ; ir&   )rV   connectrR   initiate_connectiondata_to_sendsocksendall)r+   connrh   rX   s   &  r   rf   HTTP2Connection.connecti   sV    ]]]d$$&#0022|2		!!,/ ]]]s   AA22B	c               (    V ^8  d   QhRRRRRRRR/# )r   methodrH   urlrK   rL   r   r8   r   )r   s   "r   r   rM   p   s8     B BB B 	B
 
Br   c                   RV9   d   \        R4      hRV9   d   \        R4      hT;'       g    RV n        V P                  V4       RV P                  9   d(   RV P                   RV P                  ;'       g    R	 2pM%V P                   RV P                  ;'       g    R	 2pV P
                  P                  R4       V P
                  P                  R
VP                  4       34       V P
                  P                  RVP                  4       34       V P
                  P                  RVP                  4       34       V P                  ;_uu_ 4       pVP                  4       V n
        RRR4       R#   + '       g   i     R# ; i)zputrequest
This deviates from the HTTPConnection method signature since we never need to override
sending accept-encoding headers or the host header.
	skip_hostz`skip_host` isn't supportedskip_accept_encodingz&`skip_accept_encoding` isn't supported/:[z]:i  s   :methods
   :authoritys   :pathN)s   :schemes   https)rU   _request_url_validate_pathrG   rI   rT   appendencoderR   get_next_available_stream_idrS   )r+   rn   ro   rK   	authorityrk   s   &&&,  r   
putrequestHTTP2Connection.putrequestp   s,    & %&CDD!V+%&NOOJJ3C $))DII;b)9)9c(:;I99+Qtyy'7'7C&89I34j&--/:;mY-=-=-?@Ah

56]]]d"??ADO ]]]s   E44F	c               $    V ^8  d   QhRRRRRR/# )r   headerzstr | bytesvaluesr   r8   r   )r   s   "r   r   rM      s!     2 2 2k 2d 2r   c                	   \        V\        4      '       d   VP                  4       MTpVP                  4       p\	        V4      '       g   \        R \        V4       24      hV Fo  p\        V\        4      '       d   VP                  4       MTp\        V4      '       d   \        R\        V4       24      hV P                  P                  W34       Kq  	  R# )zIllegal header name zIllegal header value N)	
isinstancerH   ry   lowerr   
ValueErrorr   rT   rx   )r+   r   r   r   s   &&* r   	putheaderHTTP2Connection.putheader   s    $.vs$;$;$V,,3CK=ABBE&0&<&<ELLN%E'.. #8U!EFFMM  &1	 r   c                    V ^8  d   QhRRRR/# )r   message_bodyrL   r   r8   r   )r   s   "r   r   rM      s      z T r   c                	`   V P                   f   \        R4      hV P                  ;_uu_ 4       pVP                  V P                   V P                  VR J R7       VP                  4       ;p'       d   V P                  P                  V4       R R R 4       . V n        R #   + '       g   i     L; i)NMust call `putrequest` first.)	stream_idheaders
end_stream)rS   r   rR   send_headersrT   rh   ri   rj   )r+   r   rk   rh   s   &&  r   
endheadersHTTP2Connection.endheaders   s    ??"!"ABB]]]d//(D0  
  $0022|2		!!,/   ]s   ABB-	c                    V ^8  d   QhRRRR/# )r   datarL   r   r8   r   )r   s   "r   r   rM      s     + + + +r   c           	        V P                   f   \        R4      hV P                  ;_uu_ 4       pVP                  4       ;p'       d   V P                  P                  V4       \        VR4      '       d    VP                  V P                  4      pV'       g   M{\        V\        4      '       d   VP                  4       pVP                  V P                   VRR7       VP                  4       ;p'       g   K  V P                  P                  V4       K  VP                  V P                   4        RRR4       R# \        V\        4      '       d   VP                  4       p \        V\        4      '       dS   VP                  V P                   VRR7       VP                  4       ;p'       d   V P                  P                  V4       MxV FV  pVP                  V P                   VRR7       VP                  4       ;p'       g   K;  V P                  P                  V4       KX  	  VP                  V P                   4        RRR4       R#   \         d    \        R\!        T4      ,          4      hi ; i  + '       g   i     R# ; i)zySend data to the server.
`data` can be: `str`, `bytes`, an iterable, or file-like objects
that support a .read() method.
Nr   readTF)r   z6`data` should be str, bytes, iterable, or file. got %r)rS   r   rR   rh   ri   rj   hasattrr   	blocksizer   rH   ry   	send_datar   r   	TypeErrortype)r+   r   rk   rh   chunks   &&   r   sendHTTP2Connection.send   s   
 ??"!"ABB]]]d#0022|2		!!,/tV$$ IIdnn5E !%-- %NN4??EeNL'+'8'8'::|::		)),70 ]" $$${{}dE**NN4??DTNJ'+'8'8'::|:		)),7!%t%P+/+<+<+>><>> II--l; "& OODOO4= ]>  L4j! ? ]]sP   A)I5AI579I5:&I5!AI-II5	8I:I I5'I22I55J	c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r   rG   rH   rI   rJ   r   typing.Mapping[str, str] | Noneschemer   r8   r   )r   s   "r   r   rM      s<     	
 	
	
 	
 1		

 	
 
	
r   c                	    \        R 4      h)z;HTTP/2 does not support setting up a tunnel through a proxy)rU   )r+   rG   rI   r   r   s   &&&&&r   
set_tunnelHTTP2Connection.set_tunnel   s     "I
 	
r   c                   V ^8  d   QhRR/# )r   r   HTTP2Responser   )r   s   "r   r   rM      s     (
 (
	(
r   c           
     	6   R p\        4       pV P                  ;_uu_ 4       pRpV'       Eg   V P                  P                  R4      ;p'       EdN   VP	                  V4      pV EF5  p\        V\        P                  P                  4      '       dt   \        4       pVP                   FW  w  rV	R8X  d   \        V
P                  4       4      pK'  VP                  V	P                  R4      V
P                  R4      4       KY  	  K  \        V\        P                  P                  4      '       d<   W'P                  ,          pVP!                  VP"                  VP$                  4       EK  \        V\        P                  P&                  4      '       g   EK3  RpEK8  	  VP)                  4       ;p'       g   EK  V P                  P+                  V4       EK   R R R 4       Vf   Q h\-        VXV P.                  \1        V4      R7      #   + '       g   i     L8; i)NFi  s   :statusasciiT)statusr   request_urlr   )	bytearrayrR   ri   recvreceive_datar   r^   eventsResponseReceivedr   r   intdecodeaddDataReceivedr   acknowledge_received_dataflow_controlled_lengthr   StreamEndedrh   rj   r   rv   r   )r+   r   r   rk   r   received_datar   eventr   r   r   rh   s   &           r   getresponseHTTP2Connection.getresponse   s    {]]]dJ j$(IINN5$99=9!..}=F!'%eRYY-G-GHH&4&6G16#)Z#7-0-@F$+KK(.g(>W@U%&	 2? (ryy/E/EFF JJ.D :: % < <eoo (ryy/D/DEE)-J% "(( $(#4#4#66<66II%%l33 ! : !!!))t	
 	
= ]s#   H#HE HH9HH	preload_contentTdecode_contentenforce_content_lengthc               <    V ^8  d   QhRRRRRRRRRR	R
R	RR	RRRR/	# )r   rn   rH   ro   bodyz_TYPE_BODY | Noner   r   r   r   r   r   rK   rL   r   r8   r   )r   s   "r   r   rM     sd     % %% %  	%
 1% % % !%% % 
%r   c               (   RV9   d    V P                   e&   V P                   P                  V P                  4       V P                  W4       T;'       g    / pVP	                  4        F4  w  rV	P                  4       R8X  d
   V
R8X  d   K#  V P                  W4       K6  	  R\        V P                  4      9  d   V P                  R\        4       4       V'       d&   V P                  VR7       V P                  V4       R# V P                  4        R# )zSend an HTTP/2 requestchunkedNztransfer-encodings
   user-agent)r   )ri   
settimeouttimeoutr|   itemsr   r   dictrT   r   r   r   )r+   rn   ro   r   r   r   r   r   rK   kvs   &&&&&$$$,  r   requestHTTP2Connection.request  s      99 II  .$--RMMODAwwy//ANq$	 $ T]] 33NN=*A*CDOOO.IIdOOOr   c                   V ^8  d   QhRR/# rd   r   )r   s   "r   r   rM   3  s      t r   c                	t  < V P                   ;_uu_ 4       p VP                  4        VP                  4       ;p'       d   V P                  P	                  V4       R R R 4       T P                  4       T n         R T n        . T n        \        ST `)  4        R #   \
         d     LHi ; i  + '       g   i     LT; ir&   )rR   close_connectionrh   ri   rj   	ExceptionrQ   rS   rT   rV   close)r+   rk   r   rX   s   &  r   r   HTTP2Connection.close3  s    ]]]d%%',,..4.II%%d+	  ))+   ]s)   B'ABB$!B'#B$$B''B7	)rR   rS   rT   rv   r&   )NNhttp)NN)r=   r>   r?   r@   r,   rQ   rf   r|   r   r   r   r   r   r   r   rC   __classcell__rX   s   @r   rE   rE   U   ss    O OH0 0B>2+Z	
(
T% !%%  $% (,% %N r   rE   c                  `   a  ] tR tRtRR V 3R lllt]R R l4       tR R ltR R	 ltR
t	V ;t
# )r   iD  c               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r   r   r   r   r   r   rH   r   r   r   r   r   r8   r   )r   s   "r   r   HTTP2Response.__annotate__F  sF     " ""  " 	"
 " " 
"r   c           
     	N   < \         SV `  VV^RRVVR7       W@n        ^ V n        R# )   zHTTP/2N)r   r   versionversion_stringreasonr   r   )rV   r,   _datalength_remaining)r+   r   r   r   r   r   rX   s   &&&&&&r   r,   HTTP2Response.__init__F  s;     	#)# 	 
	
 
 !r   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   ]  s      e r   c                	    V P                   # r&   )r   r1   s   &r   r   HTTP2Response.data\  s    zzr   c                   V ^8  d   QhRR/# rd   r   )r   s   "r   r   r   `  s      t r   c                	    R # r&   r   r1   s   &r   get_redirect_location#HTTP2Response.get_redirect_location`  s    r   c                   V ^8  d   QhRR/# rd   r   )r   s   "r   r   r   c  s      t r   c                	    R # r&   r   r1   s   &r   r   HTTP2Response.closec  s    r   )r   r   )F)r=   r>   r?   r@   r,   propertyr   r   r   rC   r   r   s   @r   r   r   D  s0    " ",   r   r   )%
__future__r   loggingrer'   typestyping	h2.configr^   h2.connection	h2.events_base_connectionr   _collectionsr   r`   r   r   
exceptionsr   responser	   orig_HTTPSConnectionTypeVarr
   	getLoggerr=   logcompiler   r   r   r   Genericr!   rE   r   r   r   r   <module>r      s    "  	       ) ) A ( '& 
NN3!**%DE ZZ(VW 5:FNN1% >lo l^ $  r   