
    dhF                     `    d dl mZmZ d dlmZmZmZmZ  ed       ed      gZ G d d      Z	y)    )IPv4AddressIPv4Network)OptionalSequenceSetUnionz149.154.160.0/20z91.108.4.0/22c                       e Zd Zddeeeeeef         fdZ	deeeef   ddfdZ
deeeef   ddfdZedd       Zdeeef   defd	Zd
eeef   defdZy)IPFilterNipsc                 F    t               | _        |r | j                  |  y y N)set_allowed_ipsallow)selfr   s     R/var/www/netwell/bot/venv/lib/python3.12/site-packages/aiogram/webhook/security.py__init__zIPFilter.__init__   s"    .1eDJJ     returnc                 4    |D ]  }| j                  |        y r   )allow_ip)r   r   ips      r   r   zIPFilter.allow   s     	BMM"	r   r   c                 X   t        |t              rd|v rt        |      n
t        |      }t        |t              r| j                  j                  |       y t        |t              r*| j                  j                  |j                                y t        dt        |       d| d      )N/zInvalid type of ipaddress: z ('z'))

isinstancestrr   r   r   addupdatehosts
ValueErrortyper   r   s     r   r   zIPFilter.allow_ip   s    b#$'2IR;r?Bb+&!!"%K($$RXXZ0:48*Ct2NOOr   c                      | t               S r   )DEFAULT_TELEGRAM_NETWORKS)clss    r   defaultzIPFilter.default   s    ,--r   c                 T    t        |t              st        |      }|| j                  v S r   )r   r   r   r"   s     r   checkzIPFilter.check#   s&    "k*RBT&&&&r   itemc                 $    | j                  |      S r   )r(   )r   r)   s     r   __contains__zIPFilter.__contains__(   s    zz$r   r   )r   r
   )__name__
__module____qualname__r   r   r   r   r   r   r   r   r   classmethodr&   boolr(   r+    r   r   r
   r
   
   s    HXeCk4Q.R%ST %[+ => 4 P5k;!>? PD P . .'c;./ 'D '
 sK'7!8  T  r   r
   N)
	ipaddressr   r   typingr   r   r   r   r$   r
   r1   r   r   <module>r4      s3    . 1 1 "#     r   