ó
âYc           @   s(   d  Z  d d l 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 !} | d | d d f } | j |  | } 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.
    i˙˙˙˙i   i    (   t   sortedt   ranget   lent   appendt   tuple(   t   list_t   sorted_listt   rangest
   last_writet   it   current_ranget   range_tuple(    (    sY   /data/av2000/soap/soapenv/lib/python2.7/site-packages/requests/packages/idna/intranges.pyt   intranges_from_list
   s    	
c         C   s   |  |  f } t  j | |  } | d k ra | | d \ } } | |  k oU | k  n ra t Sn  | t |  k  r | | \ } } | |  k r t Sn  t S(   s=   Determine if `int_` falls into one of the ranges in `ranges`.i    i   (   t   bisectt   bisect_leftt   TrueR   t   False(   t   int_R   t   tuple_t   post   leftt   rightt   _(    (    sY   /data/av2000/soap/soapenv/lib/python2.7/site-packages/requests/packages/idna/intranges.pyt   intranges_contain   s    (   t   __doc__R   R   R   (    (    (    sY   /data/av2000/soap/soapenv/lib/python2.7/site-packages/requests/packages/idna/intranges.pyt   <module>   s   	