ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ X\0Xc@s?dZddlmZmZddlmZedZiCdbd6dcd 6ddd 6ded6dfd6dgd6dhd6did6djd6dkd6dld6dmd6dnd6dod6dpd6dqd 6drd!6dsd"6dtd#6dud$6dvd%6dwd&6dxd'6dyd)6dzd*6d{d,6d|d-6d}d.6d~d/6dd06dd16dd26dd36dd56dd66dd76dd86dd96dd:6dd;6dd<6dd=6dd?6ddA6ddD6ddE6ddF6ddG6ddH6ddI6ddK6ddL6ddM6ddO6ddP6ddQ6ddS6ddT6ddU6ddV6ddW6ddX6ddY6ddZ6dd[6dd\6dd]6ZdZd^e fd_YZ ed`Z daS(s babel.messages.plurals ~~~~~~~~~~~~~~~~~~~~~~ Plural form definitions. :copyright: (c) 2013 by the Babel Team. :license: BSD, see LICENSE for more details. i(tdefault_localetLocale(t itemgettertLC_CTYPEis(n != 1)tafis[(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=0 && n%100<=2 ? 4 : 5)tarisR(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)tbetbgtbnit0tbos&(n==1 ? 0 : n%10==1 && n%100!=11 && n%100!=71 && n%100!=91 ? 1 : n%10==2 && n%100!=12 && n%100!=72 && n%100!=92 ? 2 : (n%10==3 || n%10==4 || n%10==9) && n%100!=13 && n%100!=14 && n%100!=19 && n%100!=73 && n%100!=74 && n%100!=79 && n%100!=93 && n%100!=94 && n%100!=99 ? 3 : n%1000000==0 ? 4 : 5)tbrtbstcas%((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2)tcstcvis/(n==1 ? 1 : n==2 ? 2 : n==3 ? 3 : n==6 ? 4 : 0)tcytdatdetdzteltenteotestetteutfatfis(n > 1)tfrtfurs@(n==1 ? 0 : n==2 ? 1 : n>=3 && n<=6 ? 2 : n>=7 && n<=10 ? 3 : 4)tgatglthathethithrthuthys(n%10==1 && n%100!=11 ? 0 : 1)tistittjatkatkgtkmtkotkutlosG(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)tlts+(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)tlvisS(n==1 ? 0 : n==0 || ( n%100=>1 && n%100<=10) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3)tmttnbtnltnntnotpasB(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)tpltpttpt_BRs8(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2)trotrutsks<(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)tsltsrtsttsvtthttrtuktvetvitxhtzht _PluralTuplecBsbeZdZd ZeedddZeedddZedddZdZ RS( s A tuple with plural information.itdocs. The number of plurals used by the locale.is. The plural expression used by the locale.cCsd|S(Nsnplurals=%s; plural=%s;((tx((s:/usr/lib/python2.7/site-packages/babel/messages/plurals.pytts9 The plural expression used by the catalog or locale.cCs|jS(N(t plural_forms(tself((s:/usr/lib/python2.7/site-packages/babel/messages/plurals.pyt__str__s(( t__name__t __module__t__doc__t __slots__tpropertyRt num_pluralst plural_exprRMRO(((s:/usr/lib/python2.7/site-packages/babel/messages/plurals.pyRHs    cCsltj|}ytt|}Wn<tk rayt|j}Wqbtk r]t}qbXnXt|S(sA tuple with the information catalogs need to perform proper pluralization. The first item of the tuple is the number of plural forms, the second the plural expression. >>> get_plural(locale='en') (2, '(n != 1)') >>> get_plural(locale='ga') (5, '(n==1 ? 0 : n==2 ? 1 : n>=3 && n<=6 ? 2 : n>=7 && n<=10 ? 3 : 4)') The object returned is a special tuple with additional members: >>> tup = get_plural("ja") >>> tup.num_plurals 1 >>> tup.plural_expr '0' >>> tup.plural_forms 'nplurals=1; plural=0;' Converting the tuple into a string prints the plural forms for a gettext catalog: >>> str(tup) 'nplurals=1; plural=0;' (RtparsetPLURALStstrtKeyErrortlanguagetDEFAULT_PLURALRH(tlocalettup((s:/usr/lib/python2.7/site-packages/babel/messages/plurals.pyt get_plurals  N(is(n != 1)(is[(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=0 && n%100<=2 ? 4 : 5)(isR(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)(is(n != 1)(is(n != 1)(iR (is&(n==1 ? 0 : n%10==1 && n%100!=11 && n%100!=71 && n%100!=91 ? 1 : n%10==2 && n%100!=12 && n%100!=72 && n%100!=92 ? 2 : (n%10==3 || n%10==4 || n%10==9) && n%100!=13 && n%100!=14 && n%100!=19 && n%100!=73 && n%100!=74 && n%100!=79 && n%100!=93 && n%100!=94 && n%100!=99 ? 3 : n%1000000==0 ? 4 : 5)(isR(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)(is(n != 1)(is%((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2)(iR (is/(n==1 ? 1 : n==2 ? 2 : n==3 ? 3 : n==6 ? 4 : 0)(is(n != 1)(is(n != 1)(iR (is(n != 1)(is(n != 1)(is(n != 1)(is(n != 1)(is(n != 1)(is(n != 1)(iR (is(n != 1)(is(n > 1)(is(n > 1)(is@(n==1 ? 0 : n==2 ? 1 : n>=3 && n<=6 ? 2 : n>=7 && n<=10 ? 3 : 4)(is(n != 1)(is(n != 1)(is(n != 1)(is(n != 1)(isR(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)(iR (iR (is(n%10==1 && n%100!=11 ? 0 : 1)(is(n != 1)(iR (iR (is(n != 1)(iR (iR (is(n != 1)(iR (isG(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)(is+(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)(isS(n==1 ? 0 : n==0 || ( n%100=>1 && n%100<=10) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3)(is(n != 1)(is(n != 1)(is(n != 1)(is(n != 1)(is(n != 1)(isB(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)(is(n != 1)(is(n > 1)(is8(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2)(isR(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)(is%((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2)(is<(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)(isR(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)(is(n != 1)(is(n != 1)(iR (iR (isR(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)(is(n != 1)(iR (is(n != 1)(iR (is(n != 1)( RRt babel.coreRRtoperatorRRRXR\ttupleRHR_(((s:/usr/lib/python2.7/site-packages/babel/messages/plurals.pyt s