
sWc           @   s  d  Z  d d l Z d d l Td Z d Z e d  Z e d  Z e d  Z e d	  Z	 i e
 e d
  f d 6e
 e d  f d 6e
 e d  f d 6e
 e d  f d 6e
 e d  f d 6e
 e d  f d 6e
 e d  f d 6e
 e d  f d 6Z i
 e e f d 6e e f d 6e e f d 6e e e f g f d 6e e e f g f d 6e e e f g f d 6e e e f g f d 6e e e f g f d  6e e e f g f d! 6e e f d" 6Z i e d# 6e d$ 6e d% 6e d& 6e d' 6e  d( 6e! d) 6Z" d* f  d+     YZ# d, f  d-     YZ$ d. f  d/     YZ% d0   Z& d1   Z' d2   Z( d3   Z) d4   Z* d5 d6  Z+ d7   Z, e d8  Z- e d9  Z. e d:  Z/ e e0 e1 g  Z2 d;   Z3 d< e4 d=  Z5 d>   Z6 d?   Z7 d S(@   s   Internal support module for sreiN(   t   *s   .\[{()*+?^$|s   *+?{t
   0123456789t   01234567t   0123456789abcdefABCDEFs    	
s   s   \as   s   \bs   s   \fs   
s   \ns   s   \rs   	s   \ts   s   \vs   \s   \\s   \As   \Bs   \ds   \Ds   \ss   \Ss   \ws   \Ws   \Zt   it   Lt   mt   st   xt   tt   ut   Patternc           B   s/   e  Z d    Z d d  Z d   Z d   Z RS(   c         C   s(   d |  _  g  |  _ d |  _ i  |  _ d  S(   Ni    i   (   t   flagst   opent   groupst	   groupdict(   t   self(    (    s   /usr/lib/python2.7/sre_parse.pyt   __init__C   s    			c         C   s   |  j  } | d |  _  | d  k	 rr |  j j | d   } | d  k	 rb t d t |  | | f  n  | |  j | <n  |  j j |  | S(   Ni   s7   redefinition of group name %s as group %d; was group %d(   R   t   NoneR   t   gett   errort   reprR   t   append(   R   t   namet   gidt   ogid(    (    s   /usr/lib/python2.7/sre_parse.pyt	   opengroupH   s    	c         C   s   |  j  j |  d  S(   N(   R   t   remove(   R   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt
   closegroupS   s    c         C   s   | |  j  k  o | |  j k S(   N(   R   R   (   R   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt
   checkgroupU   s    N(   t   __name__t
   __module__R   R   R   R   R   (    (    (    s   /usr/lib/python2.7/sre_parse.pyR   A   s   		t
   SubPatternc           B   sh   e  Z d d   Z d d  Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z RS(   c         C   s4   | |  _  | d  k r g  } n  | |  _ d  |  _ d  S(   N(   t   patternR   t   datat   width(   R   R!   R"   (    (    s   /usr/lib/python2.7/sre_parse.pyR   Z   s
    			i    c         C   s  t  t f } x|  j D]|\ } } | d | G| t k rj HxT| D]! \ } } | d d | G| GHqB Wq | t k r Hxt | d  D]3 \ } } | r | d d GHn  | j | d  q Wq | t k r| \ } } }	 | GH| j | d  |	 r| d d GH|	 j | d  qq t | |  rd }
 xK | D]C } t | t	  rr|
 sXHn  | j | d  d }
 q9| Gd }
 q9W|
 sHqq | GHq Wd  S(   Ns     i   t   ort   elsei    (
   t   tuplet   listR"   t   INt   BRANCHt	   enumeratet   dumpt   GROUPREF_EXISTSt
   isinstanceR    (   R   t   levelt   seqtypest   opt   avt   aR   t	   condgroupt   item_yest   item_not   nl(    (    s   /usr/lib/python2.7/sre_parse.pyR+   `   sB    	
c         C   s   t  |  j  S(   N(   R   R"   (   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt   __repr__   s    c         C   s   t  |  j  S(   N(   t   lenR"   (   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt   __len__   s    c         C   s   |  j  | =d  S(   N(   R"   (   R   t   index(    (    s   /usr/lib/python2.7/sre_parse.pyt   __delitem__   s    c         C   s1   t  | t  r& t |  j |  j |  S|  j | S(   N(   R-   t   sliceR    R!   R"   (   R   R:   (    (    s   /usr/lib/python2.7/sre_parse.pyt   __getitem__   s    c         C   s   | |  j  | <d  S(   N(   R"   (   R   R:   t   code(    (    s   /usr/lib/python2.7/sre_parse.pyt   __setitem__   s    c         C   s   |  j  j | |  d  S(   N(   R"   t   insert(   R   R:   R>   (    (    s   /usr/lib/python2.7/sre_parse.pyR@      s    c         C   s   |  j  j |  d  S(   N(   R"   R   (   R   R>   (    (    s   /usr/lib/python2.7/sre_parse.pyR      s    c         C   s  |  j  r |  j  Sd } } t t t t t t f } t t f } xy|  j	 D]n\ } } | t
 k r t d } d } xB | d D]6 } | j   \ }	 }
 t | |	  } t | |
  } q{ W| | } | | } qH | t k r| j   \ } } | | } | | } qH | t k r:| d j   \ } } | | } | | } qH | | k r| d j   \ } } | | | d } | | | d } qH | | k r| d } | d } qH | t k rH PqH qH Wt | t d  t | t  f |  _  |  j  S(   Ni    i   i   (   R#   t   ANYt   RANGER(   t   LITERALt   NOT_LITERALt   CATEGORYt
   MIN_REPEATt
   MAX_REPEATR"   R)   t	   MAXREPEATt   getwidtht   mint   maxt   CALLt
   SUBPATTERNt   SUCCESS(   R   t   lot   hit	   UNITCODESt   REPEATCODESR0   R1   R   t   jt   lt   h(    (    s   /usr/lib/python2.7/sre_parse.pyRI      sD    	





%N(   R   R   R   R   R+   R7   R9   R;   R=   R?   R@   R   RI   (    (    (    s   /usr/lib/python2.7/sre_parse.pyR    X   s   %							t	   Tokenizerc           B   sA   e  Z d    Z d   Z d d  Z d   Z d   Z d   Z RS(   c         C   s    | |  _  d |  _ |  j   d  S(   Ni    (   t   stringR:   t   _Tokenizer__next(   R   RW   (    (    s   /usr/lib/python2.7/sre_parse.pyR      s    		c         C   s   |  j  t |  j  k r% d  |  _ d  S|  j |  j  } | d d k r y |  j |  j  d } Wn t k
 ry t d  n X| | } n  |  j  t |  |  _  | |  _ d  S(   Ni    s   \i   s   bogus escape (end of line)(   R:   R8   RW   R   t   nextt
   IndexErrorR   (   R   t   chart   c(    (    s   /usr/lib/python2.7/sre_parse.pyt   __next   s    	i   c         C   s*   | |  j  k r& | r" |  j   n  d Sd S(   Ni   i    (   RY   RX   (   R   R[   t   skip(    (    s   /usr/lib/python2.7/sre_parse.pyt   match   s
    c         C   s   |  j  } |  j   | S(   N(   RY   RX   (   R   t   this(    (    s   /usr/lib/python2.7/sre_parse.pyR      s    	
c         C   s   |  j  |  j f S(   N(   R:   RY   (   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt   tell   s    c         C   s   | \ |  _  |  _ d  S(   N(   R:   RY   (   R   R:   (    (    s   /usr/lib/python2.7/sre_parse.pyt   seek   s    (   R   R   R   RX   R_   R   Ra   Rb   (    (    (    s   /usr/lib/python2.7/sre_parse.pyRV      s   				c         C   sB   d |  k o d k n pA d |  k o3 d k n pA |  d k S(   NR2   t   zt   At   Zt   _(    (   R[   (    (    s   /usr/lib/python2.7/sre_parse.pyt   isident   s    c         C   s   d |  k o d k SS(   Nt   0t   9(    (   R[   (    (    s   /usr/lib/python2.7/sre_parse.pyt   isdigit   s    c         C   sK   t  |  d  s t Sx0 |  d D]$ } t  |  r t |  r t Sq Wt S(   Ni    i   (   Rg   t   FalseRj   t   True(   R   R[   (    (    s   /usr/lib/python2.7/sre_parse.pyt   isname   s    c         C   s  t  j |  } | r | St j |  } | rB | d t k rB | SyO| d d !} | d k r x5 |  j t k r t |  d k  r | |  j   } qa W| d } t |  d k r t d t d |   n  t	 t
 | d  d	 @f S| t k rHx5 |  j t k r&t |  d k  r&| |  j   } q W| d } t	 t
 | d
  d	 @f S| t k rjt d t |   n  t |  d k rt	 t | d  f SWn t k
 rn Xt d t |   d  S(   Ni    i   i   R   i   s   bogus escape: %ss   \i   i   i   (   t   ESCAPESR   t
   CATEGORIESR(   RY   t	   HEXDIGITSR8   R   R   RC   t   intt	   OCTDIGITSt   DIGITSt   ordt
   ValueError(   t   sourcet   escapeR>   R\   (    (    s   /usr/lib/python2.7/sre_parse.pyt   _class_escape   s6    $
$
c         C   sB  t  j |  } | r | St j |  } | r2 | Sy| d d !} | d k r x5 |  j t k r t |  d k  r | |  j   } qQ Wt |  d k r t  n  t t | d d  d @f S| d k rx5 |  j t	 k r t |  d k  r | |  j   } q Wt t | d d  d @f S| t
 k r|  j t
 k r| |  j   } | d t	 k r| d t	 k r|  j t	 k r| |  j   } t t | d d  d @f Sn  t | d  } | | j k  r| j |  st d	  n  t | f St  n  t |  d k rt t | d  f SWn t k
 r*n Xt d
 t |   d  S(   Ni   i   R   i   i   i   Rh   i   s   cannot refer to open groups   bogus escape: %s(   Ro   R   Rn   RY   Rp   R8   Ru   RC   Rq   Rr   Rs   R   R   R   t   GROUPREFRt   R   (   Rv   Rw   t   stateR>   R\   t   group(    (    s   /usr/lib/python2.7/sre_parse.pyt   _escape
  sH    $	$ 
	i   c         C   s  g  } | j  } |  j } xX | t |  |   | d  r@ q n  | sJ Pn  |  j sc | d d  rg Pq t d  q t |  d k r | d St |  } | j  } xw d  } xj | D]= }	 |	 s Pn  | d  k r |	 d } q |	 d | k r Pq q Wx | D] }	 |	 d =q W| |  q Pq xz | D]0 }	 t |	  d k sO|	 d d t k r#Pq#q#Wg  }
 |
 j  } x | D] }	 | |	 d  qmW| t	 |
 f  | S| j  t
 d  | f f  | S(   Nt   |t   )i    s   pattern not properly closedi   (   R   R_   t   _parseRY   R   R8   R    R   RC   R(   R)   (   Rv   Rz   t   nestedt   itemst   itemsappendt   sourcematcht
   subpatternt   subpatternappendt   prefixt   itemt   sett	   setappend(    (    s   /usr/lib/python2.7/sre_parse.pyt
   _parse_sub6  sR    			
&	c         C   s   t  |  |  } |  j d  rK t  |  |  } |  j d  rQ t d  qQ n d  } |  j ry |  j d d  ry t d  n  t |  } | j t | | | f f  | S(   NR}   s/   conditional backref with more than two branchesR~   i    s   pattern not properly closed(   R   R_   R   R   RY   R    R   R,   (   Rv   Rz   R3   R4   R5   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt   _parse_sub_condq  s    s   |)s   =!<s   =!c   !      C   s  t  |  } | j } |  j } |  j } t } t } t } t }	 t }
 x|  j	 | k r[ Pn  |   } | d  k rt Pn  | j t @r | t k r qH n  | d k r x |   } | d/ k r Pq q qH q n  | r | d t k r | t t |  f  qH | d k rg  } | j } | d  r0| t d  f  n  | } x|   } | d k r_| | k r_PnL | r| d d k rt |  |  } n$ | rt t |  f } n	 t d  | d	  r|   } | d k r| d t k r| d
 d } n  | |  | t t d	  f  Pq| r| d d k r9t |  |  } n t t |  f } | d t k sk| d t k rwt d  n  | d
 } | d
 } | | k  rt d  n  | t | | f f  qt d  q:| d t k r| d
 d } n  | |  q:| |  d
 k r-| d d t k r-| | d  q| |  d k r| d d t k r| d
 d t k r| t | d
 d
 f  q| t | f  qH | r(| d t k r(| d k rd0 \ } } n| d k rd t } } n| d k rd
 t } } nt| d k ri|  j	 d k r5| t t |  f  qH n  |  j   } d t } } d } } x# |  j	 t k r}| |  j   } q[W| d  rx) |  j	 t k r| |   } qWn | } | d  s| t t |  f  |  j |  qH n  | rt |  } | t k rt d   qn  | rrt |  } | t k rHt d   n  | | k  rft d   qfqrn	 t d  | r| d } n d  } | s| |  d
 k r| d d t k rt d  n  | d d |
 k rt d  n  | d  rt | | | f f | d <qt  | | | f f | d <qH | d k rG| t! d  f  qH | d k rbd
 } d  } d  } | d  r~
d } | d  r| d  rd } x> |   } | d  k rt d  n  | d k rPn  | | } qd
 } | st d    n  t" |  st d! |   qq{
| d"  rd } x> |   } | d  k rIt d  n  | d# k rYPn  | | } q(| s{t d    n  t" |  st d$ |   n  | j# j |  } | d  k rd% j$ |  } t |   n  | t% | f  qH q{
|   } | d  k rt d&  n  t d' |  q~
| d(  r2d } q~
| d  rx, |  j	 d  k s_|  j	 d# k rcPn  |   qA| d#  sH t d)  qH qH q~
|  j	 | k rJ	|   } d
 } | d k r|  j	 |	 k rt d*  n  d } |   } n  t& |  |  } | d#  s		t d)  n  | d" k r.	| t' | | f f  qH | t( | | f f  qH q~
| d  r3
d } x> |   } | d  k r	t d  n  | d# k r	Pn  | | } q_	d } | s	t d    n  t" |  r
| j# j |  } | d  k r0
d% j$ |  } t |   q0
q{
y t |  } Wq{
t) k
 r/
t d+  q{
Xq~
|  j	 t* k rN
t d&  n  x- |  j	 t* k rz
| j t* |   B| _ qQ
Wn  | r| d k r
d  } n | j+ |  } | r
t, |  | |  } n t& |  |  } | d#  s
t d)  n  | d  k	 r| j- |  n  | t. | | f f  qx |   } | d  k rCt d&  n  | d# k rSPn  t d,  q"qH | d k r| t t/ f  qH | d- k r| j t t0 f  qH | r| d d k rt1 |  | |  }  | |   qH t d.  qH | S(1   Nt   #s   
i    t   [t   ^t   ]s   \s$   unexpected end of regular expressiont   -i   s   bad character rangei   t   ?R    t   +t   {t   }t    t   ,s"   the repetition number is too larges   bad repeat intervals   not supportedis   nothing to repeats   multiple repeatt   .t   (t   Pt   <s   unterminated namet   >s   missing group names   bad character in group name %rt   =R~   s&   bad character in backref group name %rs   unknown group name: {0!r}s   unexpected end of patterns   unknown specifier: ?P%st   :s   unbalanced parenthesiss   syntax errors   bad character in group names   unknown extensiont   $s   parser error(   Ns   
(   i    i   (2   R    R   R   R_   R8   t   _PATTERNENDERSt   _ASSERTCHARSt   _LOOKBEHINDASSERTCHARSt   _REPEATCODESRY   R   R   t   SRE_FLAG_VERBOSEt
   WHITESPACEt   SPECIAL_CHARSRC   Rt   t   NEGATERx   R   R(   RB   RD   t   REPEAT_CHARSRH   Ra   Rs   Rb   Rq   t   OverflowErrort   ATRF   RG   RA   Rm   R   t   formatRy   R   t   ASSERTt
   ASSERT_NOTRu   t   FLAGSR   R   R   RM   t   AT_BEGINNINGt   AT_ENDR|   (!   Rv   Rz   R   R   t	   sourcegetR   t   _lent   PATTERNENDERSt   ASSERTCHARSt   LOOKBEHINDASSERTCHARSRR   R`   R   R   t   startt   code1t   code2RO   RP   RJ   RK   t   hereR   R{   R   R3   R[   R   t   msgt   dirt   pt   condnameR>   (    (    s   /usr/lib/python2.7/sre_parse.pyR     s   										
 

&:
	-				
				i    c         C   s   t  |   } | d  k r$ t   } n  | | _ |  | _ t | | d  } | j   } | d k rl t d  n | r~ t d  n  | t @r | j	   n  | t
 @r | j j t
 @r t |  | j j  S| S(   Ni    R~   s   unbalanced parenthesiss-   bogus characters at end of regular expression(   RV   R   R   R   t   strR   R   R   t   SRE_FLAG_DEBUGR+   R   R!   t   parse(   R   R   R!   Rv   R   t   tail(    (    s   /usr/lib/python2.7/sre_parse.pyR     s     		
c         C   s  t  |   } | j } g  } | j } | | d  } |  d  } t |  t d  k r^ t } n t } x|   }	 |	 d  k r Pn  |	 r!|	 d d k r!|	 d d !}
 |
 d k rd } | j d  rxA |   } | d  k r t d	  n  | d
 k r Pn  | | } q n  | st d  n  y( t	 |  } | d k  rAt d  n  Wni t
 k
 rt |  sjt d  n  y | j | } Wqt k
 rd j |  } t |   qXn X| t | f  q+|
 d k r/| j t k r|	 |   }	 | j t k r|	 |   }	 qn  | | t	 |	 d d  d @  q+|
 t k rt } | j t k r|	 |   }	 |
 t k r|	 d t k r| j t k r|	 |   }	 t } | | t	 |	 d d  d @  qn  | s| t t	 |	 d  f  qq+y | t |	 d  }	 Wn t k
 rn X| |	  qg | |	  qg d } g  } | j } d  g t |  } xG | D]? \ }
 } |
 t k r| | | f  n
 | | | <| d } q]W| | f S(   Nc         S   sM   | r9 | d d t  k r9 t  | d d |  f | d <n | t  |  f  d  S(   Nii    i   (   RC   (   t   literalR   t   pappend(    (    s   /usr/lib/python2.7/sre_parse.pyR     s    i    R   s   \i   i   t   gR   s   unterminated group nameR   s   missing group names   negative group numbers   bad character in group names   unknown group name: {0!r}Rh   i   i   (   RV   R   R   t   typet   chrt   unichrR   R_   R   Rq   Ru   Rm   t
   groupindext   KeyErrorR   RZ   t   MARKRY   Rr   Rs   Rk   Rl   Rn   R8   (   Rv   R!   R   t   sgetR   R2   R   t   sept   makecharR`   R\   R   R[   R:   R   t   isoctalR   R   t   groupsappendt   literals(    (    s   /usr/lib/python2.7/sre_parse.pyt   parse_template  s    		
			$' 	
c   	      C   s   | j  } | j d  } |  \ } } | } yG x@ | D]8 \ } } | |  | | <} | d  k r3 t d  q3 q3 WWn t k
 r t d  n X| j |  S(   Ni    s   unmatched groups   invalid group reference(   R{   RW   R   R   RZ   t   join(	   t   templateR_   R   R   R   R   R:   R{   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt   expand_template"  s    	(8   t   __doc__t   syst   sre_constantsR   R   R   Rs   Rr   Rp   R   RC   Rt   Rn   R   t   AT_BEGINNING_STRINGt   AT_BOUNDARYt   AT_NON_BOUNDARYR(   RE   t   CATEGORY_DIGITt   CATEGORY_NOT_DIGITt   CATEGORY_SPACEt   CATEGORY_NOT_SPACEt   CATEGORY_WORDt   CATEGORY_NOT_WORDt   AT_END_STRINGRo   t   SRE_FLAG_IGNORECASEt   SRE_FLAG_LOCALEt   SRE_FLAG_MULTILINEt   SRE_FLAG_DOTALLR   t   SRE_FLAG_TEMPLATEt   SRE_FLAG_UNICODER   R   R    RV   Rg   Rj   Rm   Rx   R|   R   R   R   R   R   RF   RG   R   R   R   R   R   R   (    (    (    s   /usr/lib/python2.7/sre_parse.pyt   <module>   sn   

b!					 	,;		 +	X