
    ƪb                        d Z ddlmZmZ ddlmZ  ed      Zi ddddd	d
dddddddddd
ddddddddddddddddddi ddddddd dd!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i d1dd2dd3dd4dd5dd6dd7dd8dd9d:d;d<d=d>d?dd@ddAddBddCddDdEi dFddGd$dHdIdJd
dKddLdMdNd
dOddPddQddRddSd
dTddUddVddWdZdZ G dX dYe	      Z
efdZZy[)\z
    babel.messages.plurals
    ~~~~~~~~~~~~~~~~~~~~~~

    Plural form definitions.

    :copyright: (c) 2013-2022 by the Babel Team.
    :license: BSD, see LICENSE for more details.
    )default_localeLocale)
itemgetterLC_CTYPEaf)   z(n != 1)ar)   z[(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=0 && n%100<=2 ? 4 : 5)be)   zR(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)bgbnbo)   0br)r
   a&  (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)bscacs)r   z%((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2)cvcy)   z/(n==1 ? 1 : n==2 ? 2 : n==3 ? 3 : n==6 ? 4 : 0)dadedzeleneoeseteufafifr)r   z(n > 1)furga)r   z@(n==1 ? 0 : n==2 ? 1 : n>=3 && n<=6 ? 2 : n>=7 && n<=10 ? 3 : 4)glhahehihrhuhyis)r   z(n%10==1 && n%100!=11 ? 0 : 1)itjakakgkmkokulolt)r   zG(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)lv)r   z+(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)mt)   zS(n==1 ? 0 : n==0 || ( n%100>=1 && n%100<=10) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3)nbnlnnnopapl)r   zB(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)ptpt_BRro)r   z8(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2)rusksl)r:   z<(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)srstsvthtrukvevixhzhc                   p    e Zd ZdZdZ e ed      d      Z e ed      d      Z ed d	      Z	d
 Z
y)_PluralTuplez A tuple with plural information. r   z.
    The number of plurals used by the locale.)docr   z.
    The plural expression used by the locale.c                     d| z  S )Nznplurals=%s; plural=%s;rS   )xs    8/usr/lib/python3/dist-packages/babel/messages/plurals.py<lambda>z_PluralTuple.<lambda>   s    &?!&C     z9
    The plural expression used by the catalog or locale.c                     | j                   S )N)plural_forms)selfs    rW   __str__z_PluralTuple.__str__   s       rY   N)__name__
__module____qualname____doc__	__slots__propertyr   num_pluralsplural_exprr[   r]   rS   rY   rW   rR   rR      sL    *I:a= /1 2K:a= /1 2KC J< =L!rY   rR   c                     t        j                  |       } 	 t        t        |          }t        |      S # t        $ r7 	 t        | j
                     }n# t        $ r	 t        }Y nw xY wY t        |      S w xY w)a  A 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;'
    )r   parsePLURALSstrKeyErrorlanguageDEFAULT_PLURALrR   )localetups     rW   
get_pluralro      su    4 \\&!F!c&k"   !	!&//*C 	! C	!!s2   4 	A4AA4A$!A4#A$$A43A4N)ra   
babel.corer   r   operatorr   r   rh   rl   tuplerR   ro   rS   rY   rW   <module>rs      s>   .  *%t 	/t  	
l!t8 	
c9t< 	/=tL 	/MtP 	(QtT 	 Utb 	
cctf 	/gtz 	
6{tB 	(CtF 	
@GtJ 	/KtN 	/OtV 	(WtZ 	/[t^ 	/_tb 	/ctf 	/gtj 	/ktn 	/otr 	(stv 	/wtz 	.{t~ 
>tB 	
QCtF 	/GtJ 	/KtN 	/OtR 	/StV 	
cWtZ 	([t^ 	(_tb 	
/ctf 	/gtj 	(ktn 	(otr 	/stv 	(wtz 	({t~ 	/tB 	(CtF 	
XGtJ 	
<KtN 	
dOtR 	/StV 	/WtZ 	/[t^ 	/_tb 	/ctf 	
Sgtj 	/ktn ^otr 	
Istv 	
cwtz 	
6{t~ 	
MtB 	
cCtF 	/GtJ 	/KtN 	(OtR 	(StV 	
cWtZ 	/[t^ 	(_tb 	/ctf 	(gtn !!5 !  "rY   