+
    ‰4iS  ã                   óâ   € R t ^ RIt^ RIt]P
                  R8H  t^t^t^t	^t
 ! R R]4      t ! R R]4      t ! R R]4      t ! R	 R
]4      t ! R R]4      t ! R R]4      t ! R R]4      tR# )z6Common code shared between various netaddr sub modulesNÚbigc                   ó   € ] tR t^tRtRtR# )ÚAddrFormatErrorzG
An Exception indicating a network address is not correctly formatted.
© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    Ú./usr/lib/python3/dist-packages/netaddr/core.pyr   r      s   † ñó 	r   r   c                   ó   € ] tR t^&tRtRtR# )ÚAddrConversionErrorzR
An Exception indicating a failure to convert between address types or
notations.
r   Nr   r   r   r   r   r   &   ó   † ñó
 	r   r   c                   ó   € ] tR t^/tRtRtR# )ÚNotRegisteredErrorzP
An Exception indicating that an OUI or IAB was not found in the IEEE
Registry.
r   Nr   r   r   r   r   r   /   r   r   r   c                   ó*   a € ] tR t^8t o RtR tRtV tR# )Ú
SubscriberzC
An abstract class defining the interface expected by a Publisher.
c                ó   € \        R4      h)ú•
A callback method used by a Publisher to notify this Subscriber about
updates.

:param data: a Python object containing data provided by Publisher.
zcannot invoke virtual method!)ÚNotImplementedError©ÚselfÚdatas   &&r   ÚupdateÚSubscriber.update=   s   € ô "Ð"AÓBÐBr   r   N)r   r   r	   r
   r   r   r   Ú__classdictcell__©Ú__classdict__s   @r   r   r   8   s   ø‡ € ñ÷Cð Cr   r   c                   óL   a € ] tR t^Gt o Rt]P                  R3R ltR tRt	V t
R# )ÚPrettyPrinterz±
A concrete Subscriber that employs the pprint in the standard library to
format all data from updates received, writing them to a file-like
object.

Useful as a debugging aid.
Tc                ó   € Wn         W n        R# )zÄ
Constructor.

:param fh: a file-like object to write updates to.
    Default: sys.stdout.


:param write_eol: if ``True`` this object will write newlines to
    output, if ``False`` it will not.
N©ÚfhÚ	write_eol)r   r%   r&   s   &&&r   Ú__init__ÚPrettyPrinter.__init__P   s   € ð ŒØ"Žr   c                óÂ   € V P                   P                  \        P                  ! V4      4       V P                  '       d   V P                   P                  R4       R# R# )r   Ú
N)r%   ÚwriteÚ_pprintÚpformatr&   r   s   &&r   r   ÚPrettyPrinter.update^   s;   € ð 	�‰�‰”g—o’o dÓ+Ô,Ø�>�>ˆ>Ø�G‰G�M‰M˜$Öñ r   r$   N)r   r   r	   r
   r   Ú_sysÚstdoutr'   r   r   r   r   s   @r   r"   r"   G   s$   ø‡ € ñð Ÿ+™+°ô #÷	 ð 	 r   r"   c                   ó<   a € ] tR t^jt o RtR tR tR tR tRt	V t
R# )Ú	Publisherz¢
A 'push' Publisher that maintains a list of Subscriber objects notifying
them of state changes by passing them update data when it encounter events
of interest.
c                ó   € . V n         R# )ÚConstructorN©Úsubscribers©r   s   &r   r'   ÚPublisher.__init__q   s
   € àˆÖr   c                óà   € \        VR4      '       dL   \        VP                  R4      '       d0   WP                  9  d   V P                  P                  V4       R# R# \	        RV,          4      h)zm
Add a new subscriber.

:param subscriber: a new object that implements the Subscriber object
    interface.
r   Ú__call__z'%r does not support required interface!N)Úhasattrr   r6   ÚappendÚ	TypeError©r   Ú
subscribers   &&r   ÚattachÚPublisher.attachu   s[   € ô �:˜x×(Ò(¬W°Z×5FÑ5FÈ
×-SÒ-SØ×!1Ñ!1Ô1Ø× Ñ ×'Ñ'¨
Ö3ñ 2ô ÐEÈ
ÕRÓSÐSr   c                ób   €  V P                   P                  V4       R#   \         d     R# i ; i)zv
Remove an existing subscriber.

:param subscriber: a new object that implements the Subscriber object
    interface.
N)r6   ÚremoveÚ
ValueErrorr>   s   &&r   ÚdetachÚPublisher.detach‚   s-   € ð	Ø×Ñ×#Ñ# JÖ/øÜô 	Úð	ús   ‚ Ÿ.­.c                óN   € V P                    F  pVP                  V4       K  	  R# )zw
Send update data to to all registered Subscribers.

:param data: the data to be passed to each registered Subscriber.
N)r6   r   )r   r   r?   s   && r   ÚnotifyÚPublisher.notifyŽ   s"   € ð ×*Ô*ˆJØ×Ñ˜dÖ#ó +r   r5   N)r   r   r	   r
   r   r'   r@   rE   rH   r   r   r   s   @r   r2   r2   j   s$   ø‡ € ñòòTò
÷$ð $r   r2   c                   ó<   a € ] tR t^˜t o RtR tR tR tR tRt	V t
R# )ÚDictDotLookupzñ
Creates objects that behave much like a dictionaries, but allow nested
key access using object '.' (dot) lookups.

Recipe 576586: Dot-style nested lookups over dictionary based data
structures - http://code.activestate.com/recipes/576586/

c                óÆ  € V FÚ  p\        W,          \        4      '       d!   \        W,          4      V P                  V&   K?  \        W,          \        \
        34      '       de   . pW,           FF  p\        V\        4      '       d   VP                  \        V4      4       K5  VP                  V4       KH  	  W0P                  V&   KÅ  W,          V P                  V&   KÜ  	  R # ©N)Ú
isinstanceÚdictrK   Ú__dict__ÚlistÚtupler<   )r   ÚdÚkÚlÚvs   &&   r   r'   ÚDictDotLookup.__init__¢   s�   € ÛˆAÜ˜!�$¤×%Ò%Ü#0°µÓ#6�—‘˜aÓ Ü˜A�D¤4¬ -×0Ò0Ø�ØŸ˜�AÜ! !¤T×*Ò*ØŸ™¤¨qÓ!1Ö2àŸ™ žñ	 ð
 $%—‘˜aÓ à#$¥4�—‘˜aÓ ó r   c                óL   € WP                   9   d   V P                   V,          # R # rM   )rP   )r   Únames   &&r   Ú__getitem__ÚDictDotLookup.__getitem__±   s    € Ø—=‘=Ô Ø—=‘= Õ&Ð&ñ !r   c                ó6   € V P                   P                  4       # rM   )rP   Úkeysr7   s   &r   Ú__iter__ÚDictDotLookup.__iter__µ   s   € Ø�}‰}×!Ñ!Ó#Ð#r   c                óB   € \         P                  ! V P                  4      # rM   )r,   r-   rP   r7   s   &r   Ú__repr__ÚDictDotLookup.__repr__¸   s   € Ü�Š˜tŸ}™}Ó-Ð-r   r   N)r   r   r	   r
   r   r'   rZ   r^   ra   r   r   r   s   @r   rK   rK   ˜   s#   ø‡ € ñò(ò'ò$÷.ð .r   rK   )r   Úsysr/   Úpprintr,   Ú	byteorderÚBIG_ENDIAN_PLATFORMÚ	INET_PTONÚZEROFILLÚNOHOSTÚ	INET_ATONÚ	Exceptionr   r   r   Úobjectr   r"   r2   rK   r   r   r   Ú<module>rm      s•   ðñ =ã Û ð —n‘n¨Ñ-Ð ð €	ð €ð 
€ð €	ô	�iô 	ô	˜)ô 	ô	˜ô 	ôC�ô Cô  �Jô   ôF+$�ô +$ô\!.�Fö !.r   