
    IiS              	       F   S SK Jr  S SKJrJr  S SKJrJrJr  S SK	J
r
  S SKJr  \" \5      rSrSrSrS	r\ \ \ S
\ \ \ 3r\" \5      r\" \ \ \ S
\ \ \ 35      r\" S5      r\ S\ \ \ 3rSrSr\" SSS9S\S\\\4   4S j5       rSS\S\S\\\4   4S jjrg)    )	getLogger)compilesplit)DictListMapping)unquote)
deprecatedz[ \t]*zC[\x21\x23-\x27\x2a\x2b\x2d\x2e\x30-\x39\x41-\x5a\x5e-\x7a\x7c\x7e]+z+[\x21\x23-\x2b\x2d-\x3a\x3c-\x5b\x5d-\x7e]*z/[\x20\x21\x23-\x2b\x2d-\x3a\x3c-\x5b\x5d-\x7e]*=z[ \t]*,[ \t]*|zHeader format invalid! Header values in environment variables must be URL encoded per the OpenTelemetry Protocol Exporter specification: %szHeader format invalid! Header values in environment variables must be URL encoded per the OpenTelemetry Protocol Exporter specification or a comma separated list of name=value occurrences: %sz1.15.0z You should use parse_env_headers)versionreasonsreturnc                     [        U 5      $ )N)parse_env_headers)r   s    ;/venv/lib/python3.13/site-packages/opentelemetry/util/re.pyparse_headersr   >   s    Q    liberalc                    0 n[        [        U 5      nU GH`  nU(       d  M  [        R                  UR	                  5       5      nU(       d#  U(       d  [
        R                  [        U5        MZ  U(       af  UR                  nUR                  SS5      u  px[        U5      R	                  5       R                  5       n[        U5      R	                  5       nXU'   M  [        R                  UR	                  5       5      n	U	(       d  [
        R                  [        U5        GM  U	R                  n
U
R                  SS5      u  pxUR	                  5       R                  5       nUR	                  5       nXU'   GMc     U$ )a  
Parse ``s``, which is a ``str`` instance containing HTTP headers encoded
for use in ENV variables per the W3C Baggage HTTP header format at
https://www.w3.org/TR/baggage/#baggage-http-header-format, except that
additional semi-colon delimited metadata is not supported.
If ``liberal`` is True we try to parse ``s`` anyway to be more compatible
with other languages SDKs that accept non URL-encoded headers by default.
r      )r   _DELIMITER_PATTERN_HEADER_PATTERN	fullmatchstrip_loggerwarning-_INVALID_HEADER_ERROR_MESSAGE_STRICT_TEMPLATEstringr	   lower_LIBERAL_HEADER_PATTERN._INVALID_HEADER_ERROR_MESSAGE_LIBERAL_TEMPLATE)r   r   headersheaders_listheaderheader_matchmatch_stringnamevalueliberal_header_matchliberal_match_strings              r   r   r   C   s3    !G#$6:L&00@GOO=v  , 3 3L&,,S!4KD4=&&(..0DEN((*E!DM $;#D#D$  (BF (<(C(C .44S!<KD::<%%'DKKME!DME H Nr   N)F)loggingr   rer   r   typingr   r   r   urllib.parser	   r
   __name__r   _OWS_KEY_FORMAT_VALUE_FORMAT_LIBERAL_VALUE_FORMAT_KEY_VALUE_FORMATr   r"   r   _BAGGAGE_PROPERTY_FORMATr   r#   strr   boolr    r   r   <module>r;      s-     & &   !
H

  K 
 ?J vk]4&$tfM +,!vk]4&$(='>tfE  -. 014&dVL L .; / H%GH S  WS#X.   I / /t /S8I /r   