ó
s
\c           @   s:   d  Z  d d l Z d   Z d   Z d   Z d   Z d S(   s	  
Given a list of integers, made up of (hopefully) a small number of long runs
of consecutive integers, compute a representation of the form
((start1, end1), (start2, end2) ...). Then answer the question "was x present
in the original list?" in time O(log(# runs)).
i˙˙˙˙Nc         C   sˇ   t  |   } g  } d } x t t |   D]~ } | d t |  k  rl | | | | d d k rl q+ ql n  | | d | d !} | j t | d | d d   | } q+ Wt |  S(   s  Represent a list of integers as a sequence of ranges:
    ((start_0, end_0), (start_1, end_1), ...), such that the original
    integers are exactly those x such that start_i <= x < end_i for some i.

    Ranges are encoded as single integers (start << 32 | end), not as tuples.
    i˙˙˙˙i   i    (   t   sortedt   ranget   lent   appendt   _encode_ranget   tuple(   t   list_t   sorted_listt   rangest
   last_writet   it   current_range(    (    sC   /data/av2000/b2b/venv/lib/python2.7/site-packages/idna/intranges.pyt   intranges_from_list
   s    	"
c         C   s   |  d >| BS(   Ni    (    (   t   startt   end(    (    sC   /data/av2000/b2b/venv/lib/python2.7/site-packages/idna/intranges.pyR      s    c         C   s   |  d ?|  d @f S(   Ni    i   l        l   ˙˙ (    (   t   r(    (    sC   /data/av2000/b2b/venv/lib/python2.7/site-packages/idna/intranges.pyt   _decode_range"   s    c         C   sŠ   t  |  d  } t j | |  } | d k rj t | | d  \ } } | |  k o^ | k  n rj t Sn  | t |  k  rĽ t | |  \ } } | |  k rĽ t Sn  t S(   s=   Determine if `int_` falls into one of the ranges in `ranges`.i    i   (   R   t   bisectt   bisect_leftR   t   TrueR   t   False(   t   int_R   t   tuple_t   post   leftt   rightt   _(    (    sC   /data/av2000/b2b/venv/lib/python2.7/site-packages/idna/intranges.pyt   intranges_contain&   s    (   t   __doc__R   R   R   R   R   (    (    (    sC   /data/av2000/b2b/venv/lib/python2.7/site-packages/idna/intranges.pyt   <module>   s
   			