+
    P(iR                         ^ RI t ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIH	t	H
t
 ^ RIHt  ! R R]P                  4      tR# )	    N)trace)Context)textmap)format_span_idformat_trace_id)
TraceStatec                      a  ] tR t^t o RtRtRtRt]P                  ! ]4      t
R]P                  3V 3R lR lltR]P                  3V 3R lR llt]V 3R	 lR
 l4       tRtV tR# )TraceContextTextMapPropagatorz6Extracts and injects using w3c TraceContext's headers.traceparent
tracestateNc                   < V ^8  d   QhRS[ P                  RS[P                  S[,          RS[ P
                  S[ P                  ,          RS[/# )   carriercontextgetterreturn)r   CarrierTtypingOptionalr   Getter)format__classdict__s   "r/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/opentelemetry/trace/propagation/tracecontext.py__annotate__*TraceContextTextMapPropagator.__annotate__$   sQ     3
 3
!!3
 )3
 w//0	3

 
3
    c                &   Vf   \        4       pVP                  WP                  4      pV'       g   V# \        P                  ! V P
                  V^ ,          4      pV'       g   V# VP                  ^4      pVP                  ^4      pVP                  ^4      pVP                  ^4      p	VR8X  g   VR8X  d   V# VR8X  d   VP                  ^4      '       d   V# VR8X  d   V# VP                  WP                  4      p
V
f   RpM\        P                  ! V
4      p\        P                  ! \        V^4      \        V^4      R\        P                  ! \        V	^4      4      VR7      p\        P                  ! \        P                  ! V4      V4      # )zjExtracts SpanContext from the carrier.

See `opentelemetry.propagators.textmap.TextMapPropagator.extract`
N00ffT)trace_idspan_id	is_remotetrace_flagstrace_state 000000000000000000000000000000000000000000000000)r   get_TRACEPARENT_HEADER_NAMEresearch_TRACEPARENT_HEADER_FORMAT_REgroup_TRACESTATE_HEADER_NAMEr   from_headerr   SpanContextint
TraceFlagsset_span_in_contextNonRecordingSpan)selfr   r   r   headermatchversionr    r!   r#   tracestate_headersr   span_contexts   &&&&         r   extract%TraceContextTextMapPropagator.extract$   sP    ?iGG%B%BCN		$<<fQiHN{{1~A{{1~ ;;q>x7h#6Nd?{{1~~d?N#ZZ1M1MN%J#//0BCJ((2&$(([")=>"
 ((""<0'
 	
r   c                   < V ^8  d   QhRS[ P                  RS[P                  S[,          RS[ P
                  S[ P                  ,          RR/# )r   r   r   setterr   N)r   r   r   r   r   Setter)r   r   s   "r   r   r   Y   sQ      !! ) w//0	
 
r   c                   \         P                  ! V4      pVP                  4       pV\         P                  8X  d   R# R\	        VP
                  4       R\        VP                  4       RVP                  R 2pVP                  WP                  V4       VP                  '       d9   VP                  P                  4       pVP                  WP                  V4       R# R# )zhInjects SpanContext into the carrier.

See `opentelemetry.propagators.textmap.TextMapPropagator.inject`
Nz00--02x)r   get_current_spanget_span_contextINVALID_SPAN_CONTEXTr   r    r   r!   r#   setr(   r$   	to_headerr-   )r4   r   r   r=   spanr9   traceparent_stringtracestate_strings   &&&&    r   inject$TraceContextTextMapPropagator.injectY   s     %%g.,,.5555"?<3H3H#I"J!N[g[o[oLpKqqrs  tL  tL  MP  sQ  R

799;MN### , 8 8 B B DJJ557H $r   c                D   < V ^8  d   QhRS[ P                  S[,          /# )r   r   )r   Setstr)r   r   s   "r   r   r   p   s     M M

3 Mr   c                2    V P                   V P                  0# )zqReturns a set with the fields set in `inject`.

See
`opentelemetry.propagators.textmap.TextMapPropagator.fields`
)r(   r-   )r4   s   &r   fields$TraceContextTextMapPropagator.fieldso   s     --t/K/KLLr    zK^[ 	]*([0-9a-f]{2})-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})(-.*)?[ 	]*$)__name__
__module____qualname____firstlineno____doc__r(   r-   _TRACEPARENT_HEADER_FORMATr)   compiler+   r   default_getterr:   default_setterrJ   propertyrP   __static_attributes____classdictcell__)r   s   @r   r
   r
      sw     @,*	  %'JJ/I$J!
 -13:3I3I	3
 3
p -13:3I3I	 , M Mr   r
   )r)   r   opentelemetryr   opentelemetry.context.contextr   opentelemetry.propagatorsr   opentelemetry.tracer   r   opentelemetry.trace.spanr   TextMapPropagatorr
   rR   r   r   <module>re      s2    
   1 - ? /]MG$=$= ]Mr   