+
    LV-j.  ã                   ób  € ^ RI t ^ RIHt ^ RIHt ^ RIHtHtHt ^RI	H
t
Ht ^RIHtHt ^RIHtHtHt . ROt] P(                  ! ]
P*                  ! R4      4      t] P(                  ! ]P*                  ! R4      4      t ! R R]4      t]! RRR7       ! R R	]4      4       t]! RRR7       ! R R]4      4       t]! RRR7       ! R R
]4      4       t]! RRR7       ! R R]4      4       t]! RRR7       ! R R]4      4       t]! RRR7       ! R R]4      4       t]! RR7       ! R R]4      4       tR# )é    N)ÚABC)Ú	dataclass)ÚListÚTupleÚUnion)ÚmethodÚrequest_target)ÚHeadersÚnormalize_and_validate)ÚbytesifyÚLocalProtocolErrorÚvalidateÚEventÚRequestÚInformationalResponseÚResponseÚDataÚEndOfMessageÚConnectionClosedÚasciic                   ó   € ] tR t^ tRtRtRtR# )r   z
Base class for h11 events.
© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__Ú__static_attributes__r   ó    Ú\/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/h11/_events.pyr   r       s   † ñð „Ir    FT)ÚinitÚfrozenc                   ób   a a€ ] tR t^(t oRtRtRRRR/V3R lV 3R llltRtV3R	 ltR
t	Vt
V ;t# )r   a  The beginning of an HTTP request.

Fields:

.. attribute:: method

   An HTTP method, e.g. ``b"GET"`` or ``b"POST"``. Always a byte
   string. :term:`Bytes-like objects <bytes-like object>` and native
   strings containing only ascii characters will be automatically
   converted to byte strings.

.. attribute:: target

   The target of an HTTP request, e.g. ``b"/index.html"``, or one of the
   more exotic formats described in `RFC 7320, section 5.3
   <https://tools.ietf.org/html/rfc7230#section-5.3>`_. Always a byte
   string. :term:`Bytes-like objects <bytes-like object>` and native
   strings containing only ascii characters will be automatically
   converted to byte strings.

.. attribute:: headers

   Request headers, represented as a list of (name, value) pairs. See
   :ref:`the header normalization rules <headers-format>` for details.

.. attribute:: http_version

   The HTTP protocol version, represented as a byte string like
   ``b"1.1"``. See :ref:`the HTTP version normalization rules
   <http_version-format>` for details.

Úhttp_versionó   1.1Ú_parsedFc                óä   <€ V ^8„  d   QhRS[ S[S[3,          RS[ S[S[S[S[S[3,          ,          S[S[S[S[3,          ,          3,          RS[ S[S[3,          RS[ S[S[3,          RS[RR/# )é   r   ÚheadersÚtargetr%   r'   ÚreturnN)r   ÚbytesÚstrr
   r   r   Úbool)ÚformatÚ__classdict__s   "€r!   Ú__annotate__ÚRequest.__annotate__R   s“   ø€ ÷ (Nñ (Nñ ‘e™S�jÕ!ð(Nñ ‘w¡¡U©5±%¨<Õ%8Õ 9¹4ÁÁcÉ3ÀhÅÕ;PÐPÕQð	(Nñ
 ‘e™S�jÕ!ð(Nñ ™E¡3˜JÕ'ð(Nñ ð(Nð 
ñ(Nr    c          	     óF  <€ \         S	V `  4        \        V\        4      '       d   \        P                  V R V4       M!\        P                  V R \        W%R7      4       V'       gb   \        P                  V R\        V4      4       \        P                  V R\        V4      4       \        P                  V R\        V4      4       ME\        P                  V RV4       \        P                  V RV4       \        P                  V RV4       ^ pV P                   F  w  rxVR8X  g   K  V^,          pK  	  V P                  R8X  d   V^ 8X  d   \        R4      hV^8”  d   \        R4      h\        \        V P                  R	4       \        \        V P                  R
4       R# )r*   ©r'   r   r+   r%   s   hostr&   zMissing mandatory Host: headerzFound multiple Host: headerszIllegal method characterszIllegal target charactersN)ÚsuperÚ__init__Ú
isinstancer
   ÚobjectÚ__setattr__r   r   r*   r%   r   r   Ú	method_rer   Úrequest_target_rer+   )
Úselfr   r*   r+   r%   r'   Ú
host_countÚnameÚvalueÚ	__class__s
   &$$$$$   €r!   r7   ÚRequest.__init__R   sI  ø€ ô 	‰ÑÔÜ�gœw×'Ò'Ü×Ñ˜t Y°Õ8ä×ÑØ�iÔ!7¸Ô!Qô÷ Ü×Ñ˜t X¬x¸Ó/?Ô@Ü×Ñ˜t X¬x¸Ó/?Ô@Ü×Ñ˜t ^´X¸lÓ5KÕLä×Ñ˜t X¨vÔ6Ü×Ñ˜t X¨vÔ6Ü×Ñ˜t ^°\ÔBð ˆ
ØŸ<œ<‰KˆDØ�wŽØ˜a•’
ñ (ð ×Ñ Ô&¨:¸¬?Ü$Ð%EÓFÐFØ˜Œ>Ü$Ð%CÓDÐDä”˜DŸK™KÐ)DÔEÜÔ" D§K¡KÐ1LÖMr    Nc                óJ   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[ ;R&   S[ ;R&   # )r)   r   r*   r+   r%   )r-   r
   )r0   r1   s   "€r!   r2   r3   (   s?   ø‡ ‚ ñJ �MñK ñL ÑñM ñN �MñO ñP ÑòQ r    r   )r   r*   r+   r%   ©r   r   r   r   r   r   r7   Ú__hash__Ú__annotate_func__r   Ú__classdictcell__Ú__classcell__©rA   r1   s   @@r!   r   r   (   sE   ù‡ € ñðB @€Ið(Nð +1ð(Nð ÷(Nõ (NðV €H÷k … r    c                   ót   a a€ ] tR t^€t oRtRRRRRR/V3R lV 3R llltV3R	 lR
 ltRtV3R ltRt	Vt
V ;t# )Ú_ResponseBaser%   Úreasonr&   r    r'   Fc                óÎ   <€ V ^8„  d   QhRS[ S[S[S[S[S[3,          ,          S[S[S[S[3,          ,          3,          RS[RS[ S[S[3,          RS[ S[S[3,          RS[RR/# )r)   r*   Ústatus_coder%   rL   r'   r,   N)r   r
   r   r   r-   r.   Úintr/   )r0   r1   s   "€r!   r2   Ú_ResponseBase.__annotate__‰   s‚   ø€ ÷ ñ ñ ‘w¡¡U©5±%¨<Õ%8Õ 9¹4ÁÁcÉ3ÀhÅÕ;PÐPÕQðñ ð	ñ
 ™E¡3˜JÕ'ðñ ‘e™S�jÕ!ðñ ðð 
ñr    c          	     ó€  <€ \         SV `  4        \        V\        4      '       d   \        P                  V R V4       M!\        P                  V R \        WR7      4       V'       gƒ   \        P                  V R\        V4      4       \        P                  V R\        V4      4       \        V\        4      '       g   \        R4      h\        P                  V R\        V4      4       ME\        P                  V RV4       \        P                  V RV4       \        P                  V RV4       V P                  4        R# )r*   r5   rL   r%   zstatus code must be integerrN   N)r6   r7   r8   r
   r9   r:   r   r   rO   r   Ú__post_init__)r=   r*   rN   r%   rL   r'   rA   s   &$$$$$€r!   r7   Ú_ResponseBase.__init__‰   sñ   ø€ ô 	‰ÑÔÜ�gœw×'Ò'Ü×Ñ˜t Y°Õ8ä×ÑØ�iÔ!7¸Ô!Qô÷ Ü×Ñ˜t X¬x¸Ó/?Ô@Ü×Ñ˜t ^´X¸lÓ5KÔLÜ˜k¬3×/Ò/Ü(Ð)FÓGÐGô ×Ñ˜t ]´C¸Ó4DÕEä×Ñ˜t X¨vÔ6Ü×Ñ˜t ^°\ÔBÜ×Ñ˜t ]°KÔ@à×ÑÖr    c                ó   <€ V ^8„  d   QhRR/# ©r)   r,   Nr   )r0   r1   s   "€r!   r2   rP   ¨   s   ø€ ÷ ñ ˜tñ r    c                ó   € R # )Nr   ©r=   s   &r!   rR   Ú_ResponseBase.__post_init__¨   s   € Ùr    Nc                óJ   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[;R&   # )r)   r*   r%   rL   rN   )r
   r-   rO   )r0   r1   s   "€r!   r2   rP   €   s8   ø‡ ‚ ñ Ññ	 ñ
 Ññ ñ �Mñ ñ Ñò r    r   )r*   r%   rL   rN   )r   r   r   r   r   r7   rR   rE   rF   r   rG   rH   rI   s   @@r!   rK   rK   €   sK   ù‡ € àD€Iðð
 +1ðð %(ðð ÷õ ÷>ð ð €H÷Y … r    rK   c                   ó:   a € ] tR t^¯t o RtV 3R lR ltRtRtV tR# )r   a½  An HTTP informational response.

Fields:

.. attribute:: status_code

   The status code of this response, as an integer. For an
   :class:`InformationalResponse`, this is always in the range [100,
   200).

.. attribute:: headers

   Request headers, represented as a list of (name, value) pairs. See
   :ref:`the header normalization rules <headers-format>` for
   details.

.. attribute:: http_version

   The HTTP protocol version, represented as a byte string like
   ``b"1.1"``. See :ref:`the HTTP version normalization rules
   <http_version-format>` for details.

.. attribute:: reason

   The reason phrase of this response, as a byte string. For example:
   ``b"OK"``, or ``b"Not Found"``.

c                ó   <€ V ^8„  d   QhRR/# rU   r   )r0   r1   s   "€r!   r2   Ú"InformationalResponse.__annotate__Î   s   ø€ ÷ ñ ˜tñ r    c                ó„   € ^dV P                   u;8:  d   ^È8  g'   M \        RP                  V P                   4      4      hR# )éd   zGInformationalResponse status_code should be in range [100, 200), not {}N©rN   r   r0   rW   s   &r!   rR   Ú#InformationalResponse.__post_init__Î   s<   € Ø�t×'Ñ'Ö-¨#Ö-Ü$ð%ß%+¡V¨D×,<Ñ,<Ó%=óð ñ .r    Nr   ©	r   r   r   r   r   rR   rE   r   rG   ©r1   s   @r!   r   r   ¯   s   ø‡ € ñ÷:ð ð †Hr    c                   ó:   a € ] tR t^Ùt o RtV 3R lR ltRtRtV tR# )r   a±  The beginning of an HTTP response.

Fields:

.. attribute:: status_code

   The status code of this response, as an integer. For an
   :class:`Response`, this is always in the range [200,
   1000).

.. attribute:: headers

   Request headers, represented as a list of (name, value) pairs. See
   :ref:`the header normalization rules <headers-format>` for details.

.. attribute:: http_version

   The HTTP protocol version, represented as a byte string like
   ``b"1.1"``. See :ref:`the HTTP version normalization rules
   <http_version-format>` for details.

.. attribute:: reason

   The reason phrase of this response, as a byte string. For example:
   ``b"OK"``, or ``b"Not Found"``.

c                ó   <€ V ^8„  d   QhRR/# rU   r   )r0   r1   s   "€r!   r2   ÚResponse.__annotate__÷   s   ø€ ÷ ñ ˜tñ r    c                ó„   € ^ÈV P                   u;8:  d   R8  g'   M \        RP                  V P                   4      4      hR# )éÈ   iè  z;Response status_code should be in range [200, 1000), not {}Nr_   rW   s   &r!   rR   ÚResponse.__post_init__÷   s>   € Ø�t×'Ñ'Ö.¨$Ö.Ü$ØM×TÑTØ×$Ñ$óóð ñ /r    Nr   ra   rb   s   @r!   r   r   Ù   s   ø‡ € ñ÷8ð ð †Hr    c                   óN   a € ] tR tRt o RtRtR	V 3R lR lltRtV 3R ltRt	V t
R# )
r   i  a½  Part of an HTTP message body.

Fields:

.. attribute:: data

   A :term:`bytes-like object` containing part of a message body. Or, if
   using the ``combine=False`` argument to :meth:`Connection.send`, then
   any object that your socket writing code knows what to do with, and for
   which calling :func:`len` returns the number of bytes that will be
   written -- see :ref:`sendfile` for details.

.. attribute:: chunk_start

   A marker that indicates whether this data object is from the start of a
   chunked transfer encoding chunk. This field is ignored when when a Data
   event is provided to :meth:`Connection.send`: it is only valid on
   events emitted from :meth:`Connection.next_event`. You probably
   shouldn't use this attribute at all; see
   :ref:`chunk-delimiters-are-bad` for details.

.. attribute:: chunk_end

   A marker that indicates whether this data object is the last for a
   given chunked transfer encoding chunk. This field is ignored when when
   a Data event is provided to :meth:`Connection.send`: it is only valid
   on events emitted from :meth:`Connection.next_event`. You probably
   shouldn't use this attribute at all; see
   :ref:`chunk-delimiters-are-bad` for details.

c                ó0   <€ V ^8„  d   QhRS[ RS[RS[RR/# )r)   ÚdataÚchunk_startÚ	chunk_endr,   N©r-   r/   )r0   r1   s   "€r!   r2   ÚData.__annotate__+  s-   ø€ ÷ 9ñ 9Ùð9Ù(,ð9ÙAEð9à	ñ9r    c                ó�   € \         P                  V R V4       \         P                  V RV4       \         P                  V RV4       R# )rk   rl   rm   N)r9   r:   )r=   rk   rl   rm   s   &&&&r!   r7   ÚData.__init__+  s:   € ô 	×Ñ˜4 ¨Ô.Ü×Ñ˜4 °Ô<Ü×Ñ˜4 ¨iÖ8r    Nc                ó>   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   # )r)   rk   rl   rm   rn   )r0   r1   s   "€r!   r2   ro     s0   ø‡ ‚ ñH �KñI ñJ ÑñK ñL �OòM r    r   )rk   rl   rm   )FF)r   r   r   r   r   r   r7   rE   rF   r   rG   rb   s   @r!   r   r     s+   ø‡ € ñð@ 5€I÷9ò 9ð €H÷a ƒ r    c                   ób   a a€ ] tR tRt oRtRtRRRR/V3R lV 3R llltRtV3R	 ltR
t	Vt
V ;t# )r   i;  aJ  The end of an HTTP message.

Fields:

.. attribute:: headers

   Default value: ``[]``

   Any trailing headers attached to this message, represented as a list of
   (name, value) pairs. See :ref:`the header normalization rules
   <headers-format>` for details.

   Must be empty unless ``Transfer-Encoding: chunked`` is in use.

r*   Nr'   Fc                ó’   <€ V ^8„  d   QhRS[ S[S[S[S[S[3,          ,          S[S[S[S[3,          ,          R3,          RS[RR/# )r)   r*   Nr'   r,   )r   r
   r   r   r-   r.   r/   )r0   r1   s   "€r!   r2   ÚEndOfMessage.__annotate__Q  sW   ø€ ÷ 5ñ 5ñ Ù‘T™%¡¡u Õ-Õ.±±U¹3Á¸8µ_Õ0EÀtÐKõ
ð5ñ ð5ð 
ñ5r    c               ó¶   <€ \         SV `  4        Vf   \        . 4      pM"\        V\        4      '       g   \	        WR7      p\
        P                  V RV4       R # )Nr5   r*   )r6   r7   r
   r8   r   r9   r:   )r=   r*   r'   rA   s   &$$€r!   r7   ÚEndOfMessage.__init__Q  sG   ø€ ô 	‰ÑÔØŠ?Ü˜b“k‰GÜ˜G¤W×-Ò-Ü,¨WÔFˆGä×Ñ˜4 ¨GÖ4r    c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )r)   r*   )r
   )r0   r1   s   "€r!   r2   ru   ;  s   ø‡ ‚ ñ( Ñò) r    r   )r*   rD   rI   s   @@r!   r   r   ;  s>   ù‡ € ñð  €Ið5ð
 ð5ð ÷5õ 5ð" €H÷O … r    )r#   c                   ó   € ] tR tRtRtRtR# )r   ie  a)  This event indicates that the sender has closed their outgoing
connection.

Note that this does not necessarily mean that they can't *receive* further
data, because TCP connections are composed to two one-way channels which
can be closed independently. See :ref:`closing` for details.

No fields.
r   N)r   r   r   r   r   r   r   r    r!   r   r   e  s   † ñó 	r    )r   r   r   r   r   r   r   ) ÚreÚabcr   Údataclassesr   Útypingr   r   r   Ú_abnfr   r	   Ú_headersr
   r   Ú_utilr   r   r   Ú__all__ÚcompileÚencoder;   r<   r   r   rK   r   r   r   r   r   r   r    r!   Ú<module>r„      s]  ðó 
Ý Ý !ß %Ñ %ç )ß 5ß 9Ñ 9ò€ð �JŠJ�v—}’} WÓ-Ó.€	Ø—J’J˜~×4Ò4°WÓ=Ó>Ð ôˆCô ñ �˜dÔ#ôTˆeó Tó $ðTñn �˜dÔ#ô+�Eó +ó $ð+ñ\ �˜dÔ#ô&˜Mó &ó $ð&ñR �˜dÔ#ô&ˆ}ó &ó $ð&ñR �˜dÔ#ô/ˆ5ó /ó $ð/ñn �˜dÔ#ô&�5ó &ó $ð&ñR �$Ôô	�uó 	ó ò	r    