+
    ‰4i¨  ã                   ó0   € ^ RI HtHtHt  ! R R]4      tR# )é    )Ú	IPNetworkÚcidr_excludeÚ
cidr_mergec                   ó@   a € ] tR t^	t o RtR tRR ltR tR tRt	V t
R# )	ÚSubnetSplitterzå
A handy utility class that takes a single (large) subnet and allows
smaller subnet within its range to be extracted by CIDR prefix. Any
leaving address space is available for subsequent extractions until
all space is exhausted.
c                ó:   € \        \        V4      .4      V n        R# )z|
Constructor.

:param base_cidr: an IPv4 or IPv6 address with a CIDR prefix.
    (see IPNetwork.__init__ for full details).
N)Úsetr   Ú_subnets)ÚselfÚ	base_cidrs   &&ÚA/usr/lib/python3/dist-packages/netaddr/contrib/subnet_splitter.pyÚ__init__ÚSubnetSplitter.__init__   s   € ô œY yÓ1Ð2Ó3ˆŽó    Nc                ó*  € V P                  4        F~  p\        VP                  WR7      4      pV'       g   K(  V P                  V4       V P                  P                  \        \        V\        V4      ^ ,          4      4      4      V n        Vu # 	  . # )z;Extract 1 or more subnets of size specified by CIDR prefix.)Úcount)	Úavailable_subnetsÚlistÚsubnetÚremove_subnetr
   Úunionr	   r   r   )r   Úprefixr   ÚcidrÚsubnetss   &&&  r   Úextract_subnetÚSubnetSplitter.extract_subnet   sx   € à×*Ñ*Ö,ˆDÜ˜4Ÿ;™; v˜;Ó;Ó<ˆGßÙØ×Ñ˜tÔ$Ø ŸM™M×/Ñ/´´LÀÄzÐRYÓGZÐ[\ÕG]Ó4^Ó0_Ó`ˆDŒMØŠNñ -ð ˆ	r   c                ó4   € \        V P                  R RR7      # )z2Returns a list of the currently available subnets.c                 ó   € V P                   # ©N)Ú	prefixlen)Úxs   &r   Ú<lambda>Ú2SubnetSplitter.available_subnets.<locals>.<lambda>'   s   € °1·;²;r   T)ÚkeyÚreverse)Úsortedr
   )r   s   &r   r   Ú SubnetSplitter.available_subnets%   s   € ä�d—m‘mÑ)>ÈÔMÐMr   c                ó<   € V P                   P                  V4       R# )z:Remove a specified IPNetwork from available address space.N)r
   Úremove)r   Ú
ip_networks   &&r   r   ÚSubnetSplitter.remove_subnet)   s   € à�‰×Ñ˜ZÖ(r   )r
   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   r   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r   	   s$   ø‡ € ñò4ô	òN÷)ð )r   r   N)Ú
netaddr.ipr   r   r   Úobjectr   © r   r   Ú<module>r7      s   ð÷ ;Ñ :ô")�Vö ")r   