m
fIc           @   s  d  Z  d k Z e i d j p t  d   Z e d d d d d d	 d
 d d d d g e d d   Z d   Z h  d d <d d <d d <d d <d d <d d <d d <d  d! <d" d# <d$ d% <d& d' <d( d) <d* d+ <d, d- <d. d/ <d0 d1 <d2 d3 <d4 d5 <d6 d7 <d8 d9 <d: d' <d; d< <d= d> <d? d@ <dA dB <dC dD <dE dF <dG dH <dI dJ <dK dL <dM dN <dO dP <dQ dR <dS dT <dU dV <dW dX <dY dZ <d[ d\ <d] d^ <d_ d` <da db <dc dT <dd dV <de dX <df dZ <dg d\ <dh d^ <di d` <dj db <dk dl <dm dn <do dp <dq dr <ds dt <du dv <dw dx <dy dz <d{ dl <d| dn <d} dp <d~ dr <d dt <d dv <d dx <d dz <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d# <d d <d d <d d <d d% <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d <d d5 <dd<dd<dd<dd<d	d
<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd<dd <d!d"<d#d$<d%d&<d'd(<d)d
<d*d+<d,d-<d.d/<d0d1<d2d3<d4d5<d6d7<d8d9<d:d7<d;d<<d=d><d?d@<dAdB<dCdD<dEdB<dFdG<dHdI<dJdK<dLdM<dNdO<dPdQ<dRdS<dTdU<dVdW<dXdY<dZd[<d\d]<d^d_<d`da<dbdc<ddde<dfdg<dhdi<djdk<dldm<dndo<dpdo<dqdr<dsdt<dudv<dwdx<dydz<d{d|<d}d <d~d <dd<dd <dd <dd<dd <dd <dd<dd<dd <dd <dd <dd<dd <dd <dd <dd <dd<dd<dd<dd<dd<dd<dd <dd|<dd <dd <dd<dd <dd <dd<dd <dd <dd<dd<dd <dd <dd <dd<dd <dd <dd <dd <dd<dd<dd<dd<dd<dd<dd <dd|<dd <dd <dd<dd <dd <dd<dd <dd <dd<dd<dd <dd <dd <dd<dd <dd <dd <dd <dd<dd<dd<dd<dd<dd<dd <dd|<dd <dd<dd<dd<dd<dd <dd<dd <dd <dd <dd<dd<dd<dd<dd<dd<dd <dd|<dd <dd <dd<dd <dd <dd<dd <dd <dd<dd<dd <dd <dd <dd<dd <dd <dd <dd <dd<dd<dd<dd<dd<dd<dd <d d|<dd <dd<dd <dd <dd<dd<dd<dd <d	d <d
d <dd<dd <dd <dd <dd<dd<dd<dd<dd<dd<dd|<dd <dd<dd <dd <dd<dd <dd<dd<dd <dd <d d<d!d <d"d<d#d<d$d<d%d<d&d<d'd<d(d|<d)d <d*d <d+d<d,d <d-d <d.d<d/d <d0d <d1d<d2d<d3d <d4d <d5d <d6d<d7d <d8d <d9d <d:d <d;d<d<d<d=d<d>d<d?d<d@d<dAd <dBd|<dCd <dDd <dEd<dFd <dGd <dHd<dId <dJd <dKd<dLd<dMd <dNd <dOd <dPd<dQd <dRd <dSd <dTd <dUd<dVd<dWd<dXd<dYd<dZd<d[d <d\d|<d]d <d^d <d_d<d`d <dad <dbd<dcd <ddd <ded<dfd<dgd <dhd <did <djd<dkd <dld <dmd <dnd <dod<dpd<dqd<drd<dsd<dtd<dud <dvd|<dwd <dxd <dyd<dzd <d{d <d|d<d}d <d~d <dd<dd<dd <dd <dd <dd<dd <dd <dd <dd <dd<dd<dd<dd<dd<dd<dd <dd|<dd <dd <dd<dd <dd <dd<dd <dd <dd<dd<dd <dd <dd <dd<dd <dd <dd <dd <dd<dd<dd<dd<dd<dd<dd <dd|<dd <dd <dd<dd <dd <dd<dd <dd <dd<dd<dd <dd <dd <dd<dd <dd <dd <dd <dd<dd<dd<dd<dd<dd<dd <dd<dd) <dd <dd<dd< <dd<dd<dd+ <dd <dd7 <dd<dd <dd<dd<dd<dd5 <dd9 <dd+ <dd' <dd<dd- <dd3 <dd<dd<dd<dd' <dd<dd) <dd <dd<dd< <dd<dd<dd+ <dd <dd7 <dd<dd <dd<dd<dd<dd5 <dd9 <dd+ <dd' <dd<dd- <dd3 <d d<dd<dd<dd' <dd<dd) <dd <dd<dd< <d	d<d
d<dd+ <dd <dd7 <dd<dd <dd<dd<dd<dd5 <dd9 <dd+ <dd' <dd<dd- <dd3 <dd<dd<dd<dd' <dd<dd) <d d <d!d<d"d< <d#d<d$d<d%d+ <d&d <d'd7 <d(d<d)d <d*d<d+d<d,d<d-d5 <d.d9 <d/d+ <d0d' <d1d<d2d- <d3d3 <d4d<d5d<d6d<d7d' <d8d<d9d) <d:d <d;d<d<d< <d=d<d>d<d?d+ <d@d <dAd7 <dBd<dCd <dDd<dEd<dFd<dGd5 <dHd9 <dId+ <dJd' <dKd<dLd- <dMd3 <dNd<dOd<dPd<dQd' <Z	 dR  Z
 dS  Z dT  Z dU  Z dV  Z dW  Z e dXdYdZd d d[d\d g e d d] e d^d_ e d`da e dbdc  Z dd  Z de  Z df  Z dg  Z dh  Z e e d`di  Z dj  Z e e dkdl  Z dm  Z e dndodpdqg e drds e d^d_  Z dt  Z e dug e dvdw  Z dx  Z dy  Z dz  Z d S({  s   Library that exposes various tables found in the StringPrep RFC 3454.

There are two kinds of tables: sets, for which a member test is provided,
and mappings, for which a mapping function is provided.
Ns   3.2.0c         C   s^   t  i |   d j o t Sn t |   } d | j o
 d j  n o t Sn | d @d j S(   Nt   Cni  i  i  i  (   i  i  (   t   unicodedatat   categoryt   codet   Falset   ordt   c(   R   R   (    (    t'   /mit/python/lib/python2.4/stringprep.pyt   in_table_a1   s      i   iO  i  i  i  i  i   i   i   i`   i  i   i  c         C   s   t  |   t j S(   N(   R   R   t   b1_set(   R   (    (    R   t   in_table_b1   s    i   u   μi   u   ssi0  u   i̇iI  u   ʼni  u   si  u   ǰiE  u   ιiz  u    ιi  u   ΐi  u   ΰi  u   σi  u   βi  u   θi  u   υi  u   ύi  u   ϋi  u   φi  u   πi  u   κi  u   ρi  i  u   εi  u   եւi  u   ẖi  u   ẗi  u   ẘi  u   ẙi  u   aʾi  u   ṡiP  u   ὐiR  u   ὒiT  u   ὔiV  u   ὖi  u   ἀιi  u   ἁιi  u   ἂιi  u   ἃιi  u   ἄιi  u   ἅιi  u   ἆιi  u   ἇιi  i  i  i  i  i  i  i  i  u   ἠιi  u   ἡιi  u   ἢιi  u   ἣιi  u   ἤιi  u   ἥιi  u   ἦιi  u   ἧιi  i  i  i  i  i  i  i  i  u   ὠιi  u   ὡιi  u   ὢιi  u   ὣιi  u   ὤιi  u   ὥιi  u   ὦιi  u   ὧιi  i  i  i  i  i  i  i  i  u   ὰιi  u   αιi  u   άιi  u   ᾶi  u   ᾶιi  i  i  u   ὴιi  u   ηιi  u   ήιi  u   ῆi  u   ῆιi  i  u   ῒi  i  u   ῖi  u   ῗi  u   ῢi  i  u   ῤi  u   ῦi  u   ῧi  u   ὼιi  u   ωιi  u   ώιi  u   ῶi  u   ῶιi  i   u   rsi!  u   ci!  u   °ci!  u   ɛi	!  u   °fi!  u   hi!  i!  i!  u   ii!  i!  u   li!  u   ni!  u   noi!  u   pi!  u   qi!  u   ri!  i!  i !  u   smi!!  u   teli"!  u   tmi$!  u   zi(!  i,!  u   bi-!  i0!  u   ei1!  u   fi3!  u   mi>!  u   γi?!  iE!  u   diq3  u   hpais3  u   auiu3  u   ovi3  u   pai3  u   nai3  u   μai3  u   mai3  u   kai3  u   kbi3  u   mbi3  u   gbi3  u   pfi3  u   nfi3  u   μfi3  u   hzi3  u   khzi3  u   mhzi3  u   ghzi3  u   thzi3  i3  u   kpai3  u   mpai3  u   gpai3  u   pvi3  u   nvi3  u   μvi3  u   mvi3  u   kvi3  i3  u   pwi3  u   nwi3  u   μwi3  u   mwi3  u   kwi3  i3  u   kωi3  u   mωi3  u   bqi3  u   c∕kgi3  u   co.i3  u   dbi3  u   gyi3  u   hpi3  u   kki3  u   kmi3  u   phi3  u   ppmi3  u   pri3  u   svi3  u   wbi   u   ffi  u   fii  u   fli  u   ffii  u   ffli  u   sti  i  u   մնi  u   մեi  u   միi  u   վնi  u   մխi  u   ai i i i i i u   gi i i	 u   ji
 u   ki i i i u   oi i i i i u   ti u   ui u   vi u   wi u   xi u   yi i4 i5 i6 i7 i8 i9 i: i; i< i= i> i? i@ iA iB iC iD iE iF iG iH iI iJ iK iL iM ih ii ij ik il im in io ip iq ir is it iu iv iw ix iy iz i{ i| i} i~ i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i	 i
 i i i i i i i i i i i i i i i i8 i9 i; i< i= i> i@ iA iB iC iD iF iJ iK iL iM iN iO iP il im in io ip iq ir is it iu iv iw ix iy iz i{ i| i} i~ i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i	 i
 i i i i i i i i i i i i i i i i i i i i i i  i! i< i= i> i? i@ iA iB iC iD iE iF iG iH iI iJ iK iL iM iN iO iP iQ iR iS iT iU ip iq ir is it iu iv iw ix iy iz i{ i| i} i~ i i i i i i i i i i i i u   αi i i u   δi i u   ζi u   ηi i i i u   λi i u   νi u   ξi u   οi i i i i u   τi i i u   χi u   ψi u   ωi i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i  i! i" i# i$ i% i& i' i( i) i* i+ i, i- i. i/ i0 i1 i2 i3 i4 iG iV iW iX iY iZ i[ i\ i] i^ i_ i` ia ib ic id ie if ig ih ii ij ik il im in i i i i i i i i i i i i i i i i i i i i i i i i i i i c         C   s4   t  i t |    } | d  j	 o | Sn |  i   S(   N(   t   b3_exceptionst   getR   R   t   rt   Nonet   lower(   R   R   (    (    R   t   map_table_b3   s     c         C   s}   t  |   } t i d |  } d i g  } | D] } | t  |  q/ ~  } t i d |  } | | j o | Sn | Sd  S(   Nt   NFKCu    (   R   t   at   alR   t	   normalizet   bt   joint   _[1]t   cht   blR   (   R   R   R   R   R   R   R   (    (    R   t   map_table_b2   s    0c         C   s
   |  d j S(   Nu    (   R   (   R   (    (    R   t   in_table_c11   s    c         C   s    t  i |   d j o
 |  d j S(   Nt   Zsu    (   R   R   R   (   R   (    (    R   t   in_table_c12   s    c         C   s   t  i |   d j S(   NR   (   R   R   R   (   R   (    (    R   t   in_table_c11_c12   s    c         C   s&   t  |   d j  o t i |   d j S(   Ni   t   Cc(   R   R   R   R   (   R   (    (    R   t   in_table_c21   s    i  i  i  i(   i)   id   ij   ip   i  i  is i{ c         C   sI   t  |   } | d j  o t Sn t i |   d j o t Sn | t j S(   Ni   R   (   R   R   R   R   R   R   t   Truet   c22_specials(   R   R   (    (    R   t   in_table_c22   s      c         C   s&   t  i |   d j p t |   t j S(   NR   (   R   R   R   R   R"   (   R   (    (    R   t   in_table_c21_c22   s    c         C   s   t  i |   d j S(   Nt   Co(   R   R   R   (   R   (    (    R   t   in_table_c3   s    c         C   sJ   t  |   } | d j  o t Sn | d j  o t Sn t  |   d @d j S(   Ni  i  i  i  (   i  i  (   R   R   R   R   R!   (   R   R   (    (    R   t   in_table_c4   s      c         C   s   t  i |   d j S(   Nt   Cs(   R   R   R   (   R   (    (    R   t   in_table_c5   s    i  c         C   s   t  |   t j S(   N(   R   R   t   c6_set(   R   (    (    R   t   in_table_c6   s    i/  i/  c         C   s   t  |   t j S(   N(   R   R   t   c7_set(   R   (    (    R   t   in_table_c7   s    i@  iA  i   i   i*   i/   c         C   s   t  |   t j S(   N(   R   R   t   c8_set(   R   (    (    R   t   in_table_c8  s    i  i   i  c         C   s   t  |   t j S(   N(   R   R   t   c9_set(   R   (    (    R   t   in_table_c9  s    c         C   s   t  i |   d j S(   Nt   Rt   AL(   R2   R3   (   R   t   bidirectionalR   (   R   (    (    R   t   in_table_d1  s    c         C   s   t  i |   d j S(   Nt   L(   R   R4   R   (   R   (    (    R   t   in_table_d2  s    (    t   __doc__R   t   unidata_versiont   AssertionErrorR   t   sett   rangeR	   R
   R   R   R   R   R   R   R    R"   R#   R$   R&   R'   R)   R*   R+   R,   R-   R.   R/   R0   R1   R5   R7   (   R    R#   R	   R,   R1   R/   R)   R'   R   R+   R*   R-   R&   R   R   R   R.   R0   R   R   R   R
   R5   R7   R$   R   R"   (    (    R   t   ?   sd   		:	                      						X							2			