
    @OOf                         d dl Z d dlmZ d dlmZ d dlmZ  G d dej                        Z G d dej                        Z	ddgZ
y)	    N)
connection)flow)serializablec                   :    e Zd ZdZddZed        Zd Zd Zd Z	y)	
UDPMessagez%
    An individual UDP datagram.
    Nc                 Z    || _         || _        |xs t        j                         | _        y N)from_clientcontenttime	timestamp)selfr
   r   r   s       N/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/mitmproxy/udp.py__init__zUDPMessage.__init__   s#    &"1diik    c                      | | S r	    )clsstates     r   
from_statezUDPMessage.from_state   s    E{r   c                 H    | j                   | j                  | j                  fS r	   r
   r   r   r   s    r   	get_statezUDPMessage.get_state   s    t~~==r   c                 .    |\  | _         | _        | _        y r	   r   )r   r   s     r   	set_statezUDPMessage.set_state   s    9>6$,r   c                 j    dj                  | j                  rdndt        | j                              S )Nz{direction} {content}z->z<-)	directionr   )formatr
   reprr   r   s    r   __repr__zUDPMessage.__repr__   s2    &--"..dD$t||BT . 
 	
r   r	   )
__name__
__module____qualname____doc__r   classmethodr   r   r   r!   r   r   r   r   r      s/    2
  >?
r   r   c                        e Zd ZU dZee   ed<   	 	 ddej                  dej                  de
f fdZdej                  f fdZd	ej                  dd
f fdZd Z xZS )UDPFlowz9
    A UDPFlow is a representation of a UDP session.
    messagesclient_connserver_connlivec                 6    t         |   |||       g | _        y r	   )superr   r)   )r   r*   r+   r,   	__class__s       r   r   zUDPFlow.__init__.   s     	k48r   returnc                     i t         |          d| j                  D cg c]  }|j                          c}iS c c}w Nr)   )r.   r   r)   )r   mr/   s     r   r   zUDPFlow.get_state7   s?    
g!
>1>
 	
>s   <r   Nc                     |j                  d      D cg c]  }t        j                  |       c}| _        t        |   |       y c c}w r2   )popr   r   r)   r.   r   )r   r   r3   r/   s      r   r   zUDPFlow.set_state=   s<    ;@99Z;PQa..q1Q%  Rs   A	c                 4    dt        | j                         dS )Nz
<UDPFlow (z messages)>)lenr)   r   s    r   r!   zUDPFlow.__repr__A   s    C./{;;r   )F)r"   r#   r$   r%   listr   __annotations__r   ClientServerboolr   r   Stater   r   r!   __classcell__)r/   s   @r   r(   r(   "   s|     : 	&&  && 	
<-- 
!|11 !d !<r   r(   )r   	mitmproxyr   r   mitmproxy.coretypesr   Serializabler   Flowr(   __all__r   r   r   <module>rD      sC        ,
** 
4 <dii  <H r   