???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................3
¢báW“  ã               @   s^   d Z ddlZddlZddlmZmZ G dd„ deƒZeƒ dd… ZG dd„ deƒZ	d	d
„ Z
dS )zDNS Wire Data Helperé    Né   )Úbinary_typeÚstring_typesc               @   s&   e Zd Zdd„ Zejdk r"dd„ ZdS )Ú_SliceUnspecifiedBoundc             C   s   |j S )N)Ústop)ÚselfÚkey© r	   ú/usr/lib/python3.6/wiredata.pyÚ__getitem__    s    z"_SliceUnspecifiedBound.__getitem__é   c             C   s   | j t||ƒƒS )N)r   Úslice)r   ÚiÚjr	   r	   r
   Ú__getslice__$   s    z#_SliceUnspecifiedBound.__getslice__N)r   )Ú__name__Ú
__module__Ú__qualname__r   ÚsysÚversion_infor   r	   r	   r	   r
   r      s   
r   c                   s>   e Zd Z‡ fdd„Zejd
k r&dd„ Zdd„ Zdd	„ Z‡  Z	S )ÚWireDatac                sø   yÖt |tƒrÈ|j}|j}tjdk rx|tkr2t| ƒ}|dk sB|dk rJtj	j
‚||kr®tt| ƒj|ƒ tt| ƒj|d ƒ n6x4||fD ](}|d kr’q‚q‚t|ƒt| ƒkr‚tj	j
‚q‚W ttt| ƒjt||ƒƒƒS t| jƒ ƒ| S  tk
rò   tj	j
‚Y nX d S )Nr   r   r   )r   )Ú
isinstancer   Ústartr   r   r   Ú_unspecified_boundÚlenÚdnsÚ	exceptionÚ	FormErrorÚsuperr   r   ÚabsÚ	bytearrayÚunwrapÚ
IndexError)r   r   r   r   Úindex)Ú	__class__r	   r
   r   -   s,    

zWireData.__getitem__r   c             C   s   | j t||ƒƒS )N)r   r   )r   r   r   r	   r	   r
   r   P   s    zWireData.__getslice__c             c   sB   d}x8y| | V  |d7 }W q t jjk
r8   t‚Y qX qW d S )Nr   r   )r   r   r   ÚStopIteration)r   r   r	   r	   r
   Ú__iter__S   s    
zWireData.__iter__c             C   s   t | ƒS )N)r   )r   r	   r	   r
   r!   \   s    zWireData.unwrap)r   )
r   r   r   r   r   r   r   r&   r!   Ú__classcell__r	   r	   )r$   r
   r   *   s
   "
	r   c             C   sJ   t | tƒr| S t | tƒr t| ƒS t | tƒr6t| jƒ ƒS tdt| ƒ ƒ‚d S )Nzunhandled type %s)r   r   r   r   ÚencodeÚ
ValueErrorÚtype)Zwirer	   r	   r
   Ú
maybe_wrap`   s    


r+   )Ú__doc__r   Zdns.exceptionr   Z_compatr   r   r   r   r   r+   r	   r	   r	   r
   Ú<module>   s   		6