@formatjs/intl-pluralrules 6.3.14 → 6.3.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (464) hide show
  1. package/LICENSE.md +0 -0
  2. package/README.md +0 -0
  3. package/index.d.ts +1 -0
  4. package/index.js +5 -62
  5. package/index.js.map +1 -1
  6. package/locale-data/af.d.ts +0 -0
  7. package/locale-data/af.js +0 -0
  8. package/locale-data/ak.d.ts +0 -0
  9. package/locale-data/ak.js +0 -0
  10. package/locale-data/am.d.ts +0 -0
  11. package/locale-data/am.js +0 -0
  12. package/locale-data/an.d.ts +0 -0
  13. package/locale-data/an.js +0 -0
  14. package/locale-data/ar.d.ts +0 -0
  15. package/locale-data/ar.js +0 -0
  16. package/locale-data/ars.d.ts +0 -0
  17. package/locale-data/ars.js +0 -0
  18. package/locale-data/as.d.ts +0 -0
  19. package/locale-data/as.js +0 -0
  20. package/locale-data/asa.d.ts +0 -0
  21. package/locale-data/asa.js +0 -0
  22. package/locale-data/ast.d.ts +0 -0
  23. package/locale-data/ast.js +0 -0
  24. package/locale-data/az.d.ts +0 -0
  25. package/locale-data/az.js +0 -0
  26. package/locale-data/bal.d.ts +0 -0
  27. package/locale-data/bal.js +0 -0
  28. package/locale-data/be.d.ts +0 -0
  29. package/locale-data/be.js +0 -0
  30. package/locale-data/bem.d.ts +0 -0
  31. package/locale-data/bem.js +0 -0
  32. package/locale-data/bez.d.ts +0 -0
  33. package/locale-data/bez.js +0 -0
  34. package/locale-data/bg.d.ts +0 -0
  35. package/locale-data/bg.js +0 -0
  36. package/locale-data/bho.d.ts +0 -0
  37. package/locale-data/bho.js +0 -0
  38. package/locale-data/blo.d.ts +0 -0
  39. package/locale-data/blo.js +0 -0
  40. package/locale-data/bm.d.ts +0 -0
  41. package/locale-data/bm.js +0 -0
  42. package/locale-data/bn.d.ts +0 -0
  43. package/locale-data/bn.js +0 -0
  44. package/locale-data/bo.d.ts +0 -0
  45. package/locale-data/bo.js +0 -0
  46. package/locale-data/br.d.ts +0 -0
  47. package/locale-data/br.js +0 -0
  48. package/locale-data/brx.d.ts +0 -0
  49. package/locale-data/brx.js +0 -0
  50. package/locale-data/bs.d.ts +0 -0
  51. package/locale-data/bs.js +0 -0
  52. package/locale-data/ca.d.ts +0 -0
  53. package/locale-data/ca.js +0 -0
  54. package/locale-data/ce.d.ts +0 -0
  55. package/locale-data/ce.js +0 -0
  56. package/locale-data/ceb.d.ts +0 -0
  57. package/locale-data/ceb.js +0 -0
  58. package/locale-data/cgg.d.ts +0 -0
  59. package/locale-data/cgg.js +0 -0
  60. package/locale-data/chr.d.ts +0 -0
  61. package/locale-data/chr.js +0 -0
  62. package/locale-data/ckb.d.ts +0 -0
  63. package/locale-data/ckb.js +0 -0
  64. package/locale-data/cs.d.ts +0 -0
  65. package/locale-data/cs.js +0 -0
  66. package/locale-data/csw.d.ts +0 -0
  67. package/locale-data/csw.js +0 -0
  68. package/locale-data/cv.d.ts +0 -0
  69. package/locale-data/cv.js +0 -0
  70. package/locale-data/cy.d.ts +0 -0
  71. package/locale-data/cy.js +0 -0
  72. package/locale-data/da.d.ts +0 -0
  73. package/locale-data/da.js +0 -0
  74. package/locale-data/de.d.ts +0 -0
  75. package/locale-data/de.js +0 -0
  76. package/locale-data/doi.d.ts +0 -0
  77. package/locale-data/doi.js +0 -0
  78. package/locale-data/dsb.d.ts +0 -0
  79. package/locale-data/dsb.js +0 -0
  80. package/locale-data/dv.d.ts +0 -0
  81. package/locale-data/dv.js +0 -0
  82. package/locale-data/dz.d.ts +0 -0
  83. package/locale-data/dz.js +0 -0
  84. package/locale-data/ee.d.ts +0 -0
  85. package/locale-data/ee.js +0 -0
  86. package/locale-data/el.d.ts +0 -0
  87. package/locale-data/el.js +0 -0
  88. package/locale-data/en.d.ts +0 -0
  89. package/locale-data/en.js +0 -0
  90. package/locale-data/eo.d.ts +0 -0
  91. package/locale-data/eo.js +0 -0
  92. package/locale-data/es.d.ts +0 -0
  93. package/locale-data/es.js +0 -0
  94. package/locale-data/et.d.ts +0 -0
  95. package/locale-data/et.js +0 -0
  96. package/locale-data/eu.d.ts +0 -0
  97. package/locale-data/eu.js +0 -0
  98. package/locale-data/fa.d.ts +0 -0
  99. package/locale-data/fa.js +0 -0
  100. package/locale-data/ff.d.ts +0 -0
  101. package/locale-data/ff.js +0 -0
  102. package/locale-data/fi.d.ts +0 -0
  103. package/locale-data/fi.js +0 -0
  104. package/locale-data/fil.d.ts +0 -0
  105. package/locale-data/fil.js +0 -0
  106. package/locale-data/fo.d.ts +0 -0
  107. package/locale-data/fo.js +0 -0
  108. package/locale-data/fr.d.ts +0 -0
  109. package/locale-data/fr.js +0 -0
  110. package/locale-data/fur.d.ts +0 -0
  111. package/locale-data/fur.js +0 -0
  112. package/locale-data/fy.d.ts +0 -0
  113. package/locale-data/fy.js +0 -0
  114. package/locale-data/ga.d.ts +0 -0
  115. package/locale-data/ga.js +0 -0
  116. package/locale-data/gd.d.ts +0 -0
  117. package/locale-data/gd.js +0 -0
  118. package/locale-data/gl.d.ts +0 -0
  119. package/locale-data/gl.js +0 -0
  120. package/locale-data/gsw.d.ts +0 -0
  121. package/locale-data/gsw.js +0 -0
  122. package/locale-data/gu.d.ts +0 -0
  123. package/locale-data/gu.js +0 -0
  124. package/locale-data/guw.d.ts +0 -0
  125. package/locale-data/guw.js +0 -0
  126. package/locale-data/gv.d.ts +0 -0
  127. package/locale-data/gv.js +0 -0
  128. package/locale-data/ha.d.ts +0 -0
  129. package/locale-data/ha.js +0 -0
  130. package/locale-data/haw.d.ts +0 -0
  131. package/locale-data/haw.js +0 -0
  132. package/locale-data/he.d.ts +0 -0
  133. package/locale-data/he.js +0 -0
  134. package/locale-data/hi.d.ts +0 -0
  135. package/locale-data/hi.js +0 -0
  136. package/locale-data/hnj.d.ts +0 -0
  137. package/locale-data/hnj.js +0 -0
  138. package/locale-data/hr.d.ts +0 -0
  139. package/locale-data/hr.js +0 -0
  140. package/locale-data/hsb.d.ts +0 -0
  141. package/locale-data/hsb.js +0 -0
  142. package/locale-data/hu.d.ts +0 -0
  143. package/locale-data/hu.js +0 -0
  144. package/locale-data/hy.d.ts +0 -0
  145. package/locale-data/hy.js +0 -0
  146. package/locale-data/ia.d.ts +0 -0
  147. package/locale-data/ia.js +0 -0
  148. package/locale-data/id.d.ts +0 -0
  149. package/locale-data/id.js +0 -0
  150. package/locale-data/ie.d.ts +0 -0
  151. package/locale-data/ie.js +0 -0
  152. package/locale-data/ig.d.ts +0 -0
  153. package/locale-data/ig.js +0 -0
  154. package/locale-data/ii.d.ts +0 -0
  155. package/locale-data/ii.js +0 -0
  156. package/locale-data/io.d.ts +0 -0
  157. package/locale-data/io.js +0 -0
  158. package/locale-data/is.d.ts +0 -0
  159. package/locale-data/is.js +0 -0
  160. package/locale-data/it.d.ts +0 -0
  161. package/locale-data/it.js +0 -0
  162. package/locale-data/iu.d.ts +0 -0
  163. package/locale-data/iu.js +0 -0
  164. package/locale-data/ja.d.ts +0 -0
  165. package/locale-data/ja.js +0 -0
  166. package/locale-data/jbo.d.ts +0 -0
  167. package/locale-data/jbo.js +0 -0
  168. package/locale-data/jgo.d.ts +0 -0
  169. package/locale-data/jgo.js +0 -0
  170. package/locale-data/jmc.d.ts +0 -0
  171. package/locale-data/jmc.js +0 -0
  172. package/locale-data/jv.d.ts +0 -0
  173. package/locale-data/jv.js +0 -0
  174. package/locale-data/jw.d.ts +0 -0
  175. package/locale-data/jw.js +0 -0
  176. package/locale-data/ka.d.ts +0 -0
  177. package/locale-data/ka.js +0 -0
  178. package/locale-data/kab.d.ts +0 -0
  179. package/locale-data/kab.js +0 -0
  180. package/locale-data/kaj.d.ts +0 -0
  181. package/locale-data/kaj.js +0 -0
  182. package/locale-data/kcg.d.ts +0 -0
  183. package/locale-data/kcg.js +0 -0
  184. package/locale-data/kde.d.ts +0 -0
  185. package/locale-data/kde.js +0 -0
  186. package/locale-data/kea.d.ts +0 -0
  187. package/locale-data/kea.js +0 -0
  188. package/locale-data/kk.d.ts +0 -0
  189. package/locale-data/kk.js +0 -0
  190. package/locale-data/kkj.d.ts +0 -0
  191. package/locale-data/kkj.js +0 -0
  192. package/locale-data/kl.d.ts +0 -0
  193. package/locale-data/kl.js +0 -0
  194. package/locale-data/km.d.ts +0 -0
  195. package/locale-data/km.js +0 -0
  196. package/locale-data/kn.d.ts +0 -0
  197. package/locale-data/kn.js +0 -0
  198. package/locale-data/ko.d.ts +0 -0
  199. package/locale-data/ko.js +0 -0
  200. package/locale-data/kok-Latn.d.ts +0 -0
  201. package/locale-data/kok-Latn.js +0 -0
  202. package/locale-data/kok.d.ts +0 -0
  203. package/locale-data/kok.js +0 -0
  204. package/locale-data/ks.d.ts +0 -0
  205. package/locale-data/ks.js +0 -0
  206. package/locale-data/ksb.d.ts +0 -0
  207. package/locale-data/ksb.js +0 -0
  208. package/locale-data/ksh.d.ts +0 -0
  209. package/locale-data/ksh.js +0 -0
  210. package/locale-data/ku.d.ts +0 -0
  211. package/locale-data/ku.js +0 -0
  212. package/locale-data/kw.d.ts +0 -0
  213. package/locale-data/kw.js +0 -0
  214. package/locale-data/ky.d.ts +0 -0
  215. package/locale-data/ky.js +0 -0
  216. package/locale-data/lag.d.ts +0 -0
  217. package/locale-data/lag.js +0 -0
  218. package/locale-data/lb.d.ts +0 -0
  219. package/locale-data/lb.js +0 -0
  220. package/locale-data/lg.d.ts +0 -0
  221. package/locale-data/lg.js +0 -0
  222. package/locale-data/lij.d.ts +0 -0
  223. package/locale-data/lij.js +0 -0
  224. package/locale-data/lkt.d.ts +0 -0
  225. package/locale-data/lkt.js +0 -0
  226. package/locale-data/lld.d.ts +0 -0
  227. package/locale-data/lld.js +0 -0
  228. package/locale-data/ln.d.ts +0 -0
  229. package/locale-data/ln.js +0 -0
  230. package/locale-data/lo.d.ts +0 -0
  231. package/locale-data/lo.js +0 -0
  232. package/locale-data/lt.d.ts +0 -0
  233. package/locale-data/lt.js +0 -0
  234. package/locale-data/lv.d.ts +0 -0
  235. package/locale-data/lv.js +0 -0
  236. package/locale-data/mas.d.ts +0 -0
  237. package/locale-data/mas.js +0 -0
  238. package/locale-data/mg.d.ts +0 -0
  239. package/locale-data/mg.js +0 -0
  240. package/locale-data/mgo.d.ts +0 -0
  241. package/locale-data/mgo.js +0 -0
  242. package/locale-data/mk.d.ts +0 -0
  243. package/locale-data/mk.js +0 -0
  244. package/locale-data/ml.d.ts +0 -0
  245. package/locale-data/ml.js +0 -0
  246. package/locale-data/mn.d.ts +0 -0
  247. package/locale-data/mn.js +0 -0
  248. package/locale-data/mo.d.ts +0 -0
  249. package/locale-data/mo.js +0 -0
  250. package/locale-data/mr.d.ts +0 -0
  251. package/locale-data/mr.js +0 -0
  252. package/locale-data/ms.d.ts +0 -0
  253. package/locale-data/ms.js +0 -0
  254. package/locale-data/mt.d.ts +0 -0
  255. package/locale-data/mt.js +0 -0
  256. package/locale-data/my.d.ts +0 -0
  257. package/locale-data/my.js +0 -0
  258. package/locale-data/nah.d.ts +0 -0
  259. package/locale-data/nah.js +0 -0
  260. package/locale-data/naq.d.ts +0 -0
  261. package/locale-data/naq.js +0 -0
  262. package/locale-data/nb.d.ts +0 -0
  263. package/locale-data/nb.js +0 -0
  264. package/locale-data/nd.d.ts +0 -0
  265. package/locale-data/nd.js +0 -0
  266. package/locale-data/ne.d.ts +0 -0
  267. package/locale-data/ne.js +0 -0
  268. package/locale-data/nl.d.ts +0 -0
  269. package/locale-data/nl.js +0 -0
  270. package/locale-data/nn.d.ts +0 -0
  271. package/locale-data/nn.js +0 -0
  272. package/locale-data/nnh.d.ts +0 -0
  273. package/locale-data/nnh.js +0 -0
  274. package/locale-data/no.d.ts +0 -0
  275. package/locale-data/no.js +0 -0
  276. package/locale-data/nqo.d.ts +0 -0
  277. package/locale-data/nqo.js +0 -0
  278. package/locale-data/nr.d.ts +0 -0
  279. package/locale-data/nr.js +0 -0
  280. package/locale-data/nso.d.ts +0 -0
  281. package/locale-data/nso.js +0 -0
  282. package/locale-data/ny.d.ts +0 -0
  283. package/locale-data/ny.js +0 -0
  284. package/locale-data/nyn.d.ts +0 -0
  285. package/locale-data/nyn.js +0 -0
  286. package/locale-data/om.d.ts +0 -0
  287. package/locale-data/om.js +0 -0
  288. package/locale-data/or.d.ts +0 -0
  289. package/locale-data/or.js +0 -0
  290. package/locale-data/os.d.ts +0 -0
  291. package/locale-data/os.js +0 -0
  292. package/locale-data/osa.d.ts +0 -0
  293. package/locale-data/osa.js +0 -0
  294. package/locale-data/pa.d.ts +0 -0
  295. package/locale-data/pa.js +0 -0
  296. package/locale-data/pap.d.ts +0 -0
  297. package/locale-data/pap.js +0 -0
  298. package/locale-data/pcm.d.ts +0 -0
  299. package/locale-data/pcm.js +0 -0
  300. package/locale-data/pl.d.ts +0 -0
  301. package/locale-data/pl.js +0 -0
  302. package/locale-data/prg.d.ts +0 -0
  303. package/locale-data/prg.js +0 -0
  304. package/locale-data/ps.d.ts +0 -0
  305. package/locale-data/ps.js +0 -0
  306. package/locale-data/pt-PT.d.ts +0 -0
  307. package/locale-data/pt-PT.js +0 -0
  308. package/locale-data/pt.d.ts +0 -0
  309. package/locale-data/pt.js +0 -0
  310. package/locale-data/rm.d.ts +0 -0
  311. package/locale-data/rm.js +0 -0
  312. package/locale-data/ro.d.ts +0 -0
  313. package/locale-data/ro.js +0 -0
  314. package/locale-data/rof.d.ts +0 -0
  315. package/locale-data/rof.js +0 -0
  316. package/locale-data/ru.d.ts +0 -0
  317. package/locale-data/ru.js +0 -0
  318. package/locale-data/rwk.d.ts +0 -0
  319. package/locale-data/rwk.js +0 -0
  320. package/locale-data/sah.d.ts +0 -0
  321. package/locale-data/sah.js +0 -0
  322. package/locale-data/saq.d.ts +0 -0
  323. package/locale-data/saq.js +0 -0
  324. package/locale-data/sat.d.ts +0 -0
  325. package/locale-data/sat.js +0 -0
  326. package/locale-data/sc.d.ts +0 -0
  327. package/locale-data/sc.js +0 -0
  328. package/locale-data/scn.d.ts +0 -0
  329. package/locale-data/scn.js +0 -0
  330. package/locale-data/sd.d.ts +0 -0
  331. package/locale-data/sd.js +0 -0
  332. package/locale-data/sdh.d.ts +0 -0
  333. package/locale-data/sdh.js +0 -0
  334. package/locale-data/se.d.ts +0 -0
  335. package/locale-data/se.js +0 -0
  336. package/locale-data/seh.d.ts +0 -0
  337. package/locale-data/seh.js +0 -0
  338. package/locale-data/ses.d.ts +0 -0
  339. package/locale-data/ses.js +0 -0
  340. package/locale-data/sg.d.ts +0 -0
  341. package/locale-data/sg.js +0 -0
  342. package/locale-data/sgs.d.ts +0 -0
  343. package/locale-data/sgs.js +0 -0
  344. package/locale-data/sh.d.ts +0 -0
  345. package/locale-data/sh.js +0 -0
  346. package/locale-data/shi.d.ts +0 -0
  347. package/locale-data/shi.js +0 -0
  348. package/locale-data/si.d.ts +0 -0
  349. package/locale-data/si.js +0 -0
  350. package/locale-data/sk.d.ts +0 -0
  351. package/locale-data/sk.js +0 -0
  352. package/locale-data/sl.d.ts +0 -0
  353. package/locale-data/sl.js +0 -0
  354. package/locale-data/sma.d.ts +0 -0
  355. package/locale-data/sma.js +0 -0
  356. package/locale-data/smi.d.ts +0 -0
  357. package/locale-data/smi.js +0 -0
  358. package/locale-data/smj.d.ts +0 -0
  359. package/locale-data/smj.js +0 -0
  360. package/locale-data/smn.d.ts +0 -0
  361. package/locale-data/smn.js +0 -0
  362. package/locale-data/sms.d.ts +0 -0
  363. package/locale-data/sms.js +0 -0
  364. package/locale-data/sn.d.ts +0 -0
  365. package/locale-data/sn.js +0 -0
  366. package/locale-data/so.d.ts +0 -0
  367. package/locale-data/so.js +0 -0
  368. package/locale-data/sq.d.ts +0 -0
  369. package/locale-data/sq.js +0 -0
  370. package/locale-data/sr.d.ts +0 -0
  371. package/locale-data/sr.js +0 -0
  372. package/locale-data/ss.d.ts +0 -0
  373. package/locale-data/ss.js +0 -0
  374. package/locale-data/ssy.d.ts +0 -0
  375. package/locale-data/ssy.js +0 -0
  376. package/locale-data/st.d.ts +0 -0
  377. package/locale-data/st.js +0 -0
  378. package/locale-data/su.d.ts +0 -0
  379. package/locale-data/su.js +0 -0
  380. package/locale-data/sv.d.ts +0 -0
  381. package/locale-data/sv.js +0 -0
  382. package/locale-data/sw.d.ts +0 -0
  383. package/locale-data/sw.js +0 -0
  384. package/locale-data/syr.d.ts +0 -0
  385. package/locale-data/syr.js +0 -0
  386. package/locale-data/ta.d.ts +0 -0
  387. package/locale-data/ta.js +0 -0
  388. package/locale-data/te.d.ts +0 -0
  389. package/locale-data/te.js +0 -0
  390. package/locale-data/teo.d.ts +0 -0
  391. package/locale-data/teo.js +0 -0
  392. package/locale-data/th.d.ts +0 -0
  393. package/locale-data/th.js +0 -0
  394. package/locale-data/ti.d.ts +0 -0
  395. package/locale-data/ti.js +0 -0
  396. package/locale-data/tig.d.ts +0 -0
  397. package/locale-data/tig.js +0 -0
  398. package/locale-data/tk.d.ts +0 -0
  399. package/locale-data/tk.js +0 -0
  400. package/locale-data/tl.d.ts +0 -0
  401. package/locale-data/tl.js +0 -0
  402. package/locale-data/tn.d.ts +0 -0
  403. package/locale-data/tn.js +0 -0
  404. package/locale-data/to.d.ts +0 -0
  405. package/locale-data/to.js +0 -0
  406. package/locale-data/tpi.d.ts +0 -0
  407. package/locale-data/tpi.js +0 -0
  408. package/locale-data/tr.d.ts +0 -0
  409. package/locale-data/tr.js +0 -0
  410. package/locale-data/ts.d.ts +0 -0
  411. package/locale-data/ts.js +0 -0
  412. package/locale-data/tzm.d.ts +0 -0
  413. package/locale-data/tzm.js +0 -0
  414. package/locale-data/ug.d.ts +0 -0
  415. package/locale-data/ug.js +0 -0
  416. package/locale-data/uk.d.ts +0 -0
  417. package/locale-data/uk.js +0 -0
  418. package/locale-data/und.d.ts +0 -0
  419. package/locale-data/und.js +0 -0
  420. package/locale-data/ur.d.ts +0 -0
  421. package/locale-data/ur.js +0 -0
  422. package/locale-data/uz.d.ts +0 -0
  423. package/locale-data/uz.js +0 -0
  424. package/locale-data/ve.d.ts +0 -0
  425. package/locale-data/ve.js +0 -0
  426. package/locale-data/vec.d.ts +0 -0
  427. package/locale-data/vec.js +0 -0
  428. package/locale-data/vi.d.ts +0 -0
  429. package/locale-data/vi.js +0 -0
  430. package/locale-data/vo.d.ts +0 -0
  431. package/locale-data/vo.js +0 -0
  432. package/locale-data/vun.d.ts +0 -0
  433. package/locale-data/vun.js +0 -0
  434. package/locale-data/wa.d.ts +0 -0
  435. package/locale-data/wa.js +0 -0
  436. package/locale-data/wae.d.ts +0 -0
  437. package/locale-data/wae.js +0 -0
  438. package/locale-data/wo.d.ts +0 -0
  439. package/locale-data/wo.js +0 -0
  440. package/locale-data/xh.d.ts +0 -0
  441. package/locale-data/xh.js +0 -0
  442. package/locale-data/xog.d.ts +0 -0
  443. package/locale-data/xog.js +0 -0
  444. package/locale-data/yi.d.ts +0 -0
  445. package/locale-data/yi.js +0 -0
  446. package/locale-data/yo.d.ts +0 -0
  447. package/locale-data/yo.js +0 -0
  448. package/locale-data/yue.d.ts +0 -0
  449. package/locale-data/yue.js +0 -0
  450. package/locale-data/zh.d.ts +0 -0
  451. package/locale-data/zh.js +0 -0
  452. package/locale-data/zu.d.ts +0 -0
  453. package/locale-data/zu.js +0 -0
  454. package/package.json +2 -2
  455. package/polyfill-force.d.ts +0 -0
  456. package/polyfill-force.js +5 -62
  457. package/polyfill-force.js.map +1 -1
  458. package/polyfill.d.ts +0 -0
  459. package/polyfill.iife.js +241 -63
  460. package/polyfill.js +5 -62
  461. package/polyfill.js.map +1 -1
  462. package/should-polyfill.d.ts +0 -0
  463. package/should-polyfill.js +0 -0
  464. package/should-polyfill.js.map +1 -1
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["invariant","Decimal"],"sources":["../../../node_modules/.aspect_rules_js/@formatjs_generated+cldr.supported-locales@0.0.0/node_modules/@formatjs_generated/cldr.supported-locales/default-content.js","../../ecma402-abstract/registerLocaleData.js","../../ecma402-abstract/CanonicalizeLocaleList.js","../../ecma262-abstract/ToObject.js","../../ecma262-abstract/ToString.js","../../ecma402-abstract/GetOption.js","../../ecma402-abstract/SupportedLocales.js","../../ecma262-abstract/ToPrimitive.js","../../ecma402-abstract/ToIntlMathematicalValue.js","../../ecma402-abstract/CoerceOptionsToObject.js","../../ecma402-abstract/DefaultNumberOption.js","../../ecma402-abstract/GetNumberOption.js","../../../node_modules/.aspect_rules_js/@formatjs+fast-memoize@0.0.0/node_modules/@formatjs/fast-memoize/index.js","../../ecma402-abstract/utils.js","../../ecma402-abstract/NumberFormat/SetNumberFormatDigitOptions.js","../../ecma402-abstract/PluralRules/InitializePluralRules.js","../../ecma262-abstract/Type.js","../../ecma402-abstract/constants.js","../../ecma402-abstract/NumberFormat/GetUnsignedRoundingMode.js","../../ecma402-abstract/NumberFormat/ApplyUnsignedRoundingMode.js","../../ecma402-abstract/NumberFormat/decimal-cache.js","../../ecma402-abstract/NumberFormat/ToRawFixed.js","../../ecma402-abstract/NumberFormat/ToRawPrecision.js","../../ecma402-abstract/NumberFormat/FormatNumericToString.js","../../ecma402-abstract/PluralRules/GetOperands.js","../../ecma402-abstract/PluralRules/ResolvePlural.js","../../ecma402-abstract/PluralRules/ResolvePluralRange.js","../get_internal_slots.ts","../index.ts"],"sourcesContent":["export const defaultContent = {\n\t\"aa\": [\"aa-ET\"],\n\t\"ab\": [\"ab-GE\"],\n\t\"af\": [\"af-ZA\"],\n\t\"agq\": [\"agq-CM\"],\n\t\"ak\": [\"ak-GH\"],\n\t\"am\": [\"am-ET\"],\n\t\"an\": [\"an-ES\"],\n\t\"ann\": [\"ann-NG\"],\n\t\"apc\": [\"apc-SY\"],\n\t\"ar\": [\"ar-001\"],\n\t\"arn\": [\"arn-CL\"],\n\t\"as\": [\"as-IN\"],\n\t\"asa\": [\"asa-TZ\"],\n\t\"ast\": [\"ast-ES\"],\n\t\"az-Arab\": [\"az-Arab-IR\"],\n\t\"az-Cyrl\": [\"az-Cyrl-AZ\"],\n\t\"az-Latn\": [\"az-Latn-AZ\"],\n\t\"ba\": [\"ba-RU\"],\n\t\"bal-Arab\": [\"bal-Arab-PK\"],\n\t\"bal-Latn\": [\"bal-Latn-PK\"],\n\t\"bas\": [\"bas-CM\"],\n\t\"be\": [\"be-BY\"],\n\t\"bem\": [\"bem-ZM\"],\n\t\"bew\": [\"bew-ID\"],\n\t\"bez\": [\"bez-TZ\"],\n\t\"bg\": [\"bg-BG\"],\n\t\"bgc\": [\"bgc-IN\"],\n\t\"bgn\": [\"bgn-PK\"],\n\t\"bho\": [\"bho-IN\"],\n\t\"blo\": [\"blo-BJ\"],\n\t\"blt\": [\"blt-VN\"],\n\t\"bm\": [\"bm-ML\"],\n\t\"bm-Nkoo\": [\"bm-Nkoo-ML\"],\n\t\"bn\": [\"bn-BD\"],\n\t\"bo\": [\"bo-CN\"],\n\t\"bqi\": [\"bqi-IR\"],\n\t\"br\": [\"br-FR\"],\n\t\"brx\": [\"brx-IN\"],\n\t\"bs-Cyrl\": [\"bs-Cyrl-BA\"],\n\t\"bs-Latn\": [\"bs-Latn-BA\"],\n\t\"bss\": [\"bss-CM\"],\n\t\"bua\": [\"bua-RU\"],\n\t\"byn\": [\"byn-ER\"],\n\t\"ca\": [\"ca-ES\"],\n\t\"cad\": [\"cad-US\"],\n\t\"cch\": [\"cch-NG\"],\n\t\"ccp\": [\"ccp-BD\"],\n\t\"ce\": [\"ce-RU\"],\n\t\"ceb\": [\"ceb-PH\"],\n\t\"cgg\": [\"cgg-UG\"],\n\t\"cho\": [\"cho-US\"],\n\t\"chr\": [\"chr-US\"],\n\t\"cic\": [\"cic-US\"],\n\t\"ckb\": [\"ckb-IQ\"],\n\t\"co\": [\"co-FR\"],\n\t\"cop\": [\"cop-EG\"],\n\t\"cs\": [\"cs-CZ\"],\n\t\"csw\": [\"csw-CA\"],\n\t\"cu\": [\"cu-RU\"],\n\t\"cv\": [\"cv-RU\"],\n\t\"cy\": [\"cy-GB\"],\n\t\"da\": [\"da-DK\"],\n\t\"dav\": [\"dav-KE\"],\n\t\"de\": [\"de-DE\"],\n\t\"dje\": [\"dje-NE\"],\n\t\"doi\": [\"doi-IN\"],\n\t\"dsb\": [\"dsb-DE\"],\n\t\"dua\": [\"dua-CM\"],\n\t\"dv\": [\"dv-MV\"],\n\t\"dyo\": [\"dyo-SN\"],\n\t\"dz\": [\"dz-BT\"],\n\t\"ebu\": [\"ebu-KE\"],\n\t\"ee\": [\"ee-GH\"],\n\t\"el\": [\"el-GR\"],\n\t\"en-Dsrt\": [\"en-Dsrt-US\"],\n\t\"en-Shaw\": [\"en-Shaw-GB\"],\n\t\"en\": [\"en-US\"],\n\t\"eo\": [\"eo-001\"],\n\t\"es\": [\"es-ES\"],\n\t\"et\": [\"et-EE\"],\n\t\"eu\": [\"eu-ES\"],\n\t\"ewo\": [\"ewo-CM\"],\n\t\"fa\": [\"fa-IR\"],\n\t\"ff-Adlm\": [\"ff-Adlm-GN\"],\n\t\"ff-Latn\": [\"ff-Latn-SN\"],\n\t\"fi\": [\"fi-FI\"],\n\t\"fil\": [\"fil-PH\"],\n\t\"fo\": [\"fo-FO\"],\n\t\"fr\": [\"fr-FR\"],\n\t\"frr\": [\"frr-DE\"],\n\t\"fur\": [\"fur-IT\"],\n\t\"fy\": [\"fy-NL\"],\n\t\"ga\": [\"ga-IE\"],\n\t\"gaa\": [\"gaa-GH\"],\n\t\"gd\": [\"gd-GB\"],\n\t\"gez\": [\"gez-ET\"],\n\t\"gl\": [\"gl-ES\"],\n\t\"gn\": [\"gn-PY\"],\n\t\"gsw\": [\"gsw-CH\"],\n\t\"gu\": [\"gu-IN\"],\n\t\"guz\": [\"guz-KE\"],\n\t\"gv\": [\"gv-IM\"],\n\t\"ha-Arab\": [\"ha-Arab-NG\"],\n\t\"ha\": [\"ha-NG\"],\n\t\"haw\": [\"haw-US\"],\n\t\"he\": [\"he-IL\"],\n\t\"hi\": [\"hi-IN\"],\n\t\"hi-Latn\": [\"hi-Latn-IN\"],\n\t\"hnj-Hmnp\": [\"hnj-Hmnp-US\"],\n\t\"hr\": [\"hr-HR\"],\n\t\"hsb\": [\"hsb-DE\"],\n\t\"ht\": [\"ht-HT\"],\n\t\"hu\": [\"hu-HU\"],\n\t\"hy\": [\"hy-AM\"],\n\t\"ia\": [\"ia-001\"],\n\t\"id\": [\"id-ID\"],\n\t\"ie\": [\"ie-EE\"],\n\t\"ig\": [\"ig-NG\"],\n\t\"ii\": [\"ii-CN\"],\n\t\"io\": [\"io-001\"],\n\t\"is\": [\"is-IS\"],\n\t\"it\": [\"it-IT\"],\n\t\"iu\": [\"iu-CA\"],\n\t\"iu-Latn\": [\"iu-Latn-CA\"],\n\t\"ja\": [\"ja-JP\"],\n\t\"jbo\": [\"jbo-001\"],\n\t\"jgo\": [\"jgo-CM\"],\n\t\"jmc\": [\"jmc-TZ\"],\n\t\"jv\": [\"jv-ID\"],\n\t\"ka\": [\"ka-GE\"],\n\t\"kaa-Cyrl\": [\"kaa-Cyrl-UZ\"],\n\t\"kaa-Latn\": [\"kaa-Latn-UZ\"],\n\t\"kab\": [\"kab-DZ\"],\n\t\"kaj\": [\"kaj-NG\"],\n\t\"kam\": [\"kam-KE\"],\n\t\"kcg\": [\"kcg-NG\"],\n\t\"kde\": [\"kde-TZ\"],\n\t\"kea\": [\"kea-CV\"],\n\t\"kek\": [\"kek-GT\"],\n\t\"ken\": [\"ken-CM\"],\n\t\"kgp\": [\"kgp-BR\"],\n\t\"khq\": [\"khq-ML\"],\n\t\"ki\": [\"ki-KE\"],\n\t\"kk-Arab\": [\"kk-Arab-CN\"],\n\t\"kk-Cyrl\": [\"kk-Cyrl-KZ\"],\n\t\"kkj\": [\"kkj-CM\"],\n\t\"kl\": [\"kl-GL\"],\n\t\"kln\": [\"kln-KE\"],\n\t\"km\": [\"km-KH\"],\n\t\"kn\": [\"kn-IN\"],\n\t\"ko\": [\"ko-KR\"],\n\t\"kok-Deva\": [\"kok-Deva-IN\"],\n\t\"kok-Latn\": [\"kok-Latn-IN\"],\n\t\"kpe\": [\"kpe-LR\"],\n\t\"ks-Arab\": [\"ks-Arab-IN\"],\n\t\"ks-Deva\": [\"ks-Deva-IN\"],\n\t\"ksb\": [\"ksb-TZ\"],\n\t\"ksf\": [\"ksf-CM\"],\n\t\"ksh\": [\"ksh-DE\"],\n\t\"ku-Arab\": [\"ku-Arab-IQ\"],\n\t\"ku-Latn\": [\"ku-Latn-TR\"],\n\t\"kw\": [\"kw-GB\"],\n\t\"kxv-Deva\": [\"kxv-Deva-IN\"],\n\t\"kxv-Latn\": [\"kxv-Latn-IN\"],\n\t\"kxv-Orya\": [\"kxv-Orya-IN\"],\n\t\"kxv-Telu\": [\"kxv-Telu-IN\"],\n\t\"ky\": [\"ky-KG\"],\n\t\"la\": [\"la-VA\"],\n\t\"lag\": [\"lag-TZ\"],\n\t\"lb\": [\"lb-LU\"],\n\t\"lg\": [\"lg-UG\"],\n\t\"lij\": [\"lij-IT\"],\n\t\"lkt\": [\"lkt-US\"],\n\t\"lld\": [\"lld-IT\"],\n\t\"lmo\": [\"lmo-IT\"],\n\t\"ln\": [\"ln-CD\"],\n\t\"lo\": [\"lo-LA\"],\n\t\"lrc\": [\"lrc-IR\"],\n\t\"lt\": [\"lt-LT\"],\n\t\"ltg\": [\"ltg-LV\"],\n\t\"lu\": [\"lu-CD\"],\n\t\"luo\": [\"luo-KE\"],\n\t\"luy\": [\"luy-KE\"],\n\t\"lv\": [\"lv-LV\"],\n\t\"lzz\": [\"lzz-TR\"],\n\t\"mai\": [\"mai-IN\"],\n\t\"mas\": [\"mas-KE\"],\n\t\"mdf\": [\"mdf-RU\"],\n\t\"mer\": [\"mer-KE\"],\n\t\"mfe\": [\"mfe-MU\"],\n\t\"mg\": [\"mg-MG\"],\n\t\"mgh\": [\"mgh-MZ\"],\n\t\"mgo\": [\"mgo-CM\"],\n\t\"mhn\": [\"mhn-IT\"],\n\t\"mi\": [\"mi-NZ\"],\n\t\"mic\": [\"mic-CA\"],\n\t\"mk\": [\"mk-MK\"],\n\t\"ml\": [\"ml-IN\"],\n\t\"mn\": [\"mn-MN\"],\n\t\"mn-Mong\": [\"mn-Mong-CN\"],\n\t\"mni-Beng\": [\"mni-Beng-IN\"],\n\t\"mni-Mtei\": [\"mni-Mtei-IN\"],\n\t\"moh\": [\"moh-CA\"],\n\t\"mr\": [\"mr-IN\"],\n\t\"ms-Arab\": [\"ms-Arab-MY\"],\n\t\"ms\": [\"ms-MY\"],\n\t\"mt\": [\"mt-MT\"],\n\t\"mua\": [\"mua-CM\"],\n\t\"mus\": [\"mus-US\"],\n\t\"mww-Hmnp\": [\"mww-Hmnp-US\"],\n\t\"my\": [\"my-MM\"],\n\t\"myv\": [\"myv-RU\"],\n\t\"mzn\": [\"mzn-IR\"],\n\t\"naq\": [\"naq-NA\"],\n\t\"nb\": [\"nb-NO\"],\n\t\"nd\": [\"nd-ZW\"],\n\t\"nds\": [\"nds-DE\"],\n\t\"ne\": [\"ne-NP\"],\n\t\"nl\": [\"nl-NL\"],\n\t\"nmg\": [\"nmg-CM\"],\n\t\"nn\": [\"nn-NO\"],\n\t\"nnh\": [\"nnh-CM\"],\n\t\"nqo\": [\"nqo-GN\"],\n\t\"nr\": [\"nr-ZA\"],\n\t\"nso\": [\"nso-ZA\"],\n\t\"nus\": [\"nus-SS\"],\n\t\"nv\": [\"nv-US\"],\n\t\"ny\": [\"ny-MW\"],\n\t\"nyn\": [\"nyn-UG\"],\n\t\"oc\": [\"oc-FR\"],\n\t\"oka\": [\"oka-CA\"],\n\t\"om\": [\"om-ET\"],\n\t\"or\": [\"or-IN\"],\n\t\"os\": [\"os-GE\"],\n\t\"osa\": [\"osa-US\"],\n\t\"pa-Arab\": [\"pa-Arab-PK\"],\n\t\"pa-Guru\": [\"pa-Guru-IN\"],\n\t\"pap\": [\"pap-CW\"],\n\t\"pcm\": [\"pcm-NG\"],\n\t\"pi-Latn\": [\"pi-Latn-GB\"],\n\t\"pis\": [\"pis-SB\"],\n\t\"pl\": [\"pl-PL\"],\n\t\"pms\": [\"pms-IT\"],\n\t\"prg\": [\"prg-PL\"],\n\t\"ps\": [\"ps-AF\"],\n\t\"pt\": [\"pt-BR\"],\n\t\"qu\": [\"qu-PE\"],\n\t\"quc\": [\"quc-GT\"],\n\t\"raj\": [\"raj-IN\"],\n\t\"rhg-Rohg\": [\"rhg-Rohg-MM\"],\n\t\"rif\": [\"rif-MA\"],\n\t\"rm\": [\"rm-CH\"],\n\t\"rn\": [\"rn-BI\"],\n\t\"ro\": [\"ro-RO\"],\n\t\"rof\": [\"rof-TZ\"],\n\t\"ru\": [\"ru-RU\"],\n\t\"rw\": [\"rw-RW\"],\n\t\"rwk\": [\"rwk-TZ\"],\n\t\"sa\": [\"sa-IN\"],\n\t\"sah\": [\"sah-RU\"],\n\t\"saq\": [\"saq-KE\"],\n\t\"sat-Deva\": [\"sat-Deva-IN\"],\n\t\"sat-Olck\": [\"sat-Olck-IN\"],\n\t\"sbp\": [\"sbp-TZ\"],\n\t\"sc\": [\"sc-IT\"],\n\t\"scn\": [\"scn-IT\"],\n\t\"sd-Arab\": [\"sd-Arab-PK\"],\n\t\"sd-Deva\": [\"sd-Deva-IN\"],\n\t\"sdh\": [\"sdh-IR\"],\n\t\"se\": [\"se-NO\"],\n\t\"seh\": [\"seh-MZ\"],\n\t\"ses\": [\"ses-ML\"],\n\t\"sg\": [\"sg-CF\"],\n\t\"sgs\": [\"sgs-LT\"],\n\t\"shi-Latn\": [\"shi-Latn-MA\"],\n\t\"shi-Tfng\": [\"shi-Tfng-MA\"],\n\t\"shn\": [\"shn-MM\"],\n\t\"si\": [\"si-LK\"],\n\t\"sid\": [\"sid-ET\"],\n\t\"sk\": [\"sk-SK\"],\n\t\"skr\": [\"skr-PK\"],\n\t\"sl\": [\"sl-SI\"],\n\t\"sma\": [\"sma-SE\"],\n\t\"smj\": [\"smj-SE\"],\n\t\"smn\": [\"smn-FI\"],\n\t\"sms\": [\"sms-FI\"],\n\t\"sn\": [\"sn-ZW\"],\n\t\"so\": [\"so-SO\"],\n\t\"sq\": [\"sq-AL\"],\n\t\"sr-Cyrl\": [\"sr-Cyrl-RS\"],\n\t\"sr-Latn\": [\"sr-Latn-RS\"],\n\t\"ss\": [\"ss-ZA\"],\n\t\"ssy\": [\"ssy-ER\"],\n\t\"st\": [\"st-ZA\"],\n\t\"su-Latn\": [\"su-Latn-ID\"],\n\t\"suz-Deva\": [\"suz-Deva-NP\"],\n\t\"suz-Sunu\": [\"suz-Sunu-NP\"],\n\t\"sv\": [\"sv-SE\"],\n\t\"sw\": [\"sw-TZ\"],\n\t\"syr\": [\"syr-IQ\"],\n\t\"szl\": [\"szl-PL\"],\n\t\"ta\": [\"ta-IN\"],\n\t\"te\": [\"te-IN\"],\n\t\"teo\": [\"teo-UG\"],\n\t\"tg\": [\"tg-TJ\"],\n\t\"th\": [\"th-TH\"],\n\t\"ti\": [\"ti-ET\"],\n\t\"tig\": [\"tig-ER\"],\n\t\"tk\": [\"tk-TM\"],\n\t\"tn\": [\"tn-ZA\"],\n\t\"to\": [\"to-TO\"],\n\t\"tok\": [\"tok-001\"],\n\t\"tpi\": [\"tpi-PG\"],\n\t\"tr\": [\"tr-TR\"],\n\t\"trv\": [\"trv-TW\"],\n\t\"trw\": [\"trw-PK\"],\n\t\"ts\": [\"ts-ZA\"],\n\t\"tt\": [\"tt-RU\"],\n\t\"twq\": [\"twq-NE\"],\n\t\"tyv\": [\"tyv-RU\"],\n\t\"tzm\": [\"tzm-MA\"],\n\t\"ug\": [\"ug-CN\"],\n\t\"uk\": [\"uk-UA\"],\n\t\"ur\": [\"ur-PK\"],\n\t\"uz-Arab\": [\"uz-Arab-AF\"],\n\t\"uz-Cyrl\": [\"uz-Cyrl-UZ\"],\n\t\"uz-Latn\": [\"uz-Latn-UZ\"],\n\t\"vai-Latn\": [\"vai-Latn-LR\"],\n\t\"vai-Vaii\": [\"vai-Vaii-LR\"],\n\t\"ve\": [\"ve-ZA\"],\n\t\"vec\": [\"vec-IT\"],\n\t\"vi\": [\"vi-VN\"],\n\t\"vmw\": [\"vmw-MZ\"],\n\t\"vo\": [\"vo-001\"],\n\t\"vun\": [\"vun-TZ\"],\n\t\"wa\": [\"wa-BE\"],\n\t\"wae\": [\"wae-CH\"],\n\t\"wal\": [\"wal-ET\"],\n\t\"wbp\": [\"wbp-AU\"],\n\t\"wo\": [\"wo-SN\"],\n\t\"xh\": [\"xh-ZA\"],\n\t\"xnr\": [\"xnr-IN\"],\n\t\"xog\": [\"xog-UG\"],\n\t\"yav\": [\"yav-CM\"],\n\t\"yi\": [\"yi-UA\"],\n\t\"yo\": [\"yo-NG\"],\n\t\"yrl\": [\"yrl-BR\"],\n\t\"yue-Hans\": [\"yue-Hans-CN\"],\n\t\"yue-Hant\": [\"yue-Hant-HK\"],\n\t\"za\": [\"za-CN\"],\n\t\"zgh\": [\"zgh-MA\"],\n\t\"zh-Hans\": [\"zh-Hans-CN\"],\n\t\"zh-Hant\": [\"zh-Hant-TW\"],\n\t\"zh-Latn\": [\"zh-Latn-CN\"],\n\t\"zu\": [\"zu-ZA\"]\n};\nexport const availableLocales = [\n\t\"aa\",\n\t\"aa-DJ\",\n\t\"aa-ER\",\n\t\"aa-ET\",\n\t\"ab\",\n\t\"ab-GE\",\n\t\"af\",\n\t\"af-NA\",\n\t\"af-ZA\",\n\t\"agq\",\n\t\"agq-CM\",\n\t\"ak\",\n\t\"ak-GH\",\n\t\"am\",\n\t\"am-ET\",\n\t\"an\",\n\t\"an-ES\",\n\t\"ann\",\n\t\"ann-NG\",\n\t\"apc\",\n\t\"apc-SY\",\n\t\"ar\",\n\t\"ar-001\",\n\t\"ar-AE\",\n\t\"ar-BH\",\n\t\"ar-DJ\",\n\t\"ar-DZ\",\n\t\"ar-EG\",\n\t\"ar-EH\",\n\t\"ar-ER\",\n\t\"ar-IL\",\n\t\"ar-IQ\",\n\t\"ar-JO\",\n\t\"ar-KM\",\n\t\"ar-KW\",\n\t\"ar-LB\",\n\t\"ar-LY\",\n\t\"ar-MA\",\n\t\"ar-MR\",\n\t\"ar-OM\",\n\t\"ar-PS\",\n\t\"ar-QA\",\n\t\"ar-SA\",\n\t\"ar-SD\",\n\t\"ar-SO\",\n\t\"ar-SS\",\n\t\"ar-SY\",\n\t\"ar-TD\",\n\t\"ar-TN\",\n\t\"ar-YE\",\n\t\"arn\",\n\t\"arn-CL\",\n\t\"as\",\n\t\"as-IN\",\n\t\"asa\",\n\t\"asa-TZ\",\n\t\"ast\",\n\t\"ast-ES\",\n\t\"az\",\n\t\"az-AZ\",\n\t\"az-Arab\",\n\t\"az-Arab-IQ\",\n\t\"az-Arab-IR\",\n\t\"az-Arab-TR\",\n\t\"az-Cyrl\",\n\t\"az-Cyrl-AZ\",\n\t\"az-IQ\",\n\t\"az-IR\",\n\t\"az-Latn\",\n\t\"az-Latn-AZ\",\n\t\"az-TR\",\n\t\"ba\",\n\t\"ba-RU\",\n\t\"bal\",\n\t\"bal-Arab\",\n\t\"bal-Arab-PK\",\n\t\"bal-Latn\",\n\t\"bal-Latn-PK\",\n\t\"bal-PK\",\n\t\"bas\",\n\t\"bas-CM\",\n\t\"be\",\n\t\"be-BY\",\n\t\"be-tarask\",\n\t\"bem\",\n\t\"bem-ZM\",\n\t\"bew\",\n\t\"bew-ID\",\n\t\"bez\",\n\t\"bez-TZ\",\n\t\"bg\",\n\t\"bg-BG\",\n\t\"bgc\",\n\t\"bgc-IN\",\n\t\"bgn\",\n\t\"bgn-AE\",\n\t\"bgn-AF\",\n\t\"bgn-IR\",\n\t\"bgn-OM\",\n\t\"bgn-PK\",\n\t\"bho\",\n\t\"bho-IN\",\n\t\"blo\",\n\t\"blo-BJ\",\n\t\"blt\",\n\t\"blt-VN\",\n\t\"bm\",\n\t\"bm-ML\",\n\t\"bm-Nkoo\",\n\t\"bm-Nkoo-ML\",\n\t\"bn\",\n\t\"bn-BD\",\n\t\"bn-IN\",\n\t\"bo\",\n\t\"bo-CN\",\n\t\"bo-IN\",\n\t\"bqi\",\n\t\"bqi-IR\",\n\t\"br\",\n\t\"br-FR\",\n\t\"brx\",\n\t\"brx-IN\",\n\t\"bs\",\n\t\"bs-BA\",\n\t\"bs-Cyrl\",\n\t\"bs-Cyrl-BA\",\n\t\"bs-Latn\",\n\t\"bs-Latn-BA\",\n\t\"bss\",\n\t\"bss-CM\",\n\t\"bua\",\n\t\"bua-RU\",\n\t\"byn\",\n\t\"byn-ER\",\n\t\"ca\",\n\t\"ca-AD\",\n\t\"ca-ES\",\n\t\"ca-ES-valencia\",\n\t\"ca-FR\",\n\t\"ca-IT\",\n\t\"cad\",\n\t\"cad-US\",\n\t\"cch\",\n\t\"cch-NG\",\n\t\"ccp\",\n\t\"ccp-BD\",\n\t\"ccp-IN\",\n\t\"ce\",\n\t\"ce-RU\",\n\t\"ceb\",\n\t\"ceb-PH\",\n\t\"cgg\",\n\t\"cgg-UG\",\n\t\"cho\",\n\t\"cho-US\",\n\t\"chr\",\n\t\"chr-US\",\n\t\"cic\",\n\t\"cic-US\",\n\t\"ckb\",\n\t\"ckb-IQ\",\n\t\"ckb-IR\",\n\t\"co\",\n\t\"co-FR\",\n\t\"cop\",\n\t\"cop-EG\",\n\t\"cs\",\n\t\"cs-CZ\",\n\t\"csw\",\n\t\"csw-CA\",\n\t\"cu\",\n\t\"cu-RU\",\n\t\"cv\",\n\t\"cv-RU\",\n\t\"cy\",\n\t\"cy-GB\",\n\t\"da\",\n\t\"da-DK\",\n\t\"da-GL\",\n\t\"dav\",\n\t\"dav-KE\",\n\t\"de\",\n\t\"de-AT\",\n\t\"de-BE\",\n\t\"de-CH\",\n\t\"de-DE\",\n\t\"de-IT\",\n\t\"de-LI\",\n\t\"de-LU\",\n\t\"dje\",\n\t\"dje-NE\",\n\t\"doi\",\n\t\"doi-IN\",\n\t\"dsb\",\n\t\"dsb-DE\",\n\t\"dua\",\n\t\"dua-CM\",\n\t\"dv\",\n\t\"dv-MV\",\n\t\"dyo\",\n\t\"dyo-SN\",\n\t\"dz\",\n\t\"dz-BT\",\n\t\"ebu\",\n\t\"ebu-KE\",\n\t\"ee\",\n\t\"ee-GH\",\n\t\"ee-TG\",\n\t\"el\",\n\t\"el-CY\",\n\t\"el-GR\",\n\t\"el-polyton\",\n\t\"en\",\n\t\"en-001\",\n\t\"en-150\",\n\t\"en-AE\",\n\t\"en-AG\",\n\t\"en-AI\",\n\t\"en-AS\",\n\t\"en-AT\",\n\t\"en-AU\",\n\t\"en-BB\",\n\t\"en-BE\",\n\t\"en-BI\",\n\t\"en-BM\",\n\t\"en-BS\",\n\t\"en-BW\",\n\t\"en-BZ\",\n\t\"en-CA\",\n\t\"en-CC\",\n\t\"en-CH\",\n\t\"en-CK\",\n\t\"en-CM\",\n\t\"en-CX\",\n\t\"en-CY\",\n\t\"en-CZ\",\n\t\"en-DE\",\n\t\"en-DG\",\n\t\"en-DK\",\n\t\"en-DM\",\n\t\"en-Dsrt\",\n\t\"en-Dsrt-US\",\n\t\"en-EE\",\n\t\"en-ER\",\n\t\"en-ES\",\n\t\"en-FI\",\n\t\"en-FJ\",\n\t\"en-FK\",\n\t\"en-FM\",\n\t\"en-FR\",\n\t\"en-GB\",\n\t\"en-GD\",\n\t\"en-GE\",\n\t\"en-GG\",\n\t\"en-GH\",\n\t\"en-GI\",\n\t\"en-GM\",\n\t\"en-GS\",\n\t\"en-GU\",\n\t\"en-GY\",\n\t\"en-HK\",\n\t\"en-HU\",\n\t\"en-ID\",\n\t\"en-IE\",\n\t\"en-IL\",\n\t\"en-IM\",\n\t\"en-IN\",\n\t\"en-IO\",\n\t\"en-IT\",\n\t\"en-JE\",\n\t\"en-JM\",\n\t\"en-JP\",\n\t\"en-KE\",\n\t\"en-KI\",\n\t\"en-KN\",\n\t\"en-KY\",\n\t\"en-LC\",\n\t\"en-LR\",\n\t\"en-LS\",\n\t\"en-LT\",\n\t\"en-LV\",\n\t\"en-MG\",\n\t\"en-MH\",\n\t\"en-MO\",\n\t\"en-MP\",\n\t\"en-MS\",\n\t\"en-MT\",\n\t\"en-MU\",\n\t\"en-MV\",\n\t\"en-MW\",\n\t\"en-MY\",\n\t\"en-NA\",\n\t\"en-NF\",\n\t\"en-NG\",\n\t\"en-NL\",\n\t\"en-NO\",\n\t\"en-NR\",\n\t\"en-NU\",\n\t\"en-NZ\",\n\t\"en-PG\",\n\t\"en-PH\",\n\t\"en-PK\",\n\t\"en-PL\",\n\t\"en-PN\",\n\t\"en-PR\",\n\t\"en-PT\",\n\t\"en-PW\",\n\t\"en-RO\",\n\t\"en-RW\",\n\t\"en-SB\",\n\t\"en-SC\",\n\t\"en-SD\",\n\t\"en-SE\",\n\t\"en-SG\",\n\t\"en-SH\",\n\t\"en-SI\",\n\t\"en-SK\",\n\t\"en-SL\",\n\t\"en-SS\",\n\t\"en-SX\",\n\t\"en-SZ\",\n\t\"en-Shaw\",\n\t\"en-Shaw-GB\",\n\t\"en-TC\",\n\t\"en-TK\",\n\t\"en-TO\",\n\t\"en-TT\",\n\t\"en-TV\",\n\t\"en-TZ\",\n\t\"en-UA\",\n\t\"en-UG\",\n\t\"en-UM\",\n\t\"en-US\",\n\t\"en-VC\",\n\t\"en-VG\",\n\t\"en-VI\",\n\t\"en-VU\",\n\t\"en-WS\",\n\t\"en-ZA\",\n\t\"en-ZM\",\n\t\"en-ZW\",\n\t\"eo\",\n\t\"eo-001\",\n\t\"es\",\n\t\"es-419\",\n\t\"es-AR\",\n\t\"es-BO\",\n\t\"es-BR\",\n\t\"es-BZ\",\n\t\"es-CL\",\n\t\"es-CO\",\n\t\"es-CR\",\n\t\"es-CU\",\n\t\"es-DO\",\n\t\"es-EA\",\n\t\"es-EC\",\n\t\"es-ES\",\n\t\"es-GQ\",\n\t\"es-GT\",\n\t\"es-HN\",\n\t\"es-IC\",\n\t\"es-MX\",\n\t\"es-NI\",\n\t\"es-PA\",\n\t\"es-PE\",\n\t\"es-PH\",\n\t\"es-PR\",\n\t\"es-PY\",\n\t\"es-SV\",\n\t\"es-US\",\n\t\"es-UY\",\n\t\"es-VE\",\n\t\"et\",\n\t\"et-EE\",\n\t\"eu\",\n\t\"eu-ES\",\n\t\"ewo\",\n\t\"ewo-CM\",\n\t\"fa\",\n\t\"fa-AF\",\n\t\"fa-IR\",\n\t\"ff\",\n\t\"ff-Adlm\",\n\t\"ff-Adlm-BF\",\n\t\"ff-Adlm-CM\",\n\t\"ff-Adlm-GH\",\n\t\"ff-Adlm-GM\",\n\t\"ff-Adlm-GN\",\n\t\"ff-Adlm-GW\",\n\t\"ff-Adlm-LR\",\n\t\"ff-Adlm-MR\",\n\t\"ff-Adlm-NE\",\n\t\"ff-Adlm-NG\",\n\t\"ff-Adlm-SL\",\n\t\"ff-Adlm-SN\",\n\t\"ff-BF\",\n\t\"ff-CM\",\n\t\"ff-GH\",\n\t\"ff-GM\",\n\t\"ff-GN\",\n\t\"ff-GW\",\n\t\"ff-LR\",\n\t\"ff-Latn\",\n\t\"ff-Latn-BF\",\n\t\"ff-Latn-CM\",\n\t\"ff-Latn-GH\",\n\t\"ff-Latn-GM\",\n\t\"ff-Latn-GN\",\n\t\"ff-Latn-GW\",\n\t\"ff-Latn-LR\",\n\t\"ff-Latn-MR\",\n\t\"ff-Latn-NE\",\n\t\"ff-Latn-NG\",\n\t\"ff-Latn-SL\",\n\t\"ff-Latn-SN\",\n\t\"ff-MR\",\n\t\"ff-NE\",\n\t\"ff-NG\",\n\t\"ff-SL\",\n\t\"ff-SN\",\n\t\"fi\",\n\t\"fi-FI\",\n\t\"fil\",\n\t\"fil-PH\",\n\t\"fo\",\n\t\"fo-DK\",\n\t\"fo-FO\",\n\t\"fr\",\n\t\"fr-BE\",\n\t\"fr-BF\",\n\t\"fr-BI\",\n\t\"fr-BJ\",\n\t\"fr-BL\",\n\t\"fr-CA\",\n\t\"fr-CD\",\n\t\"fr-CF\",\n\t\"fr-CG\",\n\t\"fr-CH\",\n\t\"fr-CI\",\n\t\"fr-CM\",\n\t\"fr-DJ\",\n\t\"fr-DZ\",\n\t\"fr-FR\",\n\t\"fr-GA\",\n\t\"fr-GF\",\n\t\"fr-GN\",\n\t\"fr-GP\",\n\t\"fr-GQ\",\n\t\"fr-HT\",\n\t\"fr-KM\",\n\t\"fr-LU\",\n\t\"fr-MA\",\n\t\"fr-MC\",\n\t\"fr-MF\",\n\t\"fr-MG\",\n\t\"fr-ML\",\n\t\"fr-MQ\",\n\t\"fr-MR\",\n\t\"fr-MU\",\n\t\"fr-NC\",\n\t\"fr-NE\",\n\t\"fr-PF\",\n\t\"fr-PM\",\n\t\"fr-RE\",\n\t\"fr-RW\",\n\t\"fr-SC\",\n\t\"fr-SN\",\n\t\"fr-SY\",\n\t\"fr-TD\",\n\t\"fr-TG\",\n\t\"fr-TN\",\n\t\"fr-VU\",\n\t\"fr-WF\",\n\t\"fr-YT\",\n\t\"frr\",\n\t\"frr-DE\",\n\t\"fur\",\n\t\"fur-IT\",\n\t\"fy\",\n\t\"fy-NL\",\n\t\"ga\",\n\t\"ga-GB\",\n\t\"ga-IE\",\n\t\"gaa\",\n\t\"gaa-GH\",\n\t\"gd\",\n\t\"gd-GB\",\n\t\"gez\",\n\t\"gez-ER\",\n\t\"gez-ET\",\n\t\"gl\",\n\t\"gl-ES\",\n\t\"gn\",\n\t\"gn-PY\",\n\t\"gsw\",\n\t\"gsw-CH\",\n\t\"gsw-FR\",\n\t\"gsw-LI\",\n\t\"gu\",\n\t\"gu-IN\",\n\t\"guz\",\n\t\"guz-KE\",\n\t\"gv\",\n\t\"gv-IM\",\n\t\"ha\",\n\t\"ha-Arab\",\n\t\"ha-Arab-NG\",\n\t\"ha-Arab-SD\",\n\t\"ha-GH\",\n\t\"ha-NE\",\n\t\"ha-NG\",\n\t\"ha-SD\",\n\t\"haw\",\n\t\"haw-US\",\n\t\"he\",\n\t\"he-IL\",\n\t\"hi\",\n\t\"hi-IN\",\n\t\"hi-Latn\",\n\t\"hi-Latn-IN\",\n\t\"hnj\",\n\t\"hnj-Hmnp\",\n\t\"hnj-Hmnp-US\",\n\t\"hnj-US\",\n\t\"hr\",\n\t\"hr-BA\",\n\t\"hr-HR\",\n\t\"hsb\",\n\t\"hsb-DE\",\n\t\"ht\",\n\t\"ht-HT\",\n\t\"hu\",\n\t\"hu-HU\",\n\t\"hy\",\n\t\"hy-AM\",\n\t\"ia\",\n\t\"ia-001\",\n\t\"id\",\n\t\"id-ID\",\n\t\"ie\",\n\t\"ie-EE\",\n\t\"ig\",\n\t\"ig-NG\",\n\t\"ii\",\n\t\"ii-CN\",\n\t\"io\",\n\t\"io-001\",\n\t\"is\",\n\t\"is-IS\",\n\t\"it\",\n\t\"it-CH\",\n\t\"it-IT\",\n\t\"it-SM\",\n\t\"it-VA\",\n\t\"iu\",\n\t\"iu-CA\",\n\t\"iu-Latn\",\n\t\"iu-Latn-CA\",\n\t\"ja\",\n\t\"ja-JP\",\n\t\"jbo\",\n\t\"jbo-001\",\n\t\"jgo\",\n\t\"jgo-CM\",\n\t\"jmc\",\n\t\"jmc-TZ\",\n\t\"jv\",\n\t\"jv-ID\",\n\t\"ka\",\n\t\"ka-GE\",\n\t\"kaa\",\n\t\"kaa-Cyrl\",\n\t\"kaa-Cyrl-UZ\",\n\t\"kaa-Latn\",\n\t\"kaa-Latn-UZ\",\n\t\"kaa-UZ\",\n\t\"kab\",\n\t\"kab-DZ\",\n\t\"kaj\",\n\t\"kaj-NG\",\n\t\"kam\",\n\t\"kam-KE\",\n\t\"kcg\",\n\t\"kcg-NG\",\n\t\"kde\",\n\t\"kde-TZ\",\n\t\"kea\",\n\t\"kea-CV\",\n\t\"kek\",\n\t\"kek-GT\",\n\t\"ken\",\n\t\"ken-CM\",\n\t\"kgp\",\n\t\"kgp-BR\",\n\t\"khq\",\n\t\"khq-ML\",\n\t\"ki\",\n\t\"ki-KE\",\n\t\"kk\",\n\t\"kk-Arab\",\n\t\"kk-Arab-CN\",\n\t\"kk-CN\",\n\t\"kk-Cyrl\",\n\t\"kk-Cyrl-KZ\",\n\t\"kk-KZ\",\n\t\"kkj\",\n\t\"kkj-CM\",\n\t\"kl\",\n\t\"kl-GL\",\n\t\"kln\",\n\t\"kln-KE\",\n\t\"km\",\n\t\"km-KH\",\n\t\"kn\",\n\t\"kn-IN\",\n\t\"ko\",\n\t\"ko-CN\",\n\t\"ko-KP\",\n\t\"ko-KR\",\n\t\"kok\",\n\t\"kok-Deva\",\n\t\"kok-Deva-IN\",\n\t\"kok-IN\",\n\t\"kok-Latn\",\n\t\"kok-Latn-IN\",\n\t\"kpe\",\n\t\"kpe-GN\",\n\t\"kpe-LR\",\n\t\"ks\",\n\t\"ks-Arab\",\n\t\"ks-Arab-IN\",\n\t\"ks-Deva\",\n\t\"ks-Deva-IN\",\n\t\"ks-IN\",\n\t\"ksb\",\n\t\"ksb-TZ\",\n\t\"ksf\",\n\t\"ksf-CM\",\n\t\"ksh\",\n\t\"ksh-DE\",\n\t\"ku\",\n\t\"ku-Arab\",\n\t\"ku-Arab-IQ\",\n\t\"ku-Arab-IR\",\n\t\"ku-IQ\",\n\t\"ku-IR\",\n\t\"ku-Latn\",\n\t\"ku-Latn-IQ\",\n\t\"ku-Latn-SY\",\n\t\"ku-Latn-TR\",\n\t\"ku-SY\",\n\t\"ku-TR\",\n\t\"kw\",\n\t\"kw-GB\",\n\t\"kxv\",\n\t\"kxv-Deva\",\n\t\"kxv-Deva-IN\",\n\t\"kxv-IN\",\n\t\"kxv-Latn\",\n\t\"kxv-Latn-IN\",\n\t\"kxv-Orya\",\n\t\"kxv-Orya-IN\",\n\t\"kxv-Telu\",\n\t\"kxv-Telu-IN\",\n\t\"ky\",\n\t\"ky-KG\",\n\t\"la\",\n\t\"la-VA\",\n\t\"lag\",\n\t\"lag-TZ\",\n\t\"lb\",\n\t\"lb-LU\",\n\t\"lg\",\n\t\"lg-UG\",\n\t\"lij\",\n\t\"lij-IT\",\n\t\"lkt\",\n\t\"lkt-US\",\n\t\"lld\",\n\t\"lld-IT\",\n\t\"lmo\",\n\t\"lmo-IT\",\n\t\"ln\",\n\t\"ln-AO\",\n\t\"ln-CD\",\n\t\"ln-CF\",\n\t\"ln-CG\",\n\t\"lo\",\n\t\"lo-LA\",\n\t\"lrc\",\n\t\"lrc-IQ\",\n\t\"lrc-IR\",\n\t\"lt\",\n\t\"lt-LT\",\n\t\"ltg\",\n\t\"ltg-LV\",\n\t\"lu\",\n\t\"lu-CD\",\n\t\"luo\",\n\t\"luo-KE\",\n\t\"luy\",\n\t\"luy-KE\",\n\t\"lv\",\n\t\"lv-LV\",\n\t\"lzz\",\n\t\"lzz-TR\",\n\t\"mai\",\n\t\"mai-IN\",\n\t\"mas\",\n\t\"mas-KE\",\n\t\"mas-TZ\",\n\t\"mdf\",\n\t\"mdf-RU\",\n\t\"mer\",\n\t\"mer-KE\",\n\t\"mfe\",\n\t\"mfe-MU\",\n\t\"mg\",\n\t\"mg-MG\",\n\t\"mgh\",\n\t\"mgh-MZ\",\n\t\"mgo\",\n\t\"mgo-CM\",\n\t\"mhn\",\n\t\"mhn-IT\",\n\t\"mi\",\n\t\"mi-NZ\",\n\t\"mic\",\n\t\"mic-CA\",\n\t\"mk\",\n\t\"mk-MK\",\n\t\"ml\",\n\t\"ml-IN\",\n\t\"mn\",\n\t\"mn-CN\",\n\t\"mn-MN\",\n\t\"mn-Mong\",\n\t\"mn-Mong-CN\",\n\t\"mn-Mong-MN\",\n\t\"mni\",\n\t\"mni-Beng\",\n\t\"mni-Beng-IN\",\n\t\"mni-IN\",\n\t\"mni-Mtei\",\n\t\"mni-Mtei-IN\",\n\t\"moh\",\n\t\"moh-CA\",\n\t\"mr\",\n\t\"mr-IN\",\n\t\"ms\",\n\t\"ms-Arab\",\n\t\"ms-Arab-BN\",\n\t\"ms-Arab-MY\",\n\t\"ms-BN\",\n\t\"ms-ID\",\n\t\"ms-MY\",\n\t\"ms-SG\",\n\t\"mt\",\n\t\"mt-MT\",\n\t\"mua\",\n\t\"mua-CM\",\n\t\"mus\",\n\t\"mus-US\",\n\t\"mww\",\n\t\"mww-Hmnp\",\n\t\"mww-Hmnp-US\",\n\t\"mww-US\",\n\t\"my\",\n\t\"my-MM\",\n\t\"myv\",\n\t\"myv-RU\",\n\t\"mzn\",\n\t\"mzn-IR\",\n\t\"naq\",\n\t\"naq-NA\",\n\t\"nb\",\n\t\"nb-NO\",\n\t\"nb-SJ\",\n\t\"nd\",\n\t\"nd-ZW\",\n\t\"nds\",\n\t\"nds-DE\",\n\t\"nds-NL\",\n\t\"ne\",\n\t\"ne-IN\",\n\t\"ne-NP\",\n\t\"nl\",\n\t\"nl-AW\",\n\t\"nl-BE\",\n\t\"nl-BQ\",\n\t\"nl-CW\",\n\t\"nl-NL\",\n\t\"nl-SR\",\n\t\"nl-SX\",\n\t\"nmg\",\n\t\"nmg-CM\",\n\t\"nn\",\n\t\"nn-NO\",\n\t\"nnh\",\n\t\"nnh-CM\",\n\t\"no\",\n\t\"nqo\",\n\t\"nqo-GN\",\n\t\"nr\",\n\t\"nr-ZA\",\n\t\"nso\",\n\t\"nso-ZA\",\n\t\"nus\",\n\t\"nus-SS\",\n\t\"nv\",\n\t\"nv-US\",\n\t\"ny\",\n\t\"ny-MW\",\n\t\"nyn\",\n\t\"nyn-UG\",\n\t\"oc\",\n\t\"oc-ES\",\n\t\"oc-FR\",\n\t\"oka\",\n\t\"oka-CA\",\n\t\"oka-US\",\n\t\"om\",\n\t\"om-ET\",\n\t\"om-KE\",\n\t\"or\",\n\t\"or-IN\",\n\t\"os\",\n\t\"os-GE\",\n\t\"os-RU\",\n\t\"osa\",\n\t\"osa-US\",\n\t\"pa\",\n\t\"pa-Arab\",\n\t\"pa-Arab-PK\",\n\t\"pa-Guru\",\n\t\"pa-Guru-IN\",\n\t\"pa-IN\",\n\t\"pa-PK\",\n\t\"pap\",\n\t\"pap-AW\",\n\t\"pap-CW\",\n\t\"pcm\",\n\t\"pcm-NG\",\n\t\"pi\",\n\t\"pi-GB\",\n\t\"pi-Latn\",\n\t\"pi-Latn-GB\",\n\t\"pis\",\n\t\"pis-SB\",\n\t\"pl\",\n\t\"pl-PL\",\n\t\"pms\",\n\t\"pms-IT\",\n\t\"prg\",\n\t\"prg-PL\",\n\t\"ps\",\n\t\"ps-AF\",\n\t\"ps-PK\",\n\t\"pt\",\n\t\"pt-AO\",\n\t\"pt-BR\",\n\t\"pt-CH\",\n\t\"pt-CV\",\n\t\"pt-GQ\",\n\t\"pt-GW\",\n\t\"pt-LU\",\n\t\"pt-MO\",\n\t\"pt-MZ\",\n\t\"pt-PT\",\n\t\"pt-ST\",\n\t\"pt-TL\",\n\t\"qu\",\n\t\"qu-BO\",\n\t\"qu-EC\",\n\t\"qu-PE\",\n\t\"quc\",\n\t\"quc-GT\",\n\t\"raj\",\n\t\"raj-IN\",\n\t\"rhg\",\n\t\"rhg-BD\",\n\t\"rhg-MM\",\n\t\"rhg-Rohg\",\n\t\"rhg-Rohg-BD\",\n\t\"rhg-Rohg-MM\",\n\t\"rif\",\n\t\"rif-MA\",\n\t\"rm\",\n\t\"rm-CH\",\n\t\"rn\",\n\t\"rn-BI\",\n\t\"ro\",\n\t\"ro-MD\",\n\t\"ro-RO\",\n\t\"rof\",\n\t\"rof-TZ\",\n\t\"ru\",\n\t\"ru-BY\",\n\t\"ru-KG\",\n\t\"ru-KZ\",\n\t\"ru-MD\",\n\t\"ru-RU\",\n\t\"ru-UA\",\n\t\"rw\",\n\t\"rw-RW\",\n\t\"rwk\",\n\t\"rwk-TZ\",\n\t\"sa\",\n\t\"sa-IN\",\n\t\"sah\",\n\t\"sah-RU\",\n\t\"saq\",\n\t\"saq-KE\",\n\t\"sat\",\n\t\"sat-Deva\",\n\t\"sat-Deva-IN\",\n\t\"sat-IN\",\n\t\"sat-Olck\",\n\t\"sat-Olck-IN\",\n\t\"sbp\",\n\t\"sbp-TZ\",\n\t\"sc\",\n\t\"sc-IT\",\n\t\"scn\",\n\t\"scn-IT\",\n\t\"sd\",\n\t\"sd-Arab\",\n\t\"sd-Arab-PK\",\n\t\"sd-Deva\",\n\t\"sd-Deva-IN\",\n\t\"sd-IN\",\n\t\"sd-PK\",\n\t\"sdh\",\n\t\"sdh-IQ\",\n\t\"sdh-IR\",\n\t\"se\",\n\t\"se-FI\",\n\t\"se-NO\",\n\t\"se-SE\",\n\t\"seh\",\n\t\"seh-MZ\",\n\t\"ses\",\n\t\"ses-ML\",\n\t\"sg\",\n\t\"sg-CF\",\n\t\"sgs\",\n\t\"sgs-LT\",\n\t\"shi\",\n\t\"shi-Latn\",\n\t\"shi-Latn-MA\",\n\t\"shi-MA\",\n\t\"shi-Tfng\",\n\t\"shi-Tfng-MA\",\n\t\"shn\",\n\t\"shn-MM\",\n\t\"shn-TH\",\n\t\"si\",\n\t\"si-LK\",\n\t\"sid\",\n\t\"sid-ET\",\n\t\"sk\",\n\t\"sk-SK\",\n\t\"skr\",\n\t\"skr-PK\",\n\t\"sl\",\n\t\"sl-SI\",\n\t\"sma\",\n\t\"sma-NO\",\n\t\"sma-SE\",\n\t\"smj\",\n\t\"smj-NO\",\n\t\"smj-SE\",\n\t\"smn\",\n\t\"smn-FI\",\n\t\"sms\",\n\t\"sms-FI\",\n\t\"sn\",\n\t\"sn-ZW\",\n\t\"so\",\n\t\"so-DJ\",\n\t\"so-ET\",\n\t\"so-KE\",\n\t\"so-SO\",\n\t\"sq\",\n\t\"sq-AL\",\n\t\"sq-MK\",\n\t\"sq-XK\",\n\t\"sr\",\n\t\"sr-BA\",\n\t\"sr-Cyrl\",\n\t\"sr-Cyrl-BA\",\n\t\"sr-Cyrl-ME\",\n\t\"sr-Cyrl-RS\",\n\t\"sr-Cyrl-XK\",\n\t\"sr-Latn\",\n\t\"sr-Latn-BA\",\n\t\"sr-Latn-ME\",\n\t\"sr-Latn-RS\",\n\t\"sr-Latn-XK\",\n\t\"sr-ME\",\n\t\"sr-RS\",\n\t\"sr-XK\",\n\t\"ss\",\n\t\"ss-SZ\",\n\t\"ss-ZA\",\n\t\"ssy\",\n\t\"ssy-ER\",\n\t\"st\",\n\t\"st-LS\",\n\t\"st-ZA\",\n\t\"su\",\n\t\"su-ID\",\n\t\"su-Latn\",\n\t\"su-Latn-ID\",\n\t\"suz\",\n\t\"suz-Deva\",\n\t\"suz-Deva-NP\",\n\t\"suz-NP\",\n\t\"suz-Sunu\",\n\t\"suz-Sunu-NP\",\n\t\"sv\",\n\t\"sv-AX\",\n\t\"sv-FI\",\n\t\"sv-SE\",\n\t\"sw\",\n\t\"sw-CD\",\n\t\"sw-KE\",\n\t\"sw-TZ\",\n\t\"sw-UG\",\n\t\"syr\",\n\t\"syr-IQ\",\n\t\"syr-SY\",\n\t\"szl\",\n\t\"szl-PL\",\n\t\"ta\",\n\t\"ta-IN\",\n\t\"ta-LK\",\n\t\"ta-MY\",\n\t\"ta-SG\",\n\t\"te\",\n\t\"te-IN\",\n\t\"teo\",\n\t\"teo-KE\",\n\t\"teo-UG\",\n\t\"tg\",\n\t\"tg-TJ\",\n\t\"th\",\n\t\"th-TH\",\n\t\"ti\",\n\t\"ti-ER\",\n\t\"ti-ET\",\n\t\"tig\",\n\t\"tig-ER\",\n\t\"tk\",\n\t\"tk-TM\",\n\t\"tn\",\n\t\"tn-BW\",\n\t\"tn-ZA\",\n\t\"to\",\n\t\"to-TO\",\n\t\"tok\",\n\t\"tok-001\",\n\t\"tpi\",\n\t\"tpi-PG\",\n\t\"tr\",\n\t\"tr-CY\",\n\t\"tr-TR\",\n\t\"trv\",\n\t\"trv-TW\",\n\t\"trw\",\n\t\"trw-PK\",\n\t\"ts\",\n\t\"ts-ZA\",\n\t\"tt\",\n\t\"tt-RU\",\n\t\"twq\",\n\t\"twq-NE\",\n\t\"tyv\",\n\t\"tyv-RU\",\n\t\"tzm\",\n\t\"tzm-MA\",\n\t\"ug\",\n\t\"ug-CN\",\n\t\"uk\",\n\t\"uk-UA\",\n\t\"und\",\n\t\"ur\",\n\t\"ur-IN\",\n\t\"ur-PK\",\n\t\"uz\",\n\t\"uz-AF\",\n\t\"uz-Arab\",\n\t\"uz-Arab-AF\",\n\t\"uz-Cyrl\",\n\t\"uz-Cyrl-UZ\",\n\t\"uz-Latn\",\n\t\"uz-Latn-UZ\",\n\t\"uz-UZ\",\n\t\"vai\",\n\t\"vai-LR\",\n\t\"vai-Latn\",\n\t\"vai-Latn-LR\",\n\t\"vai-Vaii\",\n\t\"vai-Vaii-LR\",\n\t\"ve\",\n\t\"ve-ZA\",\n\t\"vec\",\n\t\"vec-IT\",\n\t\"vi\",\n\t\"vi-VN\",\n\t\"vmw\",\n\t\"vmw-MZ\",\n\t\"vo\",\n\t\"vo-001\",\n\t\"vun\",\n\t\"vun-TZ\",\n\t\"wa\",\n\t\"wa-BE\",\n\t\"wae\",\n\t\"wae-CH\",\n\t\"wal\",\n\t\"wal-ET\",\n\t\"wbp\",\n\t\"wbp-AU\",\n\t\"wo\",\n\t\"wo-SN\",\n\t\"xh\",\n\t\"xh-ZA\",\n\t\"xnr\",\n\t\"xnr-IN\",\n\t\"xog\",\n\t\"xog-UG\",\n\t\"yav\",\n\t\"yav-CM\",\n\t\"yi\",\n\t\"yi-UA\",\n\t\"yo\",\n\t\"yo-BJ\",\n\t\"yo-NG\",\n\t\"yrl\",\n\t\"yrl-BR\",\n\t\"yrl-CO\",\n\t\"yrl-VE\",\n\t\"yue\",\n\t\"yue-CN\",\n\t\"yue-HK\",\n\t\"yue-Hans\",\n\t\"yue-Hans-CN\",\n\t\"yue-Hant\",\n\t\"yue-Hant-CN\",\n\t\"yue-Hant-HK\",\n\t\"yue-Hant-MO\",\n\t\"yue-MO\",\n\t\"za\",\n\t\"za-CN\",\n\t\"zgh\",\n\t\"zgh-MA\",\n\t\"zh\",\n\t\"zh-CN\",\n\t\"zh-HK\",\n\t\"zh-Hans\",\n\t\"zh-Hans-CN\",\n\t\"zh-Hans-HK\",\n\t\"zh-Hans-MO\",\n\t\"zh-Hans-MY\",\n\t\"zh-Hans-SG\",\n\t\"zh-Hant\",\n\t\"zh-Hant-HK\",\n\t\"zh-Hant-MO\",\n\t\"zh-Hant-MY\",\n\t\"zh-Hant-TW\",\n\t\"zh-Latn\",\n\t\"zh-Latn-CN\",\n\t\"zh-MO\",\n\t\"zh-MY\",\n\t\"zh-SG\",\n\t\"zh-TW\",\n\t\"zu\",\n\t\"zu-ZA\"\n];\n","import { defaultContent } from \"@formatjs_generated/cldr.supported-locales/default-content.js\";\nconst explicitLocales = new WeakMap();\n// ECMA-402 §9.1 [[AvailableLocales]] requires fallback tags, including the\n// scriptless language-region tag. Fill missing fallbacks without replacing\n// explicitly loaded locale data with another locale's likely-subtag alias.\n// https://tc39.es/ecma402/#sec-internal-slots\n// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/negotiation.html#L18-L26\nexport function registerLocaleData(locale, data, localeData, availableLocales) {\n\tlet loaded = explicitLocales.get(localeData);\n\tif (!loaded) {\n\t\tloaded = new Set();\n\t\texplicitLocales.set(localeData, loaded);\n\t}\n\tloaded.add(locale);\n\tconst locales = [locale, ...defaultContent[locale] || []];\n\tfor (const tag of locales) {\n\t\tif (tag === locale || !loaded.has(tag) || localeData[tag] === undefined) {\n\t\t\tlocaleData[tag] = data;\n\t\t}\n\t\tavailableLocales.add(tag);\n\t}\n\tfor (const tag of locales) {\n\t\tconst parts = tag.split(\"-\");\n\t\tconst fallbacks = [];\n\t\twhile (parts.length > 1) {\n\t\t\tif (parts.length > 2 && parts[1].length === 4) {\n\t\t\t\tfallbacks.push([parts[0], ...parts.slice(2)].join(\"-\"));\n\t\t\t}\n\t\t\tparts.pop();\n\t\t\tfallbacks.push(parts.join(\"-\"));\n\t\t}\n\t\tfor (const fallback of fallbacks) {\n\t\t\tif (localeData[fallback] === undefined) localeData[fallback] = localeData[tag];\n\t\t\tavailableLocales.add(fallback);\n\t\t}\n\t}\n}\n","/**\n* http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist\n* @param locales\n*/\nexport function CanonicalizeLocaleList(locales) {\n\t// TODO\n\treturn Intl.getCanonicalLocales(locales);\n}\n","/**\n* https://tc39.es/ecma262/#sec-toobject\n*/\nexport function ToObject(arg) {\n\tif (arg == null) {\n\t\tthrow new TypeError(\"undefined/null cannot be converted to object\");\n\t}\n\treturn Object(arg);\n}\n","/**\n* https://tc39.es/ecma262/#sec-tostring\n*/\nexport function ToString(o) {\n\tif (typeof o === \"symbol\") {\n\t\tthrow TypeError(\"Cannot convert a Symbol value to a string\");\n\t}\n\treturn String(o);\n}\n","import { ToString } from \"#packages/ecma262-abstract/ToString.js\";\n/**\n* https://tc39.es/ecma402/#sec-getoption\n* @param opts\n* @param prop\n* @param type\n* @param values\n* @param fallback\n*/\nexport function GetOption(opts, prop, type, values, fallback) {\n\t// ECMA-402 §9.2.11 GetOption, step 1: Get accepts callable Objects too.\n\t// https://tc39.es/ecma402/#sec-getoption\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/negotiation.html#L384\n\tif (opts === null || typeof opts !== \"object\" && typeof opts !== \"function\") {\n\t\tthrow new TypeError(\"Options must be an object\");\n\t}\n\tlet value = opts[prop];\n\tif (value !== undefined) {\n\t\tif (type !== \"boolean\" && type !== \"string\") {\n\t\t\tthrow new TypeError(\"invalid type\");\n\t\t}\n\t\tif (type === \"boolean\") {\n\t\t\tvalue = Boolean(value);\n\t\t}\n\t\tif (type === \"string\") {\n\t\t\tvalue = ToString(value);\n\t\t}\n\t\tif (values !== undefined && !values.filter((val) => val == value).length) {\n\t\t\tthrow new RangeError(`${value} is not within ${values.join(\", \")}`);\n\t\t}\n\t\treturn value;\n\t}\n\treturn fallback;\n}\n","import { LookupSupportedLocales } from \"@formatjs/intl-localematcher\";\nimport { ToObject } from \"#packages/ecma262-abstract/ToObject.js\";\nimport { GetOption } from \"#packages/ecma402-abstract/GetOption.js\";\n/**\n* https://tc39.es/ecma402/#sec-supportedlocales\n* @param availableLocales\n* @param requestedLocales\n* @param options\n*/\nexport function SupportedLocales(availableLocales, requestedLocales, options) {\n\tlet matcher = \"best fit\";\n\tif (options !== undefined) {\n\t\toptions = ToObject(options);\n\t\tmatcher = GetOption(options, \"localeMatcher\", \"string\", [\"lookup\", \"best fit\"], \"best fit\");\n\t}\n\tif (matcher === \"best fit\") {\n\t\treturn LookupSupportedLocales(Array.from(availableLocales), requestedLocales);\n\t}\n\treturn LookupSupportedLocales(Array.from(availableLocales), requestedLocales);\n}\n","function invariant(condition, message, Err = Error) {\n\tif (!condition) {\n\t\tthrow new Err(message);\n\t}\n}\nfunction IsCallable(fn) {\n\treturn typeof fn === \"function\";\n}\nfunction OrdinaryToPrimitive(O, hint) {\n\tlet methodNames;\n\tif (hint === \"string\") {\n\t\tmethodNames = [\"toString\", \"valueOf\"];\n\t} else {\n\t\tmethodNames = [\"valueOf\", \"toString\"];\n\t}\n\tfor (const name of methodNames) {\n\t\tconst method = O[name];\n\t\tif (IsCallable(method)) {\n\t\t\tlet result = method.call(O);\n\t\t\tif (typeof result !== \"object\") {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\tthrow new TypeError(\"Cannot convert object to primitive value\");\n}\n/**\n* https://tc39.es/ecma262/#sec-toprimitive\n*/\nexport function ToPrimitive(input, preferredType) {\n\tif (typeof input === \"object\" && input != null) {\n\t\tconst exoticToPrim = Symbol.toPrimitive in input ? input[Symbol.toPrimitive] : undefined;\n\t\tlet hint;\n\t\tif (exoticToPrim !== undefined) {\n\t\t\tif (preferredType === undefined) {\n\t\t\t\thint = \"default\";\n\t\t\t} else if (preferredType === \"string\") {\n\t\t\t\thint = \"string\";\n\t\t\t} else {\n\t\t\t\tinvariant(preferredType === \"number\", \"preferredType must be \\\"string\\\" or \\\"number\\\"\");\n\t\t\t\thint = \"number\";\n\t\t\t}\n\t\t\tlet result = exoticToPrim.call(input, hint);\n\t\t\tif (typeof result !== \"object\") {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tthrow new TypeError(\"Cannot convert exotic object to primitive.\");\n\t\t}\n\t\tif (preferredType === undefined) {\n\t\t\tpreferredType = \"number\";\n\t\t}\n\t\treturn OrdinaryToPrimitive(input, preferredType);\n\t}\n\treturn input;\n}\n","import { Decimal } from \"@formatjs/bigdecimal\";\nimport { ToPrimitive } from \"#packages/ecma262-abstract/ToPrimitive.js\";\n/**\n* https://tc39.es/ecma402/#sec-tointlmathematicalvalue\n* Converts input to a mathematical value, supporting BigInt\n*/\nexport function ToIntlMathematicalValue(input) {\n\t// Handle BigInt directly before ToPrimitive, since ToPrimitive doesn't\n\t// handle bigint in its type signature (though the spec says it should return it as-is)\n\tif (typeof input === \"bigint\") {\n\t\treturn new Decimal(input.toString());\n\t}\n\tlet primValue = ToPrimitive(input, \"number\");\n\t// ECMA-402 §16.5.16, step 4.a: ToNumber rejects Symbol primitives.\n\t// Keep this error outside the invalid numeric string fallback below.\n\t// https://tc39.es/ecma402/#sec-tointlmathematicalvalue\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/numberformat.html#L1652-L1657\n\tif (typeof primValue === \"symbol\") {\n\t\tthrow new TypeError(\"Cannot convert a Symbol value to a number\");\n\t}\n\t// Handle other primitive types\n\tif (primValue === undefined) {\n\t\treturn new Decimal(NaN);\n\t}\n\tif (primValue === true) {\n\t\treturn new Decimal(1);\n\t}\n\tif (primValue === false) {\n\t\treturn new Decimal(0);\n\t}\n\tif (primValue === null) {\n\t\treturn new Decimal(0);\n\t}\n\t// Try to convert to Decimal (handles numbers and strings)\n\ttry {\n\t\treturn new Decimal(primValue);\n\t} catch {\n\t\treturn new Decimal(NaN);\n\t}\n}\n","import { ToObject } from \"#packages/ecma262-abstract/ToObject.js\";\n/**\n* https://tc39.es/ecma402/#sec-coerceoptionstoobject\n* @param options\n* @returns\n*/\nexport function CoerceOptionsToObject(options) {\n\tif (typeof options === \"undefined\") {\n\t\treturn Object.create(null);\n\t}\n\treturn ToObject(options);\n}\n","/**\n* ECMA-402 §9.2.13 DefaultNumberOption, step 2.\n* https://tc39.es/ecma402/#sec-defaultnumberoption\n* https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/negotiation.html#L437\n* @param val\n* @param min\n* @param max\n* @param fallback\n*/\nexport function DefaultNumberOption(inputVal, min, max, fallback) {\n\tif (inputVal === undefined) {\n\t\t// @ts-expect-error\n\t\treturn fallback;\n\t}\n\t// DefaultNumberOption uses ToNumber, which rejects BigInt even after coercion.\n\t// ECMA-402 §9.2.13 DefaultNumberOption, step 2.\n\t// https://tc39.es/ecma402/#sec-defaultnumberoption\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/negotiation.html#L437\n\tconst val = +inputVal;\n\tif (isNaN(val) || val < min || val > max) {\n\t\tthrow new RangeError(`${val} is outside of range [${min}, ${max}]`);\n\t}\n\treturn Math.floor(val);\n}\n","/**\n* https://tc39.es/ecma402/#sec-getnumberoption\n* @param options\n* @param property\n* @param min\n* @param max\n* @param fallback\n*/\nimport { DefaultNumberOption } from \"#packages/ecma402-abstract/DefaultNumberOption.js\";\nexport function GetNumberOption(options, property, minimum, maximum, fallback) {\n\tconst val = options[property];\n\treturn DefaultNumberOption(val, minimum, maximum, fallback);\n}\n","//#region packages/fast-memoize/index.ts\nfunction memoize(fn, options) {\n\tconst cache = options && options.cache ? options.cache : cacheDefault;\n\tconst serializer = options && options.serializer ? options.serializer : serializerDefault;\n\treturn (options && options.strategy ? options.strategy : strategyDefault)(fn, {\n\t\tcache,\n\t\tserializer\n\t});\n}\nfunction isPrimitive(value) {\n\treturn value == null || typeof value === \"number\" || typeof value === \"boolean\";\n}\nfunction monadic(fn, cache, serializer, arg) {\n\tconst cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n\tlet computedValue = cache.get(cacheKey);\n\tif (typeof computedValue === \"undefined\") {\n\t\tcomputedValue = fn.call(this, arg);\n\t\tcache.set(cacheKey, computedValue);\n\t}\n\treturn computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n\tconst args = Array.prototype.slice.call(arguments, 3);\n\tconst cacheKey = serializer(args);\n\tlet computedValue = cache.get(cacheKey);\n\tif (typeof computedValue === \"undefined\") {\n\t\tcomputedValue = fn.apply(this, args);\n\t\tcache.set(cacheKey, computedValue);\n\t}\n\treturn computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n\treturn strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n\tconst strategy = fn.length === 1 ? monadic : variadic;\n\treturn assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n\treturn assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n\treturn assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\nconst serializerDefault = function() {\n\treturn JSON.stringify(arguments);\n};\nvar ObjectWithoutPrototypeCache = class {\n\tconstructor() {\n\t\tthis.cache = Object.create(null);\n\t}\n\tget(key) {\n\t\treturn this.cache[key];\n\t}\n\tset(key, value) {\n\t\tthis.cache[key] = value;\n\t}\n};\nconst cacheDefault = { create: function create() {\n\treturn new ObjectWithoutPrototypeCache();\n} };\nconst strategies = {\n\tvariadic: strategyVariadic,\n\tmonadic: strategyMonadic\n};\n//#endregion\nexport { memoize, strategies };\n\n//# sourceMappingURL=index.js.map","import { memoize, strategies } from \"@formatjs/fast-memoize\";\nexport function repeat(s, times) {\n\tif (typeof s.repeat === \"function\") {\n\t\treturn s.repeat(times);\n\t}\n\tconst arr = Array.from({ length: times });\n\tfor (let i = 0; i < arr.length; i++) {\n\t\tarr[i] = s;\n\t}\n\treturn arr.join(\"\");\n}\nexport function setInternalSlot(map, pl, field, value) {\n\tif (!map.get(pl)) {\n\t\tmap.set(pl, Object.create(null));\n\t}\n\tconst slots = map.get(pl);\n\tslots[field] = value;\n}\nexport function getInternalSlot(map, pl, field) {\n\treturn getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl, ...fields) {\n\tconst slots = map.get(pl);\n\tif (!slots) {\n\t\tthrow new TypeError(`${pl} InternalSlot has not been initialized`);\n\t}\n\treturn fields.reduce((all, f) => {\n\t\tall[f] = slots[f];\n\t\treturn all;\n\t}, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n\treturn patternPart.type === \"literal\";\n}\n/*\n17 ECMAScript Standard Built-in Objects:\nEvery built-in Function object, including constructors, that is not\nidentified as an anonymous function has a name property whose value\nis a String.\n\nUnless otherwise specified, the name property of a built-in Function\nobject, if it exists, has the attributes { [[Writable]]: false,\n[[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, { value }) {\n\tObject.defineProperty(target, name, {\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t\twritable: true,\n\t\tvalue\n\t});\n}\nexport function ensureIntl() {\n\tif (typeof Intl === \"undefined\") {\n\t\tObject.defineProperty(globalThis, \"Intl\", {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: {}\n\t\t});\n\t}\n\treturn Intl;\n}\n/**\n* 7.3.5 CreateDataProperty\n* @param target\n* @param name\n* @param value\n*/\nexport function createDataProperty(target, name, value) {\n\tObject.defineProperty(target, name, {\n\t\tconfigurable: true,\n\t\tenumerable: true,\n\t\twritable: true,\n\t\tvalue\n\t});\n}\nexport function invariant(condition, message, Err = Error) {\n\tif (!condition) {\n\t\tthrow new Err(message);\n\t}\n}\nexport const createMemoizedNumberFormat = memoize((...args) => new Intl.NumberFormat(...args), { strategy: strategies.variadic });\nexport const createMemoizedPluralRules = memoize((...args) => new Intl.PluralRules(...args), { strategy: strategies.variadic });\nexport const createMemoizedListFormat = memoize((...args) => new Intl.ListFormat(...args), { strategy: strategies.variadic });\n","import { DefaultNumberOption } from \"#packages/ecma402-abstract/DefaultNumberOption.js\";\nimport { GetNumberOption } from \"#packages/ecma402-abstract/GetNumberOption.js\";\nimport { GetOption } from \"#packages/ecma402-abstract/GetOption.js\";\nimport \"#packages/ecma402-abstract/types/number.js\";\nimport { invariant } from \"#packages/ecma402-abstract/utils.js\";\n//IMPL: Valid rounding increments as per implementation\nconst VALID_ROUNDING_INCREMENTS = new Set([\n\t1,\n\t2,\n\t5,\n\t10,\n\t20,\n\t25,\n\t50,\n\t100,\n\t200,\n\t250,\n\t500,\n\t1e3,\n\t2e3,\n\t2500,\n\t5e3\n]);\n/**\n* https://tc39.es/ecma402/#sec-setnfdigitoptions\n*/\nexport function SetNumberFormatDigitOptions(internalSlots, opts, mnfdDefault, mxfdDefault, notation) {\n\t// 1. Let mnid be ? GetNumberOption(opts, \"minimumIntegerDigits\", 1, 21, 1).\n\tconst mnid = GetNumberOption(opts, \"minimumIntegerDigits\", 1, 21, 1);\n\t// 2. Let mnfd be opts.[[MinimumFractionDigits]].\n\tlet mnfd = opts.minimumFractionDigits;\n\t// 3. Let mxfd be opts.[[MaximumFractionDigits]].\n\tlet mxfd = opts.maximumFractionDigits;\n\t// 4. Let mnsd be opts.[[MinimumSignificantDigits]].\n\tlet mnsd = opts.minimumSignificantDigits;\n\t// 5. Let mxsd be opts.[[MaximumSignificantDigits]].\n\tlet mxsd = opts.maximumSignificantDigits;\n\t// 6. Set internalSlots.[[MinimumIntegerDigits]] to mnid.\n\tinternalSlots.minimumIntegerDigits = mnid;\n\t// 7. Let roundingIncrement be ? GetNumberOption(opts, \"roundingIncrement\", 1, 5000, 1).\n\tconst roundingIncrement = GetNumberOption(opts, \"roundingIncrement\", 1, 5e3, 1);\n\t// ECMA-402 §16.1.2, step 8: invalid increments must throw RangeError.\n\t// https://tc39.es/ecma402/#sec-setnumberformatdigitoptions\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/numberformat.html#L104\n\tinvariant(VALID_ROUNDING_INCREMENTS.has(roundingIncrement), `Invalid rounding increment value: ${roundingIncrement}.\nValid values are ${Array.from(VALID_ROUNDING_INCREMENTS).join(\", \")}.`, RangeError);\n\t// 9. Let roundingMode be ? GetOption(opts, \"roundingMode\", \"string\", « \"ceil\", \"floor\", \"expand\", \"trunc\", \"halfCeil\", \"halfFloor\", \"halfExpand\", \"halfTrunc\", \"halfEven\" », \"halfExpand\").\n\tconst roundingMode = GetOption(opts, \"roundingMode\", \"string\", [\n\t\t\"ceil\",\n\t\t\"floor\",\n\t\t\"expand\",\n\t\t\"trunc\",\n\t\t\"halfCeil\",\n\t\t\"halfFloor\",\n\t\t\"halfExpand\",\n\t\t\"halfTrunc\",\n\t\t\"halfEven\"\n\t], \"halfExpand\");\n\t// 10. Let roundingPriority be ? GetOption(opts, \"roundingPriority\", \"string\", « \"auto\", \"morePrecision\", \"lessPrecision\" », \"auto\").\n\tconst roundingPriority = GetOption(opts, \"roundingPriority\", \"string\", [\n\t\t\"auto\",\n\t\t\"morePrecision\",\n\t\t\"lessPrecision\"\n\t], \"auto\");\n\t// 11. Let trailingZeroDisplay be ? GetOption(opts, \"trailingZeroDisplay\", \"string\", « \"auto\", \"stripIfInteger\" », \"auto\").\n\tconst trailingZeroDisplay = GetOption(opts, \"trailingZeroDisplay\", \"string\", [\"auto\", \"stripIfInteger\"], \"auto\");\n\t// 12. If roundingIncrement is not 1, then\n\tif (roundingIncrement !== 1) {\n\t\t// 12.a. Set mxfdDefault to mnfdDefault.\n\t\tmxfdDefault = mnfdDefault;\n\t}\n\t// 13. Set internalSlots.[[RoundingIncrement]] to roundingIncrement.\n\tinternalSlots.roundingIncrement = roundingIncrement;\n\t// 14. Set internalSlots.[[RoundingMode]] to roundingMode.\n\tinternalSlots.roundingMode = roundingMode;\n\t// 15. Set internalSlots.[[TrailingZeroDisplay]] to trailingZeroDisplay.\n\tinternalSlots.trailingZeroDisplay = trailingZeroDisplay;\n\t// 16. Let hasSd be true if mnsd is not undefined or mxsd is not undefined; otherwise, let hasSd be false.\n\tconst hasSd = mnsd !== undefined || mxsd !== undefined;\n\t// 17. Let hasFd be true if mnfd is not undefined or mxfd is not undefined; otherwise, let hasFd be false.\n\tconst hasFd = mnfd !== undefined || mxfd !== undefined;\n\t// 18. Let needSd be true.\n\tlet needSd = true;\n\t// 19. Let needFd be true.\n\tlet needFd = true;\n\t// 20. If roundingPriority is \"auto\", then\n\tif (roundingPriority === \"auto\") {\n\t\t// 20.a. Set needSd to hasSd.\n\t\tneedSd = hasSd;\n\t\t// 20.b. If hasSd is true or hasFd is false and notation is \"compact\", then\n\t\tif (hasSd || !hasFd && notation === \"compact\") {\n\t\t\t// 20.b.i. Set needFd to false.\n\t\t\tneedFd = false;\n\t\t}\n\t}\n\t// 21. If needSd is true, then\n\tif (needSd) {\n\t\t// 21.a. If hasSd is true, then\n\t\tif (hasSd) {\n\t\t\t// 21.a.i. Set internalSlots.[[MinimumSignificantDigits]] to ? DefaultNumberOption(mnsd, 1, 21, 1).\n\t\t\tinternalSlots.minimumSignificantDigits = DefaultNumberOption(mnsd, 1, 21, 1);\n\t\t\t// 21.a.ii. Set internalSlots.[[MaximumSignificantDigits]] to ? DefaultNumberOption(mxsd, internalSlots.[[MinimumSignificantDigits]], 21, 21).\n\t\t\tinternalSlots.maximumSignificantDigits = DefaultNumberOption(mxsd, internalSlots.minimumSignificantDigits, 21, 21);\n\t\t} else {\n\t\t\t// 21.b. Else,\n\t\t\t// 21.b.i. Set internalSlots.[[MinimumSignificantDigits]] to 1.\n\t\t\tinternalSlots.minimumSignificantDigits = 1;\n\t\t\t// 21.b.ii. Set internalSlots.[[MaximumSignificantDigits]] to 21.\n\t\t\tinternalSlots.maximumSignificantDigits = 21;\n\t\t}\n\t}\n\t// 22. If needFd is true, then\n\tif (needFd) {\n\t\t// 22.a. If hasFd is true, then\n\t\tif (hasFd) {\n\t\t\t// 22.a.i. Set mnfd to ? DefaultNumberOption(mnfd, 0, 100, undefined).\n\t\t\tmnfd = DefaultNumberOption(mnfd, 0, 100, undefined);\n\t\t\t// 22.a.ii. Set mxfd to ? DefaultNumberOption(mxfd, 0, 100, undefined).\n\t\t\tmxfd = DefaultNumberOption(mxfd, 0, 100, undefined);\n\t\t\t// 22.a.iii. If mnfd is undefined, then\n\t\t\tif (mnfd === undefined) {\n\t\t\t\t// 22.a.iii.1. Assert: mxfd is not undefined.\n\t\t\t\tinvariant(mxfd !== undefined, \"maximumFractionDigits must be defined\");\n\t\t\t\t// 22.a.iii.2. Set mnfd to min(mnfdDefault, mxfd).\n\t\t\t\tmnfd = Math.min(mnfdDefault, mxfd);\n\t\t\t} else if (mxfd === undefined) {\n\t\t\t\t// 22.a.iv. Else if mxfd is undefined, then\n\t\t\t\t// 22.a.iv.1. Set mxfd to max(mxfdDefault, mnfd).\n\t\t\t\tmxfd = Math.max(mxfdDefault, mnfd);\n\t\t\t} else if (mnfd > mxfd) {\n\t\t\t\t// 22.a.v. Else if mnfd > mxfd, throw a RangeError exception.\n\t\t\t\tthrow new RangeError(`Invalid range, ${mnfd} > ${mxfd}`);\n\t\t\t}\n\t\t\t// 22.a.vi. Set internalSlots.[[MinimumFractionDigits]] to mnfd.\n\t\t\tinternalSlots.minimumFractionDigits = mnfd;\n\t\t\t// 22.a.vii. Set internalSlots.[[MaximumFractionDigits]] to mxfd.\n\t\t\tinternalSlots.maximumFractionDigits = mxfd;\n\t\t} else {\n\t\t\t// 22.b. Else,\n\t\t\t// 22.b.i. Set internalSlots.[[MinimumFractionDigits]] to mnfdDefault.\n\t\t\tinternalSlots.minimumFractionDigits = mnfdDefault;\n\t\t\t// 22.b.ii. Set internalSlots.[[MaximumFractionDigits]] to mxfdDefault.\n\t\t\tinternalSlots.maximumFractionDigits = mxfdDefault;\n\t\t}\n\t}\n\t// 23. If needSd is false and needFd is false, then\n\tif (!needSd && !needFd) {\n\t\t// 23.a. Set internalSlots.[[MinimumFractionDigits]] to 0.\n\t\tinternalSlots.minimumFractionDigits = 0;\n\t\t// 23.b. Set internalSlots.[[MaximumFractionDigits]] to 0.\n\t\tinternalSlots.maximumFractionDigits = 0;\n\t\t// 23.c. Set internalSlots.[[MinimumSignificantDigits]] to 1.\n\t\tinternalSlots.minimumSignificantDigits = 1;\n\t\t// 23.d. Set internalSlots.[[MaximumSignificantDigits]] to 2.\n\t\tinternalSlots.maximumSignificantDigits = 2;\n\t\t// 23.e. Set internalSlots.[[RoundingType]] to \"morePrecision\".\n\t\tinternalSlots.roundingType = \"morePrecision\";\n\t\t// 23.f. Set internalSlots.[[RoundingPriority]] to \"morePrecision\".\n\t\tinternalSlots.roundingPriority = \"morePrecision\";\n\t} else if (roundingPriority === \"morePrecision\") {\n\t\t// 24. Else if roundingPriority is \"morePrecision\", then\n\t\t// 24.a. Set internalSlots.[[RoundingType]] to \"morePrecision\".\n\t\tinternalSlots.roundingType = \"morePrecision\";\n\t\t// 24.b. Set internalSlots.[[RoundingPriority]] to \"morePrecision\".\n\t\tinternalSlots.roundingPriority = \"morePrecision\";\n\t} else if (roundingPriority === \"lessPrecision\") {\n\t\t// 25. Else if roundingPriority is \"lessPrecision\", then\n\t\t// 25.a. Set internalSlots.[[RoundingType]] to \"lessPrecision\".\n\t\tinternalSlots.roundingType = \"lessPrecision\";\n\t\t// 25.b. Set internalSlots.[[RoundingPriority]] to \"lessPrecision\".\n\t\tinternalSlots.roundingPriority = \"lessPrecision\";\n\t} else if (hasSd) {\n\t\t// 26. Else if hasSd is true, then\n\t\t// 26.a. Set internalSlots.[[RoundingType]] to \"significantDigits\".\n\t\tinternalSlots.roundingType = \"significantDigits\";\n\t\t// 26.b. Set internalSlots.[[RoundingPriority]] to \"auto\".\n\t\tinternalSlots.roundingPriority = \"auto\";\n\t} else {\n\t\t// 27. Else,\n\t\t// 27.a. Set internalSlots.[[RoundingType]] to \"fractionDigits\".\n\t\tinternalSlots.roundingType = \"fractionDigits\";\n\t\t// 27.b. Set internalSlots.[[RoundingPriority]] to \"auto\".\n\t\tinternalSlots.roundingPriority = \"auto\";\n\t}\n\t// 28. If roundingIncrement is not 1, then\n\tif (roundingIncrement !== 1) {\n\t\t// 28.a. Assert: internalSlots.[[RoundingType]] is \"fractionDigits\".\n\t\tinvariant(internalSlots.roundingType === \"fractionDigits\", \"Invalid roundingType\", TypeError);\n\t\t// 28.b. Assert: internalSlots.[[MaximumFractionDigits]] is equal to internalSlots.[[MinimumFractionDigits]].\n\t\tinvariant(internalSlots.maximumFractionDigits === internalSlots.minimumFractionDigits, \"With roundingIncrement > 1, maximumFractionDigits and minimumFractionDigits must be equal.\", RangeError);\n\t}\n}\n","import { CanonicalizeLocaleList } from \"#packages/ecma402-abstract/CanonicalizeLocaleList.js\";\nimport { CoerceOptionsToObject } from \"#packages/ecma402-abstract/CoerceOptionsToObject.js\";\nimport { GetOption } from \"#packages/ecma402-abstract/GetOption.js\";\nimport { SetNumberFormatDigitOptions } from \"#packages/ecma402-abstract/NumberFormat/SetNumberFormatDigitOptions.js\";\nimport \"#packages/ecma402-abstract/types/plural-rules.js\";\nimport { ResolveLocale } from \"@formatjs/intl-localematcher\";\nexport function InitializePluralRules(pl, locales, options, { availableLocales, relevantExtensionKeys, localeData, getDefaultLocale, getInternalSlots }) {\n\tconst requestedLocales = CanonicalizeLocaleList(locales);\n\tconst opt = Object.create(null);\n\tconst opts = CoerceOptionsToObject(options);\n\tconst internalSlots = getInternalSlots(pl);\n\tinternalSlots.initializedPluralRules = true;\n\tconst matcher = GetOption(opts, \"localeMatcher\", \"string\", [\"best fit\", \"lookup\"], \"best fit\");\n\topt.localeMatcher = matcher;\n\tconst r = ResolveLocale(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale);\n\tinternalSlots.locale = r.locale;\n\t// ECMA-402 Spec: type option ('cardinal' or 'ordinal')\n\tinternalSlots.type = GetOption(opts, \"type\", \"string\", [\"cardinal\", \"ordinal\"], \"cardinal\");\n\t// Read and validate notation and compactDisplay before digit options.\n\t// ECMA-402 §17.1.1 Intl.PluralRules, steps 9–13.\n\t// https://tc39.es/ecma402/#sec-intl.pluralrules\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/pluralrules.html#L29-L34\n\tconst notation = GetOption(opts, \"notation\", \"string\", [\n\t\t\"standard\",\n\t\t\"scientific\",\n\t\t\"engineering\",\n\t\t\"compact\"\n\t], \"standard\");\n\tinternalSlots.notation = notation;\n\tconst compactDisplay = GetOption(opts, \"compactDisplay\", \"string\", [\"short\", \"long\"], \"short\");\n\tif (notation === \"compact\") {\n\t\tinternalSlots.compactDisplay = compactDisplay;\n\t\tinternalSlots.compactExponents = localeData[r.dataLocale]?.compactExponents;\n\t}\n\tSetNumberFormatDigitOptions(internalSlots, opts, 0, 3, notation);\n\treturn pl;\n}\n","/**\n* https://www.ecma-international.org/ecma-262/11.0/index.html#sec-type\n*/\nexport function Type(x) {\n\tif (x === null) {\n\t\treturn \"Null\";\n\t}\n\tif (typeof x === \"undefined\") {\n\t\treturn \"Undefined\";\n\t}\n\tif (typeof x === \"function\" || typeof x === \"object\") {\n\t\treturn \"Object\";\n\t}\n\tif (typeof x === \"number\") {\n\t\treturn \"Number\";\n\t}\n\tif (typeof x === \"boolean\") {\n\t\treturn \"Boolean\";\n\t}\n\tif (typeof x === \"string\") {\n\t\treturn \"String\";\n\t}\n\tif (typeof x === \"symbol\") {\n\t\treturn \"Symbol\";\n\t}\n\tif (typeof x === \"bigint\") {\n\t\treturn \"BigInt\";\n\t}\n}\n","import { Decimal } from \"@formatjs/bigdecimal\";\nexport const ZERO = new Decimal(0);\nexport const NEGATIVE_ZERO = new Decimal(-0);\n","import \"#packages/ecma402-abstract/types/number.js\";\nconst negativeMapping = {\n\tceil: \"zero\",\n\tfloor: \"infinity\",\n\texpand: \"infinity\",\n\ttrunc: \"zero\",\n\thalfCeil: \"half-zero\",\n\thalfFloor: \"half-infinity\",\n\thalfExpand: \"half-infinity\",\n\thalfTrunc: \"half-zero\",\n\thalfEven: \"half-even\"\n};\nconst positiveMapping = {\n\tceil: \"infinity\",\n\tfloor: \"zero\",\n\texpand: \"infinity\",\n\ttrunc: \"zero\",\n\thalfCeil: \"half-infinity\",\n\thalfFloor: \"half-zero\",\n\thalfExpand: \"half-infinity\",\n\thalfTrunc: \"half-zero\",\n\thalfEven: \"half-even\"\n};\nexport function GetUnsignedRoundingMode(roundingMode, isNegative) {\n\tif (isNegative) {\n\t\treturn negativeMapping[roundingMode];\n\t}\n\treturn positiveMapping[roundingMode];\n}\n","import \"#packages/ecma402-abstract/types/number.js\";\nimport { invariant } from \"#packages/ecma402-abstract/utils.js\";\nexport function ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode) {\n\t// If x equals r1 or if r1 equals r2 (already at rounding boundary), return r1\n\tif (x.eq(r1) || r1.eq(r2)) return r1;\n\t// If x equals r2, return r2\n\tif (x.eq(r2)) return r2;\n\tinvariant(r1.lessThan(x) && x.lessThan(r2), `x should be between r1 and r2 but x=${x}, r1=${r1}, r2=${r2}`);\n\tif (unsignedRoundingMode === \"zero\") {\n\t\treturn r1;\n\t}\n\tif (unsignedRoundingMode === \"infinity\") {\n\t\treturn r2;\n\t}\n\tconst d1 = x.minus(r1);\n\tconst d2 = r2.minus(x);\n\tif (d1.lessThan(d2)) {\n\t\treturn r1;\n\t}\n\tif (d2.lessThan(d1)) {\n\t\treturn r2;\n\t}\n\tinvariant(d1.eq(d2), \"d1 should be equal to d2\");\n\tif (unsignedRoundingMode === \"half-zero\") {\n\t\treturn r1;\n\t}\n\tif (unsignedRoundingMode === \"half-infinity\") {\n\t\treturn r2;\n\t}\n\tinvariant(unsignedRoundingMode === \"half-even\", \"unsignedRoundingMode should be half-even\");\n\tconst cardinality = r1.div(r2.minus(r1)).mod(2);\n\tif (cardinality.isZero()) {\n\t\treturn r1;\n\t}\n\treturn r2;\n}\n","import { Decimal } from \"@formatjs/bigdecimal\";\nimport { memoize } from \"@formatjs/fast-memoize\";\n/**\n* Cached function to compute powers of 10 for Decimal.js operations.\n* This cache significantly reduces overhead in ComputeExponent and ToRawFixed\n* by memoizing expensive Decimal.pow(10, n) calculations.\n*\n* Common exponents (e.g., -20 to 20) are used repeatedly in number formatting,\n* so caching provides substantial performance benefits.\n*\n* @param exponent - Can be a number or Decimal. If Decimal, it will be converted to string for cache key.\n*/\nexport const getPowerOf10 = memoize((exponent) => {\n\treturn Decimal.pow(10, exponent);\n});\n","import \"#packages/ecma402-abstract/types/number.js\";\nimport { repeat } from \"#packages/ecma402-abstract/utils.js\";\nimport { ApplyUnsignedRoundingMode } from \"#packages/ecma402-abstract/NumberFormat/ApplyUnsignedRoundingMode.js\";\nimport { getPowerOf10 } from \"#packages/ecma402-abstract/NumberFormat/decimal-cache.js\";\n//IMPL: Helper function to calculate raw fixed value\nfunction ToRawFixedFn(n, f) {\n\treturn n.times(getPowerOf10(-f));\n}\n//IMPL: Helper function to find n1 and r1\nfunction findN1R1(x, f, roundingIncrement) {\n\tconst nx = x.times(getPowerOf10(f)).floor();\n\tconst n1 = nx.div(roundingIncrement).floor().times(roundingIncrement);\n\tconst r1 = ToRawFixedFn(n1, f);\n\treturn {\n\t\tn1,\n\t\tr1\n\t};\n}\n//IMPL: Helper function to find n2 and r2\nfunction findN2R2(x, f, roundingIncrement) {\n\tconst nx = x.times(getPowerOf10(f)).ceil();\n\tconst n2 = nx.div(roundingIncrement).ceil().times(roundingIncrement);\n\tconst r2 = ToRawFixedFn(n2, f);\n\treturn {\n\t\tn2,\n\t\tr2\n\t};\n}\n/**\n* https://tc39.es/ecma402/#sec-torawfixed\n* @param x a finite non-negative Number or BigInt\n* @param minFraction an integer between 0 and 20\n* @param maxFraction an integer between 0 and 20\n*/\nexport function ToRawFixed(x, minFraction, maxFraction, roundingIncrement, unsignedRoundingMode) {\n\t// 1. Let f be maxFraction.\n\tconst f = maxFraction;\n\t// 2. Let n1 and r1 be the results of performing the maximized rounding of x to f fraction digits.\n\tconst { n1, r1 } = findN1R1(x, f, roundingIncrement);\n\t// 3. Let n2 and r2 be the results of performing the minimized rounding of x to f fraction digits.\n\tconst { n2, r2 } = findN2R2(x, f, roundingIncrement);\n\t// 4. Let r be ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode).\n\tconst r = ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode);\n\tlet n, xFinal;\n\tlet m;\n\t// 5. If r is equal to r1, then\n\tif (r.eq(r1)) {\n\t\t// a. Let n be n1.\n\t\tn = n1;\n\t\t// b. Let xFinal be r1.\n\t\txFinal = r1;\n\t} else {\n\t\t// 6. Else,\n\t\t// a. Let n be n2.\n\t\tn = n2;\n\t\t// b. Let xFinal be r2.\n\t\txFinal = r2;\n\t}\n\t// 7. If n is 0, let m be \"0\".\n\tif (n.isZero()) {\n\t\tm = \"0\";\n\t} else {\n\t\t// 8. Else, let m be the String representation of n.\n\t\tm = n.toString();\n\t}\n\tlet int;\n\t// 9. If f is not 0, then\n\tif (f !== 0) {\n\t\t// a. Let k be the length of m.\n\t\tlet k = m.length;\n\t\t// b. If k < f, then\n\t\tif (k <= f) {\n\t\t\t// i. Let z be the String value consisting of f + 1 - k occurrences of the character \"0\".\n\t\t\tconst z = repeat(\"0\", f - k + 1);\n\t\t\t// ii. Set m to the string-concatenation of z and m.\n\t\t\tm = z + m;\n\t\t\t// iii. Set k to f + 1.\n\t\t\tk = f + 1;\n\t\t}\n\t\t// c. Let a be the substring of m from 0 to k - f.\n\t\tconst a = m.slice(0, k - f);\n\t\t// d. Let b be the substring of m from k - f to k.\n\t\tconst b = m.slice(m.length - f);\n\t\t// e. Set m to the string-concatenation of a, \".\", and b.\n\t\tm = a + \".\" + b;\n\t\t// f. Let int be the length of a.\n\t\tint = a.length;\n\t} else {\n\t\t// 10. Else, let int be the length of m.\n\t\tint = m.length;\n\t}\n\t// 11. Let cut be maxFraction - minFraction.\n\tlet cut = maxFraction - minFraction;\n\t// 12. Repeat, while cut > 0 and the last character of m is \"0\",\n\twhile (cut > 0 && m[m.length - 1] === \"0\") {\n\t\t// a. Remove the last character from m.\n\t\tm = m.slice(0, m.length - 1);\n\t\t// b. Decrease cut by 1.\n\t\tcut--;\n\t}\n\t// 13. If the last character of m is \".\", then\n\tif (m[m.length - 1] === \".\") {\n\t\t// a. Remove the last character from m.\n\t\tm = m.slice(0, m.length - 1);\n\t}\n\t// 14. Return the Record { [[FormattedString]]: m, [[RoundedNumber]]: xFinal, [[IntegerDigitsCount]]: int, [[RoundingMagnitude]]: -f }.\n\treturn {\n\t\tformattedString: m,\n\t\troundedNumber: xFinal,\n\t\tintegerDigitsCount: int,\n\t\troundingMagnitude: -f\n\t};\n}\n","import { ZERO } from \"#packages/ecma402-abstract/constants.js\";\nimport \"#packages/ecma402-abstract/types/number.js\";\nimport { invariant, repeat } from \"#packages/ecma402-abstract/utils.js\";\nimport { ApplyUnsignedRoundingMode } from \"#packages/ecma402-abstract/NumberFormat/ApplyUnsignedRoundingMode.js\";\nimport { getPowerOf10 } from \"#packages/ecma402-abstract/NumberFormat/decimal-cache.js\";\n//IMPL: Helper function to find n1, e1, and r1 using direct calculation\nfunction findN1E1R1(x, p) {\n\tconst maxN1 = getPowerOf10(p);\n\tconst minN1 = getPowerOf10(p - 1);\n\t// Direct calculation: compute e1 from logarithm\n\t// e1 is the exponent such that n1 * 10^(e1-p+1) <= x\n\t// Taking log: log(n1) + (e1-p+1)*log(10) <= log(x)\n\t// Since n1 is between 10^(p-1) and 10^p, we have:\n\t// (p-1) + (e1-p+1) <= log10(x) < p + (e1-p+1)\n\t// Simplifying: e1 <= log10(x) < e1 + 1\n\t// Therefore: e1 = floor(log10(x))\n\tconst log10x = x.log(10);\n\tlet e1 = log10x.floor();\n\t// Calculate n1 and r1 from e1\n\tconst divisor = getPowerOf10(e1.minus(p).plus(1));\n\tlet n1 = x.div(divisor).floor();\n\tlet r1 = n1.times(divisor);\n\t// Verify and adjust if n1 is out of bounds\n\t// This handles edge cases near powers of 10\n\tif (n1.greaterThanOrEqualTo(maxN1)) {\n\t\te1 = e1.plus(1);\n\t\tconst newDivisor = getPowerOf10(e1.minus(p).plus(1));\n\t\tn1 = x.div(newDivisor).floor();\n\t\tr1 = n1.times(newDivisor);\n\t} else if (n1.lessThan(minN1)) {\n\t\te1 = e1.minus(1);\n\t\tconst newDivisor = getPowerOf10(e1.minus(p).plus(1));\n\t\tn1 = x.div(newDivisor).floor();\n\t\tr1 = n1.times(newDivisor);\n\t}\n\t// Final verification with fallback to iterative search if needed\n\tif (r1.lessThanOrEqualTo(x) && n1.lessThan(maxN1) && n1.greaterThanOrEqualTo(minN1)) {\n\t\treturn {\n\t\t\tn1,\n\t\t\te1,\n\t\t\tr1\n\t\t};\n\t}\n\t// Fallback: iterative search (should rarely be needed)\n\tconst maxE1 = x.div(minN1).log(10).plus(p).minus(1).ceil();\n\tlet currentE1 = maxE1;\n\twhile (true) {\n\t\tconst currentDivisor = getPowerOf10(currentE1.minus(p).plus(1));\n\t\tlet currentN1 = x.div(currentDivisor).floor();\n\t\tif (currentN1.lessThan(maxN1) && currentN1.greaterThanOrEqualTo(minN1)) {\n\t\t\tconst currentR1 = currentN1.times(currentDivisor);\n\t\t\tif (currentR1.lessThanOrEqualTo(x)) {\n\t\t\t\treturn {\n\t\t\t\t\tn1: currentN1,\n\t\t\t\t\te1: currentE1,\n\t\t\t\t\tr1: currentR1\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tcurrentE1 = currentE1.minus(1);\n\t}\n}\n//IMPL: Helper function to find n2, e2, and r2 using direct calculation\nfunction findN2E2R2(x, p) {\n\tconst maxN2 = getPowerOf10(p);\n\tconst minN2 = getPowerOf10(p - 1);\n\t// Direct calculation: similar to findN1E1R1 but with ceiling\n\tconst log10x = x.log(10);\n\tlet e2 = log10x.floor();\n\t// Calculate n2 and r2 from e2\n\tconst divisor = getPowerOf10(e2.minus(p).plus(1));\n\tlet n2 = x.div(divisor).ceil();\n\tlet r2 = n2.times(divisor);\n\t// Verify and adjust if n2 is out of bounds\n\tif (n2.greaterThanOrEqualTo(maxN2)) {\n\t\te2 = e2.plus(1);\n\t\tconst newDivisor = getPowerOf10(e2.minus(p).plus(1));\n\t\tn2 = x.div(newDivisor).ceil();\n\t\tr2 = n2.times(newDivisor);\n\t} else if (n2.lessThan(minN2)) {\n\t\te2 = e2.minus(1);\n\t\tconst newDivisor = getPowerOf10(e2.minus(p).plus(1));\n\t\tn2 = x.div(newDivisor).ceil();\n\t\tr2 = n2.times(newDivisor);\n\t}\n\t// Final verification with fallback to iterative search if needed\n\tif (r2.greaterThanOrEqualTo(x) && n2.lessThan(maxN2) && n2.greaterThanOrEqualTo(minN2)) {\n\t\treturn {\n\t\t\tn2,\n\t\t\te2,\n\t\t\tr2\n\t\t};\n\t}\n\t// Fallback: iterative search (should rarely be needed)\n\tconst minE2 = x.div(maxN2).log(10).plus(p).minus(1).floor();\n\tlet currentE2 = minE2;\n\twhile (true) {\n\t\tconst currentDivisor = getPowerOf10(currentE2.minus(p).plus(1));\n\t\tlet currentN2 = x.div(currentDivisor).ceil();\n\t\tif (currentN2.lessThan(maxN2) && currentN2.greaterThanOrEqualTo(minN2)) {\n\t\t\tconst currentR2 = currentN2.times(currentDivisor);\n\t\t\tif (currentR2.greaterThanOrEqualTo(x)) {\n\t\t\t\treturn {\n\t\t\t\t\tn2: currentN2,\n\t\t\t\t\te2: currentE2,\n\t\t\t\t\tr2: currentR2\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tcurrentE2 = currentE2.plus(1);\n\t}\n}\n/**\n* https://tc39.es/ecma402/#sec-torawprecision\n* @param x a finite non-negative Number or BigInt\n* @param minPrecision an integer between 1 and 21\n* @param maxPrecision an integer between 1 and 21\n*/\nexport function ToRawPrecision(x, minPrecision, maxPrecision, unsignedRoundingMode) {\n\t// 1. Let p be maxPrecision.\n\tconst p = maxPrecision;\n\tlet m;\n\tlet e;\n\tlet xFinal;\n\t// 2. If x = 0, then\n\tif (x.isZero()) {\n\t\t// a. Let m be the String value consisting of p occurrences of the character \"0\".\n\t\tm = repeat(\"0\", p);\n\t\t// b. Let e be 0.\n\t\te = 0;\n\t\t// c. Let xFinal be 0.\n\t\txFinal = ZERO;\n\t} else {\n\t\t// 3. Else,\n\t\t// a. Let {n1, e1, r1} be the result of findN1E1R1(x, p).\n\t\tconst { n1, e1, r1 } = findN1E1R1(x, p);\n\t\t// b. Let {n2, e2, r2} be the result of findN2E2R2(x, p).\n\t\tconst { n2, e2, r2 } = findN2E2R2(x, p);\n\t\t// c. Let r be ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode).\n\t\tlet r = ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode);\n\t\tlet n;\n\t\t// d. If r = r1, then\n\t\tif (r.eq(r1)) {\n\t\t\t// i. Let n be n1.\n\t\t\tn = n1;\n\t\t\t// ii. Let e be e1.\n\t\t\te = e1.toNumber();\n\t\t\t// iii. Let xFinal be r1.\n\t\t\txFinal = r1;\n\t\t} else {\n\t\t\t// e. Else,\n\t\t\t// i. Let n be n2.\n\t\t\tn = n2;\n\t\t\t// ii. Let e be e2.\n\t\t\te = e2.toNumber();\n\t\t\t// iii. Let xFinal be r2.\n\t\t\txFinal = r2;\n\t\t}\n\t\t// f. Let m be the String representation of n.\n\t\tm = n.toString();\n\t}\n\tlet int;\n\t// 4. If e ≥ p - 1, then\n\tif (e >= p - 1) {\n\t\t// a. Let m be the string-concatenation of m and p - 1 - e occurrences of the character \"0\".\n\t\tm = m + repeat(\"0\", e - p + 1);\n\t\t// b. Let int be e + 1.\n\t\tint = e + 1;\n\t} else if (e >= 0) {\n\t\t// 5. Else if e ≥ 0, then\n\t\t// a. Let m be the string-concatenation of the first e + 1 characters of m, \".\", and the remaining p - (e + 1) characters of m.\n\t\tm = m.slice(0, e + 1) + \".\" + m.slice(m.length - (p - (e + 1)));\n\t\t// b. Let int be e + 1.\n\t\tint = e + 1;\n\t} else {\n\t\t// 6. Else,\n\t\t// a. Assert: e < 0.\n\t\tinvariant(e < 0, \"e should be less than 0\");\n\t\t// b. Let m be the string-concatenation of \"0.\", -e - 1 occurrences of the character \"0\", and m.\n\t\tm = \"0.\" + repeat(\"0\", -e - 1) + m;\n\t\t// c. Let int be 1.\n\t\tint = 1;\n\t}\n\t// 7. If m contains \".\", and maxPrecision > minPrecision, then\n\tif (m.includes(\".\") && maxPrecision > minPrecision) {\n\t\t// a. Let cut be maxPrecision - minPrecision.\n\t\tlet cut = maxPrecision - minPrecision;\n\t\t// b. Repeat, while cut > 0 and the last character of m is \"0\",\n\t\twhile (cut > 0 && m[m.length - 1] === \"0\") {\n\t\t\t// i. Remove the last character from m.\n\t\t\tm = m.slice(0, m.length - 1);\n\t\t\t// ii. Decrease cut by 1.\n\t\t\tcut--;\n\t\t}\n\t\t// c. If the last character of m is \".\", then\n\t\tif (m[m.length - 1] === \".\") {\n\t\t\t// i. Remove the last character from m.\n\t\t\tm = m.slice(0, m.length - 1);\n\t\t}\n\t}\n\t// ECMA-402 §16.5.8, step 8: rounding magnitude includes the precision offset.\n\t// https://tc39.es/ecma402/#sec-torawprecision\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/numberformat.html#L1332\n\treturn {\n\t\tformattedString: m,\n\t\troundedNumber: xFinal,\n\t\tintegerDigitsCount: int,\n\t\troundingMagnitude: e - p + 1\n\t};\n}\n","import { NEGATIVE_ZERO, ZERO } from \"#packages/ecma402-abstract/constants.js\";\nimport \"#packages/ecma402-abstract/types/number.js\";\nimport { invariant, repeat } from \"#packages/ecma402-abstract/utils.js\";\nimport { GetUnsignedRoundingMode } from \"#packages/ecma402-abstract/NumberFormat/GetUnsignedRoundingMode.js\";\nimport { ToRawFixed } from \"#packages/ecma402-abstract/NumberFormat/ToRawFixed.js\";\nimport { ToRawPrecision } from \"#packages/ecma402-abstract/NumberFormat/ToRawPrecision.js\";\n/**\n* https://tc39.es/ecma402/#sec-formatnumberstring\n*/\nexport function FormatNumericToString(intlObject, _x) {\n\tlet x = _x;\n\tlet sign;\n\t// -0\n\tif (x.isZero() && x.isNegative()) {\n\t\tsign = \"negative\";\n\t\tx = ZERO;\n\t} else {\n\t\tinvariant(x.isFinite(), \"NumberFormatDigitInternalSlots value is not finite\");\n\t\tif (x.lessThan(0)) {\n\t\t\tsign = \"negative\";\n\t\t} else {\n\t\t\tsign = \"positive\";\n\t\t}\n\t\tif (sign === \"negative\") {\n\t\t\tx = x.negated();\n\t\t}\n\t}\n\tlet result;\n\tconst roundingType = intlObject.roundingType;\n\tconst unsignedRoundingMode = GetUnsignedRoundingMode(intlObject.roundingMode, sign === \"negative\");\n\tswitch (roundingType) {\n\t\tcase \"significantDigits\":\n\t\t\tresult = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits, unsignedRoundingMode);\n\t\t\tbreak;\n\t\tcase \"fractionDigits\":\n\t\t\tresult = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits, intlObject.roundingIncrement, unsignedRoundingMode);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tlet sResult = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits, unsignedRoundingMode);\n\t\t\tlet fResult = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits, intlObject.roundingIncrement, unsignedRoundingMode);\n\t\t\tif (intlObject.roundingType === \"morePrecision\") {\n\t\t\t\tif (sResult.roundingMagnitude <= fResult.roundingMagnitude) {\n\t\t\t\t\tresult = sResult;\n\t\t\t\t} else {\n\t\t\t\t\tresult = fResult;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tinvariant(intlObject.roundingType === \"lessPrecision\", \"Invalid roundingType\");\n\t\t\t\tif (sResult.roundingMagnitude <= fResult.roundingMagnitude) {\n\t\t\t\t\tresult = fResult;\n\t\t\t\t} else {\n\t\t\t\t\tresult = sResult;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t}\n\tx = result.roundedNumber;\n\tlet string = result.formattedString;\n\tif (intlObject.trailingZeroDisplay === \"stripIfInteger\" && x.isInteger()) {\n\t\tlet i = string.indexOf(\".\");\n\t\tif (i > -1) {\n\t\t\tstring = string.slice(0, i);\n\t\t}\n\t}\n\tconst int = result.integerDigitsCount;\n\tconst minInteger = intlObject.minimumIntegerDigits;\n\tif (int < minInteger) {\n\t\tconst forwardZeros = repeat(\"0\", minInteger - int);\n\t\tstring = forwardZeros + string;\n\t}\n\tif (sign === \"negative\") {\n\t\tif (x.isZero()) {\n\t\t\tx = NEGATIVE_ZERO;\n\t\t} else {\n\t\t\tx = x.negated();\n\t\t}\n\t}\n\treturn {\n\t\troundedNumber: x,\n\t\tformattedString: string\n\t};\n}\n","import { ZERO } from \"#packages/ecma402-abstract/constants.js\";\nimport { invariant } from \"#packages/ecma402-abstract/utils.js\";\nimport Decimal from \"@formatjs/bigdecimal\";\n/**\n* CLDR operands for the implementation-defined PluralRuleSelect\n* ECMA-402 §17.5.1 PluralRuleSelect, decimalString parameter and return definition.\n* https://tc39.es/ecma402/#sec-pluralruleselect\n* https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/pluralrules.html#L285-L290\n*\n* Implementation: Extended to support compact exponent (c/e operands)\n*\n* @param s Formatted number string\n* @param exponent Compact decimal exponent (c/e operand), defaults to 0\n*/\nexport function GetOperands(s, exponent = 0) {\n\tinvariant(typeof s === \"string\", `GetOperands should have been called with a string`);\n\t// GetOperands consumes a formatted decimal string, not an ECMAScript Number.\n\t// ECMA-402 §17.5.1 PluralRuleSelect, decimalString parameter and return definition.\n\t// Preserve its mathematical value: https://tc39.es/ecma402/#sec-pluralruleselect\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/pluralrules.html#L285-L290\n\tconst n = new Decimal(s);\n\tinvariant(n.isFinite(), \"n should be finite\");\n\tlet dp = s.indexOf(\".\");\n\tlet iv;\n\tlet f;\n\tlet v;\n\tlet fv = \"\";\n\tif (dp === -1) {\n\t\tiv = s;\n\t\tf = ZERO;\n\t\tv = 0;\n\t} else {\n\t\tiv = s.slice(0, dp);\n\t\tfv = s.slice(dp, s.length);\n\t\tf = new Decimal(fv);\n\t\tv = fv.length;\n\t}\n\tconst i = new Decimal(iv).abs();\n\tlet w;\n\tlet t;\n\tif (!f.isZero()) {\n\t\tconst ft = fv.replace(/0+$/, \"\");\n\t\tw = ft.length;\n\t\tt = new Decimal(ft);\n\t} else {\n\t\tw = 0;\n\t\tt = ZERO;\n\t}\n\treturn {\n\t\tNumber: n,\n\t\t// Keep as string if too large for JavaScript number to preserve precision\n\t\tIntegerDigits: i.lessThanOrEqualTo(Number.MAX_SAFE_INTEGER) && i.greaterThanOrEqualTo(-Number.MAX_SAFE_INTEGER) ? i.toNumber() : i.toString(),\n\t\tNumberOfFractionDigits: v,\n\t\tNumberOfFractionDigitsWithoutTrailing: w,\n\t\tFractionDigits: f.toNumber(),\n\t\tFractionDigitsWithoutTrailing: t.toNumber(),\n\t\tCompactExponent: exponent\n\t};\n}\n","import { Type } from \"#packages/ecma262-abstract/Type.js\";\nimport { FormatNumericToString } from \"#packages/ecma402-abstract/NumberFormat/FormatNumericToString.js\";\nimport \"#packages/ecma402-abstract/types/plural-rules.js\";\nimport { invariant } from \"#packages/ecma402-abstract/utils.js\";\nimport { GetOperands } from \"#packages/ecma402-abstract/PluralRules/GetOperands.js\";\n/**\n* ResolvePluralInternal ( pluralRules, n )\n*\n* Internal version of ResolvePlural that returns both the formatted string and plural category.\n* This is needed for selectRange, which must compare formatted strings to determine if the\n* start and end values are identical.\n*\n* The formatted string is obtained by applying the number formatting options (digit options)\n* from the PluralRules object to the input number. This ensures that formatting-sensitive\n* plural rules work correctly (e.g., rules that depend on visible fraction digits).\n*\n* @param pl - An initialized PluralRules object\n* @param n - Mathematical value to resolve\n* @returns Record containing the formatted string and plural category\n*/\nexport function ResolvePluralInternal(pl, n, { getInternalSlots, PluralRuleSelect }) {\n\tconst internalSlots = getInternalSlots(pl);\n\tinvariant(Type(internalSlots) === \"Object\", \"pl has to be an object\");\n\tinvariant(\"initializedPluralRules\" in internalSlots, \"pluralrules must be initialized\");\n\t// Handle non-finite values (Infinity, -Infinity, NaN)\n\tif (!n.isFinite()) {\n\t\treturn {\n\t\t\tformattedString: String(n),\n\t\t\tpluralCategory: \"other\"\n\t\t};\n\t}\n\tconst { locale, type, notation } = internalSlots;\n\t// ECMA-402 Spec: Format the number according to digit options\n\tconst res = FormatNumericToString(internalSlots, n);\n\tconst s = res.formattedString;\n\t// ECMA-402 §17.5.2, step 10 selects from the rounded decimal string.\n\t// Own CLDR data keeps compact selection independent of NumberFormat.\n\t// https://tc39.es/ecma402/#sec-resolveplural\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/pluralrules.html#L316-L321\n\tlet exponent = 0;\n\tif (notation === \"compact\") {\n\t\tconst patterns = internalSlots.compactExponents?.[internalSlots.compactDisplay || \"short\"];\n\t\tconst unsigned = s[0] === \"-\" ? s.slice(1) : s;\n\t\tconst integer = unsigned.split(\".\")[0];\n\t\tlet first = 0;\n\t\twhile (first < integer.length && integer[first] === \"0\") first++;\n\t\tconst magnitude = integer.length - first - 1;\n\t\tlet selectedMagnitude = -1;\n\t\tif (patterns) {\n\t\t\tfor (const key in patterns) {\n\t\t\t\tconst threshold = Number(key);\n\t\t\t\tif (threshold <= magnitude && threshold > selectedMagnitude) {\n\t\t\t\t\tselectedMagnitude = threshold;\n\t\t\t\t\texponent = patterns[threshold];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tconst operands = GetOperands(s, exponent);\n\t// ECMA-402 Spec: Select the appropriate plural category using the locale's plural rules\n\tconst pluralCategory = PluralRuleSelect(locale, type, n, operands);\n\treturn {\n\t\tformattedString: s,\n\t\tpluralCategory\n\t};\n}\n/**\n* http://ecma-international.org/ecma-402/7.0/index.html#sec-resolveplural\n* @param pl\n* @param n\n* @param PluralRuleSelect Has to pass in bc it's implementation-specific\n*/\nexport function ResolvePlural(pl, n, { getInternalSlots, PluralRuleSelect }) {\n\treturn ResolvePluralInternal(pl, n, {\n\t\tgetInternalSlots,\n\t\tPluralRuleSelect\n\t}).pluralCategory;\n}\n","import { Type } from \"#packages/ecma262-abstract/Type.js\";\nimport \"#packages/ecma402-abstract/types/plural-rules.js\";\nimport { invariant } from \"#packages/ecma402-abstract/utils.js\";\nimport \"#packages/ecma402-abstract/PluralRules/GetOperands.js\";\nimport { ResolvePluralInternal } from \"#packages/ecma402-abstract/PluralRules/ResolvePlural.js\";\n/**\n* ResolvePluralRange ( pluralRules, x, y )\n*\n* The ResolvePluralRange abstract operation is called with arguments pluralRules (which must be\n* an object initialized as a PluralRules), x (a mathematical value), and y (a mathematical value).\n* It resolves the appropriate plural form for a range by determining the plural forms of both the\n* start and end values, then consulting locale-specific range data.\n*\n* ECMA-402 §17.5.4 ResolvePluralRange, steps 1–3.\n* Specification: https://tc39.es/ecma402/#sec-resolvepluralrange\n* https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/pluralrules.html#L356-L358\n*\n* @param pluralRules - An initialized PluralRules object\n* @param x - Mathematical value for the range start\n* @param y - Mathematical value for the range end\n* @returns The plural category for the range (zero, one, two, few, many, or other)\n*/\nexport function ResolvePluralRange(pluralRules, x, y, { getInternalSlots, PluralRuleSelect, PluralRuleSelectRange }) {\n\t// ResolvePluralRange rejects NaN but permits either infinity.\n\t// ECMA-402 §17.5.4 ResolvePluralRange, steps 1–3.\n\t// https://tc39.es/ecma402/#sec-resolvepluralrange\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/pluralrules.html#L356-L358\n\tif (x.isNaN() || y.isNaN()) {\n\t\tthrow new RangeError(\"selectRange requires start and end values not to be NaN\");\n\t}\n\t// Validation: Assert that pluralRules has been initialized\n\tconst internalSlots = getInternalSlots(pluralRules);\n\tinvariant(Type(internalSlots) === \"Object\", \"pluralRules has to be an object\");\n\tinvariant(\"initializedPluralRules\" in internalSlots, \"pluralrules must be initialized\");\n\t// 2. Let xp be ResolvePlural(pluralRules, x).\n\t// Note: ResolvePlural returns a Record with [[FormattedString]] and [[PluralCategory]]\n\tconst xp = ResolvePluralInternal(pluralRules, x, {\n\t\tgetInternalSlots,\n\t\tPluralRuleSelect\n\t});\n\t// 3. Let yp be ResolvePlural(pluralRules, y).\n\tconst yp = ResolvePluralInternal(pluralRules, y, {\n\t\tgetInternalSlots,\n\t\tPluralRuleSelect\n\t});\n\t// 4. If xp.[[FormattedString]] is yp.[[FormattedString]], then\n\t// a. Return xp.[[PluralCategory]].\n\t// Note: When the formatted strings are identical (e.g., \"1\" and \"1\"), the values are\n\t// effectively the same, so we return the plural category of the start value.\n\tif (xp.formattedString === yp.formattedString) {\n\t\treturn xp.pluralCategory;\n\t}\n\t// 5. Let locale be pluralRules.[[Locale]].\n\t// 6. Let type be pluralRules.[[Type]].\n\tconst { locale, type } = internalSlots;\n\t// 7. Let notation be pluralRules.[[Notation]].\n\t// 8. Let compactDisplay be pluralRules.[[CompactDisplay]].\n\t// Note: notation and compactDisplay are not yet implemented for PluralRules polyfill.\n\t// When implemented, these would affect how the range is formatted and thus which\n\t// plural rules apply (see c/e operand support).\n\t// 9. Return PluralRuleSelectRange(locale, type, notation, compactDisplay, xp.[[PluralCategory]], yp.[[PluralCategory]]).\n\t// Note: PluralRuleSelectRange is implementation-defined and uses CLDR plural range data\n\t// to determine the appropriate plural category for a range based on the start and end categories.\n\t// Example: In English, \"one\" to \"other\" → \"other\" (e.g., \"1-2 items\")\n\treturn PluralRuleSelectRange(locale, type, xp.pluralCategory, yp.pluralCategory);\n}\n","// Type-only circular import\n// eslint-disable-next-line import/no-cycle\nimport type {PluralRules} from '#packages/intl-pluralrules/index.js'\nimport {type PluralRulesInternal} from '#packages/intl-pluralrules/index.js'\n\nconst internalSlotMap = new WeakMap<PluralRules, PluralRulesInternal>()\n\nexport default function getInternalSlots(x: PluralRules): PluralRulesInternal {\n let internalSlots = internalSlotMap.get(x)\n if (!internalSlots) {\n internalSlots = Object.create(null) as PluralRulesInternal\n internalSlotMap.set(x, internalSlots)\n }\n return internalSlots\n}\n","import {registerLocaleData} from '#packages/ecma402-abstract/registerLocaleData.js'\nimport {CanonicalizeLocaleList} from '#packages/ecma402-abstract/CanonicalizeLocaleList.js'\nimport {SupportedLocales} from '#packages/ecma402-abstract/SupportedLocales.js'\nimport {ToIntlMathematicalValue} from '#packages/ecma402-abstract/ToIntlMathematicalValue.js'\nimport {type NumberFormatDigitInternalSlots} from '#packages/ecma402-abstract/types/number.js'\nimport {\n type CompactExponentData,\n type LDMLPluralRule,\n type PluralRulesData,\n type PluralRulesLocaleData,\n} from '#packages/ecma402-abstract/types/plural-rules.js'\nimport type Decimal from '@formatjs/bigdecimal'\nimport {type OperandsRecord} from '#packages/ecma402-abstract/PluralRules/GetOperands.js'\nimport {InitializePluralRules} from '#packages/ecma402-abstract/PluralRules/InitializePluralRules.js'\nimport {ResolvePlural} from '#packages/ecma402-abstract/PluralRules/ResolvePlural.js'\nimport {ResolvePluralRange} from '#packages/ecma402-abstract/PluralRules/ResolvePluralRange.js'\nimport getInternalSlots from '#packages/intl-pluralrules/get_internal_slots.js'\n\n/**\n * Type augmentation for Intl.PluralRules\n *\n * ECMA-402 Spec: selectRange method (Intl.PluralRules.prototype.selectRange)\n * https://tc39.es/ecma402/#sec-intl.pluralrules.prototype.selectrange\n *\n * ECMA-402 notation and compactDisplay options\n * Mirrors Intl.NumberFormat notation option for proper plural selection with compact numbers\n */\ndeclare global {\n namespace Intl {\n interface PluralRules {\n // ECMA-402 Spec: selectRange method\n selectRange(start: number | bigint, end: number | bigint): LDMLPluralRule\n }\n interface PluralRulesOptions {\n // ECMA-402 §17.1.1 Intl.PluralRules, steps 9–13.\n // https://tc39.es/ecma402/#sec-intl.pluralrules\n // https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/pluralrules.html#L29-L34\n notation?: 'standard' | 'scientific' | 'engineering' | 'compact'\n // Only reported in resolvedOptions when notation is compact.\n compactDisplay?: 'short' | 'long'\n }\n }\n}\n\nfunction validateInstance(instance: any, method: string) {\n if (!(instance instanceof PluralRules)) {\n throw new TypeError(\n `Method Intl.PluralRules.prototype.${method} called on incompatible receiver ${String(\n instance\n )}`\n )\n }\n}\n\nexport interface PluralRulesInternal extends NumberFormatDigitInternalSlots {\n initializedPluralRules: boolean\n locale: string\n type: 'cardinal' | 'ordinal'\n notation: 'standard' | 'scientific' | 'engineering' | 'compact'\n compactDisplay?: 'short' | 'long'\n compactExponents?: CompactExponentData\n}\n\n/**\n * http://ecma-international.org/ecma-402/7.0/index.html#sec-pluralruleselect\n * @param locale\n * @param type\n * @param _n\n * @param param3\n */\nfunction PluralRuleSelect(\n locale: string,\n type: 'cardinal' | 'ordinal',\n _n: Decimal,\n {\n IntegerDigits,\n NumberOfFractionDigits,\n FractionDigits,\n CompactExponent,\n }: OperandsRecord\n): LDMLPluralRule {\n // Always pass a string to the compiled function to preserve precision for huge numbers\n return PluralRules.localeData[locale].fn(\n NumberOfFractionDigits\n ? `${IntegerDigits}.${FractionDigits}`\n : String(IntegerDigits),\n type === 'ordinal',\n CompactExponent\n )\n}\n\n/**\n * PluralRuleSelectRange ( locale, type, notation, compactDisplay, start, end )\n *\n * Implementation-defined abstract operation that determines the plural category for a range\n * by consulting CLDR plural range data. Each locale defines how different combinations of\n * start and end plural categories map to a range plural category.\n *\n * Examples from CLDR:\n * - English: \"one\" + \"other\" → \"other\" (e.g., \"1-2 items\")\n * - French: \"one\" + \"one\" → \"one\" (e.g., \"0-1 vue\")\n * - Arabic: \"few\" + \"many\" → \"many\" (e.g., complex range rules)\n *\n * The spec allows this to be implementation-defined, and we use CLDR supplemental data\n * from pluralRanges.json which provides explicit mappings for each locale.\n *\n * @param locale - BCP 47 locale identifier\n * @param type - \"cardinal\" or \"ordinal\"\n * @param xp - Start plural category\n * @param yp - End plural category\n * @returns The plural category for the range\n */\nfunction PluralRuleSelectRange(\n locale: string,\n type: 'cardinal' | 'ordinal',\n xp: LDMLPluralRule,\n yp: LDMLPluralRule\n): LDMLPluralRule {\n const localeData = PluralRules.localeData[locale]\n if (!localeData || !localeData.pluralRanges) {\n // Fallback: If no range data is available, return the end category.\n // This is a reasonable default as the end value often determines the plural form.\n return yp\n }\n\n // Construct lookup key: \"start_end\" (e.g., \"one_other\", \"few_many\")\n const key = `${xp}_${yp}` as const\n\n // Select the appropriate range data based on type (cardinal vs ordinal)\n const rangeData =\n type === 'ordinal'\n ? localeData.pluralRanges.ordinal\n : localeData.pluralRanges.cardinal\n\n // Look up the result, falling back to end category if not found\n return rangeData?.[key] ?? yp\n}\n\nexport class PluralRules {\n constructor(locales?: string | string[], options?: Intl.PluralRulesOptions) {\n // test262/test/intl402/RelativeTimeFormat/constructor/constructor/newtarget-undefined.js\n // Cannot use `new.target` bc of IE11 & TS transpiles it to something else\n const newTarget =\n this && this instanceof PluralRules ? this.constructor : void 0\n if (!newTarget) {\n throw new TypeError(\"Intl.PluralRules must be called with 'new'\")\n }\n return InitializePluralRules(this, locales, options, {\n availableLocales: PluralRules.availableLocales,\n relevantExtensionKeys: PluralRules.relevantExtensionKeys,\n localeData: PluralRules.localeData,\n getDefaultLocale: PluralRules.getDefaultLocale,\n getInternalSlots,\n })\n }\n public resolvedOptions(): Intl.ResolvedPluralRulesOptions {\n validateInstance(this, 'resolvedOptions')\n // Ordinary result object and property order follow the resolved-options table.\n // ECMA-402 §17.3.2 Intl.PluralRules.prototype.resolvedOptions, steps 3–5, Table 32.\n // https://tc39.es/ecma402/#sec-intl.pluralrules.prototype.resolvedoptions\n // https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/pluralrules.html#L114-L126\n const opts: Record<string, any> = {}\n const internalSlots = getInternalSlots(this)\n opts.locale = internalSlots.locale\n opts.type = internalSlots.type\n ;(\n [\n 'notation',\n 'compactDisplay',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n ] as Array<keyof PluralRulesInternal>\n ).forEach(field => {\n const val = internalSlots[field]\n if (val !== undefined) {\n opts[field] = val\n }\n })\n\n const categories =\n PluralRules.localeData[internalSlots.locale].categories[\n internalSlots.type\n ]\n opts.pluralCategories = [\n 'zero',\n 'one',\n 'two',\n 'few',\n 'many',\n 'other',\n ].filter(category => categories.includes(category))\n for (const field of [\n 'roundingIncrement',\n 'roundingMode',\n 'roundingPriority',\n 'trailingZeroDisplay',\n ] as const) {\n opts[field] = internalSlots[field]\n }\n return opts as Intl.ResolvedPluralRulesOptions\n }\n\n public select(val: number | bigint): LDMLPluralRule {\n validateInstance(this, 'select')\n // Use ToIntlMathematicalValue which handles bigint per ECMA-402\n // https://tc39.es/ecma402/#sec-intl.pluralrules.prototype.select\n const n = ToIntlMathematicalValue(val)\n return ResolvePlural(this, n, {getInternalSlots, PluralRuleSelect})\n }\n /**\n * Intl.PluralRules.prototype.selectRange ( start, end )\n *\n * Returns a string indicating which plural rule applies to a range of numbers.\n * This is useful for formatting ranges like \"1-2 items\" vs \"2-3 items\" where\n * different languages have different plural rules for ranges.\n *\n * Specification: https://tc39.es/ecma402/#sec-intl.pluralrules.prototype.selectrange\n *\n * @param start - The start value of the range (number or bigint)\n * @param end - The end value of the range (number or bigint)\n * @returns The plural category for the range (zero, one, two, few, many, or other)\n *\n * @example\n * const pr = new Intl.PluralRules('en');\n * pr.selectRange(1, 2); // \"other\" (English: \"1-2 items\")\n * pr.selectRange(1, 1); // \"one\" (same value: \"1 item\")\n *\n * @example\n * const prFr = new Intl.PluralRules('fr');\n * prFr.selectRange(0, 1); // \"one\" (French: \"0-1 vue\")\n * prFr.selectRange(1, 2); // \"other\" (French: \"1-2 vues\")\n *\n * @example\n * // BigInt support (spec-compliant, but Chrome has a bug as of early 2025)\n * pr.selectRange(BigInt(1), BigInt(2)); // \"other\"\n *\n * @throws {TypeError} If start or end is undefined\n * @throws {RangeError} If start or end converts to NaN\n *\n * @note Chrome's native implementation (as of early 2025) has a bug where it throws\n * \"Cannot convert a BigInt value to a number\" when using BigInt arguments. This is\n * a browser bug - the spec requires BigInt support. This polyfill handles BigInt correctly.\n */\n public selectRange(\n start: number | bigint,\n end: number | bigint\n ): LDMLPluralRule {\n validateInstance(this, 'selectRange')\n // Spec: https://tc39.es/ecma402/#sec-intl.pluralrules.prototype.selectrange\n\n // 1. Let pr be the this value.\n // 2. Perform ? RequireInternalSlot(pr, [[InitializedPluralRules]]).\n // (Validation is done by validateInstance above)\n\n // 3. If start is undefined or end is undefined, throw a TypeError exception.\n if (start === undefined || end === undefined) {\n throw new TypeError('selectRange requires both start and end arguments')\n }\n\n // 4. Let x be ? ToIntlMathematicalValue(start).\n const x = ToIntlMathematicalValue(start)\n\n // 5. Let y be ? ToIntlMathematicalValue(end).\n const y = ToIntlMathematicalValue(end)\n\n // 6. Return ? ResolvePluralRange(pr, x, y).\n return ResolvePluralRange(this, x, y, {\n getInternalSlots,\n PluralRuleSelect,\n PluralRuleSelectRange,\n })\n }\n toString() {\n return '[object Intl.PluralRules]'\n }\n public static supportedLocalesOf(\n locales?: string | string[],\n options?: Pick<Intl.PluralRulesOptions, 'localeMatcher'>\n ): string[] {\n return SupportedLocales(\n PluralRules.availableLocales,\n CanonicalizeLocaleList(locales),\n options\n )\n }\n public static __addLocaleData(...data: PluralRulesLocaleData[]): void {\n for (const {data: d, locale} of data) {\n registerLocaleData(\n locale,\n d,\n PluralRules.localeData,\n PluralRules.availableLocales\n )\n if (!PluralRules.__defaultLocale) {\n PluralRules.__defaultLocale = locale\n }\n }\n }\n static localeData: Record<string, PluralRulesData> = {}\n static availableLocales: Set<string> = new Set<string>()\n static __defaultLocale = ''\n static getDefaultLocale(): string {\n return PluralRules.__defaultLocale\n }\n static relevantExtensionKeys: never[] = []\n public static polyfilled = true\n}\n\ntry {\n // IE11 does not have Symbol\n if (typeof Symbol !== 'undefined') {\n Object.defineProperty(PluralRules.prototype, Symbol.toStringTag, {\n value: 'Intl.PluralRules',\n writable: false,\n enumerable: false,\n configurable: true,\n })\n }\n\n try {\n // https://github.com/tc39/test262/blob/master/test/intl402/PluralRules/length.js\n Object.defineProperty(PluralRules, 'length', {\n value: 0,\n writable: false,\n enumerable: false,\n configurable: true,\n })\n } catch {\n // IE 11 sets Function.prototype.length to be non-configurable which will cause the\n // above Object.defineProperty to throw an error.\n }\n // https://github.com/tc39/test262/blob/master/test/intl402/RelativeTimeFormat/constructor/length.js\n Object.defineProperty(PluralRules.prototype.constructor, 'length', {\n value: 0,\n writable: false,\n enumerable: false,\n configurable: true,\n })\n // https://github.com/tc39/test262/blob/master/test/intl402/RelativeTimeFormat/constructor/supportedLocalesOf/length.js\n Object.defineProperty(PluralRules.supportedLocalesOf, 'length', {\n value: 1,\n writable: false,\n enumerable: false,\n configurable: true,\n })\n Object.defineProperty(PluralRules, 'name', {\n value: 'PluralRules',\n writable: false,\n enumerable: false,\n configurable: true,\n })\n} catch {\n // Meta fixes for test262\n}\n"],"x_google_ignoreList":[0,12],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["invariant"],"sources":["../../../node_modules/.aspect_rules_js/@formatjs_generated+cldr.supported-locales@0.0.0/node_modules/@formatjs_generated/cldr.supported-locales/default-content.js","../../ecma402-abstract/registerLocaleData.js","../../ecma402-abstract/CanonicalizeLocaleList.js","../../ecma262-abstract/ToObject.js","../../ecma262-abstract/ToString.js","../../ecma402-abstract/GetOption.js","../../ecma402-abstract/SupportedLocales.js","../../ecma262-abstract/ToPrimitive.js","../../ecma402-abstract/ToIntlMathematicalValue.js","../../ecma402-abstract/CoerceOptionsToObject.js","../../ecma402-abstract/DefaultNumberOption.js","../../ecma402-abstract/GetNumberOption.js","../../../node_modules/.aspect_rules_js/@formatjs+fast-memoize@0.0.0/node_modules/@formatjs/fast-memoize/index.js","../../ecma402-abstract/utils.js","../../ecma402-abstract/NumberFormat/SetNumberFormatDigitOptions.js","../../ecma402-abstract/PluralRules/InitializePluralRules.js","../../ecma262-abstract/Type.js","../../ecma402-abstract/constants.js","../../ecma402-abstract/NumberFormat/GetUnsignedRoundingMode.js","../../ecma402-abstract/NumberFormat/ApplyUnsignedRoundingMode.js","../../ecma402-abstract/NumberFormat/decimal-cache.js","../../ecma402-abstract/NumberFormat/ToRawFixed.js","../../ecma402-abstract/NumberFormat/ToRawPrecision.js","../../ecma402-abstract/NumberFormat/FormatNumericToString.js","../../ecma402-abstract/PluralRules/ResolvePlural.js","../../ecma402-abstract/PluralRules/ResolvePluralRange.js","../get_internal_slots.ts","../index.ts"],"sourcesContent":["export const defaultContent = {\n\t\"aa\": [\"aa-ET\"],\n\t\"ab\": [\"ab-GE\"],\n\t\"af\": [\"af-ZA\"],\n\t\"agq\": [\"agq-CM\"],\n\t\"ak\": [\"ak-GH\"],\n\t\"am\": [\"am-ET\"],\n\t\"an\": [\"an-ES\"],\n\t\"ann\": [\"ann-NG\"],\n\t\"apc\": [\"apc-SY\"],\n\t\"ar\": [\"ar-001\"],\n\t\"arn\": [\"arn-CL\"],\n\t\"as\": [\"as-IN\"],\n\t\"asa\": [\"asa-TZ\"],\n\t\"ast\": [\"ast-ES\"],\n\t\"az-Arab\": [\"az-Arab-IR\"],\n\t\"az-Cyrl\": [\"az-Cyrl-AZ\"],\n\t\"az-Latn\": [\"az-Latn-AZ\"],\n\t\"ba\": [\"ba-RU\"],\n\t\"bal-Arab\": [\"bal-Arab-PK\"],\n\t\"bal-Latn\": [\"bal-Latn-PK\"],\n\t\"bas\": [\"bas-CM\"],\n\t\"be\": [\"be-BY\"],\n\t\"bem\": [\"bem-ZM\"],\n\t\"bew\": [\"bew-ID\"],\n\t\"bez\": [\"bez-TZ\"],\n\t\"bg\": [\"bg-BG\"],\n\t\"bgc\": [\"bgc-IN\"],\n\t\"bgn\": [\"bgn-PK\"],\n\t\"bho\": [\"bho-IN\"],\n\t\"blo\": [\"blo-BJ\"],\n\t\"blt\": [\"blt-VN\"],\n\t\"bm\": [\"bm-ML\"],\n\t\"bm-Nkoo\": [\"bm-Nkoo-ML\"],\n\t\"bn\": [\"bn-BD\"],\n\t\"bo\": [\"bo-CN\"],\n\t\"bqi\": [\"bqi-IR\"],\n\t\"br\": [\"br-FR\"],\n\t\"brx\": [\"brx-IN\"],\n\t\"bs-Cyrl\": [\"bs-Cyrl-BA\"],\n\t\"bs-Latn\": [\"bs-Latn-BA\"],\n\t\"bss\": [\"bss-CM\"],\n\t\"bua\": [\"bua-RU\"],\n\t\"byn\": [\"byn-ER\"],\n\t\"ca\": [\"ca-ES\"],\n\t\"cad\": [\"cad-US\"],\n\t\"cch\": [\"cch-NG\"],\n\t\"ccp\": [\"ccp-BD\"],\n\t\"ce\": [\"ce-RU\"],\n\t\"ceb\": [\"ceb-PH\"],\n\t\"cgg\": [\"cgg-UG\"],\n\t\"cho\": [\"cho-US\"],\n\t\"chr\": [\"chr-US\"],\n\t\"cic\": [\"cic-US\"],\n\t\"ckb\": [\"ckb-IQ\"],\n\t\"co\": [\"co-FR\"],\n\t\"cop\": [\"cop-EG\"],\n\t\"cs\": [\"cs-CZ\"],\n\t\"csw\": [\"csw-CA\"],\n\t\"cu\": [\"cu-RU\"],\n\t\"cv\": [\"cv-RU\"],\n\t\"cy\": [\"cy-GB\"],\n\t\"da\": [\"da-DK\"],\n\t\"dav\": [\"dav-KE\"],\n\t\"de\": [\"de-DE\"],\n\t\"dje\": [\"dje-NE\"],\n\t\"doi\": [\"doi-IN\"],\n\t\"dsb\": [\"dsb-DE\"],\n\t\"dua\": [\"dua-CM\"],\n\t\"dv\": [\"dv-MV\"],\n\t\"dyo\": [\"dyo-SN\"],\n\t\"dz\": [\"dz-BT\"],\n\t\"ebu\": [\"ebu-KE\"],\n\t\"ee\": [\"ee-GH\"],\n\t\"el\": [\"el-GR\"],\n\t\"en-Dsrt\": [\"en-Dsrt-US\"],\n\t\"en-Shaw\": [\"en-Shaw-GB\"],\n\t\"en\": [\"en-US\"],\n\t\"eo\": [\"eo-001\"],\n\t\"es\": [\"es-ES\"],\n\t\"et\": [\"et-EE\"],\n\t\"eu\": [\"eu-ES\"],\n\t\"ewo\": [\"ewo-CM\"],\n\t\"fa\": [\"fa-IR\"],\n\t\"ff-Adlm\": [\"ff-Adlm-GN\"],\n\t\"ff-Latn\": [\"ff-Latn-SN\"],\n\t\"fi\": [\"fi-FI\"],\n\t\"fil\": [\"fil-PH\"],\n\t\"fo\": [\"fo-FO\"],\n\t\"fr\": [\"fr-FR\"],\n\t\"frr\": [\"frr-DE\"],\n\t\"fur\": [\"fur-IT\"],\n\t\"fy\": [\"fy-NL\"],\n\t\"ga\": [\"ga-IE\"],\n\t\"gaa\": [\"gaa-GH\"],\n\t\"gd\": [\"gd-GB\"],\n\t\"gez\": [\"gez-ET\"],\n\t\"gl\": [\"gl-ES\"],\n\t\"gn\": [\"gn-PY\"],\n\t\"gsw\": [\"gsw-CH\"],\n\t\"gu\": [\"gu-IN\"],\n\t\"guz\": [\"guz-KE\"],\n\t\"gv\": [\"gv-IM\"],\n\t\"ha-Arab\": [\"ha-Arab-NG\"],\n\t\"ha\": [\"ha-NG\"],\n\t\"haw\": [\"haw-US\"],\n\t\"he\": [\"he-IL\"],\n\t\"hi\": [\"hi-IN\"],\n\t\"hi-Latn\": [\"hi-Latn-IN\"],\n\t\"hnj-Hmnp\": [\"hnj-Hmnp-US\"],\n\t\"hr\": [\"hr-HR\"],\n\t\"hsb\": [\"hsb-DE\"],\n\t\"ht\": [\"ht-HT\"],\n\t\"hu\": [\"hu-HU\"],\n\t\"hy\": [\"hy-AM\"],\n\t\"ia\": [\"ia-001\"],\n\t\"id\": [\"id-ID\"],\n\t\"ie\": [\"ie-EE\"],\n\t\"ig\": [\"ig-NG\"],\n\t\"ii\": [\"ii-CN\"],\n\t\"io\": [\"io-001\"],\n\t\"is\": [\"is-IS\"],\n\t\"it\": [\"it-IT\"],\n\t\"iu\": [\"iu-CA\"],\n\t\"iu-Latn\": [\"iu-Latn-CA\"],\n\t\"ja\": [\"ja-JP\"],\n\t\"jbo\": [\"jbo-001\"],\n\t\"jgo\": [\"jgo-CM\"],\n\t\"jmc\": [\"jmc-TZ\"],\n\t\"jv\": [\"jv-ID\"],\n\t\"ka\": [\"ka-GE\"],\n\t\"kaa-Cyrl\": [\"kaa-Cyrl-UZ\"],\n\t\"kaa-Latn\": [\"kaa-Latn-UZ\"],\n\t\"kab\": [\"kab-DZ\"],\n\t\"kaj\": [\"kaj-NG\"],\n\t\"kam\": [\"kam-KE\"],\n\t\"kcg\": [\"kcg-NG\"],\n\t\"kde\": [\"kde-TZ\"],\n\t\"kea\": [\"kea-CV\"],\n\t\"kek\": [\"kek-GT\"],\n\t\"ken\": [\"ken-CM\"],\n\t\"kgp\": [\"kgp-BR\"],\n\t\"khq\": [\"khq-ML\"],\n\t\"ki\": [\"ki-KE\"],\n\t\"kk-Arab\": [\"kk-Arab-CN\"],\n\t\"kk-Cyrl\": [\"kk-Cyrl-KZ\"],\n\t\"kkj\": [\"kkj-CM\"],\n\t\"kl\": [\"kl-GL\"],\n\t\"kln\": [\"kln-KE\"],\n\t\"km\": [\"km-KH\"],\n\t\"kn\": [\"kn-IN\"],\n\t\"ko\": [\"ko-KR\"],\n\t\"kok-Deva\": [\"kok-Deva-IN\"],\n\t\"kok-Latn\": [\"kok-Latn-IN\"],\n\t\"kpe\": [\"kpe-LR\"],\n\t\"ks-Arab\": [\"ks-Arab-IN\"],\n\t\"ks-Deva\": [\"ks-Deva-IN\"],\n\t\"ksb\": [\"ksb-TZ\"],\n\t\"ksf\": [\"ksf-CM\"],\n\t\"ksh\": [\"ksh-DE\"],\n\t\"ku-Arab\": [\"ku-Arab-IQ\"],\n\t\"ku-Latn\": [\"ku-Latn-TR\"],\n\t\"kw\": [\"kw-GB\"],\n\t\"kxv-Deva\": [\"kxv-Deva-IN\"],\n\t\"kxv-Latn\": [\"kxv-Latn-IN\"],\n\t\"kxv-Orya\": [\"kxv-Orya-IN\"],\n\t\"kxv-Telu\": [\"kxv-Telu-IN\"],\n\t\"ky\": [\"ky-KG\"],\n\t\"la\": [\"la-VA\"],\n\t\"lag\": [\"lag-TZ\"],\n\t\"lb\": [\"lb-LU\"],\n\t\"lg\": [\"lg-UG\"],\n\t\"lij\": [\"lij-IT\"],\n\t\"lkt\": [\"lkt-US\"],\n\t\"lld\": [\"lld-IT\"],\n\t\"lmo\": [\"lmo-IT\"],\n\t\"ln\": [\"ln-CD\"],\n\t\"lo\": [\"lo-LA\"],\n\t\"lrc\": [\"lrc-IR\"],\n\t\"lt\": [\"lt-LT\"],\n\t\"ltg\": [\"ltg-LV\"],\n\t\"lu\": [\"lu-CD\"],\n\t\"luo\": [\"luo-KE\"],\n\t\"luy\": [\"luy-KE\"],\n\t\"lv\": [\"lv-LV\"],\n\t\"lzz\": [\"lzz-TR\"],\n\t\"mai\": [\"mai-IN\"],\n\t\"mas\": [\"mas-KE\"],\n\t\"mdf\": [\"mdf-RU\"],\n\t\"mer\": [\"mer-KE\"],\n\t\"mfe\": [\"mfe-MU\"],\n\t\"mg\": [\"mg-MG\"],\n\t\"mgh\": [\"mgh-MZ\"],\n\t\"mgo\": [\"mgo-CM\"],\n\t\"mhn\": [\"mhn-IT\"],\n\t\"mi\": [\"mi-NZ\"],\n\t\"mic\": [\"mic-CA\"],\n\t\"mk\": [\"mk-MK\"],\n\t\"ml\": [\"ml-IN\"],\n\t\"mn\": [\"mn-MN\"],\n\t\"mn-Mong\": [\"mn-Mong-CN\"],\n\t\"mni-Beng\": [\"mni-Beng-IN\"],\n\t\"mni-Mtei\": [\"mni-Mtei-IN\"],\n\t\"moh\": [\"moh-CA\"],\n\t\"mr\": [\"mr-IN\"],\n\t\"ms-Arab\": [\"ms-Arab-MY\"],\n\t\"ms\": [\"ms-MY\"],\n\t\"mt\": [\"mt-MT\"],\n\t\"mua\": [\"mua-CM\"],\n\t\"mus\": [\"mus-US\"],\n\t\"mww-Hmnp\": [\"mww-Hmnp-US\"],\n\t\"my\": [\"my-MM\"],\n\t\"myv\": [\"myv-RU\"],\n\t\"mzn\": [\"mzn-IR\"],\n\t\"naq\": [\"naq-NA\"],\n\t\"nb\": [\"nb-NO\"],\n\t\"nd\": [\"nd-ZW\"],\n\t\"nds\": [\"nds-DE\"],\n\t\"ne\": [\"ne-NP\"],\n\t\"nl\": [\"nl-NL\"],\n\t\"nmg\": [\"nmg-CM\"],\n\t\"nn\": [\"nn-NO\"],\n\t\"nnh\": [\"nnh-CM\"],\n\t\"nqo\": [\"nqo-GN\"],\n\t\"nr\": [\"nr-ZA\"],\n\t\"nso\": [\"nso-ZA\"],\n\t\"nus\": [\"nus-SS\"],\n\t\"nv\": [\"nv-US\"],\n\t\"ny\": [\"ny-MW\"],\n\t\"nyn\": [\"nyn-UG\"],\n\t\"oc\": [\"oc-FR\"],\n\t\"oka\": [\"oka-CA\"],\n\t\"om\": [\"om-ET\"],\n\t\"or\": [\"or-IN\"],\n\t\"os\": [\"os-GE\"],\n\t\"osa\": [\"osa-US\"],\n\t\"pa-Arab\": [\"pa-Arab-PK\"],\n\t\"pa-Guru\": [\"pa-Guru-IN\"],\n\t\"pap\": [\"pap-CW\"],\n\t\"pcm\": [\"pcm-NG\"],\n\t\"pi-Latn\": [\"pi-Latn-GB\"],\n\t\"pis\": [\"pis-SB\"],\n\t\"pl\": [\"pl-PL\"],\n\t\"pms\": [\"pms-IT\"],\n\t\"prg\": [\"prg-PL\"],\n\t\"ps\": [\"ps-AF\"],\n\t\"pt\": [\"pt-BR\"],\n\t\"qu\": [\"qu-PE\"],\n\t\"quc\": [\"quc-GT\"],\n\t\"raj\": [\"raj-IN\"],\n\t\"rhg-Rohg\": [\"rhg-Rohg-MM\"],\n\t\"rif\": [\"rif-MA\"],\n\t\"rm\": [\"rm-CH\"],\n\t\"rn\": [\"rn-BI\"],\n\t\"ro\": [\"ro-RO\"],\n\t\"rof\": [\"rof-TZ\"],\n\t\"ru\": [\"ru-RU\"],\n\t\"rw\": [\"rw-RW\"],\n\t\"rwk\": [\"rwk-TZ\"],\n\t\"sa\": [\"sa-IN\"],\n\t\"sah\": [\"sah-RU\"],\n\t\"saq\": [\"saq-KE\"],\n\t\"sat-Deva\": [\"sat-Deva-IN\"],\n\t\"sat-Olck\": [\"sat-Olck-IN\"],\n\t\"sbp\": [\"sbp-TZ\"],\n\t\"sc\": [\"sc-IT\"],\n\t\"scn\": [\"scn-IT\"],\n\t\"sd-Arab\": [\"sd-Arab-PK\"],\n\t\"sd-Deva\": [\"sd-Deva-IN\"],\n\t\"sdh\": [\"sdh-IR\"],\n\t\"se\": [\"se-NO\"],\n\t\"seh\": [\"seh-MZ\"],\n\t\"ses\": [\"ses-ML\"],\n\t\"sg\": [\"sg-CF\"],\n\t\"sgs\": [\"sgs-LT\"],\n\t\"shi-Latn\": [\"shi-Latn-MA\"],\n\t\"shi-Tfng\": [\"shi-Tfng-MA\"],\n\t\"shn\": [\"shn-MM\"],\n\t\"si\": [\"si-LK\"],\n\t\"sid\": [\"sid-ET\"],\n\t\"sk\": [\"sk-SK\"],\n\t\"skr\": [\"skr-PK\"],\n\t\"sl\": [\"sl-SI\"],\n\t\"sma\": [\"sma-SE\"],\n\t\"smj\": [\"smj-SE\"],\n\t\"smn\": [\"smn-FI\"],\n\t\"sms\": [\"sms-FI\"],\n\t\"sn\": [\"sn-ZW\"],\n\t\"so\": [\"so-SO\"],\n\t\"sq\": [\"sq-AL\"],\n\t\"sr-Cyrl\": [\"sr-Cyrl-RS\"],\n\t\"sr-Latn\": [\"sr-Latn-RS\"],\n\t\"ss\": [\"ss-ZA\"],\n\t\"ssy\": [\"ssy-ER\"],\n\t\"st\": [\"st-ZA\"],\n\t\"su-Latn\": [\"su-Latn-ID\"],\n\t\"suz-Deva\": [\"suz-Deva-NP\"],\n\t\"suz-Sunu\": [\"suz-Sunu-NP\"],\n\t\"sv\": [\"sv-SE\"],\n\t\"sw\": [\"sw-TZ\"],\n\t\"syr\": [\"syr-IQ\"],\n\t\"szl\": [\"szl-PL\"],\n\t\"ta\": [\"ta-IN\"],\n\t\"te\": [\"te-IN\"],\n\t\"teo\": [\"teo-UG\"],\n\t\"tg\": [\"tg-TJ\"],\n\t\"th\": [\"th-TH\"],\n\t\"ti\": [\"ti-ET\"],\n\t\"tig\": [\"tig-ER\"],\n\t\"tk\": [\"tk-TM\"],\n\t\"tn\": [\"tn-ZA\"],\n\t\"to\": [\"to-TO\"],\n\t\"tok\": [\"tok-001\"],\n\t\"tpi\": [\"tpi-PG\"],\n\t\"tr\": [\"tr-TR\"],\n\t\"trv\": [\"trv-TW\"],\n\t\"trw\": [\"trw-PK\"],\n\t\"ts\": [\"ts-ZA\"],\n\t\"tt\": [\"tt-RU\"],\n\t\"twq\": [\"twq-NE\"],\n\t\"tyv\": [\"tyv-RU\"],\n\t\"tzm\": [\"tzm-MA\"],\n\t\"ug\": [\"ug-CN\"],\n\t\"uk\": [\"uk-UA\"],\n\t\"ur\": [\"ur-PK\"],\n\t\"uz-Arab\": [\"uz-Arab-AF\"],\n\t\"uz-Cyrl\": [\"uz-Cyrl-UZ\"],\n\t\"uz-Latn\": [\"uz-Latn-UZ\"],\n\t\"vai-Latn\": [\"vai-Latn-LR\"],\n\t\"vai-Vaii\": [\"vai-Vaii-LR\"],\n\t\"ve\": [\"ve-ZA\"],\n\t\"vec\": [\"vec-IT\"],\n\t\"vi\": [\"vi-VN\"],\n\t\"vmw\": [\"vmw-MZ\"],\n\t\"vo\": [\"vo-001\"],\n\t\"vun\": [\"vun-TZ\"],\n\t\"wa\": [\"wa-BE\"],\n\t\"wae\": [\"wae-CH\"],\n\t\"wal\": [\"wal-ET\"],\n\t\"wbp\": [\"wbp-AU\"],\n\t\"wo\": [\"wo-SN\"],\n\t\"xh\": [\"xh-ZA\"],\n\t\"xnr\": [\"xnr-IN\"],\n\t\"xog\": [\"xog-UG\"],\n\t\"yav\": [\"yav-CM\"],\n\t\"yi\": [\"yi-UA\"],\n\t\"yo\": [\"yo-NG\"],\n\t\"yrl\": [\"yrl-BR\"],\n\t\"yue-Hans\": [\"yue-Hans-CN\"],\n\t\"yue-Hant\": [\"yue-Hant-HK\"],\n\t\"za\": [\"za-CN\"],\n\t\"zgh\": [\"zgh-MA\"],\n\t\"zh-Hans\": [\"zh-Hans-CN\"],\n\t\"zh-Hant\": [\"zh-Hant-TW\"],\n\t\"zh-Latn\": [\"zh-Latn-CN\"],\n\t\"zu\": [\"zu-ZA\"]\n};\nexport const availableLocales = [\n\t\"aa\",\n\t\"aa-DJ\",\n\t\"aa-ER\",\n\t\"aa-ET\",\n\t\"ab\",\n\t\"ab-GE\",\n\t\"af\",\n\t\"af-NA\",\n\t\"af-ZA\",\n\t\"agq\",\n\t\"agq-CM\",\n\t\"ak\",\n\t\"ak-GH\",\n\t\"am\",\n\t\"am-ET\",\n\t\"an\",\n\t\"an-ES\",\n\t\"ann\",\n\t\"ann-NG\",\n\t\"apc\",\n\t\"apc-SY\",\n\t\"ar\",\n\t\"ar-001\",\n\t\"ar-AE\",\n\t\"ar-BH\",\n\t\"ar-DJ\",\n\t\"ar-DZ\",\n\t\"ar-EG\",\n\t\"ar-EH\",\n\t\"ar-ER\",\n\t\"ar-IL\",\n\t\"ar-IQ\",\n\t\"ar-JO\",\n\t\"ar-KM\",\n\t\"ar-KW\",\n\t\"ar-LB\",\n\t\"ar-LY\",\n\t\"ar-MA\",\n\t\"ar-MR\",\n\t\"ar-OM\",\n\t\"ar-PS\",\n\t\"ar-QA\",\n\t\"ar-SA\",\n\t\"ar-SD\",\n\t\"ar-SO\",\n\t\"ar-SS\",\n\t\"ar-SY\",\n\t\"ar-TD\",\n\t\"ar-TN\",\n\t\"ar-YE\",\n\t\"arn\",\n\t\"arn-CL\",\n\t\"as\",\n\t\"as-IN\",\n\t\"asa\",\n\t\"asa-TZ\",\n\t\"ast\",\n\t\"ast-ES\",\n\t\"az\",\n\t\"az-AZ\",\n\t\"az-Arab\",\n\t\"az-Arab-IQ\",\n\t\"az-Arab-IR\",\n\t\"az-Arab-TR\",\n\t\"az-Cyrl\",\n\t\"az-Cyrl-AZ\",\n\t\"az-IQ\",\n\t\"az-IR\",\n\t\"az-Latn\",\n\t\"az-Latn-AZ\",\n\t\"az-TR\",\n\t\"ba\",\n\t\"ba-RU\",\n\t\"bal\",\n\t\"bal-Arab\",\n\t\"bal-Arab-PK\",\n\t\"bal-Latn\",\n\t\"bal-Latn-PK\",\n\t\"bal-PK\",\n\t\"bas\",\n\t\"bas-CM\",\n\t\"be\",\n\t\"be-BY\",\n\t\"be-tarask\",\n\t\"bem\",\n\t\"bem-ZM\",\n\t\"bew\",\n\t\"bew-ID\",\n\t\"bez\",\n\t\"bez-TZ\",\n\t\"bg\",\n\t\"bg-BG\",\n\t\"bgc\",\n\t\"bgc-IN\",\n\t\"bgn\",\n\t\"bgn-AE\",\n\t\"bgn-AF\",\n\t\"bgn-IR\",\n\t\"bgn-OM\",\n\t\"bgn-PK\",\n\t\"bho\",\n\t\"bho-IN\",\n\t\"blo\",\n\t\"blo-BJ\",\n\t\"blt\",\n\t\"blt-VN\",\n\t\"bm\",\n\t\"bm-ML\",\n\t\"bm-Nkoo\",\n\t\"bm-Nkoo-ML\",\n\t\"bn\",\n\t\"bn-BD\",\n\t\"bn-IN\",\n\t\"bo\",\n\t\"bo-CN\",\n\t\"bo-IN\",\n\t\"bqi\",\n\t\"bqi-IR\",\n\t\"br\",\n\t\"br-FR\",\n\t\"brx\",\n\t\"brx-IN\",\n\t\"bs\",\n\t\"bs-BA\",\n\t\"bs-Cyrl\",\n\t\"bs-Cyrl-BA\",\n\t\"bs-Latn\",\n\t\"bs-Latn-BA\",\n\t\"bss\",\n\t\"bss-CM\",\n\t\"bua\",\n\t\"bua-RU\",\n\t\"byn\",\n\t\"byn-ER\",\n\t\"ca\",\n\t\"ca-AD\",\n\t\"ca-ES\",\n\t\"ca-ES-valencia\",\n\t\"ca-FR\",\n\t\"ca-IT\",\n\t\"cad\",\n\t\"cad-US\",\n\t\"cch\",\n\t\"cch-NG\",\n\t\"ccp\",\n\t\"ccp-BD\",\n\t\"ccp-IN\",\n\t\"ce\",\n\t\"ce-RU\",\n\t\"ceb\",\n\t\"ceb-PH\",\n\t\"cgg\",\n\t\"cgg-UG\",\n\t\"cho\",\n\t\"cho-US\",\n\t\"chr\",\n\t\"chr-US\",\n\t\"cic\",\n\t\"cic-US\",\n\t\"ckb\",\n\t\"ckb-IQ\",\n\t\"ckb-IR\",\n\t\"co\",\n\t\"co-FR\",\n\t\"cop\",\n\t\"cop-EG\",\n\t\"cs\",\n\t\"cs-CZ\",\n\t\"csw\",\n\t\"csw-CA\",\n\t\"cu\",\n\t\"cu-RU\",\n\t\"cv\",\n\t\"cv-RU\",\n\t\"cy\",\n\t\"cy-GB\",\n\t\"da\",\n\t\"da-DK\",\n\t\"da-GL\",\n\t\"dav\",\n\t\"dav-KE\",\n\t\"de\",\n\t\"de-AT\",\n\t\"de-BE\",\n\t\"de-CH\",\n\t\"de-DE\",\n\t\"de-IT\",\n\t\"de-LI\",\n\t\"de-LU\",\n\t\"dje\",\n\t\"dje-NE\",\n\t\"doi\",\n\t\"doi-IN\",\n\t\"dsb\",\n\t\"dsb-DE\",\n\t\"dua\",\n\t\"dua-CM\",\n\t\"dv\",\n\t\"dv-MV\",\n\t\"dyo\",\n\t\"dyo-SN\",\n\t\"dz\",\n\t\"dz-BT\",\n\t\"ebu\",\n\t\"ebu-KE\",\n\t\"ee\",\n\t\"ee-GH\",\n\t\"ee-TG\",\n\t\"el\",\n\t\"el-CY\",\n\t\"el-GR\",\n\t\"el-polyton\",\n\t\"en\",\n\t\"en-001\",\n\t\"en-150\",\n\t\"en-AE\",\n\t\"en-AG\",\n\t\"en-AI\",\n\t\"en-AS\",\n\t\"en-AT\",\n\t\"en-AU\",\n\t\"en-BB\",\n\t\"en-BE\",\n\t\"en-BI\",\n\t\"en-BM\",\n\t\"en-BS\",\n\t\"en-BW\",\n\t\"en-BZ\",\n\t\"en-CA\",\n\t\"en-CC\",\n\t\"en-CH\",\n\t\"en-CK\",\n\t\"en-CM\",\n\t\"en-CX\",\n\t\"en-CY\",\n\t\"en-CZ\",\n\t\"en-DE\",\n\t\"en-DG\",\n\t\"en-DK\",\n\t\"en-DM\",\n\t\"en-Dsrt\",\n\t\"en-Dsrt-US\",\n\t\"en-EE\",\n\t\"en-ER\",\n\t\"en-ES\",\n\t\"en-FI\",\n\t\"en-FJ\",\n\t\"en-FK\",\n\t\"en-FM\",\n\t\"en-FR\",\n\t\"en-GB\",\n\t\"en-GD\",\n\t\"en-GE\",\n\t\"en-GG\",\n\t\"en-GH\",\n\t\"en-GI\",\n\t\"en-GM\",\n\t\"en-GS\",\n\t\"en-GU\",\n\t\"en-GY\",\n\t\"en-HK\",\n\t\"en-HU\",\n\t\"en-ID\",\n\t\"en-IE\",\n\t\"en-IL\",\n\t\"en-IM\",\n\t\"en-IN\",\n\t\"en-IO\",\n\t\"en-IT\",\n\t\"en-JE\",\n\t\"en-JM\",\n\t\"en-JP\",\n\t\"en-KE\",\n\t\"en-KI\",\n\t\"en-KN\",\n\t\"en-KY\",\n\t\"en-LC\",\n\t\"en-LR\",\n\t\"en-LS\",\n\t\"en-LT\",\n\t\"en-LV\",\n\t\"en-MG\",\n\t\"en-MH\",\n\t\"en-MO\",\n\t\"en-MP\",\n\t\"en-MS\",\n\t\"en-MT\",\n\t\"en-MU\",\n\t\"en-MV\",\n\t\"en-MW\",\n\t\"en-MY\",\n\t\"en-NA\",\n\t\"en-NF\",\n\t\"en-NG\",\n\t\"en-NL\",\n\t\"en-NO\",\n\t\"en-NR\",\n\t\"en-NU\",\n\t\"en-NZ\",\n\t\"en-PG\",\n\t\"en-PH\",\n\t\"en-PK\",\n\t\"en-PL\",\n\t\"en-PN\",\n\t\"en-PR\",\n\t\"en-PT\",\n\t\"en-PW\",\n\t\"en-RO\",\n\t\"en-RW\",\n\t\"en-SB\",\n\t\"en-SC\",\n\t\"en-SD\",\n\t\"en-SE\",\n\t\"en-SG\",\n\t\"en-SH\",\n\t\"en-SI\",\n\t\"en-SK\",\n\t\"en-SL\",\n\t\"en-SS\",\n\t\"en-SX\",\n\t\"en-SZ\",\n\t\"en-Shaw\",\n\t\"en-Shaw-GB\",\n\t\"en-TC\",\n\t\"en-TK\",\n\t\"en-TO\",\n\t\"en-TT\",\n\t\"en-TV\",\n\t\"en-TZ\",\n\t\"en-UA\",\n\t\"en-UG\",\n\t\"en-UM\",\n\t\"en-US\",\n\t\"en-VC\",\n\t\"en-VG\",\n\t\"en-VI\",\n\t\"en-VU\",\n\t\"en-WS\",\n\t\"en-ZA\",\n\t\"en-ZM\",\n\t\"en-ZW\",\n\t\"eo\",\n\t\"eo-001\",\n\t\"es\",\n\t\"es-419\",\n\t\"es-AR\",\n\t\"es-BO\",\n\t\"es-BR\",\n\t\"es-BZ\",\n\t\"es-CL\",\n\t\"es-CO\",\n\t\"es-CR\",\n\t\"es-CU\",\n\t\"es-DO\",\n\t\"es-EA\",\n\t\"es-EC\",\n\t\"es-ES\",\n\t\"es-GQ\",\n\t\"es-GT\",\n\t\"es-HN\",\n\t\"es-IC\",\n\t\"es-MX\",\n\t\"es-NI\",\n\t\"es-PA\",\n\t\"es-PE\",\n\t\"es-PH\",\n\t\"es-PR\",\n\t\"es-PY\",\n\t\"es-SV\",\n\t\"es-US\",\n\t\"es-UY\",\n\t\"es-VE\",\n\t\"et\",\n\t\"et-EE\",\n\t\"eu\",\n\t\"eu-ES\",\n\t\"ewo\",\n\t\"ewo-CM\",\n\t\"fa\",\n\t\"fa-AF\",\n\t\"fa-IR\",\n\t\"ff\",\n\t\"ff-Adlm\",\n\t\"ff-Adlm-BF\",\n\t\"ff-Adlm-CM\",\n\t\"ff-Adlm-GH\",\n\t\"ff-Adlm-GM\",\n\t\"ff-Adlm-GN\",\n\t\"ff-Adlm-GW\",\n\t\"ff-Adlm-LR\",\n\t\"ff-Adlm-MR\",\n\t\"ff-Adlm-NE\",\n\t\"ff-Adlm-NG\",\n\t\"ff-Adlm-SL\",\n\t\"ff-Adlm-SN\",\n\t\"ff-BF\",\n\t\"ff-CM\",\n\t\"ff-GH\",\n\t\"ff-GM\",\n\t\"ff-GN\",\n\t\"ff-GW\",\n\t\"ff-LR\",\n\t\"ff-Latn\",\n\t\"ff-Latn-BF\",\n\t\"ff-Latn-CM\",\n\t\"ff-Latn-GH\",\n\t\"ff-Latn-GM\",\n\t\"ff-Latn-GN\",\n\t\"ff-Latn-GW\",\n\t\"ff-Latn-LR\",\n\t\"ff-Latn-MR\",\n\t\"ff-Latn-NE\",\n\t\"ff-Latn-NG\",\n\t\"ff-Latn-SL\",\n\t\"ff-Latn-SN\",\n\t\"ff-MR\",\n\t\"ff-NE\",\n\t\"ff-NG\",\n\t\"ff-SL\",\n\t\"ff-SN\",\n\t\"fi\",\n\t\"fi-FI\",\n\t\"fil\",\n\t\"fil-PH\",\n\t\"fo\",\n\t\"fo-DK\",\n\t\"fo-FO\",\n\t\"fr\",\n\t\"fr-BE\",\n\t\"fr-BF\",\n\t\"fr-BI\",\n\t\"fr-BJ\",\n\t\"fr-BL\",\n\t\"fr-CA\",\n\t\"fr-CD\",\n\t\"fr-CF\",\n\t\"fr-CG\",\n\t\"fr-CH\",\n\t\"fr-CI\",\n\t\"fr-CM\",\n\t\"fr-DJ\",\n\t\"fr-DZ\",\n\t\"fr-FR\",\n\t\"fr-GA\",\n\t\"fr-GF\",\n\t\"fr-GN\",\n\t\"fr-GP\",\n\t\"fr-GQ\",\n\t\"fr-HT\",\n\t\"fr-KM\",\n\t\"fr-LU\",\n\t\"fr-MA\",\n\t\"fr-MC\",\n\t\"fr-MF\",\n\t\"fr-MG\",\n\t\"fr-ML\",\n\t\"fr-MQ\",\n\t\"fr-MR\",\n\t\"fr-MU\",\n\t\"fr-NC\",\n\t\"fr-NE\",\n\t\"fr-PF\",\n\t\"fr-PM\",\n\t\"fr-RE\",\n\t\"fr-RW\",\n\t\"fr-SC\",\n\t\"fr-SN\",\n\t\"fr-SY\",\n\t\"fr-TD\",\n\t\"fr-TG\",\n\t\"fr-TN\",\n\t\"fr-VU\",\n\t\"fr-WF\",\n\t\"fr-YT\",\n\t\"frr\",\n\t\"frr-DE\",\n\t\"fur\",\n\t\"fur-IT\",\n\t\"fy\",\n\t\"fy-NL\",\n\t\"ga\",\n\t\"ga-GB\",\n\t\"ga-IE\",\n\t\"gaa\",\n\t\"gaa-GH\",\n\t\"gd\",\n\t\"gd-GB\",\n\t\"gez\",\n\t\"gez-ER\",\n\t\"gez-ET\",\n\t\"gl\",\n\t\"gl-ES\",\n\t\"gn\",\n\t\"gn-PY\",\n\t\"gsw\",\n\t\"gsw-CH\",\n\t\"gsw-FR\",\n\t\"gsw-LI\",\n\t\"gu\",\n\t\"gu-IN\",\n\t\"guz\",\n\t\"guz-KE\",\n\t\"gv\",\n\t\"gv-IM\",\n\t\"ha\",\n\t\"ha-Arab\",\n\t\"ha-Arab-NG\",\n\t\"ha-Arab-SD\",\n\t\"ha-GH\",\n\t\"ha-NE\",\n\t\"ha-NG\",\n\t\"ha-SD\",\n\t\"haw\",\n\t\"haw-US\",\n\t\"he\",\n\t\"he-IL\",\n\t\"hi\",\n\t\"hi-IN\",\n\t\"hi-Latn\",\n\t\"hi-Latn-IN\",\n\t\"hnj\",\n\t\"hnj-Hmnp\",\n\t\"hnj-Hmnp-US\",\n\t\"hnj-US\",\n\t\"hr\",\n\t\"hr-BA\",\n\t\"hr-HR\",\n\t\"hsb\",\n\t\"hsb-DE\",\n\t\"ht\",\n\t\"ht-HT\",\n\t\"hu\",\n\t\"hu-HU\",\n\t\"hy\",\n\t\"hy-AM\",\n\t\"ia\",\n\t\"ia-001\",\n\t\"id\",\n\t\"id-ID\",\n\t\"ie\",\n\t\"ie-EE\",\n\t\"ig\",\n\t\"ig-NG\",\n\t\"ii\",\n\t\"ii-CN\",\n\t\"io\",\n\t\"io-001\",\n\t\"is\",\n\t\"is-IS\",\n\t\"it\",\n\t\"it-CH\",\n\t\"it-IT\",\n\t\"it-SM\",\n\t\"it-VA\",\n\t\"iu\",\n\t\"iu-CA\",\n\t\"iu-Latn\",\n\t\"iu-Latn-CA\",\n\t\"ja\",\n\t\"ja-JP\",\n\t\"jbo\",\n\t\"jbo-001\",\n\t\"jgo\",\n\t\"jgo-CM\",\n\t\"jmc\",\n\t\"jmc-TZ\",\n\t\"jv\",\n\t\"jv-ID\",\n\t\"ka\",\n\t\"ka-GE\",\n\t\"kaa\",\n\t\"kaa-Cyrl\",\n\t\"kaa-Cyrl-UZ\",\n\t\"kaa-Latn\",\n\t\"kaa-Latn-UZ\",\n\t\"kaa-UZ\",\n\t\"kab\",\n\t\"kab-DZ\",\n\t\"kaj\",\n\t\"kaj-NG\",\n\t\"kam\",\n\t\"kam-KE\",\n\t\"kcg\",\n\t\"kcg-NG\",\n\t\"kde\",\n\t\"kde-TZ\",\n\t\"kea\",\n\t\"kea-CV\",\n\t\"kek\",\n\t\"kek-GT\",\n\t\"ken\",\n\t\"ken-CM\",\n\t\"kgp\",\n\t\"kgp-BR\",\n\t\"khq\",\n\t\"khq-ML\",\n\t\"ki\",\n\t\"ki-KE\",\n\t\"kk\",\n\t\"kk-Arab\",\n\t\"kk-Arab-CN\",\n\t\"kk-CN\",\n\t\"kk-Cyrl\",\n\t\"kk-Cyrl-KZ\",\n\t\"kk-KZ\",\n\t\"kkj\",\n\t\"kkj-CM\",\n\t\"kl\",\n\t\"kl-GL\",\n\t\"kln\",\n\t\"kln-KE\",\n\t\"km\",\n\t\"km-KH\",\n\t\"kn\",\n\t\"kn-IN\",\n\t\"ko\",\n\t\"ko-CN\",\n\t\"ko-KP\",\n\t\"ko-KR\",\n\t\"kok\",\n\t\"kok-Deva\",\n\t\"kok-Deva-IN\",\n\t\"kok-IN\",\n\t\"kok-Latn\",\n\t\"kok-Latn-IN\",\n\t\"kpe\",\n\t\"kpe-GN\",\n\t\"kpe-LR\",\n\t\"ks\",\n\t\"ks-Arab\",\n\t\"ks-Arab-IN\",\n\t\"ks-Deva\",\n\t\"ks-Deva-IN\",\n\t\"ks-IN\",\n\t\"ksb\",\n\t\"ksb-TZ\",\n\t\"ksf\",\n\t\"ksf-CM\",\n\t\"ksh\",\n\t\"ksh-DE\",\n\t\"ku\",\n\t\"ku-Arab\",\n\t\"ku-Arab-IQ\",\n\t\"ku-Arab-IR\",\n\t\"ku-IQ\",\n\t\"ku-IR\",\n\t\"ku-Latn\",\n\t\"ku-Latn-IQ\",\n\t\"ku-Latn-SY\",\n\t\"ku-Latn-TR\",\n\t\"ku-SY\",\n\t\"ku-TR\",\n\t\"kw\",\n\t\"kw-GB\",\n\t\"kxv\",\n\t\"kxv-Deva\",\n\t\"kxv-Deva-IN\",\n\t\"kxv-IN\",\n\t\"kxv-Latn\",\n\t\"kxv-Latn-IN\",\n\t\"kxv-Orya\",\n\t\"kxv-Orya-IN\",\n\t\"kxv-Telu\",\n\t\"kxv-Telu-IN\",\n\t\"ky\",\n\t\"ky-KG\",\n\t\"la\",\n\t\"la-VA\",\n\t\"lag\",\n\t\"lag-TZ\",\n\t\"lb\",\n\t\"lb-LU\",\n\t\"lg\",\n\t\"lg-UG\",\n\t\"lij\",\n\t\"lij-IT\",\n\t\"lkt\",\n\t\"lkt-US\",\n\t\"lld\",\n\t\"lld-IT\",\n\t\"lmo\",\n\t\"lmo-IT\",\n\t\"ln\",\n\t\"ln-AO\",\n\t\"ln-CD\",\n\t\"ln-CF\",\n\t\"ln-CG\",\n\t\"lo\",\n\t\"lo-LA\",\n\t\"lrc\",\n\t\"lrc-IQ\",\n\t\"lrc-IR\",\n\t\"lt\",\n\t\"lt-LT\",\n\t\"ltg\",\n\t\"ltg-LV\",\n\t\"lu\",\n\t\"lu-CD\",\n\t\"luo\",\n\t\"luo-KE\",\n\t\"luy\",\n\t\"luy-KE\",\n\t\"lv\",\n\t\"lv-LV\",\n\t\"lzz\",\n\t\"lzz-TR\",\n\t\"mai\",\n\t\"mai-IN\",\n\t\"mas\",\n\t\"mas-KE\",\n\t\"mas-TZ\",\n\t\"mdf\",\n\t\"mdf-RU\",\n\t\"mer\",\n\t\"mer-KE\",\n\t\"mfe\",\n\t\"mfe-MU\",\n\t\"mg\",\n\t\"mg-MG\",\n\t\"mgh\",\n\t\"mgh-MZ\",\n\t\"mgo\",\n\t\"mgo-CM\",\n\t\"mhn\",\n\t\"mhn-IT\",\n\t\"mi\",\n\t\"mi-NZ\",\n\t\"mic\",\n\t\"mic-CA\",\n\t\"mk\",\n\t\"mk-MK\",\n\t\"ml\",\n\t\"ml-IN\",\n\t\"mn\",\n\t\"mn-CN\",\n\t\"mn-MN\",\n\t\"mn-Mong\",\n\t\"mn-Mong-CN\",\n\t\"mn-Mong-MN\",\n\t\"mni\",\n\t\"mni-Beng\",\n\t\"mni-Beng-IN\",\n\t\"mni-IN\",\n\t\"mni-Mtei\",\n\t\"mni-Mtei-IN\",\n\t\"moh\",\n\t\"moh-CA\",\n\t\"mr\",\n\t\"mr-IN\",\n\t\"ms\",\n\t\"ms-Arab\",\n\t\"ms-Arab-BN\",\n\t\"ms-Arab-MY\",\n\t\"ms-BN\",\n\t\"ms-ID\",\n\t\"ms-MY\",\n\t\"ms-SG\",\n\t\"mt\",\n\t\"mt-MT\",\n\t\"mua\",\n\t\"mua-CM\",\n\t\"mus\",\n\t\"mus-US\",\n\t\"mww\",\n\t\"mww-Hmnp\",\n\t\"mww-Hmnp-US\",\n\t\"mww-US\",\n\t\"my\",\n\t\"my-MM\",\n\t\"myv\",\n\t\"myv-RU\",\n\t\"mzn\",\n\t\"mzn-IR\",\n\t\"naq\",\n\t\"naq-NA\",\n\t\"nb\",\n\t\"nb-NO\",\n\t\"nb-SJ\",\n\t\"nd\",\n\t\"nd-ZW\",\n\t\"nds\",\n\t\"nds-DE\",\n\t\"nds-NL\",\n\t\"ne\",\n\t\"ne-IN\",\n\t\"ne-NP\",\n\t\"nl\",\n\t\"nl-AW\",\n\t\"nl-BE\",\n\t\"nl-BQ\",\n\t\"nl-CW\",\n\t\"nl-NL\",\n\t\"nl-SR\",\n\t\"nl-SX\",\n\t\"nmg\",\n\t\"nmg-CM\",\n\t\"nn\",\n\t\"nn-NO\",\n\t\"nnh\",\n\t\"nnh-CM\",\n\t\"no\",\n\t\"nqo\",\n\t\"nqo-GN\",\n\t\"nr\",\n\t\"nr-ZA\",\n\t\"nso\",\n\t\"nso-ZA\",\n\t\"nus\",\n\t\"nus-SS\",\n\t\"nv\",\n\t\"nv-US\",\n\t\"ny\",\n\t\"ny-MW\",\n\t\"nyn\",\n\t\"nyn-UG\",\n\t\"oc\",\n\t\"oc-ES\",\n\t\"oc-FR\",\n\t\"oka\",\n\t\"oka-CA\",\n\t\"oka-US\",\n\t\"om\",\n\t\"om-ET\",\n\t\"om-KE\",\n\t\"or\",\n\t\"or-IN\",\n\t\"os\",\n\t\"os-GE\",\n\t\"os-RU\",\n\t\"osa\",\n\t\"osa-US\",\n\t\"pa\",\n\t\"pa-Arab\",\n\t\"pa-Arab-PK\",\n\t\"pa-Guru\",\n\t\"pa-Guru-IN\",\n\t\"pa-IN\",\n\t\"pa-PK\",\n\t\"pap\",\n\t\"pap-AW\",\n\t\"pap-CW\",\n\t\"pcm\",\n\t\"pcm-NG\",\n\t\"pi\",\n\t\"pi-GB\",\n\t\"pi-Latn\",\n\t\"pi-Latn-GB\",\n\t\"pis\",\n\t\"pis-SB\",\n\t\"pl\",\n\t\"pl-PL\",\n\t\"pms\",\n\t\"pms-IT\",\n\t\"prg\",\n\t\"prg-PL\",\n\t\"ps\",\n\t\"ps-AF\",\n\t\"ps-PK\",\n\t\"pt\",\n\t\"pt-AO\",\n\t\"pt-BR\",\n\t\"pt-CH\",\n\t\"pt-CV\",\n\t\"pt-GQ\",\n\t\"pt-GW\",\n\t\"pt-LU\",\n\t\"pt-MO\",\n\t\"pt-MZ\",\n\t\"pt-PT\",\n\t\"pt-ST\",\n\t\"pt-TL\",\n\t\"qu\",\n\t\"qu-BO\",\n\t\"qu-EC\",\n\t\"qu-PE\",\n\t\"quc\",\n\t\"quc-GT\",\n\t\"raj\",\n\t\"raj-IN\",\n\t\"rhg\",\n\t\"rhg-BD\",\n\t\"rhg-MM\",\n\t\"rhg-Rohg\",\n\t\"rhg-Rohg-BD\",\n\t\"rhg-Rohg-MM\",\n\t\"rif\",\n\t\"rif-MA\",\n\t\"rm\",\n\t\"rm-CH\",\n\t\"rn\",\n\t\"rn-BI\",\n\t\"ro\",\n\t\"ro-MD\",\n\t\"ro-RO\",\n\t\"rof\",\n\t\"rof-TZ\",\n\t\"ru\",\n\t\"ru-BY\",\n\t\"ru-KG\",\n\t\"ru-KZ\",\n\t\"ru-MD\",\n\t\"ru-RU\",\n\t\"ru-UA\",\n\t\"rw\",\n\t\"rw-RW\",\n\t\"rwk\",\n\t\"rwk-TZ\",\n\t\"sa\",\n\t\"sa-IN\",\n\t\"sah\",\n\t\"sah-RU\",\n\t\"saq\",\n\t\"saq-KE\",\n\t\"sat\",\n\t\"sat-Deva\",\n\t\"sat-Deva-IN\",\n\t\"sat-IN\",\n\t\"sat-Olck\",\n\t\"sat-Olck-IN\",\n\t\"sbp\",\n\t\"sbp-TZ\",\n\t\"sc\",\n\t\"sc-IT\",\n\t\"scn\",\n\t\"scn-IT\",\n\t\"sd\",\n\t\"sd-Arab\",\n\t\"sd-Arab-PK\",\n\t\"sd-Deva\",\n\t\"sd-Deva-IN\",\n\t\"sd-IN\",\n\t\"sd-PK\",\n\t\"sdh\",\n\t\"sdh-IQ\",\n\t\"sdh-IR\",\n\t\"se\",\n\t\"se-FI\",\n\t\"se-NO\",\n\t\"se-SE\",\n\t\"seh\",\n\t\"seh-MZ\",\n\t\"ses\",\n\t\"ses-ML\",\n\t\"sg\",\n\t\"sg-CF\",\n\t\"sgs\",\n\t\"sgs-LT\",\n\t\"shi\",\n\t\"shi-Latn\",\n\t\"shi-Latn-MA\",\n\t\"shi-MA\",\n\t\"shi-Tfng\",\n\t\"shi-Tfng-MA\",\n\t\"shn\",\n\t\"shn-MM\",\n\t\"shn-TH\",\n\t\"si\",\n\t\"si-LK\",\n\t\"sid\",\n\t\"sid-ET\",\n\t\"sk\",\n\t\"sk-SK\",\n\t\"skr\",\n\t\"skr-PK\",\n\t\"sl\",\n\t\"sl-SI\",\n\t\"sma\",\n\t\"sma-NO\",\n\t\"sma-SE\",\n\t\"smj\",\n\t\"smj-NO\",\n\t\"smj-SE\",\n\t\"smn\",\n\t\"smn-FI\",\n\t\"sms\",\n\t\"sms-FI\",\n\t\"sn\",\n\t\"sn-ZW\",\n\t\"so\",\n\t\"so-DJ\",\n\t\"so-ET\",\n\t\"so-KE\",\n\t\"so-SO\",\n\t\"sq\",\n\t\"sq-AL\",\n\t\"sq-MK\",\n\t\"sq-XK\",\n\t\"sr\",\n\t\"sr-BA\",\n\t\"sr-Cyrl\",\n\t\"sr-Cyrl-BA\",\n\t\"sr-Cyrl-ME\",\n\t\"sr-Cyrl-RS\",\n\t\"sr-Cyrl-XK\",\n\t\"sr-Latn\",\n\t\"sr-Latn-BA\",\n\t\"sr-Latn-ME\",\n\t\"sr-Latn-RS\",\n\t\"sr-Latn-XK\",\n\t\"sr-ME\",\n\t\"sr-RS\",\n\t\"sr-XK\",\n\t\"ss\",\n\t\"ss-SZ\",\n\t\"ss-ZA\",\n\t\"ssy\",\n\t\"ssy-ER\",\n\t\"st\",\n\t\"st-LS\",\n\t\"st-ZA\",\n\t\"su\",\n\t\"su-ID\",\n\t\"su-Latn\",\n\t\"su-Latn-ID\",\n\t\"suz\",\n\t\"suz-Deva\",\n\t\"suz-Deva-NP\",\n\t\"suz-NP\",\n\t\"suz-Sunu\",\n\t\"suz-Sunu-NP\",\n\t\"sv\",\n\t\"sv-AX\",\n\t\"sv-FI\",\n\t\"sv-SE\",\n\t\"sw\",\n\t\"sw-CD\",\n\t\"sw-KE\",\n\t\"sw-TZ\",\n\t\"sw-UG\",\n\t\"syr\",\n\t\"syr-IQ\",\n\t\"syr-SY\",\n\t\"szl\",\n\t\"szl-PL\",\n\t\"ta\",\n\t\"ta-IN\",\n\t\"ta-LK\",\n\t\"ta-MY\",\n\t\"ta-SG\",\n\t\"te\",\n\t\"te-IN\",\n\t\"teo\",\n\t\"teo-KE\",\n\t\"teo-UG\",\n\t\"tg\",\n\t\"tg-TJ\",\n\t\"th\",\n\t\"th-TH\",\n\t\"ti\",\n\t\"ti-ER\",\n\t\"ti-ET\",\n\t\"tig\",\n\t\"tig-ER\",\n\t\"tk\",\n\t\"tk-TM\",\n\t\"tn\",\n\t\"tn-BW\",\n\t\"tn-ZA\",\n\t\"to\",\n\t\"to-TO\",\n\t\"tok\",\n\t\"tok-001\",\n\t\"tpi\",\n\t\"tpi-PG\",\n\t\"tr\",\n\t\"tr-CY\",\n\t\"tr-TR\",\n\t\"trv\",\n\t\"trv-TW\",\n\t\"trw\",\n\t\"trw-PK\",\n\t\"ts\",\n\t\"ts-ZA\",\n\t\"tt\",\n\t\"tt-RU\",\n\t\"twq\",\n\t\"twq-NE\",\n\t\"tyv\",\n\t\"tyv-RU\",\n\t\"tzm\",\n\t\"tzm-MA\",\n\t\"ug\",\n\t\"ug-CN\",\n\t\"uk\",\n\t\"uk-UA\",\n\t\"und\",\n\t\"ur\",\n\t\"ur-IN\",\n\t\"ur-PK\",\n\t\"uz\",\n\t\"uz-AF\",\n\t\"uz-Arab\",\n\t\"uz-Arab-AF\",\n\t\"uz-Cyrl\",\n\t\"uz-Cyrl-UZ\",\n\t\"uz-Latn\",\n\t\"uz-Latn-UZ\",\n\t\"uz-UZ\",\n\t\"vai\",\n\t\"vai-LR\",\n\t\"vai-Latn\",\n\t\"vai-Latn-LR\",\n\t\"vai-Vaii\",\n\t\"vai-Vaii-LR\",\n\t\"ve\",\n\t\"ve-ZA\",\n\t\"vec\",\n\t\"vec-IT\",\n\t\"vi\",\n\t\"vi-VN\",\n\t\"vmw\",\n\t\"vmw-MZ\",\n\t\"vo\",\n\t\"vo-001\",\n\t\"vun\",\n\t\"vun-TZ\",\n\t\"wa\",\n\t\"wa-BE\",\n\t\"wae\",\n\t\"wae-CH\",\n\t\"wal\",\n\t\"wal-ET\",\n\t\"wbp\",\n\t\"wbp-AU\",\n\t\"wo\",\n\t\"wo-SN\",\n\t\"xh\",\n\t\"xh-ZA\",\n\t\"xnr\",\n\t\"xnr-IN\",\n\t\"xog\",\n\t\"xog-UG\",\n\t\"yav\",\n\t\"yav-CM\",\n\t\"yi\",\n\t\"yi-UA\",\n\t\"yo\",\n\t\"yo-BJ\",\n\t\"yo-NG\",\n\t\"yrl\",\n\t\"yrl-BR\",\n\t\"yrl-CO\",\n\t\"yrl-VE\",\n\t\"yue\",\n\t\"yue-CN\",\n\t\"yue-HK\",\n\t\"yue-Hans\",\n\t\"yue-Hans-CN\",\n\t\"yue-Hant\",\n\t\"yue-Hant-CN\",\n\t\"yue-Hant-HK\",\n\t\"yue-Hant-MO\",\n\t\"yue-MO\",\n\t\"za\",\n\t\"za-CN\",\n\t\"zgh\",\n\t\"zgh-MA\",\n\t\"zh\",\n\t\"zh-CN\",\n\t\"zh-HK\",\n\t\"zh-Hans\",\n\t\"zh-Hans-CN\",\n\t\"zh-Hans-HK\",\n\t\"zh-Hans-MO\",\n\t\"zh-Hans-MY\",\n\t\"zh-Hans-SG\",\n\t\"zh-Hant\",\n\t\"zh-Hant-HK\",\n\t\"zh-Hant-MO\",\n\t\"zh-Hant-MY\",\n\t\"zh-Hant-TW\",\n\t\"zh-Latn\",\n\t\"zh-Latn-CN\",\n\t\"zh-MO\",\n\t\"zh-MY\",\n\t\"zh-SG\",\n\t\"zh-TW\",\n\t\"zu\",\n\t\"zu-ZA\"\n];\n","import { defaultContent } from \"@formatjs_generated/cldr.supported-locales/default-content.js\";\nconst explicitLocales = new WeakMap();\n// ECMA-402 §9.1 [[AvailableLocales]] requires fallback tags, including the\n// scriptless language-region tag. Fill missing fallbacks without replacing\n// explicitly loaded locale data with another locale's likely-subtag alias.\n// https://tc39.es/ecma402/#sec-internal-slots\n// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/negotiation.html#L18-L26\nexport function registerLocaleData(locale, data, localeData, availableLocales) {\n\tlet loaded = explicitLocales.get(localeData);\n\tif (!loaded) {\n\t\tloaded = new Set();\n\t\texplicitLocales.set(localeData, loaded);\n\t}\n\tloaded.add(locale);\n\tconst locales = [locale, ...defaultContent[locale] || []];\n\tfor (const tag of locales) {\n\t\tif (tag === locale || !loaded.has(tag) || localeData[tag] === undefined) {\n\t\t\tlocaleData[tag] = data;\n\t\t}\n\t\tavailableLocales.add(tag);\n\t}\n\tfor (const tag of locales) {\n\t\tconst parts = tag.split(\"-\");\n\t\tconst fallbacks = [];\n\t\twhile (parts.length > 1) {\n\t\t\tif (parts.length > 2 && parts[1].length === 4) {\n\t\t\t\tfallbacks.push([parts[0], ...parts.slice(2)].join(\"-\"));\n\t\t\t}\n\t\t\tparts.pop();\n\t\t\tfallbacks.push(parts.join(\"-\"));\n\t\t}\n\t\tfor (const fallback of fallbacks) {\n\t\t\tif (localeData[fallback] === undefined) localeData[fallback] = localeData[tag];\n\t\t\tavailableLocales.add(fallback);\n\t\t}\n\t}\n}\n","/**\n* http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist\n* @param locales\n*/\nexport function CanonicalizeLocaleList(locales) {\n\t// TODO\n\treturn Intl.getCanonicalLocales(locales);\n}\n","/**\n* https://tc39.es/ecma262/#sec-toobject\n*/\nexport function ToObject(arg) {\n\tif (arg == null) {\n\t\tthrow new TypeError(\"undefined/null cannot be converted to object\");\n\t}\n\treturn Object(arg);\n}\n","/**\n* https://tc39.es/ecma262/#sec-tostring\n*/\nexport function ToString(o) {\n\tif (typeof o === \"symbol\") {\n\t\tthrow TypeError(\"Cannot convert a Symbol value to a string\");\n\t}\n\treturn String(o);\n}\n","import { ToString } from \"#packages/ecma262-abstract/ToString.js\";\n/**\n* https://tc39.es/ecma402/#sec-getoption\n* @param opts\n* @param prop\n* @param type\n* @param values\n* @param fallback\n*/\nexport function GetOption(opts, prop, type, values, fallback) {\n\t// ECMA-402 §9.2.11 GetOption, step 1: Get accepts callable Objects too.\n\t// https://tc39.es/ecma402/#sec-getoption\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/negotiation.html#L384\n\tif (opts === null || typeof opts !== \"object\" && typeof opts !== \"function\") {\n\t\tthrow new TypeError(\"Options must be an object\");\n\t}\n\tlet value = opts[prop];\n\tif (value !== undefined) {\n\t\tif (type !== \"boolean\" && type !== \"string\") {\n\t\t\tthrow new TypeError(\"invalid type\");\n\t\t}\n\t\tif (type === \"boolean\") {\n\t\t\tvalue = Boolean(value);\n\t\t}\n\t\tif (type === \"string\") {\n\t\t\tvalue = ToString(value);\n\t\t}\n\t\tif (values !== undefined && !values.filter((val) => val == value).length) {\n\t\t\tthrow new RangeError(`${value} is not within ${values.join(\", \")}`);\n\t\t}\n\t\treturn value;\n\t}\n\treturn fallback;\n}\n","import { LookupSupportedLocales } from \"@formatjs/intl-localematcher\";\nimport { ToObject } from \"#packages/ecma262-abstract/ToObject.js\";\nimport { GetOption } from \"#packages/ecma402-abstract/GetOption.js\";\n/**\n* https://tc39.es/ecma402/#sec-supportedlocales\n* @param availableLocales\n* @param requestedLocales\n* @param options\n*/\nexport function SupportedLocales(availableLocales, requestedLocales, options) {\n\tlet matcher = \"best fit\";\n\tif (options !== undefined) {\n\t\toptions = ToObject(options);\n\t\tmatcher = GetOption(options, \"localeMatcher\", \"string\", [\"lookup\", \"best fit\"], \"best fit\");\n\t}\n\tif (matcher === \"best fit\") {\n\t\treturn LookupSupportedLocales(Array.from(availableLocales), requestedLocales);\n\t}\n\treturn LookupSupportedLocales(Array.from(availableLocales), requestedLocales);\n}\n","function invariant(condition, message, Err = Error) {\n\tif (!condition) {\n\t\tthrow new Err(message);\n\t}\n}\nfunction IsCallable(fn) {\n\treturn typeof fn === \"function\";\n}\nfunction OrdinaryToPrimitive(O, hint) {\n\tlet methodNames;\n\tif (hint === \"string\") {\n\t\tmethodNames = [\"toString\", \"valueOf\"];\n\t} else {\n\t\tmethodNames = [\"valueOf\", \"toString\"];\n\t}\n\tfor (const name of methodNames) {\n\t\tconst method = O[name];\n\t\tif (IsCallable(method)) {\n\t\t\tlet result = method.call(O);\n\t\t\tif (typeof result !== \"object\") {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\tthrow new TypeError(\"Cannot convert object to primitive value\");\n}\n/**\n* https://tc39.es/ecma262/#sec-toprimitive\n*/\nexport function ToPrimitive(input, preferredType) {\n\tif (typeof input === \"object\" && input != null) {\n\t\tconst exoticToPrim = Symbol.toPrimitive in input ? input[Symbol.toPrimitive] : undefined;\n\t\tlet hint;\n\t\tif (exoticToPrim !== undefined) {\n\t\t\tif (preferredType === undefined) {\n\t\t\t\thint = \"default\";\n\t\t\t} else if (preferredType === \"string\") {\n\t\t\t\thint = \"string\";\n\t\t\t} else {\n\t\t\t\tinvariant(preferredType === \"number\", \"preferredType must be \\\"string\\\" or \\\"number\\\"\");\n\t\t\t\thint = \"number\";\n\t\t\t}\n\t\t\tlet result = exoticToPrim.call(input, hint);\n\t\t\tif (typeof result !== \"object\") {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tthrow new TypeError(\"Cannot convert exotic object to primitive.\");\n\t\t}\n\t\tif (preferredType === undefined) {\n\t\t\tpreferredType = \"number\";\n\t\t}\n\t\treturn OrdinaryToPrimitive(input, preferredType);\n\t}\n\treturn input;\n}\n","import { Decimal } from \"@formatjs/bigdecimal\";\nimport { ToPrimitive } from \"#packages/ecma262-abstract/ToPrimitive.js\";\n/**\n* https://tc39.es/ecma402/#sec-tointlmathematicalvalue\n* Converts input to a mathematical value, supporting BigInt\n*/\nexport function ToIntlMathematicalValue(input) {\n\t// Handle BigInt directly before ToPrimitive, since ToPrimitive doesn't\n\t// handle bigint in its type signature (though the spec says it should return it as-is)\n\tif (typeof input === \"bigint\") {\n\t\treturn new Decimal(input.toString());\n\t}\n\tlet primValue = ToPrimitive(input, \"number\");\n\t// ECMA-402 §16.5.16, step 4.a: ToNumber rejects Symbol primitives.\n\t// Keep this error outside the invalid numeric string fallback below.\n\t// https://tc39.es/ecma402/#sec-tointlmathematicalvalue\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/numberformat.html#L1652-L1657\n\tif (typeof primValue === \"symbol\") {\n\t\tthrow new TypeError(\"Cannot convert a Symbol value to a number\");\n\t}\n\t// Handle other primitive types\n\tif (primValue === undefined) {\n\t\treturn new Decimal(NaN);\n\t}\n\tif (primValue === true) {\n\t\treturn new Decimal(1);\n\t}\n\tif (primValue === false) {\n\t\treturn new Decimal(0);\n\t}\n\tif (primValue === null) {\n\t\treturn new Decimal(0);\n\t}\n\t// Try to convert to Decimal (handles numbers and strings)\n\ttry {\n\t\treturn new Decimal(primValue);\n\t} catch {\n\t\treturn new Decimal(NaN);\n\t}\n}\n","import { ToObject } from \"#packages/ecma262-abstract/ToObject.js\";\n/**\n* https://tc39.es/ecma402/#sec-coerceoptionstoobject\n* @param options\n* @returns\n*/\nexport function CoerceOptionsToObject(options) {\n\tif (typeof options === \"undefined\") {\n\t\treturn Object.create(null);\n\t}\n\treturn ToObject(options);\n}\n","/**\n* ECMA-402 §9.2.13 DefaultNumberOption, step 2.\n* https://tc39.es/ecma402/#sec-defaultnumberoption\n* https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/negotiation.html#L437\n* @param val\n* @param min\n* @param max\n* @param fallback\n*/\nexport function DefaultNumberOption(inputVal, min, max, fallback) {\n\tif (inputVal === undefined) {\n\t\t// @ts-expect-error\n\t\treturn fallback;\n\t}\n\t// DefaultNumberOption uses ToNumber, which rejects BigInt even after coercion.\n\t// ECMA-402 §9.2.13 DefaultNumberOption, step 2.\n\t// https://tc39.es/ecma402/#sec-defaultnumberoption\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/negotiation.html#L437\n\tconst val = +inputVal;\n\tif (isNaN(val) || val < min || val > max) {\n\t\tthrow new RangeError(`${val} is outside of range [${min}, ${max}]`);\n\t}\n\treturn Math.floor(val);\n}\n","/**\n* https://tc39.es/ecma402/#sec-getnumberoption\n* @param options\n* @param property\n* @param min\n* @param max\n* @param fallback\n*/\nimport { DefaultNumberOption } from \"#packages/ecma402-abstract/DefaultNumberOption.js\";\nexport function GetNumberOption(options, property, minimum, maximum, fallback) {\n\tconst val = options[property];\n\treturn DefaultNumberOption(val, minimum, maximum, fallback);\n}\n","//#region packages/fast-memoize/index.ts\nfunction memoize(fn, options) {\n\tconst cache = options && options.cache ? options.cache : cacheDefault;\n\tconst serializer = options && options.serializer ? options.serializer : serializerDefault;\n\treturn (options && options.strategy ? options.strategy : strategyDefault)(fn, {\n\t\tcache,\n\t\tserializer\n\t});\n}\nfunction isPrimitive(value) {\n\treturn value == null || typeof value === \"number\" || typeof value === \"boolean\";\n}\nfunction monadic(fn, cache, serializer, arg) {\n\tconst cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n\tlet computedValue = cache.get(cacheKey);\n\tif (typeof computedValue === \"undefined\") {\n\t\tcomputedValue = fn.call(this, arg);\n\t\tcache.set(cacheKey, computedValue);\n\t}\n\treturn computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n\tconst args = Array.prototype.slice.call(arguments, 3);\n\tconst cacheKey = serializer(args);\n\tlet computedValue = cache.get(cacheKey);\n\tif (typeof computedValue === \"undefined\") {\n\t\tcomputedValue = fn.apply(this, args);\n\t\tcache.set(cacheKey, computedValue);\n\t}\n\treturn computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n\treturn strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n\tconst strategy = fn.length === 1 ? monadic : variadic;\n\treturn assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n\treturn assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n\treturn assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\nconst serializerDefault = function() {\n\treturn JSON.stringify(arguments);\n};\nvar ObjectWithoutPrototypeCache = class {\n\tconstructor() {\n\t\tthis.cache = Object.create(null);\n\t}\n\tget(key) {\n\t\treturn this.cache[key];\n\t}\n\tset(key, value) {\n\t\tthis.cache[key] = value;\n\t}\n};\nconst cacheDefault = { create: function create() {\n\treturn new ObjectWithoutPrototypeCache();\n} };\nconst strategies = {\n\tvariadic: strategyVariadic,\n\tmonadic: strategyMonadic\n};\n//#endregion\nexport { memoize, strategies };\n\n//# sourceMappingURL=index.js.map","import { memoize, strategies } from \"@formatjs/fast-memoize\";\nexport function repeat(s, times) {\n\tif (typeof s.repeat === \"function\") {\n\t\treturn s.repeat(times);\n\t}\n\tconst arr = Array.from({ length: times });\n\tfor (let i = 0; i < arr.length; i++) {\n\t\tarr[i] = s;\n\t}\n\treturn arr.join(\"\");\n}\nexport function setInternalSlot(map, pl, field, value) {\n\tif (!map.get(pl)) {\n\t\tmap.set(pl, Object.create(null));\n\t}\n\tconst slots = map.get(pl);\n\tslots[field] = value;\n}\nexport function getInternalSlot(map, pl, field) {\n\treturn getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl, ...fields) {\n\tconst slots = map.get(pl);\n\tif (!slots) {\n\t\tthrow new TypeError(`${pl} InternalSlot has not been initialized`);\n\t}\n\treturn fields.reduce((all, f) => {\n\t\tall[f] = slots[f];\n\t\treturn all;\n\t}, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n\treturn patternPart.type === \"literal\";\n}\n/*\n17 ECMAScript Standard Built-in Objects:\nEvery built-in Function object, including constructors, that is not\nidentified as an anonymous function has a name property whose value\nis a String.\n\nUnless otherwise specified, the name property of a built-in Function\nobject, if it exists, has the attributes { [[Writable]]: false,\n[[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, { value }) {\n\tObject.defineProperty(target, name, {\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t\twritable: true,\n\t\tvalue\n\t});\n}\nexport function ensureIntl() {\n\tif (typeof Intl === \"undefined\") {\n\t\tObject.defineProperty(globalThis, \"Intl\", {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: {}\n\t\t});\n\t}\n\treturn Intl;\n}\n/**\n* 7.3.5 CreateDataProperty\n* @param target\n* @param name\n* @param value\n*/\nexport function createDataProperty(target, name, value) {\n\tObject.defineProperty(target, name, {\n\t\tconfigurable: true,\n\t\tenumerable: true,\n\t\twritable: true,\n\t\tvalue\n\t});\n}\nexport function invariant(condition, message, Err = Error) {\n\tif (!condition) {\n\t\tthrow new Err(message);\n\t}\n}\nexport const createMemoizedNumberFormat = memoize((...args) => new Intl.NumberFormat(...args), { strategy: strategies.variadic });\nexport const createMemoizedPluralRules = memoize((...args) => new Intl.PluralRules(...args), { strategy: strategies.variadic });\nexport const createMemoizedListFormat = memoize((...args) => new Intl.ListFormat(...args), { strategy: strategies.variadic });\n","import { DefaultNumberOption } from \"#packages/ecma402-abstract/DefaultNumberOption.js\";\nimport { GetNumberOption } from \"#packages/ecma402-abstract/GetNumberOption.js\";\nimport { GetOption } from \"#packages/ecma402-abstract/GetOption.js\";\nimport \"#packages/ecma402-abstract/types/number.js\";\nimport { invariant } from \"#packages/ecma402-abstract/utils.js\";\n//IMPL: Valid rounding increments as per implementation\nconst VALID_ROUNDING_INCREMENTS = new Set([\n\t1,\n\t2,\n\t5,\n\t10,\n\t20,\n\t25,\n\t50,\n\t100,\n\t200,\n\t250,\n\t500,\n\t1e3,\n\t2e3,\n\t2500,\n\t5e3\n]);\n/**\n* https://tc39.es/ecma402/#sec-setnfdigitoptions\n*/\nexport function SetNumberFormatDigitOptions(internalSlots, opts, mnfdDefault, mxfdDefault, notation) {\n\t// 1. Let mnid be ? GetNumberOption(opts, \"minimumIntegerDigits\", 1, 21, 1).\n\tconst mnid = GetNumberOption(opts, \"minimumIntegerDigits\", 1, 21, 1);\n\t// 2. Let mnfd be opts.[[MinimumFractionDigits]].\n\tlet mnfd = opts.minimumFractionDigits;\n\t// 3. Let mxfd be opts.[[MaximumFractionDigits]].\n\tlet mxfd = opts.maximumFractionDigits;\n\t// 4. Let mnsd be opts.[[MinimumSignificantDigits]].\n\tlet mnsd = opts.minimumSignificantDigits;\n\t// 5. Let mxsd be opts.[[MaximumSignificantDigits]].\n\tlet mxsd = opts.maximumSignificantDigits;\n\t// 6. Set internalSlots.[[MinimumIntegerDigits]] to mnid.\n\tinternalSlots.minimumIntegerDigits = mnid;\n\t// 7. Let roundingIncrement be ? GetNumberOption(opts, \"roundingIncrement\", 1, 5000, 1).\n\tconst roundingIncrement = GetNumberOption(opts, \"roundingIncrement\", 1, 5e3, 1);\n\t// ECMA-402 §16.1.2, step 8: invalid increments must throw RangeError.\n\t// https://tc39.es/ecma402/#sec-setnumberformatdigitoptions\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/numberformat.html#L104\n\tinvariant(VALID_ROUNDING_INCREMENTS.has(roundingIncrement), `Invalid rounding increment value: ${roundingIncrement}.\nValid values are ${Array.from(VALID_ROUNDING_INCREMENTS).join(\", \")}.`, RangeError);\n\t// 9. Let roundingMode be ? GetOption(opts, \"roundingMode\", \"string\", « \"ceil\", \"floor\", \"expand\", \"trunc\", \"halfCeil\", \"halfFloor\", \"halfExpand\", \"halfTrunc\", \"halfEven\" », \"halfExpand\").\n\tconst roundingMode = GetOption(opts, \"roundingMode\", \"string\", [\n\t\t\"ceil\",\n\t\t\"floor\",\n\t\t\"expand\",\n\t\t\"trunc\",\n\t\t\"halfCeil\",\n\t\t\"halfFloor\",\n\t\t\"halfExpand\",\n\t\t\"halfTrunc\",\n\t\t\"halfEven\"\n\t], \"halfExpand\");\n\t// 10. Let roundingPriority be ? GetOption(opts, \"roundingPriority\", \"string\", « \"auto\", \"morePrecision\", \"lessPrecision\" », \"auto\").\n\tconst roundingPriority = GetOption(opts, \"roundingPriority\", \"string\", [\n\t\t\"auto\",\n\t\t\"morePrecision\",\n\t\t\"lessPrecision\"\n\t], \"auto\");\n\t// 11. Let trailingZeroDisplay be ? GetOption(opts, \"trailingZeroDisplay\", \"string\", « \"auto\", \"stripIfInteger\" », \"auto\").\n\tconst trailingZeroDisplay = GetOption(opts, \"trailingZeroDisplay\", \"string\", [\"auto\", \"stripIfInteger\"], \"auto\");\n\t// 12. If roundingIncrement is not 1, then\n\tif (roundingIncrement !== 1) {\n\t\t// 12.a. Set mxfdDefault to mnfdDefault.\n\t\tmxfdDefault = mnfdDefault;\n\t}\n\t// 13. Set internalSlots.[[RoundingIncrement]] to roundingIncrement.\n\tinternalSlots.roundingIncrement = roundingIncrement;\n\t// 14. Set internalSlots.[[RoundingMode]] to roundingMode.\n\tinternalSlots.roundingMode = roundingMode;\n\t// 15. Set internalSlots.[[TrailingZeroDisplay]] to trailingZeroDisplay.\n\tinternalSlots.trailingZeroDisplay = trailingZeroDisplay;\n\t// 16. Let hasSd be true if mnsd is not undefined or mxsd is not undefined; otherwise, let hasSd be false.\n\tconst hasSd = mnsd !== undefined || mxsd !== undefined;\n\t// 17. Let hasFd be true if mnfd is not undefined or mxfd is not undefined; otherwise, let hasFd be false.\n\tconst hasFd = mnfd !== undefined || mxfd !== undefined;\n\t// 18. Let needSd be true.\n\tlet needSd = true;\n\t// 19. Let needFd be true.\n\tlet needFd = true;\n\t// 20. If roundingPriority is \"auto\", then\n\tif (roundingPriority === \"auto\") {\n\t\t// 20.a. Set needSd to hasSd.\n\t\tneedSd = hasSd;\n\t\t// 20.b. If hasSd is true or hasFd is false and notation is \"compact\", then\n\t\tif (hasSd || !hasFd && notation === \"compact\") {\n\t\t\t// 20.b.i. Set needFd to false.\n\t\t\tneedFd = false;\n\t\t}\n\t}\n\t// 21. If needSd is true, then\n\tif (needSd) {\n\t\t// 21.a. If hasSd is true, then\n\t\tif (hasSd) {\n\t\t\t// 21.a.i. Set internalSlots.[[MinimumSignificantDigits]] to ? DefaultNumberOption(mnsd, 1, 21, 1).\n\t\t\tinternalSlots.minimumSignificantDigits = DefaultNumberOption(mnsd, 1, 21, 1);\n\t\t\t// 21.a.ii. Set internalSlots.[[MaximumSignificantDigits]] to ? DefaultNumberOption(mxsd, internalSlots.[[MinimumSignificantDigits]], 21, 21).\n\t\t\tinternalSlots.maximumSignificantDigits = DefaultNumberOption(mxsd, internalSlots.minimumSignificantDigits, 21, 21);\n\t\t} else {\n\t\t\t// 21.b. Else,\n\t\t\t// 21.b.i. Set internalSlots.[[MinimumSignificantDigits]] to 1.\n\t\t\tinternalSlots.minimumSignificantDigits = 1;\n\t\t\t// 21.b.ii. Set internalSlots.[[MaximumSignificantDigits]] to 21.\n\t\t\tinternalSlots.maximumSignificantDigits = 21;\n\t\t}\n\t}\n\t// 22. If needFd is true, then\n\tif (needFd) {\n\t\t// 22.a. If hasFd is true, then\n\t\tif (hasFd) {\n\t\t\t// 22.a.i. Set mnfd to ? DefaultNumberOption(mnfd, 0, 100, undefined).\n\t\t\tmnfd = DefaultNumberOption(mnfd, 0, 100, undefined);\n\t\t\t// 22.a.ii. Set mxfd to ? DefaultNumberOption(mxfd, 0, 100, undefined).\n\t\t\tmxfd = DefaultNumberOption(mxfd, 0, 100, undefined);\n\t\t\t// 22.a.iii. If mnfd is undefined, then\n\t\t\tif (mnfd === undefined) {\n\t\t\t\t// 22.a.iii.1. Assert: mxfd is not undefined.\n\t\t\t\tinvariant(mxfd !== undefined, \"maximumFractionDigits must be defined\");\n\t\t\t\t// 22.a.iii.2. Set mnfd to min(mnfdDefault, mxfd).\n\t\t\t\tmnfd = Math.min(mnfdDefault, mxfd);\n\t\t\t} else if (mxfd === undefined) {\n\t\t\t\t// 22.a.iv. Else if mxfd is undefined, then\n\t\t\t\t// 22.a.iv.1. Set mxfd to max(mxfdDefault, mnfd).\n\t\t\t\tmxfd = Math.max(mxfdDefault, mnfd);\n\t\t\t} else if (mnfd > mxfd) {\n\t\t\t\t// 22.a.v. Else if mnfd > mxfd, throw a RangeError exception.\n\t\t\t\tthrow new RangeError(`Invalid range, ${mnfd} > ${mxfd}`);\n\t\t\t}\n\t\t\t// 22.a.vi. Set internalSlots.[[MinimumFractionDigits]] to mnfd.\n\t\t\tinternalSlots.minimumFractionDigits = mnfd;\n\t\t\t// 22.a.vii. Set internalSlots.[[MaximumFractionDigits]] to mxfd.\n\t\t\tinternalSlots.maximumFractionDigits = mxfd;\n\t\t} else {\n\t\t\t// 22.b. Else,\n\t\t\t// 22.b.i. Set internalSlots.[[MinimumFractionDigits]] to mnfdDefault.\n\t\t\tinternalSlots.minimumFractionDigits = mnfdDefault;\n\t\t\t// 22.b.ii. Set internalSlots.[[MaximumFractionDigits]] to mxfdDefault.\n\t\t\tinternalSlots.maximumFractionDigits = mxfdDefault;\n\t\t}\n\t}\n\t// 23. If needSd is false and needFd is false, then\n\tif (!needSd && !needFd) {\n\t\t// 23.a. Set internalSlots.[[MinimumFractionDigits]] to 0.\n\t\tinternalSlots.minimumFractionDigits = 0;\n\t\t// 23.b. Set internalSlots.[[MaximumFractionDigits]] to 0.\n\t\tinternalSlots.maximumFractionDigits = 0;\n\t\t// 23.c. Set internalSlots.[[MinimumSignificantDigits]] to 1.\n\t\tinternalSlots.minimumSignificantDigits = 1;\n\t\t// 23.d. Set internalSlots.[[MaximumSignificantDigits]] to 2.\n\t\tinternalSlots.maximumSignificantDigits = 2;\n\t\t// 23.e. Set internalSlots.[[RoundingType]] to \"morePrecision\".\n\t\tinternalSlots.roundingType = \"morePrecision\";\n\t\t// 23.f. Set internalSlots.[[RoundingPriority]] to \"morePrecision\".\n\t\tinternalSlots.roundingPriority = \"morePrecision\";\n\t} else if (roundingPriority === \"morePrecision\") {\n\t\t// 24. Else if roundingPriority is \"morePrecision\", then\n\t\t// 24.a. Set internalSlots.[[RoundingType]] to \"morePrecision\".\n\t\tinternalSlots.roundingType = \"morePrecision\";\n\t\t// 24.b. Set internalSlots.[[RoundingPriority]] to \"morePrecision\".\n\t\tinternalSlots.roundingPriority = \"morePrecision\";\n\t} else if (roundingPriority === \"lessPrecision\") {\n\t\t// 25. Else if roundingPriority is \"lessPrecision\", then\n\t\t// 25.a. Set internalSlots.[[RoundingType]] to \"lessPrecision\".\n\t\tinternalSlots.roundingType = \"lessPrecision\";\n\t\t// 25.b. Set internalSlots.[[RoundingPriority]] to \"lessPrecision\".\n\t\tinternalSlots.roundingPriority = \"lessPrecision\";\n\t} else if (hasSd) {\n\t\t// 26. Else if hasSd is true, then\n\t\t// 26.a. Set internalSlots.[[RoundingType]] to \"significantDigits\".\n\t\tinternalSlots.roundingType = \"significantDigits\";\n\t\t// 26.b. Set internalSlots.[[RoundingPriority]] to \"auto\".\n\t\tinternalSlots.roundingPriority = \"auto\";\n\t} else {\n\t\t// 27. Else,\n\t\t// 27.a. Set internalSlots.[[RoundingType]] to \"fractionDigits\".\n\t\tinternalSlots.roundingType = \"fractionDigits\";\n\t\t// 27.b. Set internalSlots.[[RoundingPriority]] to \"auto\".\n\t\tinternalSlots.roundingPriority = \"auto\";\n\t}\n\t// 28. If roundingIncrement is not 1, then\n\tif (roundingIncrement !== 1) {\n\t\t// 28.a. Assert: internalSlots.[[RoundingType]] is \"fractionDigits\".\n\t\tinvariant(internalSlots.roundingType === \"fractionDigits\", \"Invalid roundingType\", TypeError);\n\t\t// 28.b. Assert: internalSlots.[[MaximumFractionDigits]] is equal to internalSlots.[[MinimumFractionDigits]].\n\t\tinvariant(internalSlots.maximumFractionDigits === internalSlots.minimumFractionDigits, \"With roundingIncrement > 1, maximumFractionDigits and minimumFractionDigits must be equal.\", RangeError);\n\t}\n}\n","import { CanonicalizeLocaleList } from \"#packages/ecma402-abstract/CanonicalizeLocaleList.js\";\nimport { CoerceOptionsToObject } from \"#packages/ecma402-abstract/CoerceOptionsToObject.js\";\nimport { GetOption } from \"#packages/ecma402-abstract/GetOption.js\";\nimport { SetNumberFormatDigitOptions } from \"#packages/ecma402-abstract/NumberFormat/SetNumberFormatDigitOptions.js\";\nimport \"#packages/ecma402-abstract/types/plural-rules.js\";\nimport { ResolveLocale } from \"@formatjs/intl-localematcher\";\nexport function InitializePluralRules(pl, locales, options, { availableLocales, relevantExtensionKeys, localeData, getDefaultLocale, getInternalSlots }) {\n\tconst requestedLocales = CanonicalizeLocaleList(locales);\n\tconst opt = Object.create(null);\n\tconst opts = CoerceOptionsToObject(options);\n\tconst internalSlots = getInternalSlots(pl);\n\tinternalSlots.initializedPluralRules = true;\n\tconst matcher = GetOption(opts, \"localeMatcher\", \"string\", [\"best fit\", \"lookup\"], \"best fit\");\n\topt.localeMatcher = matcher;\n\tconst r = ResolveLocale(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale);\n\tinternalSlots.locale = r.locale;\n\t// ECMA-402 Spec: type option ('cardinal' or 'ordinal')\n\tinternalSlots.type = GetOption(opts, \"type\", \"string\", [\"cardinal\", \"ordinal\"], \"cardinal\");\n\t// Read and validate notation and compactDisplay before digit options.\n\t// ECMA-402 §17.1.1 Intl.PluralRules, steps 9–13.\n\t// https://tc39.es/ecma402/#sec-intl.pluralrules\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/pluralrules.html#L29-L34\n\tconst notation = GetOption(opts, \"notation\", \"string\", [\n\t\t\"standard\",\n\t\t\"scientific\",\n\t\t\"engineering\",\n\t\t\"compact\"\n\t], \"standard\");\n\tinternalSlots.notation = notation;\n\tconst compactDisplay = GetOption(opts, \"compactDisplay\", \"string\", [\"short\", \"long\"], \"short\");\n\tif (notation === \"compact\") {\n\t\tinternalSlots.compactDisplay = compactDisplay;\n\t\tinternalSlots.compactExponents = localeData[r.dataLocale]?.compactExponents;\n\t}\n\tSetNumberFormatDigitOptions(internalSlots, opts, 0, 3, notation);\n\treturn pl;\n}\n","/**\n* https://www.ecma-international.org/ecma-262/11.0/index.html#sec-type\n*/\nexport function Type(x) {\n\tif (x === null) {\n\t\treturn \"Null\";\n\t}\n\tif (typeof x === \"undefined\") {\n\t\treturn \"Undefined\";\n\t}\n\tif (typeof x === \"function\" || typeof x === \"object\") {\n\t\treturn \"Object\";\n\t}\n\tif (typeof x === \"number\") {\n\t\treturn \"Number\";\n\t}\n\tif (typeof x === \"boolean\") {\n\t\treturn \"Boolean\";\n\t}\n\tif (typeof x === \"string\") {\n\t\treturn \"String\";\n\t}\n\tif (typeof x === \"symbol\") {\n\t\treturn \"Symbol\";\n\t}\n\tif (typeof x === \"bigint\") {\n\t\treturn \"BigInt\";\n\t}\n}\n","import { Decimal } from \"@formatjs/bigdecimal\";\nexport const ZERO = new Decimal(0);\nexport const NEGATIVE_ZERO = new Decimal(-0);\n","import \"#packages/ecma402-abstract/types/number.js\";\nconst negativeMapping = {\n\tceil: \"zero\",\n\tfloor: \"infinity\",\n\texpand: \"infinity\",\n\ttrunc: \"zero\",\n\thalfCeil: \"half-zero\",\n\thalfFloor: \"half-infinity\",\n\thalfExpand: \"half-infinity\",\n\thalfTrunc: \"half-zero\",\n\thalfEven: \"half-even\"\n};\nconst positiveMapping = {\n\tceil: \"infinity\",\n\tfloor: \"zero\",\n\texpand: \"infinity\",\n\ttrunc: \"zero\",\n\thalfCeil: \"half-infinity\",\n\thalfFloor: \"half-zero\",\n\thalfExpand: \"half-infinity\",\n\thalfTrunc: \"half-zero\",\n\thalfEven: \"half-even\"\n};\nexport function GetUnsignedRoundingMode(roundingMode, isNegative) {\n\tif (isNegative) {\n\t\treturn negativeMapping[roundingMode];\n\t}\n\treturn positiveMapping[roundingMode];\n}\n","import \"#packages/ecma402-abstract/types/number.js\";\nimport { invariant } from \"#packages/ecma402-abstract/utils.js\";\nexport function ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode) {\n\t// If x equals r1 or if r1 equals r2 (already at rounding boundary), return r1\n\tif (x.eq(r1) || r1.eq(r2)) return r1;\n\t// If x equals r2, return r2\n\tif (x.eq(r2)) return r2;\n\tinvariant(r1.lessThan(x) && x.lessThan(r2), `x should be between r1 and r2 but x=${x}, r1=${r1}, r2=${r2}`);\n\tif (unsignedRoundingMode === \"zero\") {\n\t\treturn r1;\n\t}\n\tif (unsignedRoundingMode === \"infinity\") {\n\t\treturn r2;\n\t}\n\tconst d1 = x.minus(r1);\n\tconst d2 = r2.minus(x);\n\tif (d1.lessThan(d2)) {\n\t\treturn r1;\n\t}\n\tif (d2.lessThan(d1)) {\n\t\treturn r2;\n\t}\n\tinvariant(d1.eq(d2), \"d1 should be equal to d2\");\n\tif (unsignedRoundingMode === \"half-zero\") {\n\t\treturn r1;\n\t}\n\tif (unsignedRoundingMode === \"half-infinity\") {\n\t\treturn r2;\n\t}\n\tinvariant(unsignedRoundingMode === \"half-even\", \"unsignedRoundingMode should be half-even\");\n\tconst cardinality = r1.div(r2.minus(r1)).mod(2);\n\tif (cardinality.isZero()) {\n\t\treturn r1;\n\t}\n\treturn r2;\n}\n","import { Decimal } from \"@formatjs/bigdecimal\";\nimport { memoize } from \"@formatjs/fast-memoize\";\n/**\n* Cached function to compute powers of 10 for Decimal.js operations.\n* This cache significantly reduces overhead in ComputeExponent and ToRawFixed\n* by memoizing expensive Decimal.pow(10, n) calculations.\n*\n* Common exponents (e.g., -20 to 20) are used repeatedly in number formatting,\n* so caching provides substantial performance benefits.\n*\n* @param exponent - Can be a number or Decimal. If Decimal, it will be converted to string for cache key.\n*/\nexport const getPowerOf10 = memoize((exponent) => {\n\treturn Decimal.pow(10, exponent);\n});\n","import \"#packages/ecma402-abstract/types/number.js\";\nimport { repeat } from \"#packages/ecma402-abstract/utils.js\";\nimport { ApplyUnsignedRoundingMode } from \"#packages/ecma402-abstract/NumberFormat/ApplyUnsignedRoundingMode.js\";\nimport { getPowerOf10 } from \"#packages/ecma402-abstract/NumberFormat/decimal-cache.js\";\n//IMPL: Helper function to calculate raw fixed value\nfunction ToRawFixedFn(n, f) {\n\treturn n.times(getPowerOf10(-f));\n}\n//IMPL: Helper function to find n1 and r1\nfunction findN1R1(x, f, roundingIncrement) {\n\tconst nx = x.times(getPowerOf10(f)).floor();\n\tconst n1 = nx.div(roundingIncrement).floor().times(roundingIncrement);\n\tconst r1 = ToRawFixedFn(n1, f);\n\treturn {\n\t\tn1,\n\t\tr1\n\t};\n}\n//IMPL: Helper function to find n2 and r2\nfunction findN2R2(x, f, roundingIncrement) {\n\tconst nx = x.times(getPowerOf10(f)).ceil();\n\tconst n2 = nx.div(roundingIncrement).ceil().times(roundingIncrement);\n\tconst r2 = ToRawFixedFn(n2, f);\n\treturn {\n\t\tn2,\n\t\tr2\n\t};\n}\n/**\n* https://tc39.es/ecma402/#sec-torawfixed\n* @param x a finite non-negative Number or BigInt\n* @param minFraction an integer between 0 and 20\n* @param maxFraction an integer between 0 and 20\n*/\nexport function ToRawFixed(x, minFraction, maxFraction, roundingIncrement, unsignedRoundingMode) {\n\t// 1. Let f be maxFraction.\n\tconst f = maxFraction;\n\t// 2. Let n1 and r1 be the results of performing the maximized rounding of x to f fraction digits.\n\tconst { n1, r1 } = findN1R1(x, f, roundingIncrement);\n\t// 3. Let n2 and r2 be the results of performing the minimized rounding of x to f fraction digits.\n\tconst { n2, r2 } = findN2R2(x, f, roundingIncrement);\n\t// 4. Let r be ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode).\n\tconst r = ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode);\n\tlet n, xFinal;\n\tlet m;\n\t// 5. If r is equal to r1, then\n\tif (r.eq(r1)) {\n\t\t// a. Let n be n1.\n\t\tn = n1;\n\t\t// b. Let xFinal be r1.\n\t\txFinal = r1;\n\t} else {\n\t\t// 6. Else,\n\t\t// a. Let n be n2.\n\t\tn = n2;\n\t\t// b. Let xFinal be r2.\n\t\txFinal = r2;\n\t}\n\t// 7. If n is 0, let m be \"0\".\n\tif (n.isZero()) {\n\t\tm = \"0\";\n\t} else {\n\t\t// 8. Else, let m be the String representation of n.\n\t\tm = n.toString();\n\t}\n\tlet int;\n\t// 9. If f is not 0, then\n\tif (f !== 0) {\n\t\t// a. Let k be the length of m.\n\t\tlet k = m.length;\n\t\t// b. If k < f, then\n\t\tif (k <= f) {\n\t\t\t// i. Let z be the String value consisting of f + 1 - k occurrences of the character \"0\".\n\t\t\tconst z = repeat(\"0\", f - k + 1);\n\t\t\t// ii. Set m to the string-concatenation of z and m.\n\t\t\tm = z + m;\n\t\t\t// iii. Set k to f + 1.\n\t\t\tk = f + 1;\n\t\t}\n\t\t// c. Let a be the substring of m from 0 to k - f.\n\t\tconst a = m.slice(0, k - f);\n\t\t// d. Let b be the substring of m from k - f to k.\n\t\tconst b = m.slice(m.length - f);\n\t\t// e. Set m to the string-concatenation of a, \".\", and b.\n\t\tm = a + \".\" + b;\n\t\t// f. Let int be the length of a.\n\t\tint = a.length;\n\t} else {\n\t\t// 10. Else, let int be the length of m.\n\t\tint = m.length;\n\t}\n\t// 11. Let cut be maxFraction - minFraction.\n\tlet cut = maxFraction - minFraction;\n\t// 12. Repeat, while cut > 0 and the last character of m is \"0\",\n\twhile (cut > 0 && m[m.length - 1] === \"0\") {\n\t\t// a. Remove the last character from m.\n\t\tm = m.slice(0, m.length - 1);\n\t\t// b. Decrease cut by 1.\n\t\tcut--;\n\t}\n\t// 13. If the last character of m is \".\", then\n\tif (m[m.length - 1] === \".\") {\n\t\t// a. Remove the last character from m.\n\t\tm = m.slice(0, m.length - 1);\n\t}\n\t// 14. Return the Record { [[FormattedString]]: m, [[RoundedNumber]]: xFinal, [[IntegerDigitsCount]]: int, [[RoundingMagnitude]]: -f }.\n\treturn {\n\t\tformattedString: m,\n\t\troundedNumber: xFinal,\n\t\tintegerDigitsCount: int,\n\t\troundingMagnitude: -f\n\t};\n}\n","import { ZERO } from \"#packages/ecma402-abstract/constants.js\";\nimport \"#packages/ecma402-abstract/types/number.js\";\nimport { invariant, repeat } from \"#packages/ecma402-abstract/utils.js\";\nimport { ApplyUnsignedRoundingMode } from \"#packages/ecma402-abstract/NumberFormat/ApplyUnsignedRoundingMode.js\";\nimport { getPowerOf10 } from \"#packages/ecma402-abstract/NumberFormat/decimal-cache.js\";\n//IMPL: Helper function to find n1, e1, and r1 using direct calculation\nfunction findN1E1R1(x, p) {\n\tconst maxN1 = getPowerOf10(p);\n\tconst minN1 = getPowerOf10(p - 1);\n\t// Direct calculation: compute e1 from logarithm\n\t// e1 is the exponent such that n1 * 10^(e1-p+1) <= x\n\t// Taking log: log(n1) + (e1-p+1)*log(10) <= log(x)\n\t// Since n1 is between 10^(p-1) and 10^p, we have:\n\t// (p-1) + (e1-p+1) <= log10(x) < p + (e1-p+1)\n\t// Simplifying: e1 <= log10(x) < e1 + 1\n\t// Therefore: e1 = floor(log10(x))\n\tconst log10x = x.log(10);\n\tlet e1 = log10x.floor();\n\t// Calculate n1 and r1 from e1\n\tconst divisor = getPowerOf10(e1.minus(p).plus(1));\n\tlet n1 = x.div(divisor).floor();\n\tlet r1 = n1.times(divisor);\n\t// Verify and adjust if n1 is out of bounds\n\t// This handles edge cases near powers of 10\n\tif (n1.greaterThanOrEqualTo(maxN1)) {\n\t\te1 = e1.plus(1);\n\t\tconst newDivisor = getPowerOf10(e1.minus(p).plus(1));\n\t\tn1 = x.div(newDivisor).floor();\n\t\tr1 = n1.times(newDivisor);\n\t} else if (n1.lessThan(minN1)) {\n\t\te1 = e1.minus(1);\n\t\tconst newDivisor = getPowerOf10(e1.minus(p).plus(1));\n\t\tn1 = x.div(newDivisor).floor();\n\t\tr1 = n1.times(newDivisor);\n\t}\n\t// Final verification with fallback to iterative search if needed\n\tif (r1.lessThanOrEqualTo(x) && n1.lessThan(maxN1) && n1.greaterThanOrEqualTo(minN1)) {\n\t\treturn {\n\t\t\tn1,\n\t\t\te1,\n\t\t\tr1\n\t\t};\n\t}\n\t// Fallback: iterative search (should rarely be needed)\n\tconst maxE1 = x.div(minN1).log(10).plus(p).minus(1).ceil();\n\tlet currentE1 = maxE1;\n\twhile (true) {\n\t\tconst currentDivisor = getPowerOf10(currentE1.minus(p).plus(1));\n\t\tlet currentN1 = x.div(currentDivisor).floor();\n\t\tif (currentN1.lessThan(maxN1) && currentN1.greaterThanOrEqualTo(minN1)) {\n\t\t\tconst currentR1 = currentN1.times(currentDivisor);\n\t\t\tif (currentR1.lessThanOrEqualTo(x)) {\n\t\t\t\treturn {\n\t\t\t\t\tn1: currentN1,\n\t\t\t\t\te1: currentE1,\n\t\t\t\t\tr1: currentR1\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tcurrentE1 = currentE1.minus(1);\n\t}\n}\n//IMPL: Helper function to find n2, e2, and r2 using direct calculation\nfunction findN2E2R2(x, p) {\n\tconst maxN2 = getPowerOf10(p);\n\tconst minN2 = getPowerOf10(p - 1);\n\t// Direct calculation: similar to findN1E1R1 but with ceiling\n\tconst log10x = x.log(10);\n\tlet e2 = log10x.floor();\n\t// Calculate n2 and r2 from e2\n\tconst divisor = getPowerOf10(e2.minus(p).plus(1));\n\tlet n2 = x.div(divisor).ceil();\n\tlet r2 = n2.times(divisor);\n\t// Verify and adjust if n2 is out of bounds\n\tif (n2.greaterThanOrEqualTo(maxN2)) {\n\t\te2 = e2.plus(1);\n\t\tconst newDivisor = getPowerOf10(e2.minus(p).plus(1));\n\t\tn2 = x.div(newDivisor).ceil();\n\t\tr2 = n2.times(newDivisor);\n\t} else if (n2.lessThan(minN2)) {\n\t\te2 = e2.minus(1);\n\t\tconst newDivisor = getPowerOf10(e2.minus(p).plus(1));\n\t\tn2 = x.div(newDivisor).ceil();\n\t\tr2 = n2.times(newDivisor);\n\t}\n\t// Final verification with fallback to iterative search if needed\n\tif (r2.greaterThanOrEqualTo(x) && n2.lessThan(maxN2) && n2.greaterThanOrEqualTo(minN2)) {\n\t\treturn {\n\t\t\tn2,\n\t\t\te2,\n\t\t\tr2\n\t\t};\n\t}\n\t// Fallback: iterative search (should rarely be needed)\n\tconst minE2 = x.div(maxN2).log(10).plus(p).minus(1).floor();\n\tlet currentE2 = minE2;\n\twhile (true) {\n\t\tconst currentDivisor = getPowerOf10(currentE2.minus(p).plus(1));\n\t\tlet currentN2 = x.div(currentDivisor).ceil();\n\t\tif (currentN2.lessThan(maxN2) && currentN2.greaterThanOrEqualTo(minN2)) {\n\t\t\tconst currentR2 = currentN2.times(currentDivisor);\n\t\t\tif (currentR2.greaterThanOrEqualTo(x)) {\n\t\t\t\treturn {\n\t\t\t\t\tn2: currentN2,\n\t\t\t\t\te2: currentE2,\n\t\t\t\t\tr2: currentR2\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tcurrentE2 = currentE2.plus(1);\n\t}\n}\n/**\n* https://tc39.es/ecma402/#sec-torawprecision\n* @param x a finite non-negative Number or BigInt\n* @param minPrecision an integer between 1 and 21\n* @param maxPrecision an integer between 1 and 21\n*/\nexport function ToRawPrecision(x, minPrecision, maxPrecision, unsignedRoundingMode) {\n\t// 1. Let p be maxPrecision.\n\tconst p = maxPrecision;\n\tlet m;\n\tlet e;\n\tlet xFinal;\n\t// 2. If x = 0, then\n\tif (x.isZero()) {\n\t\t// a. Let m be the String value consisting of p occurrences of the character \"0\".\n\t\tm = repeat(\"0\", p);\n\t\t// b. Let e be 0.\n\t\te = 0;\n\t\t// c. Let xFinal be 0.\n\t\txFinal = ZERO;\n\t} else {\n\t\t// 3. Else,\n\t\t// a. Let {n1, e1, r1} be the result of findN1E1R1(x, p).\n\t\tconst { n1, e1, r1 } = findN1E1R1(x, p);\n\t\t// b. Let {n2, e2, r2} be the result of findN2E2R2(x, p).\n\t\tconst { n2, e2, r2 } = findN2E2R2(x, p);\n\t\t// c. Let r be ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode).\n\t\tlet r = ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode);\n\t\tlet n;\n\t\t// d. If r = r1, then\n\t\tif (r.eq(r1)) {\n\t\t\t// i. Let n be n1.\n\t\t\tn = n1;\n\t\t\t// ii. Let e be e1.\n\t\t\te = e1.toNumber();\n\t\t\t// iii. Let xFinal be r1.\n\t\t\txFinal = r1;\n\t\t} else {\n\t\t\t// e. Else,\n\t\t\t// i. Let n be n2.\n\t\t\tn = n2;\n\t\t\t// ii. Let e be e2.\n\t\t\te = e2.toNumber();\n\t\t\t// iii. Let xFinal be r2.\n\t\t\txFinal = r2;\n\t\t}\n\t\t// f. Let m be the String representation of n.\n\t\tm = n.toString();\n\t}\n\tlet int;\n\t// 4. If e ≥ p - 1, then\n\tif (e >= p - 1) {\n\t\t// a. Let m be the string-concatenation of m and p - 1 - e occurrences of the character \"0\".\n\t\tm = m + repeat(\"0\", e - p + 1);\n\t\t// b. Let int be e + 1.\n\t\tint = e + 1;\n\t} else if (e >= 0) {\n\t\t// 5. Else if e ≥ 0, then\n\t\t// a. Let m be the string-concatenation of the first e + 1 characters of m, \".\", and the remaining p - (e + 1) characters of m.\n\t\tm = m.slice(0, e + 1) + \".\" + m.slice(m.length - (p - (e + 1)));\n\t\t// b. Let int be e + 1.\n\t\tint = e + 1;\n\t} else {\n\t\t// 6. Else,\n\t\t// a. Assert: e < 0.\n\t\tinvariant(e < 0, \"e should be less than 0\");\n\t\t// b. Let m be the string-concatenation of \"0.\", -e - 1 occurrences of the character \"0\", and m.\n\t\tm = \"0.\" + repeat(\"0\", -e - 1) + m;\n\t\t// c. Let int be 1.\n\t\tint = 1;\n\t}\n\t// 7. If m contains \".\", and maxPrecision > minPrecision, then\n\tif (m.includes(\".\") && maxPrecision > minPrecision) {\n\t\t// a. Let cut be maxPrecision - minPrecision.\n\t\tlet cut = maxPrecision - minPrecision;\n\t\t// b. Repeat, while cut > 0 and the last character of m is \"0\",\n\t\twhile (cut > 0 && m[m.length - 1] === \"0\") {\n\t\t\t// i. Remove the last character from m.\n\t\t\tm = m.slice(0, m.length - 1);\n\t\t\t// ii. Decrease cut by 1.\n\t\t\tcut--;\n\t\t}\n\t\t// c. If the last character of m is \".\", then\n\t\tif (m[m.length - 1] === \".\") {\n\t\t\t// i. Remove the last character from m.\n\t\t\tm = m.slice(0, m.length - 1);\n\t\t}\n\t}\n\t// ECMA-402 §16.5.8, step 8: rounding magnitude includes the precision offset.\n\t// https://tc39.es/ecma402/#sec-torawprecision\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/numberformat.html#L1332\n\treturn {\n\t\tformattedString: m,\n\t\troundedNumber: xFinal,\n\t\tintegerDigitsCount: int,\n\t\troundingMagnitude: e - p + 1\n\t};\n}\n","import { NEGATIVE_ZERO, ZERO } from \"#packages/ecma402-abstract/constants.js\";\nimport \"#packages/ecma402-abstract/types/number.js\";\nimport { invariant, repeat } from \"#packages/ecma402-abstract/utils.js\";\nimport { GetUnsignedRoundingMode } from \"#packages/ecma402-abstract/NumberFormat/GetUnsignedRoundingMode.js\";\nimport { ToRawFixed } from \"#packages/ecma402-abstract/NumberFormat/ToRawFixed.js\";\nimport { ToRawPrecision } from \"#packages/ecma402-abstract/NumberFormat/ToRawPrecision.js\";\n/**\n* https://tc39.es/ecma402/#sec-formatnumberstring\n*/\nexport function FormatNumericToString(intlObject, _x) {\n\tlet x = _x;\n\tlet sign;\n\t// -0\n\tif (x.isZero() && x.isNegative()) {\n\t\tsign = \"negative\";\n\t\tx = ZERO;\n\t} else {\n\t\tinvariant(x.isFinite(), \"NumberFormatDigitInternalSlots value is not finite\");\n\t\tif (x.lessThan(0)) {\n\t\t\tsign = \"negative\";\n\t\t} else {\n\t\t\tsign = \"positive\";\n\t\t}\n\t\tif (sign === \"negative\") {\n\t\t\tx = x.negated();\n\t\t}\n\t}\n\tlet result;\n\tconst roundingType = intlObject.roundingType;\n\tconst unsignedRoundingMode = GetUnsignedRoundingMode(intlObject.roundingMode, sign === \"negative\");\n\tswitch (roundingType) {\n\t\tcase \"significantDigits\":\n\t\t\tresult = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits, unsignedRoundingMode);\n\t\t\tbreak;\n\t\tcase \"fractionDigits\":\n\t\t\tresult = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits, intlObject.roundingIncrement, unsignedRoundingMode);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tlet sResult = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits, unsignedRoundingMode);\n\t\t\tlet fResult = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits, intlObject.roundingIncrement, unsignedRoundingMode);\n\t\t\tif (intlObject.roundingType === \"morePrecision\") {\n\t\t\t\tif (sResult.roundingMagnitude <= fResult.roundingMagnitude) {\n\t\t\t\t\tresult = sResult;\n\t\t\t\t} else {\n\t\t\t\t\tresult = fResult;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tinvariant(intlObject.roundingType === \"lessPrecision\", \"Invalid roundingType\");\n\t\t\t\tif (sResult.roundingMagnitude <= fResult.roundingMagnitude) {\n\t\t\t\t\tresult = fResult;\n\t\t\t\t} else {\n\t\t\t\t\tresult = sResult;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t}\n\tx = result.roundedNumber;\n\tlet string = result.formattedString;\n\tif (intlObject.trailingZeroDisplay === \"stripIfInteger\" && x.isInteger()) {\n\t\tlet i = string.indexOf(\".\");\n\t\tif (i > -1) {\n\t\t\tstring = string.slice(0, i);\n\t\t}\n\t}\n\tconst int = result.integerDigitsCount;\n\tconst minInteger = intlObject.minimumIntegerDigits;\n\tif (int < minInteger) {\n\t\tconst forwardZeros = repeat(\"0\", minInteger - int);\n\t\tstring = forwardZeros + string;\n\t}\n\tif (sign === \"negative\") {\n\t\tif (x.isZero()) {\n\t\t\tx = NEGATIVE_ZERO;\n\t\t} else {\n\t\t\tx = x.negated();\n\t\t}\n\t}\n\treturn {\n\t\troundedNumber: x,\n\t\tformattedString: string\n\t};\n}\n","import { Type } from \"#packages/ecma262-abstract/Type.js\";\nimport { FormatNumericToString } from \"#packages/ecma402-abstract/NumberFormat/FormatNumericToString.js\";\nimport \"#packages/ecma402-abstract/types/plural-rules.js\";\nimport { invariant } from \"#packages/ecma402-abstract/utils.js\";\n/**\n* ResolvePluralInternal ( pluralRules, n )\n*\n* Internal version of ResolvePlural that returns both the formatted string and plural category.\n* This is needed for selectRange, which must compare formatted strings to determine if the\n* start and end values are identical.\n*\n* The formatted string is obtained by applying the number formatting options (digit options)\n* from the PluralRules object to the input number. This ensures that formatting-sensitive\n* plural rules work correctly (e.g., rules that depend on visible fraction digits).\n*\n* @param pl - An initialized PluralRules object\n* @param n - Mathematical value to resolve\n* @returns Record containing the formatted string and plural category\n*/\nexport function ResolvePluralInternal(pl, n, { getInternalSlots, PluralRuleSelect }) {\n\tconst internalSlots = getInternalSlots(pl);\n\tinvariant(Type(internalSlots) === \"Object\", \"pl has to be an object\");\n\tinvariant(\"initializedPluralRules\" in internalSlots, \"pluralrules must be initialized\");\n\t// Handle non-finite values (Infinity, -Infinity, NaN)\n\tif (!n.isFinite()) {\n\t\treturn {\n\t\t\tformattedString: String(n),\n\t\t\tpluralCategory: \"other\"\n\t\t};\n\t}\n\tconst { locale, type, notation } = internalSlots;\n\t// ECMA-402 Spec: Format the number according to digit options\n\tconst res = FormatNumericToString(internalSlots, n);\n\tconst s = res.formattedString;\n\t// ECMA-402 §17.5.2, step 10 selects from the rounded decimal string.\n\t// Own CLDR data keeps compact selection independent of NumberFormat.\n\t// https://tc39.es/ecma402/#sec-resolveplural\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/pluralrules.html#L316-L321\n\tlet exponent = 0;\n\tif (notation === \"compact\") {\n\t\tconst patterns = internalSlots.compactExponents?.[internalSlots.compactDisplay || \"short\"];\n\t\tconst unsigned = s[0] === \"-\" ? s.slice(1) : s;\n\t\tconst integer = unsigned.split(\".\")[0];\n\t\tlet first = 0;\n\t\twhile (first < integer.length && integer[first] === \"0\") first++;\n\t\tconst magnitude = integer.length - first - 1;\n\t\tlet selectedMagnitude = -1;\n\t\tif (patterns) {\n\t\t\tfor (const key in patterns) {\n\t\t\t\tconst threshold = Number(key);\n\t\t\t\tif (threshold <= magnitude && threshold > selectedMagnitude) {\n\t\t\t\t\tselectedMagnitude = threshold;\n\t\t\t\t\texponent = patterns[threshold];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// ECMA-402 Spec: Select the appropriate plural category using the locale's plural rules\n\tconst pluralCategory = PluralRuleSelect(locale, type, s, exponent);\n\treturn {\n\t\tformattedString: s,\n\t\tpluralCategory\n\t};\n}\n/**\n* http://ecma-international.org/ecma-402/7.0/index.html#sec-resolveplural\n* @param pl\n* @param n\n* @param PluralRuleSelect Has to pass in bc it's implementation-specific\n*/\nexport function ResolvePlural(pl, n, { getInternalSlots, PluralRuleSelect }) {\n\treturn ResolvePluralInternal(pl, n, {\n\t\tgetInternalSlots,\n\t\tPluralRuleSelect\n\t}).pluralCategory;\n}\n","import { Type } from \"#packages/ecma262-abstract/Type.js\";\nimport \"#packages/ecma402-abstract/types/plural-rules.js\";\nimport { invariant } from \"#packages/ecma402-abstract/utils.js\";\nimport { ResolvePluralInternal } from \"#packages/ecma402-abstract/PluralRules/ResolvePlural.js\";\n/**\n* ResolvePluralRange ( pluralRules, x, y )\n*\n* The ResolvePluralRange abstract operation is called with arguments pluralRules (which must be\n* an object initialized as a PluralRules), x (a mathematical value), and y (a mathematical value).\n* It resolves the appropriate plural form for a range by determining the plural forms of both the\n* start and end values, then consulting locale-specific range data.\n*\n* ECMA-402 §17.5.4 ResolvePluralRange, steps 1–3.\n* Specification: https://tc39.es/ecma402/#sec-resolvepluralrange\n* https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/pluralrules.html#L356-L358\n*\n* @param pluralRules - An initialized PluralRules object\n* @param x - Mathematical value for the range start\n* @param y - Mathematical value for the range end\n* @returns The plural category for the range (zero, one, two, few, many, or other)\n*/\nexport function ResolvePluralRange(pluralRules, x, y, { getInternalSlots, PluralRuleSelect, PluralRuleSelectRange }) {\n\t// ResolvePluralRange rejects NaN but permits either infinity.\n\t// ECMA-402 §17.5.4 ResolvePluralRange, steps 1–3.\n\t// https://tc39.es/ecma402/#sec-resolvepluralrange\n\t// https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/pluralrules.html#L356-L358\n\tif (x.isNaN() || y.isNaN()) {\n\t\tthrow new RangeError(\"selectRange requires start and end values not to be NaN\");\n\t}\n\t// Validation: Assert that pluralRules has been initialized\n\tconst internalSlots = getInternalSlots(pluralRules);\n\tinvariant(Type(internalSlots) === \"Object\", \"pluralRules has to be an object\");\n\tinvariant(\"initializedPluralRules\" in internalSlots, \"pluralrules must be initialized\");\n\t// 2. Let xp be ResolvePlural(pluralRules, x).\n\t// Note: ResolvePlural returns a Record with [[FormattedString]] and [[PluralCategory]]\n\tconst xp = ResolvePluralInternal(pluralRules, x, {\n\t\tgetInternalSlots,\n\t\tPluralRuleSelect\n\t});\n\t// 3. Let yp be ResolvePlural(pluralRules, y).\n\tconst yp = ResolvePluralInternal(pluralRules, y, {\n\t\tgetInternalSlots,\n\t\tPluralRuleSelect\n\t});\n\t// 4. If xp.[[FormattedString]] is yp.[[FormattedString]], then\n\t// a. Return xp.[[PluralCategory]].\n\t// Note: When the formatted strings are identical (e.g., \"1\" and \"1\"), the values are\n\t// effectively the same, so we return the plural category of the start value.\n\tif (xp.formattedString === yp.formattedString) {\n\t\treturn xp.pluralCategory;\n\t}\n\t// 5. Let locale be pluralRules.[[Locale]].\n\t// 6. Let type be pluralRules.[[Type]].\n\tconst { locale, type } = internalSlots;\n\t// 7. Let notation be pluralRules.[[Notation]].\n\t// 8. Let compactDisplay be pluralRules.[[CompactDisplay]].\n\t// Note: notation and compactDisplay are not yet implemented for PluralRules polyfill.\n\t// When implemented, these would affect how the range is formatted and thus which\n\t// plural rules apply (see c/e operand support).\n\t// 9. Return PluralRuleSelectRange(locale, type, notation, compactDisplay, xp.[[PluralCategory]], yp.[[PluralCategory]]).\n\t// Note: PluralRuleSelectRange is implementation-defined and uses CLDR plural range data\n\t// to determine the appropriate plural category for a range based on the start and end categories.\n\t// Example: In English, \"one\" to \"other\" → \"other\" (e.g., \"1-2 items\")\n\treturn PluralRuleSelectRange(locale, type, xp.pluralCategory, yp.pluralCategory);\n}\n","// Type-only circular import\n// eslint-disable-next-line import/no-cycle\nimport type {PluralRules} from '#packages/intl-pluralrules/index.js'\nimport {type PluralRulesInternal} from '#packages/intl-pluralrules/index.js'\n\nconst internalSlotMap = new WeakMap<PluralRules, PluralRulesInternal>()\n\nexport default function getInternalSlots(x: PluralRules): PluralRulesInternal {\n let internalSlots = internalSlotMap.get(x)\n if (!internalSlots) {\n internalSlots = Object.create(null) as PluralRulesInternal\n internalSlotMap.set(x, internalSlots)\n }\n return internalSlots\n}\n","import {registerLocaleData} from '#packages/ecma402-abstract/registerLocaleData.js'\nimport {CanonicalizeLocaleList} from '#packages/ecma402-abstract/CanonicalizeLocaleList.js'\nimport {SupportedLocales} from '#packages/ecma402-abstract/SupportedLocales.js'\nimport {ToIntlMathematicalValue} from '#packages/ecma402-abstract/ToIntlMathematicalValue.js'\nimport {type NumberFormatDigitInternalSlots} from '#packages/ecma402-abstract/types/number.js'\nimport {\n type CompactExponentData,\n type LDMLPluralRule,\n type PluralRulesData,\n type PluralRulesLocaleData,\n} from '#packages/ecma402-abstract/types/plural-rules.js'\nimport {InitializePluralRules} from '#packages/ecma402-abstract/PluralRules/InitializePluralRules.js'\nimport {ResolvePlural} from '#packages/ecma402-abstract/PluralRules/ResolvePlural.js'\nimport {ResolvePluralRange} from '#packages/ecma402-abstract/PluralRules/ResolvePluralRange.js'\nimport getInternalSlots from '#packages/intl-pluralrules/get_internal_slots.js'\n\n/**\n * Type augmentation for Intl.PluralRules\n *\n * ECMA-402 Spec: selectRange method (Intl.PluralRules.prototype.selectRange)\n * https://tc39.es/ecma402/#sec-intl.pluralrules.prototype.selectrange\n *\n * ECMA-402 notation and compactDisplay options\n * Mirrors Intl.NumberFormat notation option for proper plural selection with compact numbers\n */\ndeclare global {\n namespace Intl {\n interface PluralRules {\n // ECMA-402 Spec: selectRange method\n selectRange(start: number | bigint, end: number | bigint): LDMLPluralRule\n }\n interface PluralRulesOptions {\n // ECMA-402 §17.1.1 Intl.PluralRules, steps 9–13.\n // https://tc39.es/ecma402/#sec-intl.pluralrules\n // https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/pluralrules.html#L29-L34\n notation?: 'standard' | 'scientific' | 'engineering' | 'compact'\n // Only reported in resolvedOptions when notation is compact.\n compactDisplay?: 'short' | 'long'\n }\n }\n}\n\nfunction validateInstance(instance: any, method: string) {\n if (!(instance instanceof PluralRules)) {\n throw new TypeError(\n `Method Intl.PluralRules.prototype.${method} called on incompatible receiver ${String(\n instance\n )}`\n )\n }\n}\n\nexport interface PluralRulesInternal extends NumberFormatDigitInternalSlots {\n initializedPluralRules: boolean\n locale: string\n type: 'cardinal' | 'ordinal'\n notation: 'standard' | 'scientific' | 'engineering' | 'compact'\n compactDisplay?: 'short' | 'long'\n compactExponents?: CompactExponentData\n}\n\n/**\n * https://tc39.es/ecma402/#sec-pluralruleselect\n */\nfunction PluralRuleSelect(\n locale: string,\n type: 'cardinal' | 'ordinal',\n decimalString: string,\n exponent: number\n): LDMLPluralRule {\n return PluralRules.localeData[locale].fn(\n decimalString,\n type === 'ordinal',\n exponent\n )\n}\n\n/**\n * PluralRuleSelectRange ( locale, type, notation, compactDisplay, start, end )\n *\n * Implementation-defined abstract operation that determines the plural category for a range\n * by consulting CLDR plural range data. Each locale defines how different combinations of\n * start and end plural categories map to a range plural category.\n *\n * Examples from CLDR:\n * - English: \"one\" + \"other\" → \"other\" (e.g., \"1-2 items\")\n * - French: \"one\" + \"one\" → \"one\" (e.g., \"0-1 vue\")\n * - Arabic: \"few\" + \"many\" → \"many\" (e.g., complex range rules)\n *\n * The spec allows this to be implementation-defined, and we use CLDR supplemental data\n * from pluralRanges.json which provides explicit mappings for each locale.\n *\n * @param locale - BCP 47 locale identifier\n * @param type - \"cardinal\" or \"ordinal\"\n * @param xp - Start plural category\n * @param yp - End plural category\n * @returns The plural category for the range\n */\nfunction PluralRuleSelectRange(\n locale: string,\n type: 'cardinal' | 'ordinal',\n xp: LDMLPluralRule,\n yp: LDMLPluralRule\n): LDMLPluralRule {\n const localeData = PluralRules.localeData[locale]\n if (!localeData || !localeData.pluralRanges) {\n // Fallback: If no range data is available, return the end category.\n // This is a reasonable default as the end value often determines the plural form.\n return yp\n }\n\n // Construct lookup key: \"start_end\" (e.g., \"one_other\", \"few_many\")\n const key = `${xp}_${yp}` as const\n\n // Select the appropriate range data based on type (cardinal vs ordinal)\n const rangeData =\n type === 'ordinal'\n ? localeData.pluralRanges.ordinal\n : localeData.pluralRanges.cardinal\n\n // Look up the result, falling back to end category if not found\n return rangeData?.[key] ?? yp\n}\n\nexport class PluralRules {\n constructor(locales?: string | string[], options?: Intl.PluralRulesOptions) {\n // test262/test/intl402/RelativeTimeFormat/constructor/constructor/newtarget-undefined.js\n // Cannot use `new.target` bc of IE11 & TS transpiles it to something else\n const newTarget =\n this && this instanceof PluralRules ? this.constructor : void 0\n if (!newTarget) {\n throw new TypeError(\"Intl.PluralRules must be called with 'new'\")\n }\n return InitializePluralRules(this, locales, options, {\n availableLocales: PluralRules.availableLocales,\n relevantExtensionKeys: PluralRules.relevantExtensionKeys,\n localeData: PluralRules.localeData,\n getDefaultLocale: PluralRules.getDefaultLocale,\n getInternalSlots,\n })\n }\n public resolvedOptions(): Intl.ResolvedPluralRulesOptions {\n validateInstance(this, 'resolvedOptions')\n // Ordinary result object and property order follow the resolved-options table.\n // ECMA-402 §17.3.2 Intl.PluralRules.prototype.resolvedOptions, steps 3–5, Table 32.\n // https://tc39.es/ecma402/#sec-intl.pluralrules.prototype.resolvedoptions\n // https://github.com/tc39/ecma402/blob/b1c961988b9a07894b1dc3dc2b5626ea48387d61/spec/pluralrules.html#L114-L126\n const opts: Record<string, any> = {}\n const internalSlots = getInternalSlots(this)\n opts.locale = internalSlots.locale\n opts.type = internalSlots.type\n ;(\n [\n 'notation',\n 'compactDisplay',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n ] as Array<keyof PluralRulesInternal>\n ).forEach(field => {\n const val = internalSlots[field]\n if (val !== undefined) {\n opts[field] = val\n }\n })\n\n const categories =\n PluralRules.localeData[internalSlots.locale].categories[\n internalSlots.type\n ]\n opts.pluralCategories = [\n 'zero',\n 'one',\n 'two',\n 'few',\n 'many',\n 'other',\n ].filter(category => categories.includes(category))\n for (const field of [\n 'roundingIncrement',\n 'roundingMode',\n 'roundingPriority',\n 'trailingZeroDisplay',\n ] as const) {\n opts[field] = internalSlots[field]\n }\n return opts as Intl.ResolvedPluralRulesOptions\n }\n\n public select(val: number | bigint): LDMLPluralRule {\n validateInstance(this, 'select')\n // Use ToIntlMathematicalValue which handles bigint per ECMA-402\n // https://tc39.es/ecma402/#sec-intl.pluralrules.prototype.select\n const n = ToIntlMathematicalValue(val)\n return ResolvePlural(this, n, {getInternalSlots, PluralRuleSelect})\n }\n /**\n * Intl.PluralRules.prototype.selectRange ( start, end )\n *\n * Returns a string indicating which plural rule applies to a range of numbers.\n * This is useful for formatting ranges like \"1-2 items\" vs \"2-3 items\" where\n * different languages have different plural rules for ranges.\n *\n * Specification: https://tc39.es/ecma402/#sec-intl.pluralrules.prototype.selectrange\n *\n * @param start - The start value of the range (number or bigint)\n * @param end - The end value of the range (number or bigint)\n * @returns The plural category for the range (zero, one, two, few, many, or other)\n *\n * @example\n * const pr = new Intl.PluralRules('en');\n * pr.selectRange(1, 2); // \"other\" (English: \"1-2 items\")\n * pr.selectRange(1, 1); // \"one\" (same value: \"1 item\")\n *\n * @example\n * const prFr = new Intl.PluralRules('fr');\n * prFr.selectRange(0, 1); // \"one\" (French: \"0-1 vue\")\n * prFr.selectRange(1, 2); // \"other\" (French: \"1-2 vues\")\n *\n * @example\n * // BigInt support (spec-compliant, but Chrome has a bug as of early 2025)\n * pr.selectRange(BigInt(1), BigInt(2)); // \"other\"\n *\n * @throws {TypeError} If start or end is undefined\n * @throws {RangeError} If start or end converts to NaN\n *\n * @note Chrome's native implementation (as of early 2025) has a bug where it throws\n * \"Cannot convert a BigInt value to a number\" when using BigInt arguments. This is\n * a browser bug - the spec requires BigInt support. This polyfill handles BigInt correctly.\n */\n public selectRange(\n start: number | bigint,\n end: number | bigint\n ): LDMLPluralRule {\n validateInstance(this, 'selectRange')\n // Spec: https://tc39.es/ecma402/#sec-intl.pluralrules.prototype.selectrange\n\n // 1. Let pr be the this value.\n // 2. Perform ? RequireInternalSlot(pr, [[InitializedPluralRules]]).\n // (Validation is done by validateInstance above)\n\n // 3. If start is undefined or end is undefined, throw a TypeError exception.\n if (start === undefined || end === undefined) {\n throw new TypeError('selectRange requires both start and end arguments')\n }\n\n // 4. Let x be ? ToIntlMathematicalValue(start).\n const x = ToIntlMathematicalValue(start)\n\n // 5. Let y be ? ToIntlMathematicalValue(end).\n const y = ToIntlMathematicalValue(end)\n\n // 6. Return ? ResolvePluralRange(pr, x, y).\n return ResolvePluralRange(this, x, y, {\n getInternalSlots,\n PluralRuleSelect,\n PluralRuleSelectRange,\n })\n }\n toString() {\n return '[object Intl.PluralRules]'\n }\n public static supportedLocalesOf(\n locales?: string | string[],\n options?: Pick<Intl.PluralRulesOptions, 'localeMatcher'>\n ): string[] {\n return SupportedLocales(\n PluralRules.availableLocales,\n CanonicalizeLocaleList(locales),\n options\n )\n }\n public static __addLocaleData(...data: PluralRulesLocaleData[]): void {\n for (const {data: d, locale} of data) {\n registerLocaleData(\n locale,\n d,\n PluralRules.localeData,\n PluralRules.availableLocales\n )\n if (!PluralRules.__defaultLocale) {\n PluralRules.__defaultLocale = locale\n }\n }\n }\n static localeData: Record<string, PluralRulesData> = {}\n static availableLocales: Set<string> = new Set<string>()\n static __defaultLocale = ''\n static getDefaultLocale(): string {\n return PluralRules.__defaultLocale\n }\n static relevantExtensionKeys: never[] = []\n public static polyfilled = true\n}\n\ntry {\n // IE11 does not have Symbol\n if (typeof Symbol !== 'undefined') {\n Object.defineProperty(PluralRules.prototype, Symbol.toStringTag, {\n value: 'Intl.PluralRules',\n writable: false,\n enumerable: false,\n configurable: true,\n })\n }\n\n try {\n // https://github.com/tc39/test262/blob/master/test/intl402/PluralRules/length.js\n Object.defineProperty(PluralRules, 'length', {\n value: 0,\n writable: false,\n enumerable: false,\n configurable: true,\n })\n } catch {\n // IE 11 sets Function.prototype.length to be non-configurable which will cause the\n // above Object.defineProperty to throw an error.\n }\n // https://github.com/tc39/test262/blob/master/test/intl402/RelativeTimeFormat/constructor/length.js\n Object.defineProperty(PluralRules.prototype.constructor, 'length', {\n value: 0,\n writable: false,\n enumerable: false,\n configurable: true,\n })\n // https://github.com/tc39/test262/blob/master/test/intl402/RelativeTimeFormat/constructor/supportedLocalesOf/length.js\n Object.defineProperty(PluralRules.supportedLocalesOf, 'length', {\n value: 1,\n writable: false,\n enumerable: false,\n configurable: true,\n })\n Object.defineProperty(PluralRules, 'name', {\n value: 'PluralRules',\n writable: false,\n enumerable: false,\n configurable: true,\n })\n} catch {\n // Meta fixes for test262\n}\n"],"ignoreList":[0,12],"mappings":"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"}