§
    xÅjÐX  ã                   óô  — d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl	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mZ dd	lmZ dd
lmZ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% ddl&m'Z' ddl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4 er ddlm5Z5m6Z6m7Z7m8Z8m9Z9m:Z: ddl;m<Z<m=Z=m>Z> ddl#m?Z?  e+d¦  «        Z@dZAdZBejC        dk    rddlmDZD nddlEmDZD d#dddeFddfd„ZGdddeHfd „ZI G d!„ d"¦  «        ZJdS )$ze
An ASGI middleware.

Based on Tom Christie's `sentry-asgi <https://github.com/encode/sentry-asgi>`.
é    N)Údeepcopy)Úpartial)ÚTYPE_CHECKING)Úcontinue_trace)ÚOPÚSPANDATA)Ú_get_headersÚ_get_ipÚ	_get_pathÚ_get_request_attributesÚ_get_request_dataÚ_get_urlÚ_RootPathInPath)ÚDEFAULT_HTTP_METHODS_TO_CAPTURE)ÚScopeÚshould_send_default_pii)Útrack_session)ÚSOURCE_FOR_STYLE)ÚSegmentNameSourceÚStreamedSpan)r   ÚTransactionÚTransactionSource)Úhas_span_streaming_enabled)ÚCONTEXTVARS_ERROR_MESSAGEÚHAS_REAL_CONTEXTVARSÚ
ContextVarÚ_get_installed_modulesÚcapture_internal_exceptionsÚevent_from_exceptionÚhas_data_collection_enabledÚloggerÚnullcontextÚqualname_from_functionÚreraiseÚtransaction_from_function)ÚAnyÚContextManagerÚDictÚOptionalÚTupleÚUnion)Ú
AttributesÚEventÚHint)ÚSpanÚsentry_asgi_middleware_appliedzgeneric ASGI request)ÚendpointÚurl)é   é   )ÚiscoroutinefunctionÚasgiÚexcr&   Úmechanism_typeÚreturnc                 óŽ   — t          | t          j        ¦   «         j        |ddœ¬¦  «        \  }}t          j        ||¬¦  «         d S )NF)ÚtypeÚhandled)Úclient_optionsÚ	mechanism)Úhint)r   Ú
sentry_sdkÚ
get_clientÚoptionsÚcapture_event)r7   r8   Úeventr?   s       úMC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/integrations/asgi.pyÚ_capture_exceptionrF   O   sU   € Ý&ØÝ!Ô,Ñ.Ô.Ô6Ø)°eÐ<Ð<ðñ ô �K€Eˆ4õ
 Ô˜U¨Ð.Ñ.Ô.Ð.Ð.Ð.ó    Úappc                 óÐ   — t          j        | ¦  «        rt          | d¦  «        S t          j        | ¦  «        rt	          | ¦  «        S t          | dd¦  «        }t	          |¦  «        S )zŠ
    Try to figure out if an application object supports ASGI3.

    This is how uvicorn figures out the application version as well.
    Ú	__await__Ú__call__N)ÚinspectÚisclassÚhasattrÚ
isfunctionr5   Úgetattr)rH   Úcalls     rE   Ú_looks_like_asgi3rR   X   sf   € õ „�sÑÔð )Ý�s˜KÑ(Ô(Ð(Ý	Ô	˜CÑ	 Ô	 ð )Ý" 3Ñ'Ô'Ð'å�s˜J¨Ñ-Ô-ˆÝ" 4Ñ(Ô(Ð(rG   c                   óì   — e Zd ZdZddddedej        fddd	ed
edededdddddddfd„Z	de
ddfd„Zde
ddfd„Zd*d„Zd+d„Zdddddddeddf
d„Z	 	 	 	 	 	 	 	 d,d$„Zd%d d
ed"ddd&fd'„Zd%d d(ed"ddd&fd)„ZdS )-ÚSentryAsgiMiddleware)rH   rK   Útransaction_styler8   Úspan_originÚhttp_methods_to_captureÚroot_path_in_pathFr1   r6   ÚmanualNrH   r&   Úunsafe_context_datarU   r8   rV   rW   zTuple[str, ...]Úasgi_versionzOptional[int]rX   r   r9   c	                 ó¶  — |st           st          dt          z   ¦  «        ‚|t          vrt	          d|›dt          ›d�¦  «        ‚|dk    odt          ¦   «         v }	|	rt          j        d¦  «         || _        || _	        || _
        || _        || _        || _        |€t          |¦  «        rd	}nd
}|d	k    r| j        | _        dS |d
k    r| j        | _        dS dS )ab  
        Instrument an ASGI application with Sentry. Provides HTTP/websocket
        data to sent events and basic handling for exceptions bubbling up
        through the middleware.

        :param unsafe_context_data: Disable errors when a proper contextvars installation could not be found. We do not recommend changing this from the default.
        zRThe ASGI middleware for Sentry requires Python 3.7+ or the aiocontextvars package.z%Invalid value for transaction_style: z (must be in ú)r6   Ú	starlettezæThe Sentry Python SDK can now automatically support ASGI frameworks like Starlette and FastAPI. Please remove 'SentryAsgiMiddleware' from your project. See https://docs.sentry.io/platforms/python/guides/asgi/ for more information.Nr3   é   )r   ÚRuntimeErrorr   ÚTRANSACTION_STYLE_VALUESÚ
ValueErrorr   r!   ÚwarningrU   r8   rV   rH   rW   rX   rR   Ú
_run_asgi3rK   Ú
_run_asgi2)
ÚselfrH   rZ   rU   r8   rV   rW   r[   rX   Ú0asgi_middleware_while_using_starlette_or_fastapis
             rE   Ú__init__zSentryAsgiMiddleware.__init__r   s?  € ð$ #ð 	Õ+?ð 	õ ð1Ý3LñMñô ð ð Õ$<Ð<Ð<Ý�*à$Ð$Ð$Õ&>Ð&>Ð&>ð@ñô ð ð ˜fÒ$ÐP¨Õ8NÑ8PÔ8PÐ)Pð 	9ð <ð 	ÝŒNðañô ð ð "3ˆÔØ,ˆÔØ&ˆÔØˆŒØ'>ˆÔ$Ø!2ˆÔàÐÝ  Ñ%Ô%ð !Ø ��à �à˜1ÒÐØ œOˆDŒMˆMˆMØ˜QÒÐØ œOˆDŒMˆMˆMð ÐrG   r7   c                 ó.   — t          || j        ¬¦  «        S )zÂCapture exceptions raise in application lifespan handlers.

        The separate function is needed to support overriding in derived integrations that use different catching mechanisms.
        ©r7   r8   ©rF   r8   ©rf   r7   s     rE   Ú_capture_lifespan_exceptionz0SentryAsgiMiddleware._capture_lifespan_exception­   ó   € õ
 " c¸$Ô:MÐNÑNÔNÐNrG   c                 ó.   — t          || j        ¬¦  «        S )z¿Capture exceptions raised in incoming request handlers.

        The separate function is needed to support overriding in derived integrations that use different catching mechanisms.
        rj   rk   rl   s     rE   Ú_capture_request_exceptionz/SentryAsgiMiddleware._capture_request_exception´   rn   rG   Úscopec                 ó   ‡ ‡— dˆˆ fd„}|S )NÚreceiver&   Úsendr9   c              “   óF   •K  — ‰                      ‰| |d¬¦  «        ƒ d {V —†S )Nr_   ©r[   ©Ú_run_app)rs   rt   rq   rf   s     €€rE   Úinnerz.SentryAsgiMiddleware._run_asgi2.<locals>.inner¼   s3   øè è € ØŸš u¨g°tÈ!˜ÑLÔLÐLÐLÐLÐLÐLÐLÐLrG   )rs   r&   rt   r&   r9   r&   © )rf   rq   ry   s   `` rE   re   zSentryAsgiMiddleware._run_asgi2»   s5   øø€ ð	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð ˆrG   rs   rt   c              ƒ   óD   K  — |                       |||d¬¦  «        ƒ d {V —†S )Nr3   rv   rw   )rf   rq   rs   rt   s       rE   rd   zSentryAsgiMiddleware._run_asgi3Á   s2   è è € Ø—]’] 5¨'°4Àa�]ÑHÔHÐHÐHÐHÐHÐHÐHÐHrG   c              ƒ   óö  ‡‡K  — t                                d¦  «        }|d         dk    }|s|�r	 |dk    r% |                      |¦  «        |‰¦  «        ƒ d {V —†S |                      ||‰¦  «        ƒ d {V —†S # t          $ r»}t	          j        ¦   «         j                             di ¦  «                             dd¦  «        }|r|                      |¦  «         |d ‚t          j	        ¦   «         }	t          ¦   «         5  |                      |¦  «         d d d ¦  «         n# 1 swxY w Y   t          |	Ž  Y d }~nd }~ww xY wt	          j        ¦   «         }
t          |
j        ¦  «        }t                                d¦  «         	 t	          j        ¦   «         5 }t          |d¬	¦  «        5  |                     ¦   «          d
|_        t%          | j        |¬¦  «        }|                     |¦  «         |d         }|                      | j        |¦  «        \  }}|                     dd¦  «                             ¦   «         }|�r÷d }t1          |d|¦  «        | j        |dœ}|                     d¦  «        ržt	          j        ¦   «         j        }t5          |¦  «        r<|d         d         r-|                     t8          j        t=          |¦  «        ¦  «         n;t?          ¦   «         r-|                     t8          j        t=          |¦  «        ¦  «         |dv r•|dk    s	|| j         v r…t          j!         "                    tG          |¦  «        ¦  «         tI          j%        d|i¦  «         |› d�|d<   t          j!         &                    ||d ¬¦  «        }|| '                    ¦   «         _(        n~t          j!         )                    ¦   «          tI          j%        d|i¦  «         tT          j+        |d<   t          j!         &                    ||d ¬¦  «        }|| '                    ¦   «         _(        |ptY          ¦   «         }n±d }|dv rI|dk    s	|| j         v r9tE          tG          |¦  «        d -                    |¦  «        ||| j        ¬¦  «        }n"t]          tT          j+        ||| j        ¬¦  «        }|r| /                    d|¦  «         |�t	          j0        |d|i¬¦  «        ntY          ¦   «         }|5 Štc          ‰td          ¦  «        rDtg          || j4        ¬¦  «         5                    ¦   «         D ]\  }}‰                     ||¦  «         Œ	 	 	 	 	 d$ˆˆfd"„}|dk    �rI |                      |¦  «        ||¦  «        ƒ d {V —†	 tc          ‰td          ¦  «        rÐ‰d uoh‰j6        tn          k    oX‰ 8                    ¦   «                              d#¦  «        tr          j:        j;        tr          j<        j;        tr          j=        j;        fv }t          ¦   «         5  |s;|  >                    | j        |¦  «        \  }}|‰_6        ‰                     d#|¦  «         d d d ¦  «         n# 1 swxY w Y   cd d d ¦  «         cd d d ¦  «         cd d d ¦  «         t                                d¦  «         S |                      |||¦  «        ƒ d {V —†	 tc          ‰td          ¦  «        rÐ‰d uoh‰j6        tn          k    oX‰ 8                    ¦   «                              d#¦  «        tr          j:        j;        tr          j<        j;        tr          j=        j;        fv }t          ¦   «         5  |s;|  >                    | j        |¦  «        \  }}|‰_6        ‰                     d#|¦  «         d d d ¦  «         n# 1 swxY w Y   cd d d ¦  «         cd d d ¦  «         cd d d ¦  «         t                                d¦  «         S # t          $ r»}t	          j        ¦   «         j                             di ¦  «                             dd¦  «        }|r|  ?                    |¦  «         |d ‚t          j	        ¦   «         }	t          ¦   «         5  |  ?                    |¦  «         d d d ¦  «         n# 1 swxY w Y   t          |	Ž  Y d }~nd }~ww xY w	 tc          ‰td          ¦  «        rÐ‰d uoh‰j6        tn          k    oX‰ 8                    ¦   «                              d#¦  «        tr          j:        j;        tr          j<        j;        tr          j=        j;        fv }t          ¦   «         5  |s;|  >                    | j        |¦  «        \  }}|‰_6        ‰                     d#|¦  «         d d d ¦  «         n# 1 swxY w Y   në# tc          ‰td          ¦  «        rÑ‰d uoh‰j6        tn          k    oX‰ 8                    ¦   «                              d#¦  «        tr          j:        j;        tr          j<        j;        tr          j=        j;        fv }t          ¦   «         5  |s;|  >                    | j        |¦  «        \  }}|‰_6        ‰                     d#|¦  «         d d d ¦  «         w # 1 swxY w Y   w w xY wd d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t                                d¦  «         d S # t                                d¦  «         w xY w)%NFr;   Úlifespanr_   Ú_experimentsÚ suppress_asgi_chained_exceptionsTÚrequest)Úsession_moder6   )Ú
asgi_scopeÚmethodÚ Úvalue)úsentry.segment.name.sourcezsentry.originznetwork.protocol.nameÚclientÚdata_collectionÚ	user_info)ÚhttpÚ	websocketr‹   r‚   z.serverz	sentry.op)ÚnameÚ
attributesÚparent_spanz	{}.server)ÚoprŒ   ÚsourceÚoriginz	asgi.type)Úcustom_sampling_context©rX   rD   úDict[str, Any]r9   r&   c              “   ó0  •K  — ‰��|                       d¦  «        dk    od| v }|rbt          ‰t          ¦  «        r2| d         dk    rdnd‰_        ‰                     d| d         ¦  «         n‰                     | d         ¦  «          ‰| ¦  «        ƒ d {V —†S )Nr;   zhttp.response.startÚstatusi�  ÚerrorÚokzhttp.response.status_code)ÚgetÚ
isinstancer   r–   Úset_attributeÚset_http_status)rD   Úis_http_responsert   Úspans     €€rE   Ú_sentry_wrapped_sendz;SentryAsgiMiddleware._run_app.<locals>._sentry_wrapped_sendZ  sÙ   øè è € ð $(Ð#3à(-¯	ª	°&Ñ(9Ô(9Ð=RÒ(Rð )>Ø,4¸Ð,=ð %5ð (8ð %RÝ+5°d½LÑ+IÔ+Ið )Rð 49¸´?ÀcÒ3IÐ3Ið 18°à59ð -1¬Kð
 -1×,>Ò,>Ø0KØ05°h´ñ-.ô -.ð -.ð -.ð
 -1×,@Ò,@ÀÀxÄÑ,QÔ,QÐ,Qà-1¨T°%©[¬[Ð'8Ð'8Ð'8Ð'8Ð'8Ð'8Ð 8rG   r†   )rD   r”   r9   r&   )@Ú_asgi_middleware_appliedr™   rH   Ú	Exceptionr@   rA   rB   rm   ÚsysÚexc_infor   r$   r   ÚsetÚisolation_scoper   Úclear_breadcrumbsÚ_namer   Úevent_processorÚadd_event_processorÚ _get_transaction_name_and_sourcerU   ÚupperrP   rV   r    r›   r   ÚUSER_IP_ADDRESSr
   r   rW   Útracesr   r	   r   Úset_custom_sampling_contextÚ
start_spanÚget_current_scopeÚ_server_segment_spanÚ	new_tracer   ÚHTTP_SERVERr"   Úformatr   Úset_tagÚstart_transactionrš   r   r   rX   ÚitemsrŒ   Ú_DEFAULT_TRANSACTION_NAMEÚget_attributesr   Ú	COMPONENTr…   ÚROUTEÚCUSTOMÚ_get_segment_name_and_sourcerp   )rf   rq   rs   rt   r[   Úis_recursive_asgi_middlewareÚis_lifespanr7   Úsuppress_chained_exceptionsr£   r‡   Úspan_streamingÚsentry_scopeÚ	processorÚtyÚtransaction_nameÚtransaction_sourcerƒ   Úsegmentr�   r=   Úspan_ctxÚtransactionÚ	attributer…   rŸ   Úalready_setrŒ   r�   rž   s      `                         @rE   rx   zSentryAsgiMiddleware._run_appÄ   s†  øøè è € õ (@×'CÒ'CÀEÑ'JÔ'JÐ$Ø˜F”m zÒ1ˆØ'ð 	#¨;ñ 	#ð#Ø 1Ò$Ð$Ø!0 §¢¨%¡¤°¸$Ñ!?Ô!?Ð?Ð?Ð?Ð?Ð?Ð?Ð?à!%§¢¨%°¸$Ñ!?Ô!?Ð?Ð?Ð?Ð?Ð?Ð?Ð?øåð #ð #ð #åÔ)Ñ+Ô+ÜŸSšS °Ñ4Ô4ß’SÐ;¸TÑBÔBð ,ð
 /ð (Ø×4Ò4°SÑ9Ô9Ð9Ø 4Ð'åœ<™>œ>�Ý0Ñ2Ô2ð :ð :Ø×4Ò4°SÑ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :å˜Ð"Ð"Ð"Ð"Ð"Ð"Ð"øøøøð#øøøõ Ô&Ñ(Ô(ˆÝ3°F´NÑCÔCˆå ×$Ò$ TÑ*Ô*Ð*ðA	0ÝÔ+Ñ-Ô-ð ~*°Ý" <¸iÐHÑHÔHð }*ð }*Ø ×2Ò2Ñ4Ô4Ð4Ø)/�LÔ&Ý '¨Ô(<ÈÐ OÑ OÔ O�IØ ×4Ò4°YÑ?Ô?Ð?à˜vœ�Bð ×=Ò=ØÔ.Øñô ñØ(Ø*ð #ŸYšY x°Ñ4Ô4×:Ò:Ñ<Ô<�Fð &ñ WØ<@˜å:AØ 2°GÐ=Oñ;ô ;ð .2Ô-=Ø57ð4ð 4˜
ð !Ÿ9š9 XÑ.Ô.ð 
"Ý-7Ô-BÑ-DÔ-DÔ-L˜NÝ:¸>ÑJÔJð "Ø#1Ð2CÔ#DÀ[Ô#Qð !&Ø$0×$>Ò$>Ý(0Ô(@Å'È%Á.Ä.ñ%&ô %&ð %&øõ "9Ñ!:Ô!:ð "Ø ,× :Ò :Ý$,Ô$<½gÀe¹n¼nñ!"ô !"ð !"ð Ð!6Ð6Ð6à " kÒ 1Ð 1Ø#)¨TÔ-IÐ#IÐ#Iå *Ô 1× @Ò @ÅÈeÑATÔATÑ UÔ UÐ Uå %Ô AÀ<ÐQVÐBWÑ XÔ XÐ Xà=?¸.¸.¸. 
¨;Ñ 7Ý*4Ô*;×*FÒ*FØ)9Ø/9Ø04ð +Gñ +"ô +" ð
 Y` × >Ò >Ñ @Ô @Ô Uøå&Ô-×7Ò7Ñ9Ô9Ð9å!Ô=¸|ÈUÐ>SÑTÔTÐTå68´n˜J {Ñ3Ý&0Ô&7×&BÒ&BØ%5Ø+5Ø,0ð 'Cñ 'ô '˜Gð !(ð )×:Ò:Ñ<Ô<ÔQð $+Ð#;­k©m¬m˜˜ð '+˜ØÐ!6Ð6Ð6à " kÒ 1Ð 1Ø#)¨TÔ-IÐ#IÐ#Iå.<Ý$0°Ñ$7Ô$7Ø'2×'9Ò'9¸"Ñ'=Ô'=Ø)9Ø+=Ø+/Ô+;ð/"ñ /"ô /" øõ +6Ý#%¤>Ø%5Ø'9Ø'+Ô'7ð	+ñ +ô +˜Kð 'ð AØ'×/Ò/°¸RÑ@Ô@Ð@ð  +Ð6õ	 'Ô8Ø +Ø9EÀuÐ8Mðñ ô ð õ
 "-¡¤ð !ð "ð R* TÝ% d­LÑ9Ô9ð EÝ4KØ %Ø26Ô2Hð5ñ 5ô 5÷ $še™gœgðEð EÑ 0 	¨5ð !%× 2Ò 2°9¸eÑ DÔ DÐ DÐ DðJ*ð9Ø'7ð9à!&ð9ð 9ð 9ð 9ð 9ð 9ð 9ð0  ,¨qÒ0Ñ0Ø-<¨T¯XªX°e©_¬_Ø$+Ð-Añ."ô ."ð ("ð ("ð ("ð ("ð ("ð ("ð !"õ0  *¨$µÑ=Ô=ð *à$(°Ð$4ð 	%&Ø(,¬	Õ5NÒ(Nð	%&à(,×(;Ò(;Ñ(=Ô(=×(AÒ(AØ(Dñ)&ô )&õ ):Ô(CÔ(IÝ(9Ô(?Ô(EÝ(9Ô(@Ô(Fð(&ð)&ð !,õ &AÑ%BÔ%Bð 
!*ð 
!*Ø+6ð 	%*à,0×,MÒ,MØ04Ô0FÈñ-.ô -.ñ )5¨¨fð
 59¨¬	Ø(,×(:Ò(:Ø,HÈ&ñ)*ô )*ð )*ð
!*ð 
!*ð 
!*ñ 
!*ô 
!*ð 
!*ð 
!*ð 
!*ð 
!*ð 
!*ð 
!*øøøð 
!*ð 
!*ð 
!*ð 
!*ðQR*ð R*ð R*ð R*ñ R*ô R*ð R*ðW}*ð }*ð }*ð }*ñ }*ô }*ð }*ð~*ð ~*ð ~*ð ~*ñ ~*ô ~*ð ~*õ@ %×(Ò(¨Ñ/Ô/Ð/Ð/ð[ .2¯XªXØ$)¨7Ð4Hñ."ô ."ð ("ð ("ð ("ð ("ð ("ð ("ð !"õ(  *¨$µÑ=Ô=ð *à$(°Ð$4ð 	%&Ø(,¬	Õ5NÒ(Nð	%&à(,×(;Ò(;Ñ(=Ô(=×(AÒ(AØ(Dñ)&ô )&õ ):Ô(CÔ(IÝ(9Ô(?Ô(EÝ(9Ô(@Ô(Fð(&ð)&ð !,õ &AÑ%BÔ%Bð 
!*ð 
!*Ø+6ð 	%*à,0×,MÒ,MØ04Ô0FÈñ-.ô -.ñ )5¨¨fð
 59¨¬	Ø(,×(:Ò(:Ø,HÈ&ñ)*ô )*ð )*ð
!*ð 
!*ð 
!*ñ 
!*ô 
!*ð 
!*ð 
!*ð 
!*ð 
!*ð 
!*ð 
!*øøøð 
!*ð 
!*ð 
!*ð 
!*ðQR*ð R*ð R*ð R*ñ R*ô R*ð R*ðW}*ð }*ð }*ð }*ñ }*ô }*ð }*ð~*ð ~*ð ~*ð ~*ñ ~*ô ~*ð ~*õ@ %×(Ò(¨Ñ/Ô/Ð/Ð/øõS  )ð /ð /ð /å *Ô 5Ñ 7Ô 7Ü!(¯ª¨^¸RÑ)@Ô)@ß!$¢Ð%GÈÑ!NÔ!Nð 8ð
  ;ð 4Ø $× ?Ò ?ÀÑ DÔ DÐ DØ&)¨tÐ 3å'*¤|¡~¤~˜HÝ!<Ñ!>Ô!>ð Eð EØ $× ?Ò ?ÀÑ DÔ DÐ DðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eå# XÐ.Ð.Ð.Ð.Ð.Ð.Ð.øøøøð/øøøð /õ  *¨$µÑ=Ô=ð *à$(°Ð$4ð 	%&Ø(,¬	Õ5NÒ(Nð	%&à(,×(;Ò(;Ñ(=Ô(=×(AÒ(AØ(Dñ)&ô )&õ ):Ô(CÔ(IÝ(9Ô(?Ô(EÝ(9Ô(@Ô(Fð(&ð)&ð !,õ &AÑ%BÔ%Bð 
!*ð 
!*Ø+6ð 	%*à,0×,MÒ,MØ04Ô0FÈñ-.ô -.ñ )5¨¨fð
 59¨¬	Ø(,×(:Ò(:Ø,HÈ&ñ)*ô )*ð )*ð
!*ð 
!*ð 
!*ñ 
!*ô 
!*ð 
!*ð 
!*ð 
!*ð 
!*ð 
!*ð 
!*øøøð 
!*ð 
!*ð 
!*ð 
!*øøõ  *¨$µÑ=Ô=ð *à$(°Ð$4ð 	%&Ø(,¬	Õ5NÒ(Nð	%&à(,×(;Ò(;Ñ(=Ô(=×(AÒ(AØ(Dñ)&ô )&õ ):Ô(CÔ(IÝ(9Ô(?Ô(EÝ(9Ô(@Ô(Fð(&ð)&ð !,õ &AÑ%BÔ%Bð 
!*ð 
!*Ø+6ð 	%*à,0×,MÒ,MØ04Ô0FÈñ-.ô -.ñ )5¨¨fð
 59¨¬	Ø(,×(:Ò(:Ø,HÈ&ñ)*ô )*ð )*ð
!*ð 
!*ð 
!*ñ 
!*ô 
!*ð 
!*ð 
!*ð 
!*ð 
!*ð 
!*ð 
!*øøøð 
!*ð 
!*ð 
!*ð 
!*ð 
!*ð*øøøðwR*ð R*ð R*ñ R*ô R*ð R*ð R*ð R*ð R*ð R*ð R*øøøð R*ð R*ð R*ð R*ðW}*ð }*ð }*ñ }*ô }*ð }*ð }*ð }*ð }*ð }*ð }*øøøð }*ð }*ð }*ð }*ð~*ð ~*ð ~*ñ ~*ô ~*ð ~*ð ~*ð ~*ð ~*ð ~*ð ~*øøøð ~*ð ~*ð ~*ð ~*õ@ %×(Ò(¨Ñ/Ô/Ð/Ð/Ð/øÕ$×(Ò(¨Ñ/Ô/Ð/Ð/øøøsá  ±*A9 ÁA9 Á9
D>ÂA;D9Ã>D ÄD9Ä D$	Ä$D9Ä'D$	Ä(D9Ä9D>Æk Æj5Æ(MjÓ*AjÕ6_!Õ<BjØ>YÙ
jÙYÙjÙYÙjÙ!jÙ-j5Ù9k Ú _!Ú=BjÝ>^ÞjÞ^ÞjÞ^ÞjÞ"jÞ.j5Þ:k ß!
b&	ß+A;b!	á&bá<b!	âbâb!	âbâb!	âfâ!b&	â&fâ*Bjä:>f	å8jæfæjæfæjæBi8	è!>i+éi8	é+i/é/i8	é2i/é3i8	é8jé;jêjêjêjêjêj5êj"	ê"j5ê%j"	ê&j5ê)k ê5j9ê9k ê<j9ê=k ëk8rD   r-   r?   r.   r‚   úOptional[Event]c                 óæ  — |                      di ¦  «        }|                     t          || j        ¬¦  «        ¦  «         t	          |¦  «        |d<   |                      d¦  «        }|                      d¦  «        pi                       d¦  «        }|d uo/|t
          k    o$|t          j        t          j        t          j	        fv }|s*|  
                    | j        |¦  «        \  }}	||d<   d|	i|d<   |S )Nr€   r“   rÉ   Útransaction_infor�   )r™   Úupdater   rX   r   r¸   r   rº   r»   r¼   rª   rU   )
rf   rD   r?   r‚   Úrequest_datarÉ   rÆ   rË   rŒ   r�   s
             rE   r¨   z$SentryAsgiMiddleware.event_processor¦  s  € ð —y’y ¨BÑ/Ô/ˆØ×ÒÝ˜j¸DÔ<RÐSÑSÔSñ	
ô 	
ð 	
õ $ LÑ1Ô1ˆˆiÑð —i’i Ñ.Ô.ˆØ#ŸišiÐ(:Ñ;Ô;ÐA¸r×FÒFÀxÑPÔPÐà˜tÐ#ð ØÕ8Ò8ðà"å!Ô+Ý!Ô'Ý!Ô(ððð 	ð ð 	;Ø×@Ò@ØÔ&¨
ñô ‰LˆD�&ð $(ˆE�-Ñ Ø)1°6Ð(:ˆEÐ$Ñ%àˆrG   rf   zTuple[str, str]c           	      ó6  — d }t           |         }|                     d¦  «        }|dk    re|                     d¦  «        }|rt          |¦  «        pd}nªt          ||dk    rdndd t	          || j        ¬¦  «        ¬¦  «        }t          j        }nn|dk    rh|                     d	¦  «        }|rt          |d
d ¦  «        }|�|}n;t          ||dk    rdndd t	          || j        ¬¦  «        ¬¦  «        }t          j        }|€t          }t          j
        }||fS ||fS ©Nr;   r1   r„   rŠ   Úws)r‚   rX   )ÚhostÚpathr2   ÚrouterÕ   )r   r™   r%   r   r   rX   r   ÚURLrP   r¸   r»   )	rf   rU   r‚   rŒ   r�   rÄ   r1   rÖ   rÕ   s	            rE   rª   z5SentryAsgiMiddleware._get_transaction_name_and_sourceË  sd  € ð ˆÝ!Ð"3Ô4ˆØ�^Š^˜FÑ#Ô#ˆà 
Ò*Ð*Ø!—~’~ jÑ1Ô1ˆHð ð /Ý0°Ñ:Ô:Ð@¸b��åØØ  Fšl˜l�F�F°ØÝ"Ø#-ÀÔAWðñ ô ð	ñ ô �õ +Ô.��à %Ò'Ð'ð —N’N 7Ñ+Ô+ˆEØð /Ý˜u f¨dÑ3Ô3�ØÐ#Ø�DøåØØ  Fšl˜l�F�F°ØÝ"Ø#-ÀÔAWðñ ô ð	ñ ô �õ +Ô.�àˆ<Ý,ˆDÝ&Ô,ˆFØ˜�<Ðà�Vˆ|ÐrG   Úsegment_stylec           	      ó^  — d }t           |         j        }|                     d¦  «        }|dk    rj|                     d¦  «        }|rt          |¦  «        pd}n´t	          ||dk    rdndd t          || j        ¬¦  «        ¬¦  «        }t          j        j        }ns|dk    rm|                     d	¦  «        }|rt          |d
d ¦  «        }|�|}n@t	          ||dk    rdndd t          || j        ¬¦  «        ¬¦  «        }t          j        j        }|€t          }t          j        j        }||fS ||fS rÒ   )ÚSEGMENT_SOURCE_FOR_STYLEr…   r™   r#   r   r   rX   r   r×   rP   r¸   r»   )	rf   rØ   r‚   rŒ   r�   rÄ   r1   rÖ   rÕ   s	            rE   r½   z1SentryAsgiMiddleware._get_segment_name_and_sourceþ  so  € ð ˆÝ)¨-Ô8Ô>ˆØ�^Š^˜FÑ#Ô#ˆà˜JÒ&Ð&Ø!—~’~ jÑ1Ô1ˆHð ð 5Ý-¨hÑ7Ô7Ð=¸2��åØØ  Fšl˜l�F�F°ØÝ"Ø#-ÀÔAWðñ ô ð	ñ ô �õ +Ô.Ô4��à˜eÒ#Ð#ð —N’N 7Ñ+Ô+ˆEØð 5Ý˜u f¨dÑ3Ô3�ØÐ#Ø�DøåØØ  Fšl˜l�F�F°ØÝ"Ø#-ÀÔAWðñ ô ð	ñ ô �õ +Ô.Ô4�àˆ<Ý,ˆDÝ&Ô,Ô2ˆFØ˜�<Ðà�Vˆ|ÐrG   )rq   r&   r9   r&   )rq   r&   rs   r&   rt   r&   r9   r&   )rD   r-   r?   r.   r‚   r&   r9   rÌ   )Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r   r   ÚEXCLUDEDÚboolÚstrrh   r¡   rm   rp   re   rd   Úintrx   r¨   rª   r½   rz   rG   rE   rT   rT   g   s  € € € € € ð€Ið %*Ø!+Ø$Ø#Ø5TØ(,Ø/>Ô/Gð9,ð 9,àð9,ð "ð9,ð ð	9,ð
 ð9,ð ð9,ð "3ð9,ð &ð9,ð -ð9,ð 
ð9,ð 9,ð 9,ð 9,ðvO¨yð O¸Tð Oð Oð Oð OðO¨ið O¸Dð Oð Oð Oð Oðð ð ð ðIð Ið Ið Ið`0Øð`0Ø%*ð`0Ø27ð`0ØGJð`0à	ð`0ð `0ð `0ð `0ðDØðØ$*ðØ8=ðà	ðð ð ð ðJ1Ø$ð1Ø9<ð1ØJOð1à	ð1ð 1ð 1ð 1ðf1Ø$ð1Ø58ð1ØFKð1à	ð1ð 1ð 1ð 1ð 1ð 1rG   rT   )r6   )KÚ__doc__rL   r¢   Úcopyr   Ú	functoolsr   Útypingr   r@   Úsentry_sdk.apir   Úsentry_sdk.constsr   r   Ú$sentry_sdk.integrations._asgi_commonr	   r
   r   r   r   r   r   Ú$sentry_sdk.integrations._wsgi_commonr   Úsentry_sdk.scoper   r   Úsentry_sdk.sessionsr   Úsentry_sdk.tracesr   rÚ   r   r   Úsentry_sdk.tracingr   r   Úsentry_sdk.tracing_utilsr   Úsentry_sdk.utilsr   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   Úsentry_sdk._typesr,   r-   r.   r/   r    r¸   ra   Úversion_infor5   Úasynciorá   rF   rà   rR   rT   rz   rG   rE   ú<module>rô      s˜  ððð ð €€€Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð <Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø -Ð -Ð -Ð -Ð -Ð -ðð ð ð ð ð ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
 @Ð ?Ð ?Ð ?Ð ?Ð ?ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð (ØHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHÐHà9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ð9Ø'Ð'Ð'Ð'Ð'Ð'ð &˜:Ð&FÑGÔGÐ à2Ð à.Ð ð Ô�wÒÐØ+Ð+Ð+Ð+Ð+Ð+Ð+à+Ð+Ð+Ð+Ð+Ð+ð/ð /˜Eð /°3ð /ÀDð /ð /ð /ð /ð)˜5ð ) Tð )ð )ð )ð )ðHð Hð Hð Hð Hñ Hô Hð Hð Hð HrG   