intl_pluralrules/
rules.rs

1#![allow(unused_variables, unused_parens)]
2#![cfg_attr(feature = "cargo-clippy", allow(clippy::float_cmp))]
3#![cfg_attr(feature = "cargo-clippy", allow(clippy::unreadable_literal))]
4#![cfg_attr(feature = "cargo-clippy", allow(clippy::nonminimal_bool))]
5use super::operands::PluralOperands;
6use super::PluralCategory;
7use unic_langid::subtags;
8use unic_langid::LanguageIdentifier;
9pub type PluralRule = fn(&PluralOperands) -> PluralCategory;
10pub static CLDR_VERSION: usize = 37;
11macro_rules! langid {
12    ( $ lang : expr , $ script : expr , $ region : expr ) => {{
13        unsafe { LanguageIdentifier::from_raw_parts_unchecked($lang, $script, $region, None) }
14    }};
15}
16pub const PRS_CARDINAL: &[(LanguageIdentifier, PluralRule)] = &[
17    (
18        langid!(subtags::Language::from_raw_unchecked(26209u64), None, None),
19        |po| {
20            if (po.n == 1.0) {
21                PluralCategory::ONE
22            } else {
23                PluralCategory::OTHER
24            }
25        },
26    ),
27    (
28        langid!(subtags::Language::from_raw_unchecked(27489u64), None, None),
29        |po| {
30            if ((0..=1).contains(&(po.i)) && po.f == 0) {
31                PluralCategory::ONE
32            } else {
33                PluralCategory::OTHER
34            }
35        },
36    ),
37    (
38        langid!(subtags::Language::from_raw_unchecked(28001u64), None, None),
39        |po| {
40            if (po.i == 0) || (po.n == 1.0) {
41                PluralCategory::ONE
42            } else {
43                PluralCategory::OTHER
44            }
45        },
46    ),
47    (
48        langid!(subtags::Language::from_raw_unchecked(28257u64), None, None),
49        |po| {
50            if (po.n == 1.0) {
51                PluralCategory::ONE
52            } else {
53                PluralCategory::OTHER
54            }
55        },
56    ),
57    (
58        langid!(subtags::Language::from_raw_unchecked(29281u64), None, None),
59        |po| {
60            if ((3..=10).contains(&(po.i))) {
61                PluralCategory::FEW
62            } else if ((11..=99).contains(&(po.i))) {
63                PluralCategory::MANY
64            } else if (po.n == 1.0) {
65                PluralCategory::ONE
66            } else if (po.n == 2.0) {
67                PluralCategory::TWO
68            } else if (po.n == 0.0) {
69                PluralCategory::ZERO
70            } else {
71                PluralCategory::OTHER
72            }
73        },
74    ),
75    (
76        langid!(
77            subtags::Language::from_raw_unchecked(7565921u64),
78            None,
79            None
80        ),
81        |po| {
82            if ((3..=10).contains(&(po.i))) {
83                PluralCategory::FEW
84            } else if ((11..=99).contains(&(po.i))) {
85                PluralCategory::MANY
86            } else if (po.n == 1.0) {
87                PluralCategory::ONE
88            } else if (po.n == 2.0) {
89                PluralCategory::TWO
90            } else if (po.n == 0.0) {
91                PluralCategory::ZERO
92            } else {
93                PluralCategory::OTHER
94            }
95        },
96    ),
97    (
98        langid!(subtags::Language::from_raw_unchecked(29537u64), None, None),
99        |po| {
100            if (po.i == 0) || (po.n == 1.0) {
101                PluralCategory::ONE
102            } else {
103                PluralCategory::OTHER
104            }
105        },
106    ),
107    (
108        langid!(
109            subtags::Language::from_raw_unchecked(6386529u64),
110            None,
111            None
112        ),
113        |po| {
114            if (po.n == 1.0) {
115                PluralCategory::ONE
116            } else {
117                PluralCategory::OTHER
118            }
119        },
120    ),
121    (
122        langid!(
123            subtags::Language::from_raw_unchecked(7631713u64),
124            None,
125            None
126        ),
127        |po| {
128            if (po.i == 1 && po.v == 0) {
129                PluralCategory::ONE
130            } else {
131                PluralCategory::OTHER
132            }
133        },
134    ),
135    (
136        langid!(subtags::Language::from_raw_unchecked(31329u64), None, None),
137        |po| {
138            if (po.n == 1.0) {
139                PluralCategory::ONE
140            } else {
141                PluralCategory::OTHER
142            }
143        },
144    ),
145    (
146        langid!(subtags::Language::from_raw_unchecked(25954u64), None, None),
147        |po| {
148            if ((2..=4).contains(&(po.i)) && !(12..=14).contains(&(po.i))) {
149                PluralCategory::FEW
150            } else if (po.i % 10 == 0)
151                || ((5..=9).contains(&(po.i)))
152                || ((11..=14).contains(&(po.i)))
153            {
154                PluralCategory::MANY
155            } else if (po.i % 10 == 1 && po.i % 100 != 11) {
156                PluralCategory::ONE
157            } else {
158                PluralCategory::OTHER
159            }
160        },
161    ),
162    (
163        langid!(
164            subtags::Language::from_raw_unchecked(7169378u64),
165            None,
166            None
167        ),
168        |po| {
169            if (po.n == 1.0) {
170                PluralCategory::ONE
171            } else {
172                PluralCategory::OTHER
173            }
174        },
175    ),
176    (
177        langid!(
178            subtags::Language::from_raw_unchecked(8021346u64),
179            None,
180            None
181        ),
182        |po| {
183            if (po.n == 1.0) {
184                PluralCategory::ONE
185            } else {
186                PluralCategory::OTHER
187            }
188        },
189    ),
190    (
191        langid!(subtags::Language::from_raw_unchecked(26466u64), None, None),
192        |po| {
193            if (po.n == 1.0) {
194                PluralCategory::ONE
195            } else {
196                PluralCategory::OTHER
197            }
198        },
199    ),
200    (
201        langid!(
202            subtags::Language::from_raw_unchecked(7301218u64),
203            None,
204            None
205        ),
206        |po| {
207            if ((0..=1).contains(&(po.i)) && po.f == 0) {
208                PluralCategory::ONE
209            } else {
210                PluralCategory::OTHER
211            }
212        },
213    ),
214    (
215        langid!(subtags::Language::from_raw_unchecked(28002u64), None, None),
216        |po| PluralCategory::OTHER,
217    ),
218    (
219        langid!(subtags::Language::from_raw_unchecked(28258u64), None, None),
220        |po| {
221            if (po.i == 0) || (po.n == 1.0) {
222                PluralCategory::ONE
223            } else {
224                PluralCategory::OTHER
225            }
226        },
227    ),
228    (
229        langid!(subtags::Language::from_raw_unchecked(28514u64), None, None),
230        |po| PluralCategory::OTHER,
231    ),
232    (
233        langid!(subtags::Language::from_raw_unchecked(29282u64), None, None),
234        |po| {
235            if ((po.i % 10 == 9 || (3..=4).contains(&(po.i)))
236                && !(10..=19).contains(&(po.i))
237                && !(70..=79).contains(&(po.i))
238                && !(90..=99).contains(&(po.i)))
239            {
240                PluralCategory::FEW
241            } else if (po.n != 0.0 && po.i % 1000000 == 0) {
242                PluralCategory::MANY
243            } else if (po.i % 10 == 1 && po.i % 100 != 11 && po.i % 100 != 71 && po.i % 100 != 91) {
244                PluralCategory::ONE
245            } else if (po.i % 10 == 2 && po.i % 100 != 12 && po.i % 100 != 72 && po.i % 100 != 92) {
246                PluralCategory::TWO
247            } else {
248                PluralCategory::OTHER
249            }
250        },
251    ),
252    (
253        langid!(
254            subtags::Language::from_raw_unchecked(7893602u64),
255            None,
256            None
257        ),
258        |po| {
259            if (po.n == 1.0) {
260                PluralCategory::ONE
261            } else {
262                PluralCategory::OTHER
263            }
264        },
265    ),
266    (
267        langid!(subtags::Language::from_raw_unchecked(29538u64), None, None),
268        |po| {
269            if (po.v == 0 && (2..=4).contains(&(po.i % 10)) && !(12..=14).contains(&(po.i % 100)))
270                || ((2..=4).contains(&(po.f % 10)) && !(12..=14).contains(&(po.f % 100)))
271            {
272                PluralCategory::FEW
273            } else if (po.v == 0 && po.i % 10 == 1 && po.i % 100 != 11)
274                || (po.f % 10 == 1 && po.f % 100 != 11)
275            {
276                PluralCategory::ONE
277            } else {
278                PluralCategory::OTHER
279            }
280        },
281    ),
282    (
283        langid!(subtags::Language::from_raw_unchecked(24931u64), None, None),
284        |po| {
285            if (po.i == 1 && po.v == 0) {
286                PluralCategory::ONE
287            } else {
288                PluralCategory::OTHER
289            }
290        },
291    ),
292    (
293        langid!(subtags::Language::from_raw_unchecked(25955u64), None, None),
294        |po| {
295            if (po.n == 1.0) {
296                PluralCategory::ONE
297            } else {
298                PluralCategory::OTHER
299            }
300        },
301    ),
302    (
303        langid!(
304            subtags::Language::from_raw_unchecked(6448483u64),
305            None,
306            None
307        ),
308        |po| {
309            if (po.v == 0 && (po.i == 1 || po.i == 2 || po.i == 3))
310                || (po.v == 0 && po.i % 10 != 4 && po.i % 10 != 6 && po.i % 10 != 9)
311                || (po.v != 0 && po.f % 10 != 4 && po.f % 10 != 6 && po.f % 10 != 9)
312            {
313                PluralCategory::ONE
314            } else {
315                PluralCategory::OTHER
316            }
317        },
318    ),
319    (
320        langid!(
321            subtags::Language::from_raw_unchecked(6776675u64),
322            None,
323            None
324        ),
325        |po| {
326            if (po.n == 1.0) {
327                PluralCategory::ONE
328            } else {
329                PluralCategory::OTHER
330            }
331        },
332    ),
333    (
334        langid!(
335            subtags::Language::from_raw_unchecked(7497827u64),
336            None,
337            None
338        ),
339        |po| {
340            if (po.n == 1.0) {
341                PluralCategory::ONE
342            } else {
343                PluralCategory::OTHER
344            }
345        },
346    ),
347    (
348        langid!(
349            subtags::Language::from_raw_unchecked(6450019u64),
350            None,
351            None
352        ),
353        |po| {
354            if (po.n == 1.0) {
355                PluralCategory::ONE
356            } else {
357                PluralCategory::OTHER
358            }
359        },
360    ),
361    (
362        langid!(subtags::Language::from_raw_unchecked(29539u64), None, None),
363        |po| {
364            if ((2..=4).contains(&(po.i)) && po.v == 0) {
365                PluralCategory::FEW
366            } else if (po.v != 0) {
367                PluralCategory::MANY
368            } else if (po.i == 1 && po.v == 0) {
369                PluralCategory::ONE
370            } else {
371                PluralCategory::OTHER
372            }
373        },
374    ),
375    (
376        langid!(subtags::Language::from_raw_unchecked(31075u64), None, None),
377        |po| {
378            if (po.n == 3.0) {
379                PluralCategory::FEW
380            } else if (po.n == 6.0) {
381                PluralCategory::MANY
382            } else if (po.n == 1.0) {
383                PluralCategory::ONE
384            } else if (po.n == 2.0) {
385                PluralCategory::TWO
386            } else if (po.n == 0.0) {
387                PluralCategory::ZERO
388            } else {
389                PluralCategory::OTHER
390            }
391        },
392    ),
393    (
394        langid!(subtags::Language::from_raw_unchecked(24932u64), None, None),
395        |po| {
396            if (po.n == 1.0) || (po.t != 0 && (po.i == 0 || po.i == 1)) {
397                PluralCategory::ONE
398            } else {
399                PluralCategory::OTHER
400            }
401        },
402    ),
403    (
404        langid!(subtags::Language::from_raw_unchecked(25956u64), None, None),
405        |po| {
406            if (po.i == 1 && po.v == 0) {
407                PluralCategory::ONE
408            } else {
409                PluralCategory::OTHER
410            }
411        },
412    ),
413    (
414        langid!(
415            subtags::Language::from_raw_unchecked(6452068u64),
416            None,
417            None
418        ),
419        |po| {
420            if (po.v == 0 && (3..=4).contains(&(po.i % 100))) || ((3..=4).contains(&(po.f % 100))) {
421                PluralCategory::FEW
422            } else if (po.v == 0 && po.i % 100 == 1) || (po.f % 100 == 1) {
423                PluralCategory::ONE
424            } else if (po.v == 0 && po.i % 100 == 2) || (po.f % 100 == 2) {
425                PluralCategory::TWO
426            } else {
427                PluralCategory::OTHER
428            }
429        },
430    ),
431    (
432        langid!(subtags::Language::from_raw_unchecked(30308u64), None, None),
433        |po| {
434            if (po.n == 1.0) {
435                PluralCategory::ONE
436            } else {
437                PluralCategory::OTHER
438            }
439        },
440    ),
441    (
442        langid!(subtags::Language::from_raw_unchecked(31332u64), None, None),
443        |po| PluralCategory::OTHER,
444    ),
445    (
446        langid!(subtags::Language::from_raw_unchecked(25957u64), None, None),
447        |po| {
448            if (po.n == 1.0) {
449                PluralCategory::ONE
450            } else {
451                PluralCategory::OTHER
452            }
453        },
454    ),
455    (
456        langid!(subtags::Language::from_raw_unchecked(27749u64), None, None),
457        |po| {
458            if (po.n == 1.0) {
459                PluralCategory::ONE
460            } else {
461                PluralCategory::OTHER
462            }
463        },
464    ),
465    (
466        langid!(subtags::Language::from_raw_unchecked(28261u64), None, None),
467        |po| {
468            if (po.i == 1 && po.v == 0) {
469                PluralCategory::ONE
470            } else {
471                PluralCategory::OTHER
472            }
473        },
474    ),
475    (
476        langid!(subtags::Language::from_raw_unchecked(28517u64), None, None),
477        |po| {
478            if (po.n == 1.0) {
479                PluralCategory::ONE
480            } else {
481                PluralCategory::OTHER
482            }
483        },
484    ),
485    (
486        langid!(subtags::Language::from_raw_unchecked(29541u64), None, None),
487        |po| {
488            if (po.n == 1.0) {
489                PluralCategory::ONE
490            } else {
491                PluralCategory::OTHER
492            }
493        },
494    ),
495    (
496        langid!(subtags::Language::from_raw_unchecked(29797u64), None, None),
497        |po| {
498            if (po.i == 1 && po.v == 0) {
499                PluralCategory::ONE
500            } else {
501                PluralCategory::OTHER
502            }
503        },
504    ),
505    (
506        langid!(subtags::Language::from_raw_unchecked(30053u64), None, None),
507        |po| {
508            if (po.n == 1.0) {
509                PluralCategory::ONE
510            } else {
511                PluralCategory::OTHER
512            }
513        },
514    ),
515    (
516        langid!(subtags::Language::from_raw_unchecked(24934u64), None, None),
517        |po| {
518            if (po.i == 0) || (po.n == 1.0) {
519                PluralCategory::ONE
520            } else {
521                PluralCategory::OTHER
522            }
523        },
524    ),
525    (
526        langid!(subtags::Language::from_raw_unchecked(26214u64), None, None),
527        |po| {
528            if (po.i == 0 || po.i == 1) {
529                PluralCategory::ONE
530            } else {
531                PluralCategory::OTHER
532            }
533        },
534    ),
535    (
536        langid!(subtags::Language::from_raw_unchecked(26982u64), None, None),
537        |po| {
538            if (po.i == 1 && po.v == 0) {
539                PluralCategory::ONE
540            } else {
541                PluralCategory::OTHER
542            }
543        },
544    ),
545    (
546        langid!(
547            subtags::Language::from_raw_unchecked(7104870u64),
548            None,
549            None
550        ),
551        |po| {
552            if (po.v == 0 && (po.i == 1 || po.i == 2 || po.i == 3))
553                || (po.v == 0 && po.i % 10 != 4 && po.i % 10 != 6 && po.i % 10 != 9)
554                || (po.v != 0 && po.f % 10 != 4 && po.f % 10 != 6 && po.f % 10 != 9)
555            {
556                PluralCategory::ONE
557            } else {
558                PluralCategory::OTHER
559            }
560        },
561    ),
562    (
563        langid!(subtags::Language::from_raw_unchecked(28518u64), None, None),
564        |po| {
565            if (po.n == 1.0) {
566                PluralCategory::ONE
567            } else {
568                PluralCategory::OTHER
569            }
570        },
571    ),
572    (
573        langid!(subtags::Language::from_raw_unchecked(29286u64), None, None),
574        |po| {
575            if (po.i == 0 || po.i == 1) {
576                PluralCategory::ONE
577            } else {
578                PluralCategory::OTHER
579            }
580        },
581    ),
582    (
583        langid!(
584            subtags::Language::from_raw_unchecked(7501158u64),
585            None,
586            None
587        ),
588        |po| {
589            if (po.n == 1.0) {
590                PluralCategory::ONE
591            } else {
592                PluralCategory::OTHER
593            }
594        },
595    ),
596    (
597        langid!(subtags::Language::from_raw_unchecked(31078u64), None, None),
598        |po| {
599            if (po.i == 1 && po.v == 0) {
600                PluralCategory::ONE
601            } else {
602                PluralCategory::OTHER
603            }
604        },
605    ),
606    (
607        langid!(subtags::Language::from_raw_unchecked(24935u64), None, None),
608        |po| {
609            if ((3..=6).contains(&(po.i)) && po.f == 0) {
610                PluralCategory::FEW
611            } else if ((7..=10).contains(&(po.i)) && po.f == 0) {
612                PluralCategory::MANY
613            } else if (po.n == 1.0) {
614                PluralCategory::ONE
615            } else if (po.n == 2.0) {
616                PluralCategory::TWO
617            } else {
618                PluralCategory::OTHER
619            }
620        },
621    ),
622    (
623        langid!(subtags::Language::from_raw_unchecked(25703u64), None, None),
624        |po| {
625            if ((3..=10).contains(&(po.i)) && po.f == 0 || (13..=19).contains(&(po.i)) && po.f == 0)
626            {
627                PluralCategory::FEW
628            } else if (po.n == 1.0 || po.n == 11.0) {
629                PluralCategory::ONE
630            } else if (po.n == 2.0 || po.n == 12.0) {
631                PluralCategory::TWO
632            } else {
633                PluralCategory::OTHER
634            }
635        },
636    ),
637    (
638        langid!(subtags::Language::from_raw_unchecked(27751u64), None, None),
639        |po| {
640            if (po.i == 1 && po.v == 0) {
641                PluralCategory::ONE
642            } else {
643                PluralCategory::OTHER
644            }
645        },
646    ),
647    (
648        langid!(
649            subtags::Language::from_raw_unchecked(7828327u64),
650            None,
651            None
652        ),
653        |po| {
654            if (po.n == 1.0) {
655                PluralCategory::ONE
656            } else {
657                PluralCategory::OTHER
658            }
659        },
660    ),
661    (
662        langid!(subtags::Language::from_raw_unchecked(30055u64), None, None),
663        |po| {
664            if (po.i == 0) || (po.n == 1.0) {
665                PluralCategory::ONE
666            } else {
667                PluralCategory::OTHER
668            }
669        },
670    ),
671    (
672        langid!(
673            subtags::Language::from_raw_unchecked(7828839u64),
674            None,
675            None
676        ),
677        |po| {
678            if ((0..=1).contains(&(po.i)) && po.f == 0) {
679                PluralCategory::ONE
680            } else {
681                PluralCategory::OTHER
682            }
683        },
684    ),
685    (
686        langid!(subtags::Language::from_raw_unchecked(30311u64), None, None),
687        |po| {
688            if (po.v == 0
689                && (po.i % 100 == 0
690                    || po.i % 100 == 20
691                    || po.i % 100 == 40
692                    || po.i % 100 == 60
693                    || po.i % 100 == 80))
694            {
695                PluralCategory::FEW
696            } else if (po.v != 0) {
697                PluralCategory::MANY
698            } else if (po.v == 0 && po.i % 10 == 1) {
699                PluralCategory::ONE
700            } else if (po.v == 0 && po.i % 10 == 2) {
701                PluralCategory::TWO
702            } else {
703                PluralCategory::OTHER
704            }
705        },
706    ),
707    (
708        langid!(subtags::Language::from_raw_unchecked(24936u64), None, None),
709        |po| {
710            if (po.n == 1.0) {
711                PluralCategory::ONE
712            } else {
713                PluralCategory::OTHER
714            }
715        },
716    ),
717    (
718        langid!(
719            subtags::Language::from_raw_unchecked(7823720u64),
720            None,
721            None
722        ),
723        |po| {
724            if (po.n == 1.0) {
725                PluralCategory::ONE
726            } else {
727                PluralCategory::OTHER
728            }
729        },
730    ),
731    (
732        langid!(subtags::Language::from_raw_unchecked(25960u64), None, None),
733        |po| {
734            if (po.v == 0 && !(0..=10).contains(&(po.i)) && po.f == 0 && po.i % 10 == 0) {
735                PluralCategory::MANY
736            } else if (po.i == 1 && po.v == 0) {
737                PluralCategory::ONE
738            } else if (po.i == 2 && po.v == 0) {
739                PluralCategory::TWO
740            } else {
741                PluralCategory::OTHER
742            }
743        },
744    ),
745    (
746        langid!(subtags::Language::from_raw_unchecked(26984u64), None, None),
747        |po| {
748            if (po.i == 0) || (po.n == 1.0) {
749                PluralCategory::ONE
750            } else {
751                PluralCategory::OTHER
752            }
753        },
754    ),
755    (
756        langid!(subtags::Language::from_raw_unchecked(29288u64), None, None),
757        |po| {
758            if (po.v == 0 && (2..=4).contains(&(po.i % 10)) && !(12..=14).contains(&(po.i % 100)))
759                || ((2..=4).contains(&(po.f % 10)) && !(12..=14).contains(&(po.f % 100)))
760            {
761                PluralCategory::FEW
762            } else if (po.v == 0 && po.i % 10 == 1 && po.i % 100 != 11)
763                || (po.f % 10 == 1 && po.f % 100 != 11)
764            {
765                PluralCategory::ONE
766            } else {
767                PluralCategory::OTHER
768            }
769        },
770    ),
771    (
772        langid!(
773            subtags::Language::from_raw_unchecked(6452072u64),
774            None,
775            None
776        ),
777        |po| {
778            if (po.v == 0 && (3..=4).contains(&(po.i % 100))) || ((3..=4).contains(&(po.f % 100))) {
779                PluralCategory::FEW
780            } else if (po.v == 0 && po.i % 100 == 1) || (po.f % 100 == 1) {
781                PluralCategory::ONE
782            } else if (po.v == 0 && po.i % 100 == 2) || (po.f % 100 == 2) {
783                PluralCategory::TWO
784            } else {
785                PluralCategory::OTHER
786            }
787        },
788    ),
789    (
790        langid!(subtags::Language::from_raw_unchecked(30056u64), None, None),
791        |po| {
792            if (po.n == 1.0) {
793                PluralCategory::ONE
794            } else {
795                PluralCategory::OTHER
796            }
797        },
798    ),
799    (
800        langid!(subtags::Language::from_raw_unchecked(31080u64), None, None),
801        |po| {
802            if (po.i == 0 || po.i == 1) {
803                PluralCategory::ONE
804            } else {
805                PluralCategory::OTHER
806            }
807        },
808    ),
809    (
810        langid!(subtags::Language::from_raw_unchecked(24937u64), None, None),
811        |po| {
812            if (po.i == 1 && po.v == 0) {
813                PluralCategory::ONE
814            } else {
815                PluralCategory::OTHER
816            }
817        },
818    ),
819    (
820        langid!(subtags::Language::from_raw_unchecked(25705u64), None, None),
821        |po| PluralCategory::OTHER,
822    ),
823    (
824        langid!(subtags::Language::from_raw_unchecked(26473u64), None, None),
825        |po| PluralCategory::OTHER,
826    ),
827    (
828        langid!(subtags::Language::from_raw_unchecked(26985u64), None, None),
829        |po| PluralCategory::OTHER,
830    ),
831    (
832        langid!(subtags::Language::from_raw_unchecked(28265u64), None, None),
833        |po| PluralCategory::OTHER,
834    ),
835    (
836        langid!(subtags::Language::from_raw_unchecked(28521u64), None, None),
837        |po| {
838            if (po.i == 1 && po.v == 0) {
839                PluralCategory::ONE
840            } else {
841                PluralCategory::OTHER
842            }
843        },
844    ),
845    (
846        langid!(subtags::Language::from_raw_unchecked(29545u64), None, None),
847        |po| {
848            if (po.t == 0 && po.i % 10 == 1 && po.i % 100 != 11) || (po.t != 0) {
849                PluralCategory::ONE
850            } else {
851                PluralCategory::OTHER
852            }
853        },
854    ),
855    (
856        langid!(subtags::Language::from_raw_unchecked(29801u64), None, None),
857        |po| {
858            if (po.i == 1 && po.v == 0) {
859                PluralCategory::ONE
860            } else {
861                PluralCategory::OTHER
862            }
863        },
864    ),
865    (
866        langid!(subtags::Language::from_raw_unchecked(30057u64), None, None),
867        |po| {
868            if (po.n == 1.0) {
869                PluralCategory::ONE
870            } else if (po.n == 2.0) {
871                PluralCategory::TWO
872            } else {
873                PluralCategory::OTHER
874            }
875        },
876    ),
877    (
878        langid!(subtags::Language::from_raw_unchecked(30569u64), None, None),
879        |po| {
880            if (po.v == 0 && !(0..=10).contains(&(po.i)) && po.f == 0 && po.i % 10 == 0) {
881                PluralCategory::MANY
882            } else if (po.i == 1 && po.v == 0) {
883                PluralCategory::ONE
884            } else if (po.i == 2 && po.v == 0) {
885                PluralCategory::TWO
886            } else {
887                PluralCategory::OTHER
888            }
889        },
890    ),
891    (
892        langid!(subtags::Language::from_raw_unchecked(24938u64), None, None),
893        |po| PluralCategory::OTHER,
894    ),
895    (
896        langid!(
897            subtags::Language::from_raw_unchecked(7299690u64),
898            None,
899            None
900        ),
901        |po| PluralCategory::OTHER,
902    ),
903    (
904        langid!(
905            subtags::Language::from_raw_unchecked(7300970u64),
906            None,
907            None
908        ),
909        |po| {
910            if (po.n == 1.0) {
911                PluralCategory::ONE
912            } else {
913                PluralCategory::OTHER
914            }
915        },
916    ),
917    (
918        langid!(subtags::Language::from_raw_unchecked(26986u64), None, None),
919        |po| {
920            if (po.i == 1 && po.v == 0) {
921                PluralCategory::ONE
922            } else {
923                PluralCategory::OTHER
924            }
925        },
926    ),
927    (
928        langid!(
929            subtags::Language::from_raw_unchecked(6516074u64),
930            None,
931            None
932        ),
933        |po| {
934            if (po.n == 1.0) {
935                PluralCategory::ONE
936            } else {
937                PluralCategory::OTHER
938            }
939        },
940    ),
941    (
942        langid!(subtags::Language::from_raw_unchecked(30314u64), None, None),
943        |po| PluralCategory::OTHER,
944    ),
945    (
946        langid!(subtags::Language::from_raw_unchecked(30570u64), None, None),
947        |po| PluralCategory::OTHER,
948    ),
949    (
950        langid!(subtags::Language::from_raw_unchecked(24939u64), None, None),
951        |po| {
952            if (po.n == 1.0) {
953                PluralCategory::ONE
954            } else {
955                PluralCategory::OTHER
956            }
957        },
958    ),
959    (
960        langid!(
961            subtags::Language::from_raw_unchecked(6447467u64),
962            None,
963            None
964        ),
965        |po| {
966            if (po.i == 0 || po.i == 1) {
967                PluralCategory::ONE
968            } else {
969                PluralCategory::OTHER
970            }
971        },
972    ),
973    (
974        langid!(
975            subtags::Language::from_raw_unchecked(6971755u64),
976            None,
977            None
978        ),
979        |po| {
980            if (po.n == 1.0) {
981                PluralCategory::ONE
982            } else {
983                PluralCategory::OTHER
984            }
985        },
986    ),
987    (
988        langid!(
989            subtags::Language::from_raw_unchecked(6775659u64),
990            None,
991            None
992        ),
993        |po| {
994            if (po.n == 1.0) {
995                PluralCategory::ONE
996            } else {
997                PluralCategory::OTHER
998            }
999        },
1000    ),
1001    (
1002        langid!(
1003            subtags::Language::from_raw_unchecked(6644843u64),
1004            None,
1005            None
1006        ),
1007        |po| PluralCategory::OTHER,
1008    ),
1009    (
1010        langid!(
1011            subtags::Language::from_raw_unchecked(6382955u64),
1012            None,
1013            None
1014        ),
1015        |po| PluralCategory::OTHER,
1016    ),
1017    (
1018        langid!(subtags::Language::from_raw_unchecked(27499u64), None, None),
1019        |po| {
1020            if (po.n == 1.0) {
1021                PluralCategory::ONE
1022            } else {
1023                PluralCategory::OTHER
1024            }
1025        },
1026    ),
1027    (
1028        langid!(
1029            subtags::Language::from_raw_unchecked(6974315u64),
1030            None,
1031            None
1032        ),
1033        |po| {
1034            if (po.n == 1.0) {
1035                PluralCategory::ONE
1036            } else {
1037                PluralCategory::OTHER
1038            }
1039        },
1040    ),
1041    (
1042        langid!(subtags::Language::from_raw_unchecked(27755u64), None, None),
1043        |po| {
1044            if (po.n == 1.0) {
1045                PluralCategory::ONE
1046            } else {
1047                PluralCategory::OTHER
1048            }
1049        },
1050    ),
1051    (
1052        langid!(subtags::Language::from_raw_unchecked(28011u64), None, None),
1053        |po| PluralCategory::OTHER,
1054    ),
1055    (
1056        langid!(subtags::Language::from_raw_unchecked(28267u64), None, None),
1057        |po| {
1058            if (po.i == 0) || (po.n == 1.0) {
1059                PluralCategory::ONE
1060            } else {
1061                PluralCategory::OTHER
1062            }
1063        },
1064    ),
1065    (
1066        langid!(subtags::Language::from_raw_unchecked(28523u64), None, None),
1067        |po| PluralCategory::OTHER,
1068    ),
1069    (
1070        langid!(subtags::Language::from_raw_unchecked(29547u64), None, None),
1071        |po| {
1072            if (po.n == 1.0) {
1073                PluralCategory::ONE
1074            } else {
1075                PluralCategory::OTHER
1076            }
1077        },
1078    ),
1079    (
1080        langid!(
1081            subtags::Language::from_raw_unchecked(6452075u64),
1082            None,
1083            None
1084        ),
1085        |po| {
1086            if (po.n == 1.0) {
1087                PluralCategory::ONE
1088            } else {
1089                PluralCategory::OTHER
1090            }
1091        },
1092    ),
1093    (
1094        langid!(
1095            subtags::Language::from_raw_unchecked(6845291u64),
1096            None,
1097            None
1098        ),
1099        |po| {
1100            if (po.n == 1.0) {
1101                PluralCategory::ONE
1102            } else if (po.n == 0.0) {
1103                PluralCategory::ZERO
1104            } else {
1105                PluralCategory::OTHER
1106            }
1107        },
1108    ),
1109    (
1110        langid!(subtags::Language::from_raw_unchecked(30059u64), None, None),
1111        |po| {
1112            if (po.n == 1.0) {
1113                PluralCategory::ONE
1114            } else {
1115                PluralCategory::OTHER
1116            }
1117        },
1118    ),
1119    (
1120        langid!(subtags::Language::from_raw_unchecked(30571u64), None, None),
1121        |po| {
1122            if (po.i % 100 == 3
1123                || po.i % 100 == 23
1124                || po.i % 100 == 43
1125                || po.i % 100 == 63
1126                || po.i % 100 == 83)
1127            {
1128                PluralCategory::FEW
1129            } else if (po.n != 1.0
1130                && (po.i % 100 == 1
1131                    || po.i % 100 == 21
1132                    || po.i % 100 == 41
1133                    || po.i % 100 == 61
1134                    || po.i % 100 == 81))
1135            {
1136                PluralCategory::MANY
1137            } else if (po.n == 1.0) {
1138                PluralCategory::ONE
1139            } else if (po.i % 100 == 2
1140                || po.i % 100 == 22
1141                || po.i % 100 == 42
1142                || po.i % 100 == 62
1143                || po.i % 100 == 82)
1144                || (po.i % 1000 == 0
1145                    && (po.i % 100000 == 40000
1146                        || po.i % 100000 == 60000
1147                        || po.i % 100000 == 80000
1148                        || (1000..=20000).contains(&(po.i))))
1149                || (po.n != 0.0 && po.i % 1000000 == 100000)
1150            {
1151                PluralCategory::TWO
1152            } else if (po.n == 0.0) {
1153                PluralCategory::ZERO
1154            } else {
1155                PluralCategory::OTHER
1156            }
1157        },
1158    ),
1159    (
1160        langid!(subtags::Language::from_raw_unchecked(31083u64), None, None),
1161        |po| {
1162            if (po.n == 1.0) {
1163                PluralCategory::ONE
1164            } else {
1165                PluralCategory::OTHER
1166            }
1167        },
1168    ),
1169    (
1170        langid!(
1171            subtags::Language::from_raw_unchecked(6775148u64),
1172            None,
1173            None
1174        ),
1175        |po| {
1176            if ((po.i == 0 || po.i == 1) && po.n != 0.0) {
1177                PluralCategory::ONE
1178            } else if (po.n == 0.0) {
1179                PluralCategory::ZERO
1180            } else {
1181                PluralCategory::OTHER
1182            }
1183        },
1184    ),
1185    (
1186        langid!(subtags::Language::from_raw_unchecked(25196u64), None, None),
1187        |po| {
1188            if (po.n == 1.0) {
1189                PluralCategory::ONE
1190            } else {
1191                PluralCategory::OTHER
1192            }
1193        },
1194    ),
1195    (
1196        langid!(subtags::Language::from_raw_unchecked(26476u64), None, None),
1197        |po| {
1198            if (po.n == 1.0) {
1199                PluralCategory::ONE
1200            } else {
1201                PluralCategory::OTHER
1202            }
1203        },
1204    ),
1205    (
1206        langid!(
1207            subtags::Language::from_raw_unchecked(7629676u64),
1208            None,
1209            None
1210        ),
1211        |po| PluralCategory::OTHER,
1212    ),
1213    (
1214        langid!(subtags::Language::from_raw_unchecked(28268u64), None, None),
1215        |po| {
1216            if ((0..=1).contains(&(po.i)) && po.f == 0) {
1217                PluralCategory::ONE
1218            } else {
1219                PluralCategory::OTHER
1220            }
1221        },
1222    ),
1223    (
1224        langid!(subtags::Language::from_raw_unchecked(28524u64), None, None),
1225        |po| PluralCategory::OTHER,
1226    ),
1227    (
1228        langid!(subtags::Language::from_raw_unchecked(29804u64), None, None),
1229        |po| {
1230            if ((2..=9).contains(&(po.i)) && !(11..=19).contains(&(po.i))) {
1231                PluralCategory::FEW
1232            } else if (po.f != 0) {
1233                PluralCategory::MANY
1234            } else if (po.i % 10 == 1 && !(11..=19).contains(&(po.i))) {
1235                PluralCategory::ONE
1236            } else {
1237                PluralCategory::OTHER
1238            }
1239        },
1240    ),
1241    (
1242        langid!(subtags::Language::from_raw_unchecked(30316u64), None, None),
1243        |po| {
1244            if (po.i % 10 == 1 && po.i % 100 != 11)
1245                || (po.v == 2 && po.f % 10 == 1 && po.f % 100 != 11)
1246                || (po.v != 2 && po.f % 10 == 1)
1247            {
1248                PluralCategory::ONE
1249            } else if (po.i % 10 == 0)
1250                || ((11..=19).contains(&(po.i)))
1251                || (po.v == 2 && (11..=19).contains(&(po.f % 100)))
1252            {
1253                PluralCategory::ZERO
1254            } else {
1255                PluralCategory::OTHER
1256            }
1257        },
1258    ),
1259    (
1260        langid!(
1261            subtags::Language::from_raw_unchecked(7561581u64),
1262            None,
1263            None
1264        ),
1265        |po| {
1266            if (po.n == 1.0) {
1267                PluralCategory::ONE
1268            } else {
1269                PluralCategory::OTHER
1270            }
1271        },
1272    ),
1273    (
1274        langid!(subtags::Language::from_raw_unchecked(26477u64), None, None),
1275        |po| {
1276            if ((0..=1).contains(&(po.i)) && po.f == 0) {
1277                PluralCategory::ONE
1278            } else {
1279                PluralCategory::OTHER
1280            }
1281        },
1282    ),
1283    (
1284        langid!(
1285            subtags::Language::from_raw_unchecked(7300973u64),
1286            None,
1287            None
1288        ),
1289        |po| {
1290            if (po.n == 1.0) {
1291                PluralCategory::ONE
1292            } else {
1293                PluralCategory::OTHER
1294            }
1295        },
1296    ),
1297    (
1298        langid!(subtags::Language::from_raw_unchecked(27501u64), None, None),
1299        |po| {
1300            if (po.v == 0 && po.i % 10 == 1 && po.i % 100 != 11)
1301                || (po.f % 10 == 1 && po.f % 100 != 11)
1302            {
1303                PluralCategory::ONE
1304            } else {
1305                PluralCategory::OTHER
1306            }
1307        },
1308    ),
1309    (
1310        langid!(subtags::Language::from_raw_unchecked(27757u64), None, None),
1311        |po| {
1312            if (po.n == 1.0) {
1313                PluralCategory::ONE
1314            } else {
1315                PluralCategory::OTHER
1316            }
1317        },
1318    ),
1319    (
1320        langid!(subtags::Language::from_raw_unchecked(28269u64), None, None),
1321        |po| {
1322            if (po.n == 1.0) {
1323                PluralCategory::ONE
1324            } else {
1325                PluralCategory::OTHER
1326            }
1327        },
1328    ),
1329    (
1330        langid!(subtags::Language::from_raw_unchecked(28525u64), None, None),
1331        |po| {
1332            if (po.v != 0) || (po.n == 0.0) || ((2..=19).contains(&(po.i))) {
1333                PluralCategory::FEW
1334            } else if (po.i == 1 && po.v == 0) {
1335                PluralCategory::ONE
1336            } else {
1337                PluralCategory::OTHER
1338            }
1339        },
1340    ),
1341    (
1342        langid!(subtags::Language::from_raw_unchecked(29293u64), None, None),
1343        |po| {
1344            if (po.n == 1.0) {
1345                PluralCategory::ONE
1346            } else {
1347                PluralCategory::OTHER
1348            }
1349        },
1350    ),
1351    (
1352        langid!(subtags::Language::from_raw_unchecked(29549u64), None, None),
1353        |po| PluralCategory::OTHER,
1354    ),
1355    (
1356        langid!(subtags::Language::from_raw_unchecked(29805u64), None, None),
1357        |po| {
1358            if (po.n == 0.0) || ((2..=10).contains(&(po.i))) {
1359                PluralCategory::FEW
1360            } else if ((11..=19).contains(&(po.i))) {
1361                PluralCategory::MANY
1362            } else if (po.n == 1.0) {
1363                PluralCategory::ONE
1364            } else {
1365                PluralCategory::OTHER
1366            }
1367        },
1368    ),
1369    (
1370        langid!(subtags::Language::from_raw_unchecked(31085u64), None, None),
1371        |po| PluralCategory::OTHER,
1372    ),
1373    (
1374        langid!(
1375            subtags::Language::from_raw_unchecked(6840686u64),
1376            None,
1377            None
1378        ),
1379        |po| {
1380            if (po.n == 1.0) {
1381                PluralCategory::ONE
1382            } else {
1383                PluralCategory::OTHER
1384            }
1385        },
1386    ),
1387    (
1388        langid!(
1389            subtags::Language::from_raw_unchecked(7430510u64),
1390            None,
1391            None
1392        ),
1393        |po| {
1394            if (po.n == 1.0) {
1395                PluralCategory::ONE
1396            } else if (po.n == 2.0) {
1397                PluralCategory::TWO
1398            } else {
1399                PluralCategory::OTHER
1400            }
1401        },
1402    ),
1403    (
1404        langid!(subtags::Language::from_raw_unchecked(25198u64), None, None),
1405        |po| {
1406            if (po.n == 1.0) {
1407                PluralCategory::ONE
1408            } else {
1409                PluralCategory::OTHER
1410            }
1411        },
1412    ),
1413    (
1414        langid!(subtags::Language::from_raw_unchecked(25710u64), None, None),
1415        |po| {
1416            if (po.n == 1.0) {
1417                PluralCategory::ONE
1418            } else {
1419                PluralCategory::OTHER
1420            }
1421        },
1422    ),
1423    (
1424        langid!(subtags::Language::from_raw_unchecked(25966u64), None, None),
1425        |po| {
1426            if (po.n == 1.0) {
1427                PluralCategory::ONE
1428            } else {
1429                PluralCategory::OTHER
1430            }
1431        },
1432    ),
1433    (
1434        langid!(subtags::Language::from_raw_unchecked(27758u64), None, None),
1435        |po| {
1436            if (po.i == 1 && po.v == 0) {
1437                PluralCategory::ONE
1438            } else {
1439                PluralCategory::OTHER
1440            }
1441        },
1442    ),
1443    (
1444        langid!(subtags::Language::from_raw_unchecked(28270u64), None, None),
1445        |po| {
1446            if (po.n == 1.0) {
1447                PluralCategory::ONE
1448            } else {
1449                PluralCategory::OTHER
1450            }
1451        },
1452    ),
1453    (
1454        langid!(
1455            subtags::Language::from_raw_unchecked(6844014u64),
1456            None,
1457            None
1458        ),
1459        |po| {
1460            if (po.n == 1.0) {
1461                PluralCategory::ONE
1462            } else {
1463                PluralCategory::OTHER
1464            }
1465        },
1466    ),
1467    (
1468        langid!(subtags::Language::from_raw_unchecked(28526u64), None, None),
1469        |po| {
1470            if (po.n == 1.0) {
1471                PluralCategory::ONE
1472            } else {
1473                PluralCategory::OTHER
1474            }
1475        },
1476    ),
1477    (
1478        langid!(
1479            subtags::Language::from_raw_unchecked(7303534u64),
1480            None,
1481            None
1482        ),
1483        |po| PluralCategory::OTHER,
1484    ),
1485    (
1486        langid!(subtags::Language::from_raw_unchecked(29294u64), None, None),
1487        |po| {
1488            if (po.n == 1.0) {
1489                PluralCategory::ONE
1490            } else {
1491                PluralCategory::OTHER
1492            }
1493        },
1494    ),
1495    (
1496        langid!(
1497            subtags::Language::from_raw_unchecked(7304046u64),
1498            None,
1499            None
1500        ),
1501        |po| {
1502            if ((0..=1).contains(&(po.i)) && po.f == 0) {
1503                PluralCategory::ONE
1504            } else {
1505                PluralCategory::OTHER
1506            }
1507        },
1508    ),
1509    (
1510        langid!(subtags::Language::from_raw_unchecked(31086u64), None, None),
1511        |po| {
1512            if (po.n == 1.0) {
1513                PluralCategory::ONE
1514            } else {
1515                PluralCategory::OTHER
1516            }
1517        },
1518    ),
1519    (
1520        langid!(
1521            subtags::Language::from_raw_unchecked(7240046u64),
1522            None,
1523            None
1524        ),
1525        |po| {
1526            if (po.n == 1.0) {
1527                PluralCategory::ONE
1528            } else {
1529                PluralCategory::OTHER
1530            }
1531        },
1532    ),
1533    (
1534        langid!(subtags::Language::from_raw_unchecked(28015u64), None, None),
1535        |po| {
1536            if (po.n == 1.0) {
1537                PluralCategory::ONE
1538            } else {
1539                PluralCategory::OTHER
1540            }
1541        },
1542    ),
1543    (
1544        langid!(subtags::Language::from_raw_unchecked(29295u64), None, None),
1545        |po| {
1546            if (po.n == 1.0) {
1547                PluralCategory::ONE
1548            } else {
1549                PluralCategory::OTHER
1550            }
1551        },
1552    ),
1553    (
1554        langid!(subtags::Language::from_raw_unchecked(29551u64), None, None),
1555        |po| {
1556            if (po.n == 1.0) {
1557                PluralCategory::ONE
1558            } else {
1559                PluralCategory::OTHER
1560            }
1561        },
1562    ),
1563    (
1564        langid!(
1565            subtags::Language::from_raw_unchecked(6386543u64),
1566            None,
1567            None
1568        ),
1569        |po| PluralCategory::OTHER,
1570    ),
1571    (
1572        langid!(subtags::Language::from_raw_unchecked(24944u64), None, None),
1573        |po| {
1574            if ((0..=1).contains(&(po.i)) && po.f == 0) {
1575                PluralCategory::ONE
1576            } else {
1577                PluralCategory::OTHER
1578            }
1579        },
1580    ),
1581    (
1582        langid!(
1583            subtags::Language::from_raw_unchecked(7364976u64),
1584            None,
1585            None
1586        ),
1587        |po| {
1588            if (po.n == 1.0) {
1589                PluralCategory::ONE
1590            } else {
1591                PluralCategory::OTHER
1592            }
1593        },
1594    ),
1595    (
1596        langid!(
1597            subtags::Language::from_raw_unchecked(7168880u64),
1598            None,
1599            None
1600        ),
1601        |po| {
1602            if (po.i == 0) || (po.n == 1.0) {
1603                PluralCategory::ONE
1604            } else {
1605                PluralCategory::OTHER
1606            }
1607        },
1608    ),
1609    (
1610        langid!(subtags::Language::from_raw_unchecked(27760u64), None, None),
1611        |po| {
1612            if (po.v == 0 && (2..=4).contains(&(po.i % 10)) && !(12..=14).contains(&(po.i % 100))) {
1613                PluralCategory::FEW
1614            } else if (po.v == 0 && po.i != 1 && (0..=1).contains(&(po.i % 10)))
1615                || (po.v == 0 && (5..=9).contains(&(po.i % 10)))
1616                || (po.v == 0 && (12..=14).contains(&(po.i % 100)))
1617            {
1618                PluralCategory::MANY
1619            } else if (po.i == 1 && po.v == 0) {
1620                PluralCategory::ONE
1621            } else {
1622                PluralCategory::OTHER
1623            }
1624        },
1625    ),
1626    (
1627        langid!(
1628            subtags::Language::from_raw_unchecked(6779504u64),
1629            None,
1630            None
1631        ),
1632        |po| {
1633            if (po.i % 10 == 1 && po.i % 100 != 11)
1634                || (po.v == 2 && po.f % 10 == 1 && po.f % 100 != 11)
1635                || (po.v != 2 && po.f % 10 == 1)
1636            {
1637                PluralCategory::ONE
1638            } else if (po.i % 10 == 0)
1639                || ((11..=19).contains(&(po.i)))
1640                || (po.v == 2 && (11..=19).contains(&(po.f % 100)))
1641            {
1642                PluralCategory::ZERO
1643            } else {
1644                PluralCategory::OTHER
1645            }
1646        },
1647    ),
1648    (
1649        langid!(subtags::Language::from_raw_unchecked(29552u64), None, None),
1650        |po| {
1651            if (po.n == 1.0) {
1652                PluralCategory::ONE
1653            } else {
1654                PluralCategory::OTHER
1655            }
1656        },
1657    ),
1658    (
1659        langid!(subtags::Language::from_raw_unchecked(29808u64), None, None),
1660        |po| {
1661            if ((0..=1).contains(&(po.i))) {
1662                PluralCategory::ONE
1663            } else {
1664                PluralCategory::OTHER
1665            }
1666        },
1667    ),
1668    (
1669        langid!(
1670            subtags::Language::from_raw_unchecked(29808u64),
1671            None,
1672            Some(subtags::Region::from_raw_unchecked(21584u32))
1673        ),
1674        |po| {
1675            if (po.i == 1 && po.v == 0) {
1676                PluralCategory::ONE
1677            } else {
1678                PluralCategory::OTHER
1679            }
1680        },
1681    ),
1682    (
1683        langid!(subtags::Language::from_raw_unchecked(28018u64), None, None),
1684        |po| {
1685            if (po.n == 1.0) {
1686                PluralCategory::ONE
1687            } else {
1688                PluralCategory::OTHER
1689            }
1690        },
1691    ),
1692    (
1693        langid!(subtags::Language::from_raw_unchecked(28530u64), None, None),
1694        |po| {
1695            if (po.v != 0) || (po.n == 0.0) || ((2..=19).contains(&(po.i))) {
1696                PluralCategory::FEW
1697            } else if (po.i == 1 && po.v == 0) {
1698                PluralCategory::ONE
1699            } else {
1700                PluralCategory::OTHER
1701            }
1702        },
1703    ),
1704    (
1705        langid!(
1706            subtags::Language::from_raw_unchecked(6713202u64),
1707            None,
1708            None
1709        ),
1710        |po| {
1711            if (po.n == 1.0) {
1712                PluralCategory::ONE
1713            } else {
1714                PluralCategory::OTHER
1715            }
1716        },
1717    ),
1718    (
1719        langid!(subtags::Language::from_raw_unchecked(30066u64), None, None),
1720        |po| {
1721            if (po.v == 0 && (2..=4).contains(&(po.i % 10)) && !(12..=14).contains(&(po.i % 100))) {
1722                PluralCategory::FEW
1723            } else if (po.v == 0 && po.i % 10 == 0)
1724                || (po.v == 0 && (5..=9).contains(&(po.i % 10)))
1725                || (po.v == 0 && (11..=14).contains(&(po.i % 100)))
1726            {
1727                PluralCategory::MANY
1728            } else if (po.v == 0 && po.i % 10 == 1 && po.i % 100 != 11) {
1729                PluralCategory::ONE
1730            } else {
1731                PluralCategory::OTHER
1732            }
1733        },
1734    ),
1735    (
1736        langid!(
1737            subtags::Language::from_raw_unchecked(7042930u64),
1738            None,
1739            None
1740        ),
1741        |po| {
1742            if (po.n == 1.0) {
1743                PluralCategory::ONE
1744            } else {
1745                PluralCategory::OTHER
1746            }
1747        },
1748    ),
1749    (
1750        langid!(
1751            subtags::Language::from_raw_unchecked(6840691u64),
1752            None,
1753            None
1754        ),
1755        |po| PluralCategory::OTHER,
1756    ),
1757    (
1758        langid!(
1759            subtags::Language::from_raw_unchecked(7430515u64),
1760            None,
1761            None
1762        ),
1763        |po| {
1764            if (po.n == 1.0) {
1765                PluralCategory::ONE
1766            } else {
1767                PluralCategory::OTHER
1768            }
1769        },
1770    ),
1771    (
1772        langid!(
1773            subtags::Language::from_raw_unchecked(7627123u64),
1774            None,
1775            None
1776        ),
1777        |po| {
1778            if (po.n == 1.0) {
1779                PluralCategory::ONE
1780            } else if (po.n == 2.0) {
1781                PluralCategory::TWO
1782            } else {
1783                PluralCategory::OTHER
1784            }
1785        },
1786    ),
1787    (
1788        langid!(subtags::Language::from_raw_unchecked(25459u64), None, None),
1789        |po| {
1790            if (po.i == 1 && po.v == 0) {
1791                PluralCategory::ONE
1792            } else {
1793                PluralCategory::OTHER
1794            }
1795        },
1796    ),
1797    (
1798        langid!(
1799            subtags::Language::from_raw_unchecked(7234419u64),
1800            None,
1801            None
1802        ),
1803        |po| {
1804            if (po.i == 1 && po.v == 0) {
1805                PluralCategory::ONE
1806            } else {
1807                PluralCategory::OTHER
1808            }
1809        },
1810    ),
1811    (
1812        langid!(subtags::Language::from_raw_unchecked(25715u64), None, None),
1813        |po| {
1814            if (po.n == 1.0) {
1815                PluralCategory::ONE
1816            } else {
1817                PluralCategory::OTHER
1818            }
1819        },
1820    ),
1821    (
1822        langid!(
1823            subtags::Language::from_raw_unchecked(6841459u64),
1824            None,
1825            None
1826        ),
1827        |po| {
1828            if (po.n == 1.0) {
1829                PluralCategory::ONE
1830            } else {
1831                PluralCategory::OTHER
1832            }
1833        },
1834    ),
1835    (
1836        langid!(subtags::Language::from_raw_unchecked(25971u64), None, None),
1837        |po| {
1838            if (po.n == 1.0) {
1839                PluralCategory::ONE
1840            } else if (po.n == 2.0) {
1841                PluralCategory::TWO
1842            } else {
1843                PluralCategory::OTHER
1844            }
1845        },
1846    ),
1847    (
1848        langid!(
1849            subtags::Language::from_raw_unchecked(6841715u64),
1850            None,
1851            None
1852        ),
1853        |po| {
1854            if (po.n == 1.0) {
1855                PluralCategory::ONE
1856            } else {
1857                PluralCategory::OTHER
1858            }
1859        },
1860    ),
1861    (
1862        langid!(
1863            subtags::Language::from_raw_unchecked(7562611u64),
1864            None,
1865            None
1866        ),
1867        |po| PluralCategory::OTHER,
1868    ),
1869    (
1870        langid!(subtags::Language::from_raw_unchecked(26483u64), None, None),
1871        |po| PluralCategory::OTHER,
1872    ),
1873    (
1874        langid!(subtags::Language::from_raw_unchecked(26739u64), None, None),
1875        |po| {
1876            if (po.v == 0 && (2..=4).contains(&(po.i % 10)) && !(12..=14).contains(&(po.i % 100)))
1877                || ((2..=4).contains(&(po.f % 10)) && !(12..=14).contains(&(po.f % 100)))
1878            {
1879                PluralCategory::FEW
1880            } else if (po.v == 0 && po.i % 10 == 1 && po.i % 100 != 11)
1881                || (po.f % 10 == 1 && po.f % 100 != 11)
1882            {
1883                PluralCategory::ONE
1884            } else {
1885                PluralCategory::OTHER
1886            }
1887        },
1888    ),
1889    (
1890        langid!(
1891            subtags::Language::from_raw_unchecked(6908019u64),
1892            None,
1893            None
1894        ),
1895        |po| {
1896            if ((2..=10).contains(&(po.i)) && po.f == 0) {
1897                PluralCategory::FEW
1898            } else if (po.i == 0) || (po.n == 1.0) {
1899                PluralCategory::ONE
1900            } else {
1901                PluralCategory::OTHER
1902            }
1903        },
1904    ),
1905    (
1906        langid!(subtags::Language::from_raw_unchecked(26995u64), None, None),
1907        |po| {
1908            if (po.n == 0.0 || po.n == 1.0) || (po.i == 0 && po.f == 1) {
1909                PluralCategory::ONE
1910            } else {
1911                PluralCategory::OTHER
1912            }
1913        },
1914    ),
1915    (
1916        langid!(subtags::Language::from_raw_unchecked(27507u64), None, None),
1917        |po| {
1918            if ((2..=4).contains(&(po.i)) && po.v == 0) {
1919                PluralCategory::FEW
1920            } else if (po.v != 0) {
1921                PluralCategory::MANY
1922            } else if (po.i == 1 && po.v == 0) {
1923                PluralCategory::ONE
1924            } else {
1925                PluralCategory::OTHER
1926            }
1927        },
1928    ),
1929    (
1930        langid!(subtags::Language::from_raw_unchecked(27763u64), None, None),
1931        |po| {
1932            if (po.v == 0 && (3..=4).contains(&(po.i % 100))) || (po.v != 0) {
1933                PluralCategory::FEW
1934            } else if (po.v == 0 && po.i % 100 == 1) {
1935                PluralCategory::ONE
1936            } else if (po.v == 0 && po.i % 100 == 2) {
1937                PluralCategory::TWO
1938            } else {
1939                PluralCategory::OTHER
1940            }
1941        },
1942    ),
1943    (
1944        langid!(
1945            subtags::Language::from_raw_unchecked(6385011u64),
1946            None,
1947            None
1948        ),
1949        |po| {
1950            if (po.n == 1.0) {
1951                PluralCategory::ONE
1952            } else if (po.n == 2.0) {
1953                PluralCategory::TWO
1954            } else {
1955                PluralCategory::OTHER
1956            }
1957        },
1958    ),
1959    (
1960        langid!(
1961            subtags::Language::from_raw_unchecked(6909299u64),
1962            None,
1963            None
1964        ),
1965        |po| {
1966            if (po.n == 1.0) {
1967                PluralCategory::ONE
1968            } else if (po.n == 2.0) {
1969                PluralCategory::TWO
1970            } else {
1971                PluralCategory::OTHER
1972            }
1973        },
1974    ),
1975    (
1976        langid!(
1977            subtags::Language::from_raw_unchecked(6974835u64),
1978            None,
1979            None
1980        ),
1981        |po| {
1982            if (po.n == 1.0) {
1983                PluralCategory::ONE
1984            } else if (po.n == 2.0) {
1985                PluralCategory::TWO
1986            } else {
1987                PluralCategory::OTHER
1988            }
1989        },
1990    ),
1991    (
1992        langid!(
1993            subtags::Language::from_raw_unchecked(7236979u64),
1994            None,
1995            None
1996        ),
1997        |po| {
1998            if (po.n == 1.0) {
1999                PluralCategory::ONE
2000            } else if (po.n == 2.0) {
2001                PluralCategory::TWO
2002            } else {
2003                PluralCategory::OTHER
2004            }
2005        },
2006    ),
2007    (
2008        langid!(
2009            subtags::Language::from_raw_unchecked(7564659u64),
2010            None,
2011            None
2012        ),
2013        |po| {
2014            if (po.n == 1.0) {
2015                PluralCategory::ONE
2016            } else if (po.n == 2.0) {
2017                PluralCategory::TWO
2018            } else {
2019                PluralCategory::OTHER
2020            }
2021        },
2022    ),
2023    (
2024        langid!(subtags::Language::from_raw_unchecked(28275u64), None, None),
2025        |po| {
2026            if (po.n == 1.0) {
2027                PluralCategory::ONE
2028            } else {
2029                PluralCategory::OTHER
2030            }
2031        },
2032    ),
2033    (
2034        langid!(subtags::Language::from_raw_unchecked(28531u64), None, None),
2035        |po| {
2036            if (po.n == 1.0) {
2037                PluralCategory::ONE
2038            } else {
2039                PluralCategory::OTHER
2040            }
2041        },
2042    ),
2043    (
2044        langid!(subtags::Language::from_raw_unchecked(29043u64), None, None),
2045        |po| {
2046            if (po.n == 1.0) {
2047                PluralCategory::ONE
2048            } else {
2049                PluralCategory::OTHER
2050            }
2051        },
2052    ),
2053    (
2054        langid!(subtags::Language::from_raw_unchecked(29299u64), None, None),
2055        |po| {
2056            if (po.v == 0 && (2..=4).contains(&(po.i % 10)) && !(12..=14).contains(&(po.i % 100)))
2057                || ((2..=4).contains(&(po.f % 10)) && !(12..=14).contains(&(po.f % 100)))
2058            {
2059                PluralCategory::FEW
2060            } else if (po.v == 0 && po.i % 10 == 1 && po.i % 100 != 11)
2061                || (po.f % 10 == 1 && po.f % 100 != 11)
2062            {
2063                PluralCategory::ONE
2064            } else {
2065                PluralCategory::OTHER
2066            }
2067        },
2068    ),
2069    (
2070        langid!(subtags::Language::from_raw_unchecked(29555u64), None, None),
2071        |po| {
2072            if (po.n == 1.0) {
2073                PluralCategory::ONE
2074            } else {
2075                PluralCategory::OTHER
2076            }
2077        },
2078    ),
2079    (
2080        langid!(
2081            subtags::Language::from_raw_unchecked(7959411u64),
2082            None,
2083            None
2084        ),
2085        |po| {
2086            if (po.n == 1.0) {
2087                PluralCategory::ONE
2088            } else {
2089                PluralCategory::OTHER
2090            }
2091        },
2092    ),
2093    (
2094        langid!(subtags::Language::from_raw_unchecked(29811u64), None, None),
2095        |po| {
2096            if (po.n == 1.0) {
2097                PluralCategory::ONE
2098            } else {
2099                PluralCategory::OTHER
2100            }
2101        },
2102    ),
2103    (
2104        langid!(subtags::Language::from_raw_unchecked(30067u64), None, None),
2105        |po| PluralCategory::OTHER,
2106    ),
2107    (
2108        langid!(subtags::Language::from_raw_unchecked(30323u64), None, None),
2109        |po| {
2110            if (po.i == 1 && po.v == 0) {
2111                PluralCategory::ONE
2112            } else {
2113                PluralCategory::OTHER
2114            }
2115        },
2116    ),
2117    (
2118        langid!(subtags::Language::from_raw_unchecked(30579u64), None, None),
2119        |po| {
2120            if (po.i == 1 && po.v == 0) {
2121                PluralCategory::ONE
2122            } else {
2123                PluralCategory::OTHER
2124            }
2125        },
2126    ),
2127    (
2128        langid!(
2129            subtags::Language::from_raw_unchecked(7502195u64),
2130            None,
2131            None
2132        ),
2133        |po| {
2134            if (po.n == 1.0) {
2135                PluralCategory::ONE
2136            } else {
2137                PluralCategory::OTHER
2138            }
2139        },
2140    ),
2141    (
2142        langid!(subtags::Language::from_raw_unchecked(24948u64), None, None),
2143        |po| {
2144            if (po.n == 1.0) {
2145                PluralCategory::ONE
2146            } else {
2147                PluralCategory::OTHER
2148            }
2149        },
2150    ),
2151    (
2152        langid!(subtags::Language::from_raw_unchecked(25972u64), None, None),
2153        |po| {
2154            if (po.n == 1.0) {
2155                PluralCategory::ONE
2156            } else {
2157                PluralCategory::OTHER
2158            }
2159        },
2160    ),
2161    (
2162        langid!(
2163            subtags::Language::from_raw_unchecked(7300468u64),
2164            None,
2165            None
2166        ),
2167        |po| {
2168            if (po.n == 1.0) {
2169                PluralCategory::ONE
2170            } else {
2171                PluralCategory::OTHER
2172            }
2173        },
2174    ),
2175    (
2176        langid!(subtags::Language::from_raw_unchecked(26740u64), None, None),
2177        |po| PluralCategory::OTHER,
2178    ),
2179    (
2180        langid!(subtags::Language::from_raw_unchecked(26996u64), None, None),
2181        |po| {
2182            if ((0..=1).contains(&(po.i)) && po.f == 0) {
2183                PluralCategory::ONE
2184            } else {
2185                PluralCategory::OTHER
2186            }
2187        },
2188    ),
2189    (
2190        langid!(
2191            subtags::Language::from_raw_unchecked(6777204u64),
2192            None,
2193            None
2194        ),
2195        |po| {
2196            if (po.n == 1.0) {
2197                PluralCategory::ONE
2198            } else {
2199                PluralCategory::OTHER
2200            }
2201        },
2202    ),
2203    (
2204        langid!(subtags::Language::from_raw_unchecked(27508u64), None, None),
2205        |po| {
2206            if (po.n == 1.0) {
2207                PluralCategory::ONE
2208            } else {
2209                PluralCategory::OTHER
2210            }
2211        },
2212    ),
2213    (
2214        langid!(subtags::Language::from_raw_unchecked(27764u64), None, None),
2215        |po| {
2216            if (po.v == 0 && (po.i == 1 || po.i == 2 || po.i == 3))
2217                || (po.v == 0 && po.i % 10 != 4 && po.i % 10 != 6 && po.i % 10 != 9)
2218                || (po.v != 0 && po.f % 10 != 4 && po.f % 10 != 6 && po.f % 10 != 9)
2219            {
2220                PluralCategory::ONE
2221            } else {
2222                PluralCategory::OTHER
2223            }
2224        },
2225    ),
2226    (
2227        langid!(subtags::Language::from_raw_unchecked(28276u64), None, None),
2228        |po| {
2229            if (po.n == 1.0) {
2230                PluralCategory::ONE
2231            } else {
2232                PluralCategory::OTHER
2233            }
2234        },
2235    ),
2236    (
2237        langid!(subtags::Language::from_raw_unchecked(28532u64), None, None),
2238        |po| PluralCategory::OTHER,
2239    ),
2240    (
2241        langid!(subtags::Language::from_raw_unchecked(29300u64), None, None),
2242        |po| {
2243            if (po.n == 1.0) {
2244                PluralCategory::ONE
2245            } else {
2246                PluralCategory::OTHER
2247            }
2248        },
2249    ),
2250    (
2251        langid!(subtags::Language::from_raw_unchecked(29556u64), None, None),
2252        |po| {
2253            if (po.n == 1.0) {
2254                PluralCategory::ONE
2255            } else {
2256                PluralCategory::OTHER
2257            }
2258        },
2259    ),
2260    (
2261        langid!(
2262            subtags::Language::from_raw_unchecked(7174772u64),
2263            None,
2264            None
2265        ),
2266        |po| {
2267            if ((0..=1).contains(&(po.i)) && po.f == 0)
2268                || ((11..=99).contains(&(po.i)) && po.f == 0)
2269            {
2270                PluralCategory::ONE
2271            } else {
2272                PluralCategory::OTHER
2273            }
2274        },
2275    ),
2276    (
2277        langid!(subtags::Language::from_raw_unchecked(26485u64), None, None),
2278        |po| {
2279            if (po.n == 1.0) {
2280                PluralCategory::ONE
2281            } else {
2282                PluralCategory::OTHER
2283            }
2284        },
2285    ),
2286    (
2287        langid!(subtags::Language::from_raw_unchecked(27509u64), None, None),
2288        |po| {
2289            if (po.v == 0 && (2..=4).contains(&(po.i % 10)) && !(12..=14).contains(&(po.i % 100))) {
2290                PluralCategory::FEW
2291            } else if (po.v == 0 && po.i % 10 == 0)
2292                || (po.v == 0 && (5..=9).contains(&(po.i % 10)))
2293                || (po.v == 0 && (11..=14).contains(&(po.i % 100)))
2294            {
2295                PluralCategory::MANY
2296            } else if (po.v == 0 && po.i % 10 == 1 && po.i % 100 != 11) {
2297                PluralCategory::ONE
2298            } else {
2299                PluralCategory::OTHER
2300            }
2301        },
2302    ),
2303    (
2304        langid!(subtags::Language::from_raw_unchecked(29301u64), None, None),
2305        |po| {
2306            if (po.i == 1 && po.v == 0) {
2307                PluralCategory::ONE
2308            } else {
2309                PluralCategory::OTHER
2310            }
2311        },
2312    ),
2313    (
2314        langid!(subtags::Language::from_raw_unchecked(31349u64), None, None),
2315        |po| {
2316            if (po.n == 1.0) {
2317                PluralCategory::ONE
2318            } else {
2319                PluralCategory::OTHER
2320            }
2321        },
2322    ),
2323    (
2324        langid!(subtags::Language::from_raw_unchecked(25974u64), None, None),
2325        |po| {
2326            if (po.n == 1.0) {
2327                PluralCategory::ONE
2328            } else {
2329                PluralCategory::OTHER
2330            }
2331        },
2332    ),
2333    (
2334        langid!(subtags::Language::from_raw_unchecked(26998u64), None, None),
2335        |po| PluralCategory::OTHER,
2336    ),
2337    (
2338        langid!(subtags::Language::from_raw_unchecked(28534u64), None, None),
2339        |po| {
2340            if (po.n == 1.0) {
2341                PluralCategory::ONE
2342            } else {
2343                PluralCategory::OTHER
2344            }
2345        },
2346    ),
2347    (
2348        langid!(
2349            subtags::Language::from_raw_unchecked(7239030u64),
2350            None,
2351            None
2352        ),
2353        |po| {
2354            if (po.n == 1.0) {
2355                PluralCategory::ONE
2356            } else {
2357                PluralCategory::OTHER
2358            }
2359        },
2360    ),
2361    (
2362        langid!(subtags::Language::from_raw_unchecked(24951u64), None, None),
2363        |po| {
2364            if ((0..=1).contains(&(po.i)) && po.f == 0) {
2365                PluralCategory::ONE
2366            } else {
2367                PluralCategory::OTHER
2368            }
2369        },
2370    ),
2371    (
2372        langid!(
2373            subtags::Language::from_raw_unchecked(6644087u64),
2374            None,
2375            None
2376        ),
2377        |po| {
2378            if (po.n == 1.0) {
2379                PluralCategory::ONE
2380            } else {
2381                PluralCategory::OTHER
2382            }
2383        },
2384    ),
2385    (
2386        langid!(subtags::Language::from_raw_unchecked(28535u64), None, None),
2387        |po| PluralCategory::OTHER,
2388    ),
2389    (
2390        langid!(subtags::Language::from_raw_unchecked(26744u64), None, None),
2391        |po| {
2392            if (po.n == 1.0) {
2393                PluralCategory::ONE
2394            } else {
2395                PluralCategory::OTHER
2396            }
2397        },
2398    ),
2399    (
2400        langid!(
2401            subtags::Language::from_raw_unchecked(6778744u64),
2402            None,
2403            None
2404        ),
2405        |po| {
2406            if (po.n == 1.0) {
2407                PluralCategory::ONE
2408            } else {
2409                PluralCategory::OTHER
2410            }
2411        },
2412    ),
2413    (
2414        langid!(subtags::Language::from_raw_unchecked(27001u64), None, None),
2415        |po| {
2416            if (po.i == 1 && po.v == 0) {
2417                PluralCategory::ONE
2418            } else {
2419                PluralCategory::OTHER
2420            }
2421        },
2422    ),
2423    (
2424        langid!(subtags::Language::from_raw_unchecked(28537u64), None, None),
2425        |po| PluralCategory::OTHER,
2426    ),
2427    (
2428        langid!(
2429            subtags::Language::from_raw_unchecked(6649209u64),
2430            None,
2431            None
2432        ),
2433        |po| PluralCategory::OTHER,
2434    ),
2435    (
2436        langid!(subtags::Language::from_raw_unchecked(26746u64), None, None),
2437        |po| PluralCategory::OTHER,
2438    ),
2439    (
2440        langid!(subtags::Language::from_raw_unchecked(30074u64), None, None),
2441        |po| {
2442            if (po.i == 0) || (po.n == 1.0) {
2443                PluralCategory::ONE
2444            } else {
2445                PluralCategory::OTHER
2446            }
2447        },
2448    ),
2449];
2450pub const PRS_ORDINAL: &[(LanguageIdentifier, PluralRule)] = &[
2451    (
2452        langid!(subtags::Language::from_raw_unchecked(26209u64), None, None),
2453        |po| PluralCategory::OTHER,
2454    ),
2455    (
2456        langid!(subtags::Language::from_raw_unchecked(28001u64), None, None),
2457        |po| PluralCategory::OTHER,
2458    ),
2459    (
2460        langid!(subtags::Language::from_raw_unchecked(28257u64), None, None),
2461        |po| PluralCategory::OTHER,
2462    ),
2463    (
2464        langid!(subtags::Language::from_raw_unchecked(29281u64), None, None),
2465        |po| PluralCategory::OTHER,
2466    ),
2467    (
2468        langid!(subtags::Language::from_raw_unchecked(29537u64), None, None),
2469        |po| {
2470            if (po.n == 4.0) {
2471                PluralCategory::FEW
2472            } else if (po.n == 6.0) {
2473                PluralCategory::MANY
2474            } else if (po.n == 1.0
2475                || po.n == 5.0
2476                || po.n == 7.0
2477                || po.n == 8.0
2478                || po.n == 9.0
2479                || po.n == 10.0)
2480            {
2481                PluralCategory::ONE
2482            } else if (po.n == 2.0 || po.n == 3.0) {
2483                PluralCategory::TWO
2484            } else {
2485                PluralCategory::OTHER
2486            }
2487        },
2488    ),
2489    (
2490        langid!(subtags::Language::from_raw_unchecked(31329u64), None, None),
2491        |po| {
2492            if (po.i % 10 == 3 || po.i % 10 == 4)
2493                || (po.i % 1000 == 100
2494                    || po.i % 1000 == 200
2495                    || po.i % 1000 == 300
2496                    || po.i % 1000 == 400
2497                    || po.i % 1000 == 500
2498                    || po.i % 1000 == 600
2499                    || po.i % 1000 == 700
2500                    || po.i % 1000 == 800
2501                    || po.i % 1000 == 900)
2502            {
2503                PluralCategory::FEW
2504            } else if (po.i == 0)
2505                || (po.i % 10 == 6)
2506                || (po.i % 100 == 40 || po.i % 100 == 60 || po.i % 100 == 90)
2507            {
2508                PluralCategory::MANY
2509            } else if (po.i % 10 == 1
2510                || po.i % 10 == 2
2511                || po.i % 10 == 5
2512                || po.i % 10 == 7
2513                || po.i % 10 == 8)
2514                || (po.i % 100 == 20 || po.i % 100 == 50 || po.i % 100 == 70 || po.i % 100 == 80)
2515            {
2516                PluralCategory::ONE
2517            } else {
2518                PluralCategory::OTHER
2519            }
2520        },
2521    ),
2522    (
2523        langid!(subtags::Language::from_raw_unchecked(25954u64), None, None),
2524        |po| {
2525            if ((po.i % 10 == 2 || po.i % 10 == 3) && po.i % 100 != 12 && po.i % 100 != 13) {
2526                PluralCategory::FEW
2527            } else {
2528                PluralCategory::OTHER
2529            }
2530        },
2531    ),
2532    (
2533        langid!(subtags::Language::from_raw_unchecked(26466u64), None, None),
2534        |po| PluralCategory::OTHER,
2535    ),
2536    (
2537        langid!(subtags::Language::from_raw_unchecked(28258u64), None, None),
2538        |po| {
2539            if (po.n == 4.0) {
2540                PluralCategory::FEW
2541            } else if (po.n == 6.0) {
2542                PluralCategory::MANY
2543            } else if (po.n == 1.0
2544                || po.n == 5.0
2545                || po.n == 7.0
2546                || po.n == 8.0
2547                || po.n == 9.0
2548                || po.n == 10.0)
2549            {
2550                PluralCategory::ONE
2551            } else if (po.n == 2.0 || po.n == 3.0) {
2552                PluralCategory::TWO
2553            } else {
2554                PluralCategory::OTHER
2555            }
2556        },
2557    ),
2558    (
2559        langid!(subtags::Language::from_raw_unchecked(29538u64), None, None),
2560        |po| PluralCategory::OTHER,
2561    ),
2562    (
2563        langid!(subtags::Language::from_raw_unchecked(24931u64), None, None),
2564        |po| {
2565            if (po.n == 4.0) {
2566                PluralCategory::FEW
2567            } else if (po.n == 1.0 || po.n == 3.0) {
2568                PluralCategory::ONE
2569            } else if (po.n == 2.0) {
2570                PluralCategory::TWO
2571            } else {
2572                PluralCategory::OTHER
2573            }
2574        },
2575    ),
2576    (
2577        langid!(subtags::Language::from_raw_unchecked(25955u64), None, None),
2578        |po| PluralCategory::OTHER,
2579    ),
2580    (
2581        langid!(subtags::Language::from_raw_unchecked(29539u64), None, None),
2582        |po| PluralCategory::OTHER,
2583    ),
2584    (
2585        langid!(subtags::Language::from_raw_unchecked(31075u64), None, None),
2586        |po| {
2587            if (po.n == 3.0 || po.n == 4.0) {
2588                PluralCategory::FEW
2589            } else if (po.n == 5.0 || po.n == 6.0) {
2590                PluralCategory::MANY
2591            } else if (po.n == 1.0) {
2592                PluralCategory::ONE
2593            } else if (po.n == 2.0) {
2594                PluralCategory::TWO
2595            } else if (po.n == 0.0 || po.n == 7.0 || po.n == 8.0 || po.n == 9.0) {
2596                PluralCategory::ZERO
2597            } else {
2598                PluralCategory::OTHER
2599            }
2600        },
2601    ),
2602    (
2603        langid!(subtags::Language::from_raw_unchecked(24932u64), None, None),
2604        |po| PluralCategory::OTHER,
2605    ),
2606    (
2607        langid!(subtags::Language::from_raw_unchecked(25956u64), None, None),
2608        |po| PluralCategory::OTHER,
2609    ),
2610    (
2611        langid!(
2612            subtags::Language::from_raw_unchecked(6452068u64),
2613            None,
2614            None
2615        ),
2616        |po| PluralCategory::OTHER,
2617    ),
2618    (
2619        langid!(subtags::Language::from_raw_unchecked(27749u64), None, None),
2620        |po| PluralCategory::OTHER,
2621    ),
2622    (
2623        langid!(subtags::Language::from_raw_unchecked(28261u64), None, None),
2624        |po| {
2625            if (po.i % 10 == 3 && po.i % 100 != 13) {
2626                PluralCategory::FEW
2627            } else if (po.i % 10 == 1 && po.i % 100 != 11) {
2628                PluralCategory::ONE
2629            } else if (po.i % 10 == 2 && po.i % 100 != 12) {
2630                PluralCategory::TWO
2631            } else {
2632                PluralCategory::OTHER
2633            }
2634        },
2635    ),
2636    (
2637        langid!(subtags::Language::from_raw_unchecked(29541u64), None, None),
2638        |po| PluralCategory::OTHER,
2639    ),
2640    (
2641        langid!(subtags::Language::from_raw_unchecked(29797u64), None, None),
2642        |po| PluralCategory::OTHER,
2643    ),
2644    (
2645        langid!(subtags::Language::from_raw_unchecked(30053u64), None, None),
2646        |po| PluralCategory::OTHER,
2647    ),
2648    (
2649        langid!(subtags::Language::from_raw_unchecked(24934u64), None, None),
2650        |po| PluralCategory::OTHER,
2651    ),
2652    (
2653        langid!(subtags::Language::from_raw_unchecked(26982u64), None, None),
2654        |po| PluralCategory::OTHER,
2655    ),
2656    (
2657        langid!(
2658            subtags::Language::from_raw_unchecked(7104870u64),
2659            None,
2660            None
2661        ),
2662        |po| {
2663            if (po.n == 1.0) {
2664                PluralCategory::ONE
2665            } else {
2666                PluralCategory::OTHER
2667            }
2668        },
2669    ),
2670    (
2671        langid!(subtags::Language::from_raw_unchecked(29286u64), None, None),
2672        |po| {
2673            if (po.n == 1.0) {
2674                PluralCategory::ONE
2675            } else {
2676                PluralCategory::OTHER
2677            }
2678        },
2679    ),
2680    (
2681        langid!(subtags::Language::from_raw_unchecked(31078u64), None, None),
2682        |po| PluralCategory::OTHER,
2683    ),
2684    (
2685        langid!(subtags::Language::from_raw_unchecked(24935u64), None, None),
2686        |po| {
2687            if (po.n == 1.0) {
2688                PluralCategory::ONE
2689            } else {
2690                PluralCategory::OTHER
2691            }
2692        },
2693    ),
2694    (
2695        langid!(subtags::Language::from_raw_unchecked(25703u64), None, None),
2696        |po| {
2697            if (po.n == 3.0 || po.n == 13.0) {
2698                PluralCategory::FEW
2699            } else if (po.n == 1.0 || po.n == 11.0) {
2700                PluralCategory::ONE
2701            } else if (po.n == 2.0 || po.n == 12.0) {
2702                PluralCategory::TWO
2703            } else {
2704                PluralCategory::OTHER
2705            }
2706        },
2707    ),
2708    (
2709        langid!(subtags::Language::from_raw_unchecked(27751u64), None, None),
2710        |po| PluralCategory::OTHER,
2711    ),
2712    (
2713        langid!(
2714            subtags::Language::from_raw_unchecked(7828327u64),
2715            None,
2716            None
2717        ),
2718        |po| PluralCategory::OTHER,
2719    ),
2720    (
2721        langid!(subtags::Language::from_raw_unchecked(30055u64), None, None),
2722        |po| {
2723            if (po.n == 4.0) {
2724                PluralCategory::FEW
2725            } else if (po.n == 6.0) {
2726                PluralCategory::MANY
2727            } else if (po.n == 1.0) {
2728                PluralCategory::ONE
2729            } else if (po.n == 2.0 || po.n == 3.0) {
2730                PluralCategory::TWO
2731            } else {
2732                PluralCategory::OTHER
2733            }
2734        },
2735    ),
2736    (
2737        langid!(subtags::Language::from_raw_unchecked(25960u64), None, None),
2738        |po| PluralCategory::OTHER,
2739    ),
2740    (
2741        langid!(subtags::Language::from_raw_unchecked(26984u64), None, None),
2742        |po| {
2743            if (po.n == 4.0) {
2744                PluralCategory::FEW
2745            } else if (po.n == 6.0) {
2746                PluralCategory::MANY
2747            } else if (po.n == 1.0) {
2748                PluralCategory::ONE
2749            } else if (po.n == 2.0 || po.n == 3.0) {
2750                PluralCategory::TWO
2751            } else {
2752                PluralCategory::OTHER
2753            }
2754        },
2755    ),
2756    (
2757        langid!(subtags::Language::from_raw_unchecked(29288u64), None, None),
2758        |po| PluralCategory::OTHER,
2759    ),
2760    (
2761        langid!(
2762            subtags::Language::from_raw_unchecked(6452072u64),
2763            None,
2764            None
2765        ),
2766        |po| PluralCategory::OTHER,
2767    ),
2768    (
2769        langid!(subtags::Language::from_raw_unchecked(30056u64), None, None),
2770        |po| {
2771            if (po.n == 1.0 || po.n == 5.0) {
2772                PluralCategory::ONE
2773            } else {
2774                PluralCategory::OTHER
2775            }
2776        },
2777    ),
2778    (
2779        langid!(subtags::Language::from_raw_unchecked(31080u64), None, None),
2780        |po| {
2781            if (po.n == 1.0) {
2782                PluralCategory::ONE
2783            } else {
2784                PluralCategory::OTHER
2785            }
2786        },
2787    ),
2788    (
2789        langid!(subtags::Language::from_raw_unchecked(24937u64), None, None),
2790        |po| PluralCategory::OTHER,
2791    ),
2792    (
2793        langid!(subtags::Language::from_raw_unchecked(25705u64), None, None),
2794        |po| PluralCategory::OTHER,
2795    ),
2796    (
2797        langid!(subtags::Language::from_raw_unchecked(28265u64), None, None),
2798        |po| PluralCategory::OTHER,
2799    ),
2800    (
2801        langid!(subtags::Language::from_raw_unchecked(29545u64), None, None),
2802        |po| PluralCategory::OTHER,
2803    ),
2804    (
2805        langid!(subtags::Language::from_raw_unchecked(29801u64), None, None),
2806        |po| {
2807            if (po.n == 11.0 || po.n == 8.0 || po.n == 80.0 || po.n == 800.0) {
2808                PluralCategory::MANY
2809            } else {
2810                PluralCategory::OTHER
2811            }
2812        },
2813    ),
2814    (
2815        langid!(subtags::Language::from_raw_unchecked(30569u64), None, None),
2816        |po| PluralCategory::OTHER,
2817    ),
2818    (
2819        langid!(subtags::Language::from_raw_unchecked(24938u64), None, None),
2820        |po| PluralCategory::OTHER,
2821    ),
2822    (
2823        langid!(subtags::Language::from_raw_unchecked(24939u64), None, None),
2824        |po| {
2825            if (po.i == 0)
2826                || (po.i % 100 == 40
2827                    || po.i % 100 == 60
2828                    || po.i % 100 == 80
2829                    || (2..=20).contains(&(po.i % 100)))
2830            {
2831                PluralCategory::MANY
2832            } else if (po.i == 1) {
2833                PluralCategory::ONE
2834            } else {
2835                PluralCategory::OTHER
2836            }
2837        },
2838    ),
2839    (
2840        langid!(subtags::Language::from_raw_unchecked(27499u64), None, None),
2841        |po| {
2842            if (po.i % 10 == 6) || (po.i % 10 == 9) || (po.i % 10 == 0 && po.n != 0.0) {
2843                PluralCategory::MANY
2844            } else {
2845                PluralCategory::OTHER
2846            }
2847        },
2848    ),
2849    (
2850        langid!(subtags::Language::from_raw_unchecked(28011u64), None, None),
2851        |po| PluralCategory::OTHER,
2852    ),
2853    (
2854        langid!(subtags::Language::from_raw_unchecked(28267u64), None, None),
2855        |po| PluralCategory::OTHER,
2856    ),
2857    (
2858        langid!(subtags::Language::from_raw_unchecked(28523u64), None, None),
2859        |po| PluralCategory::OTHER,
2860    ),
2861    (
2862        langid!(subtags::Language::from_raw_unchecked(30571u64), None, None),
2863        |po| {
2864            if (po.n == 5.0) || (po.i % 100 == 5) {
2865                PluralCategory::MANY
2866            } else if ((1..=4).contains(&(po.i)) && po.f == 0)
2867                || ((1..=4).contains(&(po.i))
2868                    || (21..=24).contains(&(po.i))
2869                    || (41..=44).contains(&(po.i))
2870                    || (61..=64).contains(&(po.i))
2871                    || (81..=84).contains(&(po.i)))
2872            {
2873                PluralCategory::ONE
2874            } else {
2875                PluralCategory::OTHER
2876            }
2877        },
2878    ),
2879    (
2880        langid!(subtags::Language::from_raw_unchecked(31083u64), None, None),
2881        |po| PluralCategory::OTHER,
2882    ),
2883    (
2884        langid!(subtags::Language::from_raw_unchecked(28524u64), None, None),
2885        |po| {
2886            if (po.n == 1.0) {
2887                PluralCategory::ONE
2888            } else {
2889                PluralCategory::OTHER
2890            }
2891        },
2892    ),
2893    (
2894        langid!(subtags::Language::from_raw_unchecked(29804u64), None, None),
2895        |po| PluralCategory::OTHER,
2896    ),
2897    (
2898        langid!(subtags::Language::from_raw_unchecked(30316u64), None, None),
2899        |po| PluralCategory::OTHER,
2900    ),
2901    (
2902        langid!(subtags::Language::from_raw_unchecked(27501u64), None, None),
2903        |po| {
2904            if ((po.i % 10 == 7 || po.i % 10 == 8) && po.i % 100 != 17 && po.i % 100 != 18) {
2905                PluralCategory::MANY
2906            } else if (po.i % 10 == 1 && po.i % 100 != 11) {
2907                PluralCategory::ONE
2908            } else if (po.i % 10 == 2 && po.i % 100 != 12) {
2909                PluralCategory::TWO
2910            } else {
2911                PluralCategory::OTHER
2912            }
2913        },
2914    ),
2915    (
2916        langid!(subtags::Language::from_raw_unchecked(27757u64), None, None),
2917        |po| PluralCategory::OTHER,
2918    ),
2919    (
2920        langid!(subtags::Language::from_raw_unchecked(28269u64), None, None),
2921        |po| PluralCategory::OTHER,
2922    ),
2923    (
2924        langid!(subtags::Language::from_raw_unchecked(28525u64), None, None),
2925        |po| {
2926            if (po.n == 1.0) {
2927                PluralCategory::ONE
2928            } else {
2929                PluralCategory::OTHER
2930            }
2931        },
2932    ),
2933    (
2934        langid!(subtags::Language::from_raw_unchecked(29293u64), None, None),
2935        |po| {
2936            if (po.n == 4.0) {
2937                PluralCategory::FEW
2938            } else if (po.n == 1.0) {
2939                PluralCategory::ONE
2940            } else if (po.n == 2.0 || po.n == 3.0) {
2941                PluralCategory::TWO
2942            } else {
2943                PluralCategory::OTHER
2944            }
2945        },
2946    ),
2947    (
2948        langid!(subtags::Language::from_raw_unchecked(29549u64), None, None),
2949        |po| {
2950            if (po.n == 1.0) {
2951                PluralCategory::ONE
2952            } else {
2953                PluralCategory::OTHER
2954            }
2955        },
2956    ),
2957    (
2958        langid!(subtags::Language::from_raw_unchecked(31085u64), None, None),
2959        |po| PluralCategory::OTHER,
2960    ),
2961    (
2962        langid!(subtags::Language::from_raw_unchecked(25198u64), None, None),
2963        |po| PluralCategory::OTHER,
2964    ),
2965    (
2966        langid!(subtags::Language::from_raw_unchecked(25966u64), None, None),
2967        |po| {
2968            if ((1..=4).contains(&(po.i)) && po.f == 0) {
2969                PluralCategory::ONE
2970            } else {
2971                PluralCategory::OTHER
2972            }
2973        },
2974    ),
2975    (
2976        langid!(subtags::Language::from_raw_unchecked(27758u64), None, None),
2977        |po| PluralCategory::OTHER,
2978    ),
2979    (
2980        langid!(subtags::Language::from_raw_unchecked(29295u64), None, None),
2981        |po| {
2982            if (po.n == 4.0) {
2983                PluralCategory::FEW
2984            } else if (po.n == 6.0) {
2985                PluralCategory::MANY
2986            } else if (po.n == 1.0 || po.n == 5.0 || (7..=9).contains(&(po.i)) && po.f == 0) {
2987                PluralCategory::ONE
2988            } else if (po.n == 2.0 || po.n == 3.0) {
2989                PluralCategory::TWO
2990            } else {
2991                PluralCategory::OTHER
2992            }
2993        },
2994    ),
2995    (
2996        langid!(subtags::Language::from_raw_unchecked(24944u64), None, None),
2997        |po| PluralCategory::OTHER,
2998    ),
2999    (
3000        langid!(subtags::Language::from_raw_unchecked(27760u64), None, None),
3001        |po| PluralCategory::OTHER,
3002    ),
3003    (
3004        langid!(
3005            subtags::Language::from_raw_unchecked(6779504u64),
3006            None,
3007            None
3008        ),
3009        |po| PluralCategory::OTHER,
3010    ),
3011    (
3012        langid!(subtags::Language::from_raw_unchecked(29552u64), None, None),
3013        |po| PluralCategory::OTHER,
3014    ),
3015    (
3016        langid!(subtags::Language::from_raw_unchecked(29808u64), None, None),
3017        |po| PluralCategory::OTHER,
3018    ),
3019    (
3020        langid!(subtags::Language::from_raw_unchecked(28530u64), None, None),
3021        |po| {
3022            if (po.n == 1.0) {
3023                PluralCategory::ONE
3024            } else {
3025                PluralCategory::OTHER
3026            }
3027        },
3028    ),
3029    (
3030        langid!(subtags::Language::from_raw_unchecked(30066u64), None, None),
3031        |po| PluralCategory::OTHER,
3032    ),
3033    (
3034        langid!(subtags::Language::from_raw_unchecked(25459u64), None, None),
3035        |po| {
3036            if (po.n == 11.0 || po.n == 8.0 || po.n == 80.0 || po.n == 800.0) {
3037                PluralCategory::MANY
3038            } else {
3039                PluralCategory::OTHER
3040            }
3041        },
3042    ),
3043    (
3044        langid!(
3045            subtags::Language::from_raw_unchecked(7234419u64),
3046            None,
3047            None
3048        ),
3049        |po| {
3050            if (po.n == 11.0 || po.n == 8.0 || po.n == 80.0 || po.n == 800.0) {
3051                PluralCategory::MANY
3052            } else {
3053                PluralCategory::OTHER
3054            }
3055        },
3056    ),
3057    (
3058        langid!(subtags::Language::from_raw_unchecked(25715u64), None, None),
3059        |po| PluralCategory::OTHER,
3060    ),
3061    (
3062        langid!(subtags::Language::from_raw_unchecked(26739u64), None, None),
3063        |po| PluralCategory::OTHER,
3064    ),
3065    (
3066        langid!(subtags::Language::from_raw_unchecked(26995u64), None, None),
3067        |po| PluralCategory::OTHER,
3068    ),
3069    (
3070        langid!(subtags::Language::from_raw_unchecked(27507u64), None, None),
3071        |po| PluralCategory::OTHER,
3072    ),
3073    (
3074        langid!(subtags::Language::from_raw_unchecked(27763u64), None, None),
3075        |po| PluralCategory::OTHER,
3076    ),
3077    (
3078        langid!(subtags::Language::from_raw_unchecked(29043u64), None, None),
3079        |po| {
3080            if (po.i % 10 == 4 && po.i % 100 != 14) {
3081                PluralCategory::MANY
3082            } else if (po.n == 1.0) {
3083                PluralCategory::ONE
3084            } else {
3085                PluralCategory::OTHER
3086            }
3087        },
3088    ),
3089    (
3090        langid!(subtags::Language::from_raw_unchecked(29299u64), None, None),
3091        |po| PluralCategory::OTHER,
3092    ),
3093    (
3094        langid!(subtags::Language::from_raw_unchecked(30323u64), None, None),
3095        |po| {
3096            if ((po.i % 10 == 1 || po.i % 10 == 2) && po.i % 100 != 11 && po.i % 100 != 12) {
3097                PluralCategory::ONE
3098            } else {
3099                PluralCategory::OTHER
3100            }
3101        },
3102    ),
3103    (
3104        langid!(subtags::Language::from_raw_unchecked(30579u64), None, None),
3105        |po| PluralCategory::OTHER,
3106    ),
3107    (
3108        langid!(subtags::Language::from_raw_unchecked(24948u64), None, None),
3109        |po| PluralCategory::OTHER,
3110    ),
3111    (
3112        langid!(subtags::Language::from_raw_unchecked(25972u64), None, None),
3113        |po| PluralCategory::OTHER,
3114    ),
3115    (
3116        langid!(subtags::Language::from_raw_unchecked(26740u64), None, None),
3117        |po| PluralCategory::OTHER,
3118    ),
3119    (
3120        langid!(subtags::Language::from_raw_unchecked(27508u64), None, None),
3121        |po| {
3122            if (po.i % 10 == 6 || po.i % 10 == 9) || (po.n == 10.0) {
3123                PluralCategory::FEW
3124            } else {
3125                PluralCategory::OTHER
3126            }
3127        },
3128    ),
3129    (
3130        langid!(subtags::Language::from_raw_unchecked(27764u64), None, None),
3131        |po| {
3132            if (po.n == 1.0) {
3133                PluralCategory::ONE
3134            } else {
3135                PluralCategory::OTHER
3136            }
3137        },
3138    ),
3139    (
3140        langid!(subtags::Language::from_raw_unchecked(29300u64), None, None),
3141        |po| PluralCategory::OTHER,
3142    ),
3143    (
3144        langid!(subtags::Language::from_raw_unchecked(27509u64), None, None),
3145        |po| {
3146            if (po.i % 10 == 3 && po.i % 100 != 13) {
3147                PluralCategory::FEW
3148            } else {
3149                PluralCategory::OTHER
3150            }
3151        },
3152    ),
3153    (
3154        langid!(subtags::Language::from_raw_unchecked(29301u64), None, None),
3155        |po| PluralCategory::OTHER,
3156    ),
3157    (
3158        langid!(subtags::Language::from_raw_unchecked(31349u64), None, None),
3159        |po| PluralCategory::OTHER,
3160    ),
3161    (
3162        langid!(subtags::Language::from_raw_unchecked(26998u64), None, None),
3163        |po| {
3164            if (po.n == 1.0) {
3165                PluralCategory::ONE
3166            } else {
3167                PluralCategory::OTHER
3168            }
3169        },
3170    ),
3171    (
3172        langid!(
3173            subtags::Language::from_raw_unchecked(6649209u64),
3174            None,
3175            None
3176        ),
3177        |po| PluralCategory::OTHER,
3178    ),
3179    (
3180        langid!(subtags::Language::from_raw_unchecked(26746u64), None, None),
3181        |po| PluralCategory::OTHER,
3182    ),
3183    (
3184        langid!(subtags::Language::from_raw_unchecked(30074u64), None, None),
3185        |po| PluralCategory::OTHER,
3186    ),
3187];