
    h                         d dl Z e j                  dk  r	eefZeefZnefZeefZd Z	d Z
d Zd Zd Zd Zd	 Zd
 Zd Zy)    N)   c           
      X    t        ||      st        d| d|dt        |      d      y )NzAttribute 'z' must be instance of z [])
isinstance
ValueErrortype)namevaltypess      S/jellyfin/media/venv/lib/python3.12/site-packages/copyparty/stolen/dnslib/ranges.pycheck_instancer      s,    c5!<@%cS
 	
 "    c                 $    t        | |t              S N)r   
byte_types)r	   r
   s     r   check_bytesr      s    $Z00r   c                 8      fd} fd}t        ||      S )Nc                 "    t        | dz        S N_%sgetattrobjattrs    r   getterzrange_property.<locals>.getter       sEDL))r   c                     t        |t              r|cxk  rk  rn nt        | dz  |       y t        d|fz        )Nr   z)Attribute '%s' must be between %d-%d [%s])r   	int_typessetattrr   )r   r
   r   maxmins     r   setterzrange_property.<locals>.setter   sG    c9%#*;*;Cs+;tS#s>SS r   property)r   r"   r!   r   r#   s   ```  r   range_propertyr&      s    * FF##r   c                     t        | dd      S )Nr      r&   r   s    r   Br+   *   s    $3''r   c                     t        | dd      S )Nr   i  r)   r*   s    r   Hr-   .   s    $5))r   c                     t        | dd      S )Nr   l    r)   r*   s    r   Ir/   2   s    $:..r   c                 L     fd fd} fd}t        ||      S )Nc                 H    t        | t              xr | cxk  xr k  S c S r   )r   r   )xr!   r"   s    r   <lambda>zntuple_range.<locals>.<lambda>7   s    *Q	*>sa3  r   c                 "    t        | dz        S r   r   r   s    r   r   zntuple_range.<locals>.getter9   r   r   c                     t        |      k7  rt        d|fz        t        t        |            rt	        | dz  |       y t        d|fz        )Nz2Attribute '%s' must be tuple with %d elements [%s]r   z2Attribute '%s' elements must be between %d-%d [%s])lenr   allmapr    )r   r
   r   fr!   r"   ns     r   r#   zntuple_range.<locals>.setter<   sk    s8q=DaQT~U  s1c{Cs+Dc3'( r   r$   )r   r:   r"   r!   r   r#   r9   s   ````  @r   ntuple_ranger;   6   s&    >A*  FF##r   c                     t        | ddd      S )N   r   r(   r;   r*   s    r   IP4r?   L   s    aC((r   c                     t        | ddd      S )N   r   r(   r>   r*   s    r   IP6rB   P   s    b!S))r   )sysversion_infointlongr   str	bytearrayr   bytesr   r   r&   r+   r-   r/   r;   r?   rB    r   r   <module>rK      so    dI y!JI#J
1$(*/$,)*r   