§
    xÅj-]  ã                   ó<  — U d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ d dl	Z	d dl
mZmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d d	lmZmZmZmZmZmZ d d
lmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' erd dlm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. d dl/m0Z0m1Z1  ej2        ¦   «         dej3        dd…         z  ej4        dœZ5de6d<   	 d dl7m8Z8m9Z9 n# e:$ r dZ8dZ9Y nw xY w G d„ de¦  «        Z;d/d„Z<	 	 	 	 d0d„Z=	 	 	 	 d1d„Z>	 	 	 	 d2d„Z?d3d „Z@d3d!„ZA	 d4d"d#d$d%d&eBd'eCd(d)dd*fd+„ZDd3d,„ZEd5d.„ZFdS )6é    N)ÚHTTPConnectionÚHTTPResponse)ÚTYPE_CHECKING)Ú_SENTRY_HEADER_NAMESÚOPÚSPANDATA)ÚIntegration)Úadd_global_event_processor)ÚStreamedSpan)ÚSENTRY_TRACE_HEADER_NAMEÚSpan)ÚEnvironHeadersÚadd_http_breadcrumbÚadd_http_request_sourceÚget_url_attributesÚhas_span_streaming_enabledÚshould_propagate_trace)	ÚSENSITIVE_DATA_SUBSTITUTEÚ7_get_aws_sigv4_signed_headers_from_authorization_headerÚ3_get_aws_sigv4_signed_headers_from_url_query_stringÚcapture_internal_exceptionsÚensure_integration_enabledÚis_sentry_urlÚloggerÚ	parse_urlÚ	safe_repr)ÚAnyÚCallableÚDictÚListÚOptionalÚSetÚUnion)ÚEventÚHintz%s.%s.%sé   )ÚnameÚversionÚbuildzdict[str, object]Ú_RUNTIME_CONTEXT)ÚAWSHTTPConnectionÚAWSHTTPSConnectionc                   ó*   — e Zd ZdZedd„¦   «         ZdS )ÚStdlibIntegrationÚstdlibÚreturnNc                  ól   — t          ¦   «          t          ¦   «          t          	 	 	 	 	 	 dd„¦   «         } d S )	NÚeventr$   Úhintr%   r0   úOptional[Event]c                 óÒ   — t          j        ¦   «         }|                     t          ¦  «        �9|                      di ¦  «        }t          |t          ¦  «        rd|vr
t          |d<   | S )NÚcontextsÚruntime)Ú
sentry_sdkÚ
get_clientÚget_integrationr.   Ú
setdefaultÚ
isinstanceÚdictr*   )r2   r3   Úclientr6   s       úOC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/integrations/stdlib.pyÚadd_python_runtime_contextz@StdlibIntegration.setup_once.<locals>.add_python_runtime_context<   sg   € õ  Ô*Ñ,Ô,ˆFØ×%Ò%Õ&7Ñ8Ô8ÐDØ ×+Ò+¨J¸Ñ;Ô;�Ý˜h­Ñ-Ô-ð ;°)À8Ð2KÐ2KÝ*:�H˜YÑ'àˆLó    )r2   r$   r3   r%   r0   r4   )Ú_install_httplibÚ_install_subprocessr
   )r@   s    r?   Ú
setup_oncezStdlibIntegration.setup_once7   s[   € åÑÔÐÝÑÔÐå	#ð		Øð		Ø"(ð		àð		ð 		ð 		ñ 
$Ô	#ð		ð 		ð 		rA   ©r0   N)Ú__name__Ú
__module__Ú__qualname__Ú
identifierÚstaticmethodrD   © rA   r?   r.   r.   4   s7   € € € € € Ø€Jàðð ð ñ „\ðð ð rA   r.   ÚspanúUnion[Span, StreamedSpan]r0   c                 óZ  — t          | t          ¦  «        rKt          ¦   «         5  t          | ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      ¦   «          d S |                      ¦   «          t          ¦   «         5  t          | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©N)r<   r   r   r   ÚendÚfinish©rL   s    r?   Ú_complete_spanrS   I   s  € Ý�$�Ñ%Ô%ð *Ý(Ñ*Ô*ð 	*ð 	*Ý# DÑ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*à�Š‰
Œ
ˆ
ˆ
ˆ
à�Š‰ŒˆÝ(Ñ*Ô*ð 	*ð 	*Ý# DÑ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s#   ¤A Á AÁAÂB Â B$Â'B$Úoriginal_putheaderúCallable[..., Any]c                 ó   ‡ — dˆ fd„}|S )	zLRecord existing `sentry-trace` and SigV4-signed propagation headers to skip.Úselfr   Úheaderr   Úvaluesr0   c                 ó†  •—  ‰| |g|¢R Ž }t          | dd ¦  «        }|€|S t          |t          ¦  «        r)|                     dd¦  «                             ¦   «         }n,t          |t
          ¦  «        r|                     ¦   «         }n|S |t          k    r|                     |¦  «         |dk    r�|rŽt          ¦   «         5  |d         }t          |t          ¦  «        r|                     d¦  «        }t          |¦  «        }| 
                    t          j        |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   |S )NÚ_sentrysdk_headers_to_skipÚasciiÚignoreÚauthorizationr   zlatin-1)Úgetattrr<   ÚbytesÚdecodeÚlowerÚstrr   Úaddr   r   Úupdater   Úintersection)	rW   rX   rY   ÚrvÚheaders_to_skipÚnormalized_headerr^   Úsigned_headersrT   s	           €r?   Ú	putheaderz)_get_wrapped_putheader.<locals>.putheaderY   s¨  ø€ ØÐ  fÐ6¨vÐ6Ð6Ð6ˆå07ØÐ.°ñ1
ô 1
ˆð Ð"ØˆIå�f�eÑ$Ô$ð 	Ø &§¢¨g°xÑ @Ô @× FÒ FÑ HÔ HÐÐÝ˜¥Ñ$Ô$ð 	Ø &§¢¡¤ÐÐàˆIð Õ 8Ò8Ð8Ø×ÒÐ 1Ñ2Ô2Ð2à Ò/Ð/°FÐ/Ý,Ñ.Ô.ð ð Ø & q¤	�Ý˜m­UÑ3Ô3ð DØ$1×$8Ò$8¸Ñ$CÔ$C�Mõ LØ%ñô ð ð  ×&Ò&Ý(Ô5°nÑEÔEñô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆ	s   ÃA)D6Ä6D:Ä=D:)rW   r   rX   r   rY   r   r0   r   rK   )rT   rk   s   ` r?   Ú_get_wrapped_putheaderrl   T   s*   ø€ ð
$ð $ð $ð $ð $ð $ðL ÐrA   Úoriginal_endheadersc                 ó   ‡ — dˆ fd„}|S )	a~  
    Add unsigned propagation headers immediately before sending.

    `sentry-trace`: add if missing; leave an existing or signed value as-is.
    `baggage`: add if missing; append if unsigned since multiple fields are
    allowed and combined (https://www.w3.org/TR/baggage/#baggage-http-header-format);
    leave a signed value as-is since it is part of the SigV4 signature.
    rW   r   Úargsr   Úkwargsr0   c           	      ór  •— t          | dd ¦  «        }t          | dd ¦  «        }	 |�ót          ¦   «         5  t          | dd ¦  «        }|�ºt          |¦  «        }|                     t	          j        |¦  «        ¦  «         t          j        ¦   «                              |¬¦  «        D ]\\  }}| 	                    ¦   «         |v rŒt          j        d                     |||¬¦  «        ¦  «         |                      ||¦  «         Œ]d d d ¦  «         n# 1 swxY w Y    ‰	| g|¢R i |¤Žd | _        S # d | _        w xY w)NÚ_sentrysdk_real_urlÚ_sentrysdk_spanr[   rR   úJ[Tracing] Adding `{key}` header {value} to outgoing request to {real_url}.©ÚkeyÚvalueÚreal_url)r_   r   r   re   r   rf   r8   Úget_current_scopeÚiter_trace_propagation_headersrb   r   ÚdebugÚformatrk   rr   )
rW   ro   rp   rx   rL   rh   Úquery_signed_headersÚheader_nameÚheader_valuerm   s
            €r?   Ú
endheadersz+_get_wrapped_endheaders.<locals>.endheadersŽ   sç  ø€ Ý˜4Ð!6¸Ñ=Ô=ˆÝ�tÐ.°Ñ5Ô5ˆð$	,ØÐ#Ý0Ñ2Ô2ð Fð FÝ&-¨dÐ4PÐRVÑ&WÔ&W�Oà&Ð2õ PØ (ñô ð -ð
 (×.Ò.Ý0Ô=Ð>RÑSÔSñô ð õ (Ô9Ñ;Ô;×ZÒZØ!%ð [ñ ô ðFð Fñ Ø'Ø(ð
  +×0Ò0Ñ2Ô2°oÐEÐEØ (å"œLØ l× sÒ sØ(3Ø*6Ø-5ð !tñ !"ô !"ñô ð ð !ŸNšN¨;¸ÑEÔEÐEÐEð?Fð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð@ 'Ð& tÐ=¨dÐ=Ð=Ð=°fÐ=Ð=à'+ˆDÔ$Ð$ø tˆDÔ$Ð+Ð+Ð+Ð+s/   ¥D- µCDÄD- ÄDÄD- ÄDÄD- Ä-	D6©rW   r   ro   r   rp   r   r0   r   rK   )rm   r€   s   ` r?   Ú_get_wrapped_endheadersr‚   ‚   s*   ø€ ð(,ð (,ð (,ð (,ð (,ð (,ðT ÐrA   Úoriginal_putrequestc                 ó@   ‡ — dddt           dt           ddddddfˆ fd	„}|S )
z3Start `headers_to_skip` before headers are written.rW   r   ÚmethodÚurlro   r   rp   r0   c                 óz   •— t          ¦   «         | _        	  ‰| ||g|¢R i |¤Ž}n# t          $ r	 d | _        ‚ w xY w|S rO   )Úsetr[   ÚBaseException)rW   r…   r†   ro   rp   rg   rƒ   s         €r?   Ú
putrequestz+_get_wrapped_putrequest.<locals>.putrequestÀ   sk   ø€ õ +.©%¬%ˆÔ'ð	Ø$Ð$ T¨6°3ÐH¸ÐHÐHÐHÀÐHÐHˆBˆBøÝð 	ð 	ð 	ð /3ˆDÔ+Øð		øøøð ˆ	s   –% ¥8)rc   )rƒ   rŠ   s   ` r?   Ú_get_wrapped_putrequestr‹   »   sY   ø€ ð
ØðÝ(+ðÝ25ðØ>CðØOTðà	ðð ð ð ð ð ð  ÐrA   c                  óÊ  — t           �it          t           j        ¦  «        t           _        t          t           j        ¦  «        t           _        t          t           j        ¦  «        t           _        t          �kt          t          j        ¦  «        t          _        t          t          j        ¦  «        t          _        t          t          j        ¦  «        t          _        dS dS )a.  
    Patch AWS connection classes so trace propagation does not break SigV4.

    Botocore signs the request before headers reach HTTPConnection. Wait until
    `endheaders()` to add unsigned propagation headers, after `putheader()` has
    recorded existing `sentry-trace` and signed field names.
    N)r+   rl   rk   r‚   r€   r‹   rŠ   r,   rK   rA   r?   Ú_patch_aws_connectionr�   Ó   sÀ   € õ Ð$Ý&<ÝÔ'ñ'
ô '
ÕÔ#õ (?ÝÔ(ñ(
ô (
ÕÔ$õ (?ÝÔ(ñ(
ô (
ÕÔ$õ Ð%Ý'=ÝÔ(ñ(
ô (
ÕÔ$õ )@ÝÔ)ñ)
ô )
ÕÔ%õ )@ÝÔ)ñ)
ô )
ÕÔ%Ð%Ð%ð &Ð%rA   c                  óF  ‡‡‡‡— t           j        Št           j        Št          j        Št          j        Šdddt          dt          ddddddfˆfd	„} dˆfd
„}dˆfd„}dˆfd„}t          ¦   «          | t           _        |t           _        |t          _        |t          _        d S )NrW   r   r…   r†   ro   r   rp   r0   c           	      ó^  •— | j         }t          | dd ¦  «        }|r|}t          | d|¦  «        }n| j        }| j        }t	          j        ¦   «         }	|	                     t          ¦  «        �t          |	|¦  «        r ‰| ||g|¢R i |¤ŽS |}
|
�|
 	                    d¦  «        s|dk    rdpd›d|›||k    rd|z  pd	›|›�}
d }t          ¦   «         5  t          |
d
¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |	j        ¦  «        }d }i }|rÙt          |	|¦  «        }||t          j        <   |                     |¦  «         t          j                             ¦   «         �…t          j                             |›d|r|j        nt,          ›�dddt.          j        t          j        |i¬¦  «        }|                     ¦   «         D ]\  }}|                     ||¦  «         Œ|j        }�nt	          j        t.          j        |›d|r|j        nt,          ›�d¬¦  «        }|                     t          j        |¦  «         ||t          j        <   |�£|                     t          j        |j        ¦  «         |                     d|j        ¦  «         |                     t          j        |j         ¦  «         |                     t          j        |j        d|j        t          j        |j         i¦  «         |j        }|ro|r6 |t          j!        | j        ¦  «          |t          j"        | j        ¦  «         |                     t          j!        | j        t          j"        | j        i¦  «          ‰| ||g|¢R i |¤Ž}tG          |	|
¦  «        r~tI          | d¦  «        snt	          j%        ¦   «          &                    |¬¦  «        D ]E\  }}tO          j(        d )                    |||
¬¦  «        ¦  «         |  *                    ||¦  «         ŒFntG          |	|
¦  «        r|
| _+        || _,        || _-        |S )NÚ_tunnel_hostÚ_tunnel_port)zhttp://zhttps://i»  ÚhttpsÚhttpz://z:%sÚ F)Úsanitizeú úsentry.originzauto.http.stdlib.httplibú	sentry.op©r'   Ú
attributes©Úopr'   Úoriginr†   r[   rR   rt   ru   ).Údefault_portr_   ÚhostÚportr8   r9   r:   r.   r   Ú
startswithr   r   r   Úoptionsr   r   ÚHTTP_REQUEST_METHODre   ÚtracesÚget_current_spanÚ
start_spanr†   r   r   ÚHTTP_CLIENTÚitemsÚset_attributeÚset_dataÚHTTP_METHODÚHTTP_FRAGMENTÚfragmentÚ
HTTP_QUERYÚqueryÚNETWORK_PEER_ADDRESSÚNETWORK_PEER_PORTr   Úhasattrry   rz   r   r{   r|   rk   rr   rs   Ú_sentrysdk_breadcrumb)rW   r…   r†   ro   rp   rž   Útunnel_hostrŸ   r    r>   rx   Ú
parsed_urlÚspan_streamingrL   Ú
breadcrumbÚurl_attributesrv   rw   Úset_on_spanrg   Úreal_putrequests                       €r?   rŠ   z$_install_httplib.<locals>.putrequestø   s  ø€ ð Ô(ˆõ ˜d N°DÑ9Ô9ˆØð 	ØˆDÝ˜4 °Ñ>Ô>ˆDˆDà”9ˆDØ”9ˆDåÔ&Ñ(Ô(ˆØ×!Ò!Õ"3Ñ4Ô4Ð<ÅØ�DñA
ô A
Ð<ð #�? 4¨°ÐF°tÐFÐFÐF¸vÐFÐFÐFàˆØÐ 8×#6Ò#6Ð7NÑ#OÔ#OÐà Ò#Ð/¨Ð9°6Ð9Ð9Ø�Ø˜Ò$Ð5¨°©Ð;¸Ð;Ø�ð	ˆHð ˆ
Ý(Ñ*Ô*ð 	=ð 	=Ý" 8°eÐ<Ñ<Ô<ˆJð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=õ 4°F´NÑCÔCˆØ26ˆØ')ˆ
àð 1	(Ý/°¸
ÑCÔCˆNà7=ˆJ•xÔ3Ñ4Ø×Ò˜nÑ-Ô-Ð-åÔ ×1Ò1Ñ3Ô3Ð?Ý!Ô(×3Ò3ð ˜˜Ø*4ÐS˜
œ˜Õ:SÐSðð (Ð)CØ#¥R¤^Ý Ô4°fð ð 4ñ ô �ð #1×"6Ò"6Ñ"8Ô"8ð 3ð 3‘J�C˜Ø×&Ò& s¨EÑ2Ô2Ð2Ð2à"Ô0�ùõ Ô(Ý”>à�6�6¨ZÐV˜:œ>˜>Õ=VÐVðXà1ð	ñ ô ˆDð �MŠM�(Ô.°Ñ7Ô7Ð7Ø/5ˆJ•xÔ+Ñ,àÐ%Ø—’�hÔ4°jÔ6IÑJÔJÐJØ—’˜e Z¤^Ñ4Ô4Ð4Ø—’�hÔ1°:Ô3CÑDÔDÐDà×!Ò!å Ô.°
Ô0CØ˜zœ~Ý Ô+¨ZÔ-=ðñô ð ð œ-ˆKð ð 
	Øð CØ��HÔ9¸4¼9ÑEÔEÐEØ��HÔ6¸¼	ÑBÔBÐBà×ÒåÔ1°4´9ÝÔ.°´	ðñô ð ð ˆ_˜T 6¨3Ð@°Ð@Ð@Ð@¸Ð@Ð@ˆõ " &¨(Ñ3Ô3ð 	0½GØÐ.ñ=
ô =
ð 	0õ Ô-Ñ/Ô/×NÒNØð Oñ ô ð+ð +ñ ØØõ ”Ø`×gÒgØ u°xð hñ ô ñô ð ð
 —’˜s EÑ*Ô*Ð*Ð*ð+õ $ F¨HÑ5Ô5ð 	0Ø'/ˆDÔ$à#ˆÔØ%/ˆÔ"àˆ	s   ÃC.Ã.C2Ã5C2c                 ó$  •— t          | dd ¦  «        }t          | dd ¦  «        }	  ‰	| g|¢R i |¤Ž}nG# t          $ r:}|rt          |¦  «         |r!dt          |¦  «        vrt	          d |¦  «         ‚ d }~ww xY wt          |j        ¦  «        }|r||t          j        <   |€|rt	          ||¦  «         |S t          |t          ¦  «        r0|dk    rdnd|_        |                     t          j        |¦  «         nQt          |t          ¦  «        r<|                     |¦  «         |                     d|j        ¦  «         |r
|j        |d<   |j        p|j        d uo
|j        dk    }|r||_        nt          |¦  «         |rt	          ||¦  «         |S )	Nrs   r³   z<getresponse() got an unexpected keyword argument 'buffering'i�  ÚerrorÚokÚreasonr   )r_   r‰   rS   rc   r   ÚintÚstatusr   ÚHTTP_STATUS_CODEr<   r   r©   r   Úset_http_statusrª   r¾   ÚchunkedÚlengthrs   )
rW   ro   rp   rL   r·   rg   ÚexÚstatus_codeÚhas_bodyÚreal_getresponses
            €r?   Úgetresponsez%_install_httplib.<locals>.getresponsex  sð  ø€ Ý�tÐ.°Ñ5Ô5ˆÝ˜TÐ#:¸DÑAÔAˆ
ð	Ø!Ð! $Ð8¨Ð8Ð8Ð8°Ð8Ð8ˆBˆBøÝð 
	ð 
	ð 
	Øð %Ý˜tÑ$Ô$Ð$àð6àRÝ˜2‘w”wðð õ $ D¨*Ñ5Ô5Ð5Øøøøøð
	øøøõ ˜"œ)‘n”nˆàð 	@Ø4?ˆJ•xÔ0Ñ1àˆ<Øð =Ý# K°Ñ<Ô<Ð<ØˆIå�d�LÑ)Ô)ð 	1Ø%0°CÒ%7Ð%7˜'˜'¸TˆDŒKØ×Ò�xÔ8¸+ÑFÔFÐFÐFÝ˜�dÑ#Ô#ð 	1Ø× Ò  Ñ-Ô-Ð-Ø�MŠM˜( B¤IÑ.Ô.Ð.Øð 1Ø')¤y�
˜8Ñ$ð
 ”:ÐJ "¤)°4Ð"7Ð"I¸B¼IÈºMˆØð 	!Ø!%ˆBÔÐå˜4Ñ Ô Ð àð 	9õ   ¨ZÑ8Ô8Ð8àˆ	s   ¥2 ²
A6¼5A1Á1A6r   c                 ó  •— 	  ‰| g|¢R i |¤Žt          | dd ¦  «        }|r%| j        �| j        rd | _        t	          |¦  «         S S S # t          | dd ¦  «        }|r%| j        �| j        rd | _        t	          |¦  «         w w w xY w©Nrs   )r_   ÚfpÚclosedrs   rS   )rW   ro   rp   rL   Ú	real_reads       €r?   Úreadz_install_httplib.<locals>.read­  s»   ø€ ð		%Ø�9˜TÐ3 DÐ3Ð3Ð3¨FÐ3Ð3å˜4Ð!2°DÑ9Ô9ˆDð ð %˜œ˜¨D¬K˜Ø'+�Ô$Ý˜tÑ$Ô$Ð$Ð$ð%˜øõ	 ˜4Ð!2°DÑ9Ô9ˆDð ð %˜œ˜¨D¬K˜Ø'+�Ô$Ý˜tÑ$Ô$Ð$Ð$ð%˜øøøs   ƒA Á;Bc                 óÔ   •— 	  ‰| ¦  «         t          | dd ¦  «        }|�d | _        t          |¦  «         d S d S # t          | dd ¦  «        }|�d | _        t          |¦  «         w w xY wrË   )r_   rs   rS   )rW   rL   Ú
real_closes     €r?   Úclosez_install_httplib.<locals>.close¹  s�   ø€ ð	%ØˆJ�tÑÔÐå˜4Ð!2°DÑ9Ô9ˆDØÐØ'+�Ô$Ý˜tÑ$Ô$Ð$Ð$Ð$ð  Ðøõ ˜4Ð!2°DÑ9Ô9ˆDØÐØ'+�Ô$Ý˜tÑ$Ô$Ð$Ð$ð  øøøs	   ƒ; »,A'r�   )rW   r   ro   r   rp   r   r0   r   )rW   r   r0   N)r   rŠ   rÉ   r   rÏ   rÒ   rc   r�   )rŠ   rÉ   rÏ   rÒ   rÑ   rÈ   rº   rÎ   s       @@@@r?   rB   rB   ò   s  øøøø€ Ý$Ô/€OÝ%Ô1ÐÝÔ!€IÝÔ#€Jð~Øð~Ý(+ð~Ý25ð~Ø>Cð~ØOTð~à	ð~ð ~ð ~ð ~ð ~ð ~ð@3ð 3ð 3ð 3ð 3ð 3ðj
%ð 
%ð 
%ð 
%ð 
%ð 
%ð
%ð 
%ð 
%ð 
%ð 
%ð 
%õ ÑÔÐØ *…NÔØ!,…NÔØ…LÔØ…LÔÐÐrA   ro   z	List[Any]rp   zDict[Any, Any]r'   ÚpositionÚsetdefault_callbackzOptional[Callable[[Any], Any]]r   c                 óÐ   — ||v r||         }|� ||¦  «        }|�|||<   nD|t          | ¦  «        k     r| |         }|� ||¦  «        }|�|| |<   n|o
 |d¦  «        }|�|||<   |S )a?  
    given (*args, **kwargs) of a function call, retrieve (and optionally set a
    default for) an argument by either name or position.

    This is useful for wrapping functions with complex type signatures and
    extracting a few arguments without needing to redefine that function's
    entire type signature.
    N)Úlen)ro   rp   r'   rÓ   rÔ   rg   s         r?   Ú_init_argumentr×   Ì  s£   € ð  ˆv€~€~Ø�DŒ\ˆØÐ*Ø$Ð$ RÑ(Ô(ˆBØˆ>ØˆF�4‰LøØ	•C˜‘I”IÒ	Ð	Ø�(Œ^ˆØÐ*Ø$Ð$ RÑ(Ô(ˆBØˆ>ØˆD�‰Nøà Ð>Ð%8Ð%8¸Ñ%>Ô%>ˆØˆ>ØˆF�4‰Là€IrA   c                  óÎ  ‡‡‡— t           j        j        Št          t          ‰¦  «        	 	 	 	 	 	 	 	 d
ˆfd„¦   «         } | t           j        _        t           j        j        Št          t          ‰¦  «        	 	 	 	 	 	 	 	 dˆfd„¦   «         }|t           j        _        t           j        j        Št          t          ‰¦  «        	 	 	 	 	 	 	 	 dˆfd	„¦   «         }|t           j        _        d S )NrW   úsubprocess.Popen[Any]Úar   Úkwr0   c           	      óL  •— t          |¦  «        }t          ||dd¦  «        pg }t          ||dd¦  «        }d }t          |t           t          f¦  «        rat	          |¦  «        dk     rNt          ¦   «         5  d                     t          t          |¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   |€t          |¦  «        }d }t          j        dd||rd|ini ¬	¦  «         t          t          j        ¦   «         j        ¦  «        }|rYt          j                             ¦   «         € ‰| g|¢R i |¤ŽS t          j                             |t$          j        d
dœ¬¦  «        }n!t          j        t$          j        |d
¬¦  «        }|5  t          j        ¦   «                              |¬¦  «        D ]I\  }	}
|€t          ||ddd„ ¦  «        }|
|d|	                     ¦   «                              dd¦  «        z   <   ŒJ|r+t          |t0          ¦  «        r|                     d|¦  «          ‰| g|¢R i |¤Ž}t          |t4          ¦  «        r&|                     t8          j        | j        ¦  «         n|                     d| j        ¦  «         |cd d d ¦  «         S # 1 swxY w Y   d S )Nro   r   Úcwdé	   éd   r–   Ú
subprocesszsubprocess.cwd)ÚtypeÚcategoryÚmessageÚdataú!auto.subprocess.stdlib.subprocess©r˜   r—   r™   r›   rR   Úenvé
   c                 ó<   — t          | �| nt          j        ¦  «        S rO   )r=   ÚosÚenviron)Úxs    r?   ú<lambda>zH_install_subprocess.<locals>.sentry_patched_popen_init.<locals>.<lambda>4  s   € ¥$¨A¨M q q½r¼zÑ"JÔ"J€ rA   ÚSUBPROCESS_ú-Ú_úsubprocess.pid) Úlistr×   r<   ÚtuplerÖ   r   ÚjoinÚmaprc   r   r8   Úadd_breadcrumbr   r9   r¢   r¤   r¥   r¦   r   Ú
SUBPROCESSry   rz   ÚupperÚreplacer   rª   r   r©   r   ÚPROCESS_PIDÚpidÚset_tag)rW   rÚ   rÛ   ro   rÝ   Údescriptionrç   r¶   rL   ÚkÚvrg   Úold_popen_inits               €r?   Úsentry_patched_popen_initz6_install_subprocess.<locals>.sentry_patched_popen_initó  sn  ø€ õ
 �‰GŒGˆå˜a  V¨QÑ/Ô/Ð5°2ˆÝ˜Q  E¨1Ñ-Ô-ˆð ˆå�d�T¥5˜MÑ*Ô*ð 	7­s°4©y¬y¸3ª¨Ý,Ñ.Ô.ð 7ð 7Ø!Ÿhšh¥s­3°¡~¤~Ñ6Ô6�ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð ÐÝ# D™/œ/ˆKàˆåÔ!ØØ!ØØ,/Ð7Ð" CÐ(Ð(°Rð		
ñ 	
ô 	
ð 	
õ 4µJÔ4IÑ4KÔ4KÔ4SÑTÔTˆàð 	ÝÔ ×1Ò1Ñ3Ô3Ð;Ø%�~ dÐ5¨QÐ5Ð5Ð5°"Ð5Ð5Ð5åÔ$×/Ò/Ø å!#¤Ø%Hðð ð 0ñ ô ˆDˆDõ Ô(Ý”=Ø Ø:ðñ ô ˆDð ð 	ð 	Ý"Ô4Ñ6Ô6×UÒUØð Vñ ô ð Eð E‘��1ð �;Ý(ØØØØØJÐJñô �Cð DE��M A§G¢G¡I¤I×$5Ò$5°c¸3Ñ$?Ô$?Ñ?Ñ@Ð@àð 5•z $­Ñ-Ô-ð 5Ø—’Ð.°Ñ4Ô4Ð4à� Ð/ qÐ/Ð/Ð/¨BÐ/Ð/ˆBå˜$¥Ñ-Ô-ð 9Ø×"Ò"¥8Ô#7¸¼ÑBÔBÐBÐBà—’Ð-¨t¬xÑ8Ô8Ð8àð1	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s%   Á6)B+Â+B/Â2B/Æ
DJÊJÊ Jc                 ón  •— t          t          j        ¦   «         j        ¦  «        }|r­t          j                             ¦   «         € ‰| g|¢R i |¤ŽS t          j                             t          j        t          j        ddœ¬¦  «        5 }| 	                    t          j        | j        ¦  «          ‰| g|¢R i |¤Žcd d d ¦  «         S # 1 swxY w Y   d S t          j        t          j        d¬¦  «        5 }|                     d| j        ¦  «          ‰| g|¢R i |¤Žcd d d ¦  «         S # 1 swxY w Y   d S ©Nrå   ræ   r™   )rœ   r�   rñ   )r   r8   r9   r¢   r¤   r¥   r¦   r   ÚSUBPROCESS_WAITr©   r   rú   rû   rü   )rW   rÚ   rÛ   r¶   rL   Úold_popen_waits        €r?   Úsentry_patched_popen_waitz6_install_subprocess.<locals>.sentry_patched_popen_waitH  sé  ø€ õ 4µJÔ4IÑ4KÔ4KÔ4SÑTÔTˆØð 	6ÝÔ ×1Ò1Ñ3Ô3Ð;Ø%�~ dÐ5¨QÐ5Ð5Ð5°"Ð5Ð5Ð5ÝÔ"×-Ò-ÝÔ'å!#Ô!3Ø%Hðð ð .ñ ô ð 6ð Ø×"Ò"¥8Ô#7¸¼ÑBÔBÐBØ%�~ dÐ5¨QÐ5Ð5Ð5°"Ð5Ð5ð6ð 6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð 6ð 6õ Ô&ÝÔ%Ø:ðñ ô ð 6ð Ø—’Ð-¨t¬xÑ8Ô8Ð8Ø%�~ dÐ5¨QÐ5Ð5Ð5°"Ð5Ð5ð6ð 6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð 6ð 6ó$   Â1C	Ã	CÃCÃ6'D*Ä*D.Ä1D.c                 ón  •— t          t          j        ¦   «         j        ¦  «        }|r­t          j                             ¦   «         € ‰| g|¢R i |¤ŽS t          j                             t          j        t          j        ddœ¬¦  «        5 }| 	                    t          j        | j        ¦  «          ‰| g|¢R i |¤Žcd d d ¦  «         S # 1 swxY w Y   d S t          j        t          j        d¬¦  «        5 }|                     d| j        ¦  «          ‰| g|¢R i |¤Žcd d d ¦  «         S # 1 swxY w Y   d S r  )r   r8   r9   r¢   r¤   r¥   r¦   r   ÚSUBPROCESS_COMMUNICATEr©   r   rú   rû   rü   )rW   rÚ   rÛ   r¶   rL   Úold_popen_communicates        €r?   Ú sentry_patched_popen_communicatez=_install_subprocess.<locals>.sentry_patched_popen_communicatee  sì  ø€ õ 4µJÔ4IÑ4KÔ4KÔ4SÑTÔTˆØð 	=ÝÔ ×1Ò1Ñ3Ô3Ð;Ø,Ð,¨TÐ<°AÐ<Ð<Ð<¸Ð<Ð<Ð<ÝÔ"×-Ò-ÝÔ.å!#Ô!:Ø%Hðð ð .ñ ô ð =ð Ø×"Ò"¥8Ô#7¸¼ÑBÔBÐBØ,Ð,¨TÐ<°AÐ<Ð<Ð<¸Ð<Ð<ð=ð =ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =õ Ô&ÝÔ,Ø:ðñ ô ð =ð Ø—’Ð-¨t¬xÑ8Ô8Ð8Ø,Ð,¨TÐ<°AÐ<Ð<Ð<¸Ð<Ð<ð=ð =ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =r  )rW   rÙ   rÚ   r   rÛ   r   r0   N)rW   rÙ   rÚ   r   rÛ   r   r0   r   )rà   ÚPopenÚ__init__r   r.   ÚwaitÚcommunicate)r  r  r  r
  r   r  s      @@@r?   rC   rC   ð  s`  øøø€ ÝÔ%Ô.€NåÕ 1°>ÑBÔBðNØ%ðNØ+0ðNØ8=ðNà	ðNð Nð Nð Nð Nñ CÔBðNð` !:…JÔÔåÔ%Ô*€NåÕ 1°>ÑBÔBð6Ø%ð6Ø+0ð6Ø8=ð6à	ð6ð 6ð 6ð 6ð 6ñ CÔBð6ð0 6…JÔÔå&Ô,Ô8ÐåÕ 1Ð3HÑIÔIð=Ø%ð=Ø+0ð=Ø8=ð=à	ð=ð =ð =ð =ð =ñ JÔIð=ð0 $D…JÔÔ Ð Ð rA   r   c                  ó8   — t          t          j        d¬¦  «        S )Nrî   )Úprefix)r   rê   rë   rK   rA   r?   Ú"get_subprocess_traceparent_headersr  �  s   € Ý�"œ*¨]Ð;Ñ;Ô;Ð;rA   )rL   rM   r0   N)rT   rU   r0   rU   )rm   rU   r0   rU   )rƒ   rU   r0   rU   rE   rO   )r0   r   )Grê   Úplatformrà   ÚsysÚhttp.clientr   r   Útypingr   r8   Úsentry_sdk.constsr   r   r   Úsentry_sdk.integrationsr	   Úsentry_sdk.scoper
   Úsentry_sdk.tracesr   Úsentry_sdk.tracingr   r   Úsentry_sdk.tracing_utilsr   r   r   r   r   r   Úsentry_sdk.utilsr   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   Úsentry_sdk._typesr$   r%   Úpython_implementationÚversion_infor(   r*   Ú__annotations__Úbotocore.awsrequestr+   r,   ÚImportErrorr.   rS   rl   r‚   r‹   r�   rB   rc   r¿   r×   rC   r  rK   rA   r?   ú<module>r$     sç  ðØ 	€	€	€	€	Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø /Ð /Ð /Ð /Ð /Ð /Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø *Ð *Ð *Ð *Ð *Ð *Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð ð .ØFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFÐFà-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ð +ˆHÔ*Ñ,Ô,Ø˜SÔ-¨b¨q¨bÔ1Ñ2ØŒ[ð)ð )Ð Ð%ð ð ñ ð
ØIÐIÐIÐIÐIÐIÐIÐIÐIøØð ð ð ØÐØÐÐÐðøøøð
ð ð ð ð ˜ñ ô ð ð**ð *ð *ð *ð+Ø,ð+àð+ð +ð +ð +ð\6Ø-ð6àð6ð 6ð 6ð 6ðrØ-ðàðð ð ð ð0
ð 
ð 
ð 
ð>Wð Wð Wð Wð~ =Að!ð !Ø
ð!àð!ð ð!ð ð	!ð
 :ð!ð ð!ð !ð !ð !ðHNDð NDð NDð NDðb<ð <ð <ð <ð <ð <s   Â8C Ã	CÃC