+
    üÐjz  ã                   ó:   € R t R R ltR R ltR R ltR R ltR	# )
z6
Tools for pedantically processing the HTTP protocol.
c                ó0   € V ^8„  d   QhR\         R\        /# ©é   ÚbÚreturn©ÚbytesÚbool)Úformats   "Ú3/usr/lib/python3/dist-packages/twisted/web/_abnf.pyÚ__annotate__r   
   s   € ÷ ñ ”ð œ$ñ ó    c                ó2   € V  F  pVR9  g   K   R# 	  V R8g  # )z3
Is the string a token per RFC 9110 section 5.6.2?
sM   ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#$%&'*+-.^_`|~Fr   © ©r   Úcs   & r   Ú_istokenr   
   s+   € ó ˆØðö
ò
 ñ ð �‰8€Or   c                ó0   € V ^8„  d   QhR\         R\        /# )r   Údatar   ©r   Úint)r
   s   "r   r   r      s   € ÷ ñ ”%ð œCñ r   c                ó„   € V P                  R4      p V P                  4       '       g   \        RV : 24      h\        V 4      # )a   
Parse a decimal integer of the form C{1*DIGIT}, i.e. consisting only of
decimal digits. The integer may be embedded in whitespace (space and
horizontal tab). This differs from the built-in L{int()} function by
disallowing a leading C{+} character and various forms of whitespace
(note that we sanitize linear whitespace in header values in
L{twisted.web.http_headers.Headers}).

@param data: Value to parse.

@returns: A non-negative integer.

@raises ValueError: When I{value} contains non-decimal characters.
s    	z#Value contains non-decimal digits: )ÚstripÚisdigitÚ
ValueErrorr   )r   s   &r   Ú_decintr      s:   € ð �:‰:�fÓ€DØ�<‰<�>Š>ÜÐ>¸t¹hÐGÓHÐHÜˆt‹9Ðr   c                ó0   € V ^8„  d   QhR\         R\        /# r   r   )r
   s   "r   r   r   -   s   € ÷ 
ñ 
”Eð 
œdñ 
r   c                ó2   € V  F  pVR9  g   K   R# 	  V R8g  # )z~
Is the string case-insensitively hexidecimal?

It must be composed of one or more characters in the ranges a-f, A-F
and 0-9.
s   0123456789abcdefABCDEFFr   r   r   s   & r   Ú_ishexdigitsr   -   s%   € ó ˆØÐ-Ö-Úñ ð �‰8€Or   c                ó0   € V ^8„  d   QhR\         R\        /# r   r   )r
   s   "r   r   r   :   s   € ÷ 
ñ 
Œuð 
œñ 
r   c                óR   € \        V 4      '       g   \        V 4      h\        V ^4      # )zÅ
Decode a hexadecimal integer.

Unlike L{int(b, 16)}, this raises L{ValueError} when the integer has
a prefix like C{b'0x'}, C{b'+'}, or C{b'-'}, which is desirable when
parsing network protocols.
)r   r   r   )r   s   &r   Ú_hexintr!   :   s#   € ô ˜�?Š?Ü˜‹mÐÜˆq�"‹:Ðr   N)Ú__doc__r   r   r   r!   r   r   r   Ú<module>r#      s   ðñ
õ
õõ*
÷
r   