Efc @sdZddlmZejdks+tdZeddddd d d d d ddg eddZdZ idd6dd6dd6dd6dd6dd6dd 6d!d"6d#d$6d%d&6d'd(6d)d*6d+d,6d-d.6d/d06d1d26d3d46d5d66d7d86d9d:6d'd;6d<d=6d>d?6d@dA6dBdC6dDdE6dFdG6dHdI6dJdK6dLdM6dNdO6dPdQ6dRdS6dTdU6dVdW6dXdY6dZd[6d\d]6d^d_6d`da6dbdc6dTdd6dVde6dXdf6dZdg6d\dh6d^di6d`dj6dbdk6dldm6dndo6dpdq6drds6dtdu6dvdw6dxdy6dzd{6dld|6dnd}6dpd~6drd6dtd6dvd6dxd6dzd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d#d6dd6dd6dd6d%d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d5d6dd6dd6dd6dd 6d d 6d d 6dd6dd6dd6dd6dd6dd6dd6dd6dd6d d!6d"d#6d$d%6d&d'6d(d)6d d*6d+d,6d-d.6d/d06d1d26d3d46d5d66d7d86d9d:6d7d;6d<d=6d>d?6d@dA6dBdC6dDdE6dBdF6dGdH6dIdJ6dKdL6dMdN6dOdP6dQdR6dSdT6dUdV6dWdX6dYdZ6d[d\6d]d^6d_d`6dadb6dcdd6dedf6dgdh6didj6dkdl6dmdn6dodp6dodq6drds6dtdu6dvdw6dxdy6dzd{6d|d}6dd~6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d|d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d|d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d|d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d|d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d|d6dd6dd6dd6dd6dd6dd6dd6dd 6dd 6dd 6dd 6dd 6dd6dd6dd6dd6dd6dd6dd6dd6d|d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd 6dd!6dd"6dd#6dd$6dd%6dd&6dd'6dd(6d|d)6dd*6dd+6dd,6dd-6dd.6dd/6dd06dd16dd26dd36dd46dd56dd66dd76dd86dd96dd:6dd;6dd<6dd=6dd>6dd?6dd@6ddA6ddB6d|dC6ddD6ddE6ddF6ddG6ddH6ddI6ddJ6ddK6ddL6ddM6ddN6ddO6ddP6ddQ6ddR6ddS6ddT6ddU6ddV6ddW6ddX6ddY6ddZ6dd[6dd\6d|d]6dd^6dd_6dd`6dda6ddb6ddc6ddd6dde6ddf6ddg6ddh6ddi6ddj6ddk6ddl6ddm6ddn6ddo6ddp6ddq6ddr6dds6ddt6ddu6ddv6d|dw6ddx6ddy6ddz6dd{6dd|6dd}6dd~6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d|d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d|d6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6d)d6dd6dd6d<d6dd6dd6d+d6dd6d7d6dd6dd6dd6dd6dd6d5d6d9d6d+d6d'd6dd6d-d6d3d6dd6dd6dd6d'd6dd6d)d6dd6dd6d<d6dd6dd6d+d6dd6d7d6dd6dd6dd6dd6dd6d5d6d9d6d+d6d'd6dd6d-d6d3d6dd6dd6dd6d'd6dd6d)d6dd6dd6d<d 6dd 6dd 6d+d 6dd 6d7d6dd6dd6dd6dd6dd6d5d6d9d6d+d6d'd6dd6d-d6d3d6dd6dd6dd6d'd6dd6d)d 6dd!6dd"6d<d#6dd$6dd%6d+d&6dd'6d7d(6dd)6dd*6dd+6dd,6dd-6d5d.6d9d/6d+d06d'd16dd26d-d36d3d46dd56dd66dd76d'd86dd96d)d:6dd;6dd<6d<d=6dd>6dd?6d+d@6ddA6d7dB6ddC6ddD6ddE6ddF6ddG6d5dH6d9dI6d+dJ6d'dK6ddL6d-dM6d3dN6ddO6ddP6ddQ6d'dR6Z dSZ dTZ dUZ dVZdWZdXZedYdZd[d d d\d]dgedd^ed_d`edadbedcddZdeZdfZdgZdhZdiZeedadjZdkZeedldmZdnZedodpdqdrgedsdted_d`ZduZedvgedwdxZdyZdzZd{Z d|S(}sLibrary 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. i(t ucd_3_2_0s3.2.0cCsStj|dkrtSt|}d|ko<dknrEtS|d@dkS(NtCniiii(ii(t unicodedatatcategorytFalsetord(tcodetc((s"/usr/lib64/python2.7/stringprep.pyt in_table_a1 s  iiOii i i i i i i` iiicCst|tkS(N(Rtb1_set(R((s"/usr/lib64/python2.7/stringprep.pyt in_table_b1suμiussiui̇i0uʼniIusiuǰiuιiEu ιizuΐiuΰiuσiuβiuθiuυiuύiuϋiuφiuπiuκiuρiiuεiuեւiuẖiuẗiuẘiuẙiuaʾiuṡiuὐiPuὒiRuὔiTuὖiVuἀιiuἁιiuἂιiuἃιiuἄιiuἅιiuἆιiuἇιiiiiiiiiiuἠιiuἡιiuἢιiuἣιiuἤιiuἥιiuἦιiuἧιiiiiiiiiiuὠιiuὡιiuὢιiuὣιiuὤιiuὥιiuὦιiuὧιiiiiiiiiiuὰιiuαιiuάιiuᾶiuᾶιiiiuὴιiuηιiuήιiuῆiuῆιiiuῒiiuῖiuῗiuῢiiuῤiuῦiuῧiuὼιiuωιiuώιiuῶiuῶιiiursi uci!u°ci!uɛi!u°fi !uhi !i !i !uii!i!uli!uni!unoi!upi!uqi!uri!i!i!usmi !uteli!!utmi"!uzi$!i(!ubi,!i-!uei0!ufi1!umi3!uγi>!i?!udiE!uhpaiq3uauis3uoviu3upai3unai3uμai3umai3ukai3ukbi3umbi3ugbi3upfi3unfi3uμfi3uhzi3ukhzi3umhzi3ughzi3uthzi3i3ukpai3umpai3ugpai3upvi3unvi3uμvi3umvi3ukvi3i3upwi3unwi3uμwi3umwi3ukwi3i3ukωi3umωi3ubqi3uc∕kgi3uco.i3udbi3ugyi3uhpi3ukki3ukmi3uphi3uppmi3upri3usvi3uwbi3uffiufiiufliuffiiuffliustiiuմնiuմեiuմիiuվնiuմխiuaiiiiiiugiiiuji uki i i i uoiiiiiutiuuiuviuwiuxiuyiii4i5i6i7i8i9i:i;i<i=i>i?i@iAiBiCiDiEiFiGiHiIiJiKiLiMihiiijikiliminioipiqirisitiuiviwixiyizi{i|i}i~iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii i i iiiiiiiiiiiiiii8i9i;i<i=i>i@iAiBiCiDiFiJiKiLiMiNiOiPiliminioipiqirisitiuiviwixiyizi{i|i}i~iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii i i i i iiiiiiiiiiiiiiiiiii i!i<i=i>i?i@iAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUipiqirisitiuiviwixiyizi{i|i}i~iiiiiiiiiiiuαiiiuδiiuζiuηiiiiuλiiuνiuξiuοiiiiiuτiiiuχiuψiuωiiiiiiiiiiiiiiiiiiiiiiiiiiii iiiii i!i"i#i$i%i&i'i(i)i*i+i,i-i.i/i0i1i2i3i4iGiViWiXiYiZi[i\i]i^i_i`iaibicidieifigihiiijikiliminiiiiiiiiiiiiiiiiiiiiiiiiiiicCs/tjt|}|dk r%|S|jS(N(t b3_exceptionstgetRtNonetlower(Rtr((s"/usr/lib64/python2.7/stringprep.pyt map_table_b3s cCspt|}tjd|}djg|D]}t|^q+}tjd|}||krh|S|SdS(NtNFKCu(RRt normalizetjoin(tataltbtchtblR((s"/usr/lib64/python2.7/stringprep.pyt map_table_b2s ( cCs |dkS(Nu ((R((s"/usr/lib64/python2.7/stringprep.pyt in_table_c11scCstj|dko|dkS(NtZsu (RR(R((s"/usr/lib64/python2.7/stringprep.pyt in_table_c12scCstj|dkS(NR(RR(R((s"/usr/lib64/python2.7/stringprep.pytin_table_c11_c12scCs%t|dko$tj|dkS(NitCc(RRR(R((s"/usr/lib64/python2.7/stringprep.pyt in_table_c21siiii( i) id ij ip iiisi{cCs?t|}|dkrtStj|dkr5tS|tkS(NiR(RRRRtTruet c22_specials(RR((s"/usr/lib64/python2.7/stringprep.pyt in_table_c22s   cCs%tj|dkp$t|tkS(NR(RRRR!(R((s"/usr/lib64/python2.7/stringprep.pytin_table_c21_c22scCstj|dkS(NtCo(RR(R((s"/usr/lib64/python2.7/stringprep.pyt in_table_c3scCs@t|}|dkrtS|dkr,tSt|d@dkS(Niiii(ii(RRR (RR((s"/usr/lib64/python2.7/stringprep.pyt in_table_c4s    cCstj|dkS(NtCs(RR(R((s"/usr/lib64/python2.7/stringprep.pyt in_table_c5sicCst|tkS(N(Rtc6_set(R((s"/usr/lib64/python2.7/stringprep.pyt in_table_c6si/i/cCst|tkS(N(Rtc7_set(R((s"/usr/lib64/python2.7/stringprep.pyt in_table_c7si@iAi i i* i/ cCst|tkS(N(Rtc8_set(R((s"/usr/lib64/python2.7/stringprep.pyt in_table_c8sii icCst|tkS(N(Rtc9_set(R((s"/usr/lib64/python2.7/stringprep.pyt in_table_c9scCstj|dkS(NtRtAL(R1R2(Rt bidirectional(R((s"/usr/lib64/python2.7/stringprep.pyt in_table_d1 scCstj|dkS(NtL(RR3(R((s"/usr/lib64/python2.7/stringprep.pyt in_table_d2sN(!t__doc__RRtunidata_versiontAssertionErrorRtsettrangeR R R RRRRRRR!R"R#R%R&R(R)R*R+R,R-R.R/R0R4R6(((s"/usr/lib64/python2.7/stringprep.pyts~ :      X       2