
    $g                    6   U d Z ddlmZ ddlmZ ddlmZmZ  ed          Zde	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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d0dd1d2i d3dd4dd5dd6dd7dd8dd9dd:dd;d<d=d>d?d@dAddBddCddDddEddFdGi dHddId&dJdKdLddMddNdOdPddQddRddSddTddUddVddWddXddYdZ
dZe	d[<   dZd\e	d]<    G d^ d_e          ZefdddbZdcS )ez
    babel.messages.plurals
    ~~~~~~~~~~~~~~~~~~~~~~

    Plural form definitions.

    :copyright: (c) 2013-2024 by the Babel Team.
    :license: BSD, see LICENSE for more details.
    )annotations)
itemgetter)Localedefault_localeLC_CTYPE
str | None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zhzdict[str, tuple[int, str]]PLURALSztuple[int, str]DEFAULT_PLURALc                      e Zd ZdZdZ e ed          d          Z e ed          d          Z ed d	          Z	ddZ
dS )_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j         |  S )Nznplurals={}; plural={};)format)xs    V/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/babel/messages/plurals.py<lambda>z_PluralTuple.<lambda>   s    &F&?&F&J     z9
    The plural expression used by the catalog or locale.returnstrc                    | j         S )N)plural_forms)selfs    r\   __str__z_PluralTuple.__str__   s      r^   N)r_   r`   )__name__
__module____qualname____doc__	__slots__propertyr   num_pluralsplural_exprrb   rd   rW   r^   r\   rV   rV      s        **I(::a== /1 2 2 2K(::a== /1 2 2 2K8JJ Q< = = =L! ! ! ! ! !r^   rV   localer_   c                    t          j        |           } 	 t          t          |                    }n;# t          $ r. 	 t          | j                 }n# t          $ r
 t          }Y nw xY wY nw xY wt          |          S )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   parserS   r`   KeyErrorlanguagerT   rV   )rm   tups     r\   
get_pluralrs      s    4 \&!!F!c&kk" ! ! !	!&/*CC 	! 	! 	! CCC	!!
 s2   1 
A)AA)A# A)"A##A)(A)N)rm   r   r_   rV   )rh   
__future__r   operatorr   
babel.corer   r   r   __annotations__rS   rT   tuplerV   rs   rW   r^   r\   <module>ry      s     # " " " " "       - - - - - - - -
 &~j11 1 1 1 1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' 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' t' 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' t' 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' t' t t t tn #2 1 1 1 1! ! ! ! !5 ! ! ! %- " " " " " " "r^   