§ <ˆjŠHãóÖ—ddlmZddlZddlZddlZddlZddlZddlmZmZddl m Z ddl m Z m Z mZmZddlmZddlmZmZmZddlmZerRdd lmZdd lmZdd lmZdd lmZdd lmZddlmZddlmZddlm Z ddlm!Z!ddl"m#Z#ddl"m$Z$ddlm%Z%m&Z&ee'Z( ddl)m*Z*n#e+$r ddl,m*Z*YnwxYwGd„de-¦«Z.dd„Z/Gd„de.¦«Z0Gd„de.¦«Z1d„Z2dS)é)Úprint_functionN)ÚdatetimeÚ timedelta)Ú defaultdict)ÚDsnÚloggerÚcapture_internal_exceptionsÚ json_dumps)ÚBackgroundWorker)ÚEnvelopeÚItemÚ PayloadRef)Ú TYPE_CHECKING)ÚAny)ÚCallable)ÚDict)ÚIterable)ÚOptional)ÚTuple)ÚType)ÚUnion)Ú DefaultDict)Ú PoolManager)Ú ProxyManager)ÚEventÚ EndpointType)Ú getproxiescóT—eZdZdZdZ d d„Zd„Zd„Z d d„Zd„Z d d„Z d „Z d „Z dS) Ú TransportzWBaseclass for all transports. A transport is used to send an event to sentry. Ncó~—||_|r,|d�$|drt|d¦«|_dSd|_dS)NÚdsn)ÚoptionsrÚ parsed_dsn)Úselfr"s úK/opt/cloudlinux/venv/lib64/python3.11/site-packages/sentry_sdk/transport.pyÚ__init__zTransport.__init__2sG€ðˆŒ Ø ð #�w˜u”~Ð1°g¸e´nÐ1Ý! '¨%¤.Ñ1Ô1ˆDŒOˆOˆOà"ˆDŒOˆOˆOócó—t¦«‚)zm This gets invoked with the event dictionary when an event should be sent to sentry. ©ÚNotImplementedError©r$Úevents r%Ú capture_eventzTransport.capture_event<s€õ"Ñ#Ô#Ð#r'có—t¦«‚)a$ Send an envelope to Sentry. Envelopes are a data container format that can hold any type of data submitted to Sentry. We use it for transactions and sessions, but regular "error" events should go through `capture_event` for backwards compat. r))r$Úenvelopes r%Úcapture_envelopezTransport.capture_envelopeFs€õ"Ñ#Ô#Ð#r'có—dS)z=Wait `timeout` seconds for the current events to be sent out.N©©r$ÚtimeoutÚcallbacks r%ÚflushzTransport.flushTs €ð ˆr'có—dS)zForcefully kills the transport.Nr2©r$s r%ÚkillzTransport.kill]s €ð ˆr'có—dS)zVThis increments a counter for event loss by reason and data category. Nr2)r$ÚreasonÚ data_categoryÚitems r%Úrecord_lost_eventzTransport.record_lost_eventbs €ðˆtr'có—dS)NTr2r8s r%Ú is_healthyzTransport.is_healthynó€àˆtr'cóR— | ¦«dS#t$rYdSwxYw©N)r9Ú Exceptionr8s r%Ú__del__zTransport.__del__rs:€ð Ø �IŠI‰KŒKˆKˆKˆKøÝð ð ð Ø ˆDˆDð øøøs ‚˜ &¥&rC©NN) Ú__name__Ú __module__Ú __qualname__Ú__doc__r#r&r-r0r6r9r>r@rEr2r'r%rr*s¾€€€€€ððð €Jðð#ð#ð#ð#ð$ð$ð$ð $ð $ð $ð"ð ð ð ð ð ð ð ðØ ð ð ð ð ððððððððr'rc#ópK—|€tj¦«}| d¦«D]ˆ} | ¦« dd¦«\}}}|t t |¦«¬¦«z}|r| d¦«pdD]}||fV—Œ Œr#t tf$rYŒ…wxYwdS)Nú,ú:é©Úsecondsú;rC)rÚutcnowÚsplitÚstriprÚintÚ LookupErrorÚ ValueError)ÚheaderÚnowÚlimitÚ retry_afterÚ categoriesÚ_Úcategorys r%Ú_parse_rate_limitsr_zsèèè€à €{ÝŒoÑÔˆà—’˜cÑ"Ô"ððˆð Ø).¯ª©¬×)<Ò)<¸SÀ!Ñ)DÔ)DÑ &ˆK˜ QØ¥ µ#°kÑ2BÔ2BÐ CÑ CÔ CÑCˆKØ&Ð@¨:×+;Ò+;¸CÑ+@Ô+@ÐKÀGð ,ð ,�Ø  Ð+Ð+Ð+Ð+Ð+ð ,øå�ZÐ(ð ð ð Ø ˆHð øøøð ðs°A.BÂB3Â2B3cóž—eZdZdZd„Z dd„Zd„Z dd„Zd„Zdd „Z dd „Z d „Z d„Z d„Z d„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z dd„Zd„ZdS)Ú HttpTransportzThe default HTTP transport.có*—ddlm}t ||¦«|j€J‚||_t |d¬¦«|_|j d|z¦«|_ i|_ tj   ¦«|_tt ¦«|_t%j¦«|_| |j|d|d|d|d ¬ ¦«|_dd lm}||_dS) Nr)ÚVERSIONÚtransport_queue_size)Ú queue_sizezsentry.python/%sÚ http_proxyÚ https_proxyÚca_certsÚ proxy_headers)rfrgrhri)ÚHub)Úsentry_sdk.constsrcrr&r#r"r Ú_workerÚto_authÚ_authÚ_disabled_untilÚurllib3ÚutilÚRetryÚ_retryrrUÚ_discarded_eventsÚtimeÚ_last_client_report_sentÚ _make_poolÚ_poolÚ sentry_sdkrjÚhub_cls)r$r"rcrjs r%r&zHttpTransport.__init__Œs€ð .Ð-Ð-Ð-Ð-Ð-å×Ò˜4 Ñ)Ô)Ð)ØŒÐ*Ð*Ð*؈Œ Ý'°7Ð;QÔ3RÐSÑSÔSˆŒ Ø”_×,Ò,Ð-?À'Ñ-IÑJÔJˆŒ Ø!ˆÔÝ”l×(Ò(Ñ*Ô*ˆŒ Ý!,Ý ñ" ô" ˆÔõ)-¬ © ¬ ˆÔ%à—_’_Ø ŒOؘ|Ô,Ø  Ô.ؘZÔ(Ø! /Ô2ð %ñ ô ˆŒ ð #Ð"Ð"Ð"Ð"Ð"àˆŒ ˆ ˆ r'NcóÞ—|jdsdSd}|�1|j}|dkr#t| ¦«¦«pd}n|€t d¦«‚|j||fxx|z cc<dS)NÚsend_client_reportséÚ attachmentzdata category not provided)r"r<ÚlenÚ get_bytesÚ TypeErrorrt)r$r;r<r=Úquantitys r%r>zHttpTransport.record_lost_eventªs•€ðŒ|Ð1Ô2ð Ø ˆFàˆØ Ð Ø Ô.ˆMØ  Ò,Ð,õ˜tŸ~š~Ñ/Ô/Ñ0Ô0Ð5°A�øØ Ð "ÝÐ8Ñ9Ô9Ð 9à Ô˜}¨fÐ4Ð5Ð5Ô5¸ÑAÐ5Ð5Ñ5Ð5Ð5r'có†—|j d¦«}|r=tjd¦«|j t |¦«¦«dS|jdkr\tjd¦«tj ¦«t|j   |¦«pd¬¦«z|jd<dSdS)Nzx-sentry-rate-limitsz%Rate-limited via x-sentry-rate-limitsé­zRate-limited via 429é<rO) ÚheadersÚgetrÚwarningroÚupdater_ÚstatusrrRrrsÚget_retry_after)r$ÚresponserXs r%Ú_update_rate_limitsz!HttpTransport._update_rate_limitsÀsË€ð Ô!×%Ò%Ð&<Ñ=Ô=ˆØ ð Ý ŒNÐBÑ CÔ CÐ CØ Ô × 'Ò 'Õ(:¸6Ñ(BÔ(BÑ CÔ CÐ CÐ CÐ Cð Œ_ Ò #Ð #Ý ŒNÐ1Ñ 2Ô 2Ð 2Ý)1¬Ñ):Ô):½YØœ ×3Ò3°HÑ=Ô=ÐCÀð>ñ>ô>ñ*ˆDÔ  Ñ &Ð &Ð &ð$Ð #r'ÚstorecóH‡‡—ˆˆfd„}| t‰jj¦«t‰j ¦«¦«dœ¦« ‰j dt‰j |¦«¦«||¬¦«}n/#t$r"‰  d¦«|d¦«‚wxYw ‰  |¦«|j dkr‰  d¦«nn|j d ks |j d krXtj d |j |j¦«‰  d  |j ¦«¦«|d¦«| ¦«dS#| ¦«wxYw) Nc󀕗‰€‰ |d¬¦«dS‰jD]}‰ ||¬¦«ŒdS)NÚerror©r<©r=)r>Úitems)r;r=r/r$s €€r%Ú record_lossz0HttpTransport._send_request..record_lossÜs_ø€àÐØ×&Ò& v¸WÐ&ÑEÔEÐEÐEÐEà$œNð>ð>�DØ×*Ò*¨6¸Ð*Ñ=Ô=Ð=Ð=ð>ð>r')z User-Agentz X-Sentry-AuthÚPOST)Úbodyr†ÚnetworkÚ network_errorr„Ú status_429i,éÈz%Unexpected status code: %s (body: %s)z status_{})r‰ÚstrrnÚclientÚ to_headerrxÚrequestÚ get_api_urlrDÚon_dropped_eventr�rŠrr‘ÚdataÚformatÚclose)r$r—r†Ú endpoint_typer/r•rŒs` ` r%Ú _send_requestzHttpTransport._send_requestÓsÓøø€ð >ð >ð >ð >ð >ð >ð �Šå! $¤*Ô"3Ñ4Ô4Ý!$ T¤Z×%9Ò%9Ñ%;Ô%;Ñ!<Ô!<ð ð ñ ô ð ð Ø”z×)Ò)ØÝ�D”J×*Ò*¨=Ñ9Ô9Ñ:Ô:ØØð *ñôˆHˆHøõ ð ð ð Ø × !Ò ! )Ñ ,Ô ,Ð ,Ø ˆK˜Ñ (Ô (Ð (Ø ð øøøð  Ø × $Ò $ XÑ .Ô .Ð .àŒ #Ò%Ð%ð ×%Ò% lÑ3Ô3Ð3Øà” CÒ'Ð'¨8¬?¸SÒ+@Ð+@Ý” Ø;Ø”OØ”Mñôðð ×%Ò% k×&8Ò&8¸¼Ñ&IÔ&IÑJÔJÐJØ� ˜OÑ,Ô,Ð,à �NŠNÑ Ô Ð Ð Ð øˆH�NŠNÑ Ô Ð Ð øøøsÁAB!Â!,C ÃB$F Æ F!có—dSrCr2)r$r;s r%r¡zHttpTransport.on_dropped_event rAr'Fr…có|—|jdsdS|s!|jtj¦«|z ksdS|j}t t ¦«|_tj¦«|_|sdSt ttj¦«d„| ¦«D¦«dœ¬¦«d¬¦«S)Nr|có&—g|]\\}}}|||dœ‘ŒS))r;r^r‚r2)Ú.0r^r;r‚s r%ú z>HttpTransport._fetch_pending_client_report..#s>€ð)ð)ð)ñÙ.˜X vØ$ð$*°xÈXÐVÐVð)ð)ð)r')Ú timestampÚdiscarded_events)ÚjsonÚ client_report)Útype) r"rvrurtrrUr rr”)r$ÚforceÚintervalr­s r%Ú_fetch_pending_client_reportz*HttpTransport._fetch_pending_client_reportsÛ€àŒ|Ð1Ô2ð Ø�4àð ˜Ô6½¼¹¼ÀxÑ9OÒOÐOØ�4àÔ1ÐÝ!,­SÑ!1Ô!1ˆÔÝ(,¬ © ¬ ˆÔ%àð Ø�4åÝ å!%¤¡¤ð)ð)ð .×3Ò3Ñ5Ô5ð )ñ)ô)ð ð ð ñ ô ð!ð ñ ô ð r'có„—| |d¬¦«}|�&| t|g¬¦«¦«dSdS)Nr…)r±r²)r”)r³r0r )r$r±r¯s r%Ú_flush_client_reportsz#HttpTransport._flush_client_reports/sP€à×9Ò9ÀÐPRÐ9ÑSÔSˆ Ø Ð $Ø × !Ò !¥(°-°Ð"AÑ"AÔ"AÑ BÔ BÐ BÐ BÐ Bð %Ð $r'có:‡—ˆfd„}||¦«p |d¦«S)Ncón•—‰j |¦«}|duo|tj¦«kSrC)ror‡rrR)ÚbucketÚtsr$s €r%Ú _disabledz0HttpTransport._check_disabled.._disabled7s5ø€àÔ%×)Ò)¨&Ñ1Ô1ˆBؘT�>Ð< b­8¬?Ñ+<Ô+<Ò&<Ð z1HttpTransport._is_rate_limited..@s/èè€ÐRÐR¨b�2�œÑ)Ô)Ò)ÐRÐRÐRÐRÐRÐRr')ÚanyroÚvaluesr8s r%Ú_is_rate_limitedzHttpTransport._is_rate_limited>s.€åÐRÐR°DÔ4H×4OÒ4OÑ4QÔ4QÐRÑRÔRÑRÔRÐRr'có4—|j ¦«SrC)rlÚfullr8s r%Ú_is_worker_fullzHttpTransport._is_worker_fullBs€àŒ|× Ò Ñ"Ô"Ð"r'cóT—| ¦«p| ¦« SrC)rÄrÁr8s r%r@zHttpTransport.is_healthyFs(€à×(Ò(Ñ*Ô*ÐE¨d×.CÒ.CÑ.EÔ.EÐFÐFr'c ó¨—| d¦«r.| d¦«| dd¬¦«dStj¦«}t j|d¬¦«5}| t|¦«¦«ddd¦«n #1swxYwY|j €J‚tj d|  d¦«pd ›d |  d ¦«pd ›d |  d ¦«pd ›d|j j ›d|j j›� ¦«| | ¦«dddœ¬¦«dS)Nr‘Úself_rate_limitsÚratelimit_backoffr’Úw©ÚfileobjÚmodezSending event, type:r°Únullz level:Úlevelz event_id:Úevent_idz project:z host:zapplication/jsonÚgzip©z Content-TypezContent-Encoding)r†)r»r¡r>ÚioÚBytesIOrÐÚGzipFileÚwriter r#rÚdebugr‡Ú project_idÚhostr¦Úgetvalue)r$r,r—Úfs r%Ú _send_eventzHttpTransport._send_eventJsª€ð × Ò  Ñ (Ô (ð Ø × !Ò !Ð"4Ñ 5Ô 5Ð 5Ø × "Ò "Ð#6ÀgÐ "Ñ NÔ NÐ NØ�4åŒz‰|Œ|ˆÝ Œ] 4¨cÐ 2Ñ 2Ô 2ð '°aØ �GŠG•J˜uÑ%Ô%Ñ &Ô &Ð &ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ðŒÐ*Ð*Ð*ÝŒ ˆ ð— ’ ˜&Ñ!Ô!Ð+ VÐ+Ð+Ø— ’ ˜'Ñ"Ô"Ð, fÐ,Ð,Ø— ’ ˜*Ñ%Ô%Ð/¨Ð/Ð/Ø”Ô*Ð*Ð*Ø”Ô$Ð$ð  ñ ô ð ð ×ÒØ �MŠM‰OŒOØ%7ÈVÐTÐTð ñ ô ð ðˆtsÁ-#BÂB Â#B có—g}|jD]g}| |j¦«r6|jdvr| d¦«| d|¬¦«ŒR| |¦«Œht |j|¬¦«}|jsdS| d¬¦«}|�|j |¦«tj ¦«}tj |d¬ ¦«5}|  |¦«ddd¦«n #1swxYwY|j€J‚tjd |j|jj|jj¦«| | ¦«d d d œd|¬¦«dS)N)Ú transactionr‘ÚdefaultrÇrÈr“)r†r”é)r²rÉrÊz(Sending envelope [%s] project:%s host:%szapplication/x-sentry-enveloperÐrÑr/)r†r¥r/)r”r»r<r¡r>Úappendr r†r³rÒrÓrÐrÔÚserialize_intor#rrÖÚ descriptionr×rØr¦rÙ)r$r/Ú new_itemsr=Úclient_report_itemr—rÚs r%Ú_send_envelopezHttpTransport._send_envelopeisó€ð ˆ Ø”Nð 'ð 'ˆDØ×#Ò# DÔ$6Ñ7Ô7ð 'ØÔ%Ð)LÐLÐLØ×)Ò)Ð*<Ñ=Ô=Ð=Ø×&Ò&Ð':ÀÐ&ÑFÔFÐFÐFà× Ò  Ñ&Ô&Ð&Ð&õ HÔ$4¸IÐFÑFÔFˆàŒ~ð Ø�4ð"×>Ò>ÈÐ>ÑKÔKÐØ Ð )Ø ŒN× !Ò !Ð"4Ñ 5Ô 5Ð 5åŒz‰|Œ|ˆÝ Œ] 4¨cÐ 2Ñ 2Ô 2ð '°aØ × #Ò # AÑ &Ô &Ð &ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ðŒÐ*Ð*Ð*ÝŒ Ø 6Ø Ô Ø ŒOÔ &Ø ŒOÔ ñ  ô ð ð ×ÒØ �MŠM‰OŒOà ?Ø$*ððð%Øð ñ ô ð ðˆtsÃ,DÄDÄDcó4—dd|ptj¦«dœS)NrNÚ CERT_REQUIRED)Ú num_poolsÚ cert_reqsrh)ÚcertifiÚwhere)r$rhs r%Ú_get_pool_optionszHttpTransport._get_pool_optionsŸs'€ðØ(Ø Ð3¥G¤M¡O¤Oð ð ð r'có—t¦« d¦«}|sdS| d¦«D]M}| ¦«}|j |¦«s|j |¦«rdSŒNdS)NÚnoFrLT)rr‡rSrTrØÚendswithÚnetloc)r$r#Úno_proxyrØs r%Ú _in_no_proxyzHttpTransport._in_no_proxy§s�€å‘<”<×#Ò# DÑ)Ô)ˆØð Ø�5Ø—N’N 3Ñ'Ô'ð ð ˆDØ—:’:‘<”<ˆDØŒ×'Ò'¨Ñ-Ô-ð °Ô1B×1KÒ1KÈDÑ1QÔ1Qð Ø�t�tð àˆur'có@—d}| |¦«}|jdkr,|dkr&|p#| o t¦« d¦«}|s,|dkr&|p#| o t¦« d¦«}| |¦«}|r{|r||d<| d¦«rMd} ddlm} n'#t$rd } tj d |¦«YnwxYw| r | |fi|¤ŽStj d i|¤ŽStj |fi|¤ŽStj d i|¤ŽS) NÚhttpsÚÚhttpriÚsocksTr)ÚSOCKSProxyManagerFzÂYou have configured a SOCKS proxy (%s) but support for SOCKS proxies is not installed. Disabling proxy support. Please add `PySocks` (or `urllib3` with the `[socks]` extra) to your dependencies.r2)ròÚschemerr‡rìÚ startswithÚurllib3.contrib.socksrøÚ ImportErrorrrˆrprr) r$r#rfrgrhriÚproxyrñÚoptsÚuse_socks_proxyrøs r%rwzHttpTransport._make_pool²s¤€ðˆØ×$Ò$ ZÑ0Ô0ˆð Ô  Ò 'Ð '¨[¸BÒ->Ð->ØÐO¨ LÐ$NµZ±\´\×5EÒ5EÀgÑ5NÔ5NˆEðð N˜*¨Ò*Ð*ØÐM x <Ð#LµJ±L´L×4DÒ4DÀVÑ4LÔ4LˆEà×%Ò% hÑ/Ô/ˆà ð /Øð 6Ø(5��_Ñ%à×Ò Ñ(Ô(ð ;Ø"&�ðàGÐGÐGÐGÐGÐGÐGøÝ"ðððØ&+�OÝ”Nð]Øñôððððøøøð#ð7Ø,Ð,¨UÐ;Ð;°dÐ;Ð;Ð;å"Ô.Ð6Ð6°Ð6Ð6Ð6åÔ+¨EÐ:Ð:°TÐ:Ð:Ð:åÔ&Ð.Ð.¨Ð.Ð.Ð .sÂ3B:Â:!CÃCc󇇇—‰jjŠˆˆˆfd„}‰j |¦«s.‰ d¦«‰ dd¬¦«dSdS)NcóÜ•—‰5t¦«5‰ ‰¦«‰ ¦«ddd¦«n #1swxYwYddd¦«dS#1swxYwYdSrC)r rÛrµ)r,Úhubr$s€€€r%Úsend_event_wrapperz7HttpTransport.capture_event..send_event_wrapperçsôø€àð 1ð 1Ý0Ñ2Ô2ð1ð1Ø×$Ò$ UÑ+Ô+Ð+Ø×.Ò.Ñ0Ô0Ð0ð1ð1ð1ñ1ô1ð1ð1ð1ð1ð1ð1øøøð1ð1ð1ð1ð 1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1ó3„A!“*A ½ A!Á A Á A!ÁA ÁA!Á!A%Á(A%Ú full_queueÚqueue_overflowr‘r’)rzÚcurrentrlÚsubmitr¡r>)r$r,rrs`` @r%r-zHttpTransport.capture_eventás�øøø€ðŒlÔ"ˆð 1ð 1ð 1ð 1ð 1ð 1ð 1ðŒ|×"Ò"Ð#5Ñ6Ô6ð LØ × !Ò ! ,Ñ /Ô /Ð /Ø × "Ò "Ð#3À7Ð "Ñ KÔ KÐ KÐ KÐ Kð Lð Lr'cóÖ‡‡‡—‰jjŠˆˆˆfd„}‰j |¦«s6‰ d¦«‰jD]}‰ d|¬¦«ŒdSdS)NcóÜ•—‰5t¦«5‰ ‰¦«‰ ¦«ddd¦«n #1swxYwYddd¦«dS#1swxYwYdSrC)r rårµ)r/rr$s€€€r%Úsend_envelope_wrapperz=HttpTransport.capture_envelope..send_envelope_wrapperøsôø€àð 1ð 1Ý0Ñ2Ô2ð1ð1Ø×'Ò'¨Ñ1Ô1Ð1Ø×.Ò.Ñ0Ô0Ð0ð1ð1ð1ñ1ô1ð1ð1ð1ð1ð1ð1øøøð1ð1ð1ð1ð 1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1rrrr“)rzrrlrr¡r”r>)r$r/r r=rs`` @r%r0zHttpTransport.capture_envelopeòs¬øøø€ðŒlÔ"ˆð 1ð 1ð 1ð 1ð 1ð 1ð 1ðŒ|×"Ò"Ð#8Ñ9Ô9ð DØ × !Ò ! ,Ñ /Ô /Ð /Ø œð Dð D�Ø×&Ò&Ð'7¸dÐ&ÑCÔCÐCÐCð Dð Dð Dð Dr'có°‡—tjd¦«|dkr:‰j ˆfd„¦«‰j ||¦«dSdS)NzFlushing HTTP transportrcó0•—‰ d¬¦«S)NT)r±)rµr8s€r%úz%HttpTransport.flush.. sø€¨×(BÒ(BÈÐ(BÑ(NÔ(N€r')rrÖrlrr6r3s` r%r6zHttpTransport.flushsdø€õ Œ Ð.Ñ/Ô/Ð/à �QŠ;ˆ;Ø ŒL× Ò Ð NÐ NÐ NÐ NÑ OÔ OÐ OØ ŒL× Ò ˜w¨Ñ 1Ô 1Ð 1Ð 1Ð 1ð ˆ;r'có`—tjd¦«|j ¦«dS)NzKilling HTTP transport)rrÖrlr9r8s r%r9zHttpTransport.kills-€åŒ Ð-Ñ.Ô.Ð.Ø Œ ×ÒÑÔÐÐÐr'rF)rŽN)Fr…)FrC)rGrHrIrJr&r>r�r¦r¡r³rµr»rÁrÄr@rÛrårìròrwr-r0r6r9r2r'r%rara‰sŒ€€€€€Ø%Ð%ððððBØ ð BðBðBðBð,ððð.Øð 7ð7ð7ð7ðrððð ð ð ð ð>CðCðCðCð 6ð6ð6ðSðSðSð#ð#ð#ðGðGðGðððð>4ð4ð4ðl ð ð ð ð ð ð-/ð-/ð-/ð^LðLðLð"DðDðDð*ð 2ð 2ð 2ð 2ðððððr'racó—eZdZd„Zd„ZdS)Ú_FunctionTransportcóH—t |¦«||_dSrC)rr&Ú_func)r$Úfuncs r%r&z_FunctionTransport.__init__s#€õ ×Ò˜4Ñ Ô Ð ØˆŒ ˆ ˆ r'có0—| |¦«dSrC)rr+s r%r-z _FunctionTransport.capture_events€ð � Š �5ÑÔÐØˆtr'N)rGrHrIr&r-r2r'r%rrs2€€€€€ððððððððr'rcó—|d}|€t}nbt|t¦«r|St|t¦«rt |t¦«r|}nt |¦«rt |¦«S|dr ||¦«SdS)NÚ transportr!)raÚ isinstancerr°Ú issubclassÚcallabler)r"Ú ref_transportÚ transport_clss r%Úmake_transportr&sž€à˜KÔ(€MðÐÝ%ˆ ˆ Ý �M¥9Ñ -Ô -ð1ØÐÝ �M¥4Ñ (Ô (ð1­Z¸ ÅyÑ-QÔ-Qð1Ø%ˆ ˆ Ý �-Ñ Ô ð1Ý! -Ñ0Ô0Ð0ðˆu„~ð&؈}˜WÑ%Ô%Ð%à ˆ4r'rC)3Ú __future__rrÒrprêrÐrurrÚ collectionsrÚsentry_sdk.utilsrrr r Úsentry_sdk.workerr Úsentry_sdk.enveloper r rÚsentry_sdk._typesrÚtypingrrrrrrrrrÚurllib3.poolmanagerrrrrrœÚ DataCategoryÚurllib.requestrrüÚurllibÚobjectrr_rarrr2r'r%úr*sÍðØ%Ð%Ð%Ð%Ð%Ð%à € € € Ø€€€Ø€€€Ø € € € Ø € € € à(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ø#Ð#Ð#Ð#Ð#Ð#àQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQØ.Ð.Ð.Ð.Ð.Ð.Ø:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ð:à+Ð+Ð+Ð+Ð+Ð+àð!ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ"Ð"Ð"Ð"Ð"Ð"à/Ð/Ð/Ð/Ð/Ð/Ø0Ð0Ð0Ð0Ð0Ð0à5Ð5Ð5Ð5Ð5Ð5Ð5Ð5à˜C”=€Lð"Ø)Ð)Ð)Ð)Ð)Ð)Ð)øØð"ð"ð"Ø!Ð!Ð!Ð!Ð!Ð!Ð!Ð!ð"øøøðMðMðMðMðM�ñMôMðMð` ð ð ð ðJðJðJðJðJ�IñJôJðJðZ ð ð ð ð ˜ñ ô ð ð ððððs B'Â' B5Â4B5