@jesec/flood 0.0.0-master.83e789c → 0.0.0-master.84305da
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.
- package/CHANGELOG.md +710 -103
- package/README.md +126 -46
- package/SECURITY.md +27 -0
- package/dist/assets/icon_128x128.png +0 -0
- package/dist/assets/icon_192x192.png +0 -0
- package/dist/assets/icon_256x256.png +0 -0
- package/dist/assets/icon_384x384.png +0 -0
- package/dist/assets/icon_512x512.png +0 -0
- package/dist/assets/icon_96x96.png +0 -0
- package/dist/assets/icon_maskable.png +0 -0
- package/dist/assets/icon_maskable_180x180.png +0 -0
- package/dist/assets/index.html +1 -1
- package/dist/assets/manifest.json +35 -7
- package/dist/assets/static/css/main.968c780bfc4b52a705a5.css +2 -0
- package/dist/assets/static/css/main.968c780bfc4b52a705a5.css.map +1 -0
- package/dist/assets/static/js/179.43c61c39.chunk.js +2 -0
- package/dist/assets/static/js/179.43c61c39.chunk.js.map +1 -0
- package/dist/assets/static/js/525.57b74c72.chunk.js +2 -0
- package/dist/assets/static/js/525.57b74c72.chunk.js.map +1 -0
- package/dist/assets/static/js/579.c74a7ebb.chunk.js +2 -0
- package/dist/assets/static/js/579.c74a7ebb.chunk.js.map +1 -0
- package/dist/assets/static/js/704.2754d905.chunk.js +2 -0
- package/dist/assets/static/js/704.2754d905.chunk.js.map +1 -0
- package/dist/assets/static/js/flag0.390f4d80.chunk.js +2 -0
- package/dist/assets/static/js/flag0.390f4d80.chunk.js.map +1 -0
- package/dist/assets/static/js/flag1.c2493006.chunk.js +1 -0
- package/dist/assets/static/js/flag2.55e1234c.chunk.js +1 -0
- package/dist/assets/static/js/flag3.f007a894.chunk.js +1 -0
- package/dist/assets/static/js/i18n0.ec6ce9de.chunk.js +2 -0
- package/dist/assets/static/js/i18n0.ec6ce9de.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n1.024a1e0a.chunk.js +2 -0
- package/dist/assets/static/js/i18n1.024a1e0a.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n10.b180a8fe.chunk.js +2 -0
- package/dist/assets/static/js/i18n10.b180a8fe.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n11.cc9e4457.chunk.js +2 -0
- package/dist/assets/static/js/i18n11.cc9e4457.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n12.434bfc84.chunk.js +2 -0
- package/dist/assets/static/js/i18n12.434bfc84.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n13.4e1bcc7d.chunk.js +2 -0
- package/dist/assets/static/js/i18n13.4e1bcc7d.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n14.bd0e0339.chunk.js +2 -0
- package/dist/assets/static/js/i18n14.bd0e0339.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n15.9bccd290.chunk.js +2 -0
- package/dist/assets/static/js/i18n15.9bccd290.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n16.72597f50.chunk.js +2 -0
- package/dist/assets/static/js/i18n16.72597f50.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n17.a512a8ea.chunk.js +2 -0
- package/dist/assets/static/js/i18n17.a512a8ea.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n18.7f743233.chunk.js +2 -0
- package/dist/assets/static/js/i18n18.7f743233.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n19.39cd469a.chunk.js +2 -0
- package/dist/assets/static/js/i18n19.39cd469a.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n2.79e0d92e.chunk.js +2 -0
- package/dist/assets/static/js/i18n2.79e0d92e.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n20.3abdb6e8.chunk.js +2 -0
- package/dist/assets/static/js/i18n20.3abdb6e8.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n21.50abaf1d.chunk.js +2 -0
- package/dist/assets/static/js/i18n21.50abaf1d.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n22.1b255305.chunk.js +2 -0
- package/dist/assets/static/js/i18n22.1b255305.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n23.bed06736.chunk.js +2 -0
- package/dist/assets/static/js/i18n23.bed06736.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n24.3c9dd350.chunk.js +2 -0
- package/dist/assets/static/js/i18n24.3c9dd350.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n25.bd8904ad.chunk.js +2 -0
- package/dist/assets/static/js/i18n25.bd8904ad.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n26.6b4d29ff.chunk.js +2 -0
- package/dist/assets/static/js/i18n26.6b4d29ff.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n27.aef61718.chunk.js +2 -0
- package/dist/assets/static/js/i18n27.aef61718.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n28.c7adecad.chunk.js +2 -0
- package/dist/assets/static/js/i18n28.c7adecad.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n3.0dd26c81.chunk.js +2 -0
- package/dist/assets/static/js/i18n3.0dd26c81.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n4.aa48660a.chunk.js +2 -0
- package/dist/assets/static/js/i18n4.aa48660a.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n5.5d0467c6.chunk.js +2 -0
- package/dist/assets/static/js/i18n5.5d0467c6.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n6.95586fce.chunk.js +2 -0
- package/dist/assets/static/js/i18n6.95586fce.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n8.c41df595.chunk.js +2 -0
- package/dist/assets/static/js/i18n8.c41df595.chunk.js.map +1 -0
- package/dist/assets/static/js/i18n9.7a446f59.chunk.js +2 -0
- package/dist/assets/static/js/i18n9.7a446f59.chunk.js.map +1 -0
- package/dist/assets/static/js/main.8378636b.js +2 -0
- package/dist/assets/static/js/main.8378636b.js.map +1 -0
- package/dist/assets/static/media/ad.1b24595d.png +0 -0
- package/dist/assets/static/media/ae.4dd8f55e.png +0 -0
- package/dist/assets/static/media/af.4ce660eb.png +0 -0
- package/dist/assets/static/media/ag.fd9409e4.png +0 -0
- package/dist/assets/static/media/al.a297aacf.png +0 -0
- package/dist/assets/static/media/am.c84ee0cf.png +0 -0
- package/dist/assets/static/media/ao.a7c9214e.png +0 -0
- package/dist/assets/static/media/ar.7e57ef92.png +0 -0
- package/dist/assets/static/media/at.5aa9728a.png +0 -0
- package/dist/assets/static/media/au.155b51d8.png +0 -0
- package/dist/assets/static/media/az.63afef5b.png +0 -0
- package/dist/assets/static/media/ba.5ce8f273.png +0 -0
- package/dist/assets/static/media/bb.f369fc62.png +0 -0
- package/dist/assets/static/media/bd.516278fc.png +0 -0
- package/dist/assets/static/media/be.08ec4a8d.png +0 -0
- package/dist/assets/static/media/bf.50bfcb31.png +0 -0
- package/dist/assets/static/media/bg.d9346b96.png +0 -0
- package/dist/assets/static/media/bh.f06d5914.png +0 -0
- package/dist/assets/static/media/bi.4923e3a3.png +0 -0
- package/dist/assets/static/media/bj.019fa79b.png +0 -0
- package/dist/assets/static/media/bn.077671e2.png +0 -0
- package/dist/assets/static/media/bo.8fb15fc6.png +0 -0
- package/dist/assets/static/media/br.ec051f0c.png +0 -0
- package/dist/assets/static/media/bs.a74a126f.png +0 -0
- package/dist/assets/static/media/bt.4217b804.png +0 -0
- package/dist/assets/static/media/bw.21fe1567.png +0 -0
- package/dist/assets/static/media/by.d247fe16.png +0 -0
- package/dist/assets/static/media/bz.98ec59f6.png +0 -0
- package/dist/assets/static/media/ca.25743e11.png +0 -0
- package/dist/assets/static/media/cd.a5bfda53.png +0 -0
- package/dist/assets/static/media/cf.de7d5d92.png +0 -0
- package/dist/assets/static/media/cg.a47b626b.png +0 -0
- package/dist/assets/static/media/ch.445f47a1.png +0 -0
- package/dist/assets/static/media/ci.a6009c5b.png +0 -0
- package/dist/assets/static/media/cl.de1d715e.png +0 -0
- package/dist/assets/static/media/cm.3ce8a86a.png +0 -0
- package/dist/assets/static/media/cn.e6a26073.png +0 -0
- package/dist/assets/static/media/co.e9244faa.png +0 -0
- package/dist/assets/static/media/cr.c895e035.png +0 -0
- package/dist/assets/static/media/cu.e486c055.png +0 -0
- package/dist/assets/static/media/cv.a9585acf.png +0 -0
- package/dist/assets/static/media/cw.df13039d.png +0 -0
- package/dist/assets/static/media/cy.b31f43a9.png +0 -0
- package/dist/assets/static/media/cz.8ec5948b.png +0 -0
- package/dist/assets/static/media/de.d12f391a.png +0 -0
- package/dist/assets/static/media/dj.154c3580.png +0 -0
- package/dist/assets/static/media/dk.da382fe2.png +0 -0
- package/dist/assets/static/media/dm.f452e6cd.png +0 -0
- package/dist/assets/static/media/do.c6bd7637.png +0 -0
- package/dist/assets/static/media/dz.672a69c0.png +0 -0
- package/dist/assets/static/media/ec.349d9bd7.png +0 -0
- package/dist/assets/static/media/ee.2396205f.png +0 -0
- package/dist/assets/static/media/eg.ccbf3f45.png +0 -0
- package/dist/assets/static/media/eh.af65674a.png +0 -0
- package/dist/assets/static/media/er.21afb638.png +0 -0
- package/dist/assets/static/media/es.2a6eaee4.png +0 -0
- package/dist/assets/static/media/et.8beb65c8.png +0 -0
- package/dist/assets/static/media/fi.331f70fd.png +0 -0
- package/dist/assets/static/media/fj.7724d800.png +0 -0
- package/dist/assets/static/media/fm.eeaf71e9.png +0 -0
- package/dist/assets/static/media/fr.5d5ab008.png +0 -0
- package/dist/assets/static/media/ga.77ed474c.png +0 -0
- package/dist/assets/static/media/gb.e00065bf.png +0 -0
- package/dist/assets/static/media/gd.b4522267.png +0 -0
- package/dist/assets/static/media/ge.91a7654d.png +0 -0
- package/dist/assets/static/media/gh.4759f92f.png +0 -0
- package/dist/assets/static/media/gm.81cd9f75.png +0 -0
- package/dist/assets/static/media/gn.9f3d376e.png +0 -0
- package/dist/assets/static/media/gq.e8ad58be.png +0 -0
- package/dist/assets/static/media/gr.26f3ac0b.png +0 -0
- package/dist/assets/static/media/gt.9d81c52e.png +0 -0
- package/dist/assets/static/media/gw.dc906982.png +0 -0
- package/dist/assets/static/media/gy.a4f62b6c.png +0 -0
- package/dist/assets/static/media/hk.56555c3f.png +0 -0
- package/dist/assets/static/media/hn.64ee6aad.png +0 -0
- package/dist/assets/static/media/hr.93ebecd3.png +0 -0
- package/dist/assets/static/media/ht.42ca1596.png +0 -0
- package/dist/assets/static/media/hu.bb30f05d.png +0 -0
- package/dist/assets/static/media/id.2cb49f2d.png +0 -0
- package/dist/assets/static/media/ie.b4dd1f19.png +0 -0
- package/dist/assets/static/media/il.cd1d1faf.png +0 -0
- package/dist/assets/static/media/in.2df03847.png +0 -0
- package/dist/assets/static/media/iq.a9b670ab.png +0 -0
- package/dist/assets/static/media/ir.9a3de085.png +0 -0
- package/dist/assets/static/media/is.d88f4fc9.png +0 -0
- package/dist/assets/static/media/it.b73713e3.png +0 -0
- package/dist/assets/static/media/je.0353f56a.png +0 -0
- package/dist/assets/static/media/jm.20330ef4.png +0 -0
- package/dist/assets/static/media/jo.eb66f1d1.png +0 -0
- package/dist/assets/static/media/jp.63e382ae.png +0 -0
- package/dist/assets/static/media/ke.ab2e43b8.png +0 -0
- package/dist/assets/static/media/kg.2c47c2af.png +0 -0
- package/dist/assets/static/media/kh.4732c810.png +0 -0
- package/dist/assets/static/media/ki.5fba09fd.png +0 -0
- package/dist/assets/static/media/km.7bbed3e9.png +0 -0
- package/dist/assets/static/media/kn.a9595a16.png +0 -0
- package/dist/assets/static/media/kp.8a4dc30a.png +0 -0
- package/dist/assets/static/media/kr.5273be1d.png +0 -0
- package/dist/assets/static/media/ks.99f78645.png +0 -0
- package/dist/assets/static/media/kw.af3521bc.png +0 -0
- package/dist/assets/static/media/kz.ea47ef79.png +0 -0
- package/dist/assets/static/media/la.78a598d7.png +0 -0
- package/dist/assets/static/media/lb.7a7c15a9.png +0 -0
- package/dist/assets/static/media/lc.6083a4ff.png +0 -0
- package/dist/assets/static/media/li.61c564a4.png +0 -0
- package/dist/assets/static/media/lk.6fa85802.png +0 -0
- package/dist/assets/static/media/lr.8063f7db.png +0 -0
- package/dist/assets/static/media/ls.901ddb71.png +0 -0
- package/dist/assets/static/media/lt.9209ace3.png +0 -0
- package/dist/assets/static/media/lu.c9872bc1.png +0 -0
- package/dist/assets/static/media/lv.7bcacf0a.png +0 -0
- package/dist/assets/static/media/ly.2830aa63.png +0 -0
- package/dist/assets/static/media/ma.ce5f697b.png +0 -0
- package/dist/assets/static/media/mc.4bd5d57a.png +0 -0
- package/dist/assets/static/media/md.fb4b5bdf.png +0 -0
- package/dist/assets/static/media/me.1f1d1772.png +0 -0
- package/dist/assets/static/media/mg.89101bd2.png +0 -0
- package/dist/assets/static/media/mh.ff11dff7.png +0 -0
- package/dist/assets/static/media/mk.8420e604.png +0 -0
- package/dist/assets/static/media/ml.4db47c66.png +0 -0
- package/dist/assets/static/media/mm.8e4ac30a.png +0 -0
- package/dist/assets/static/media/mn.dc1daa04.png +0 -0
- package/dist/assets/static/media/mr.7cbca6d0.png +0 -0
- package/dist/assets/static/media/mt.28a4b863.png +0 -0
- package/dist/assets/static/media/mu.d93db6c7.png +0 -0
- package/dist/assets/static/media/mv.7d026bf1.png +0 -0
- package/dist/assets/static/media/mw.960cd4fb.png +0 -0
- package/dist/assets/static/media/mx.39b78eb2.png +0 -0
- package/dist/assets/static/media/my.916a8392.png +0 -0
- package/dist/assets/static/media/mz.facb4ea3.png +0 -0
- package/dist/assets/static/media/na.472666a9.png +0 -0
- package/dist/assets/static/media/ne.d774701f.png +0 -0
- package/dist/assets/static/media/ng.7b06a49f.png +0 -0
- package/dist/assets/static/media/ni.7140131c.png +0 -0
- package/dist/assets/static/media/nl.4c04aa96.png +0 -0
- package/dist/assets/static/media/no.c19eb00d.png +0 -0
- package/dist/assets/static/media/np.54fb4f2f.png +0 -0
- package/dist/assets/static/media/nr.7527cc38.png +0 -0
- package/dist/assets/static/media/nz.738be05b.png +0 -0
- package/dist/assets/static/media/om.b25e0a17.png +0 -0
- package/dist/assets/static/media/pa.b28a9059.png +0 -0
- package/dist/assets/static/media/pe.c1fc1d96.png +0 -0
- package/dist/assets/static/media/pg.380115db.png +0 -0
- package/dist/assets/static/media/ph.02199ddc.png +0 -0
- package/dist/assets/static/media/pk.094f9517.png +0 -0
- package/dist/assets/static/media/pl.41521283.png +0 -0
- package/dist/assets/static/media/pt.1f82dc04.png +0 -0
- package/dist/assets/static/media/pw.a26c2316.png +0 -0
- package/dist/assets/static/media/py.926c65ed.png +0 -0
- package/dist/assets/static/media/qa.c6a3c20e.png +0 -0
- package/dist/assets/static/media/ro.a36876c9.png +0 -0
- package/dist/assets/static/media/rs.c6629de8.png +0 -0
- package/dist/assets/static/media/ru.a9b948c1.png +0 -0
- package/dist/assets/static/media/rw.e8aecba0.png +0 -0
- package/dist/assets/static/media/sa.859049c8.png +0 -0
- package/dist/assets/static/media/sb.4ad27b27.png +0 -0
- package/dist/assets/static/media/sc.3293efde.png +0 -0
- package/dist/assets/static/media/sd.19c94faa.png +0 -0
- package/dist/assets/static/media/se.195b3f93.png +0 -0
- package/dist/assets/static/media/sg.19d81907.png +0 -0
- package/dist/assets/static/media/si.367c5443.png +0 -0
- package/dist/assets/static/media/sk.4e5b8a39.png +0 -0
- package/dist/assets/static/media/sl.4b174b1c.png +0 -0
- package/dist/assets/static/media/sm.2cba3dac.png +0 -0
- package/dist/assets/static/media/sn.a4c1041d.png +0 -0
- package/dist/assets/static/media/so.b455e3bf.png +0 -0
- package/dist/assets/static/media/sr.5adc1c00.png +0 -0
- package/dist/assets/static/media/st.5ae44155.png +0 -0
- package/dist/assets/static/media/sv.43aa6cdf.png +0 -0
- package/dist/assets/static/media/sy.0fbd24f7.png +0 -0
- package/dist/assets/static/media/sz.ff204912.png +0 -0
- package/dist/assets/static/media/td.c7aa2a4e.png +0 -0
- package/dist/assets/static/media/tg.857c3bec.png +0 -0
- package/dist/assets/static/media/th.683600c7.png +0 -0
- package/dist/assets/static/media/tj.d20c5570.png +0 -0
- package/dist/assets/static/media/tl.5edd8ea7.png +0 -0
- package/dist/assets/static/media/tm.15960215.png +0 -0
- package/dist/assets/static/media/tn.40df718e.png +0 -0
- package/dist/assets/static/media/to.c3b054df.png +0 -0
- package/dist/assets/static/media/tr.adeace6d.png +0 -0
- package/dist/assets/static/media/tt.839bd7f1.png +0 -0
- package/dist/assets/static/media/tv.628cae3e.png +0 -0
- package/dist/assets/static/media/tw.4e885914.png +0 -0
- package/dist/assets/static/media/tz.b2f0dc37.png +0 -0
- package/dist/assets/static/media/ua.6b103313.png +0 -0
- package/dist/assets/static/media/ug.c84042fc.png +0 -0
- package/dist/assets/static/media/us.8523c31d.png +0 -0
- package/dist/assets/static/media/uy.a943f85e.png +0 -0
- package/dist/assets/static/media/uz.25552673.png +0 -0
- package/dist/assets/static/media/va.a29e1b53.png +0 -0
- package/dist/assets/static/media/vc.7480bd37.png +0 -0
- package/dist/assets/static/media/ve.fd4273c2.png +0 -0
- package/dist/assets/static/media/vn.7d2eff1b.png +0 -0
- package/dist/assets/static/media/vu.48b64cf3.png +0 -0
- package/dist/assets/static/media/ws.f3d9202f.png +0 -0
- package/dist/assets/static/media/ye.311a0e50.png +0 -0
- package/dist/assets/static/media/za.090a856f.png +0 -0
- package/dist/assets/static/media/zm.8371e197.png +0 -0
- package/dist/assets/static/media/zw.a6809447.png +0 -0
- package/dist/index.js +131685 -0
- package/package.json +222 -151
- package/dist/assets/android-chrome-192x192.png +0 -0
- package/dist/assets/android-chrome-512x512.png +0 -0
- package/dist/assets/apple-touch-icon.png +0 -0
- package/dist/assets/asset-manifest.json +0 -57
- package/dist/assets/browserconfig.xml +0 -9
- package/dist/assets/favicon-16x16.png +0 -0
- package/dist/assets/favicon-32x32.png +0 -0
- package/dist/assets/mstile-144x144.png +0 -0
- package/dist/assets/mstile-150x150.png +0 -0
- package/dist/assets/mstile-310x150.png +0 -0
- package/dist/assets/mstile-310x310.png +0 -0
- package/dist/assets/mstile-70x70.png +0 -0
- package/dist/assets/static/css/main.e5c088b6b6f679087a82.css +0 -1
- package/dist/assets/static/js/0.0a556a75.chunk.js +0 -1
- package/dist/assets/static/js/1.14dd2d0c.chunk.js +0 -1
- package/dist/assets/static/js/10.d4eef924.chunk.js +0 -1
- package/dist/assets/static/js/11.53cd515d.chunk.js +0 -1
- package/dist/assets/static/js/12.ce0f8a4e.chunk.js +0 -1
- package/dist/assets/static/js/13.9ca96920.chunk.js +0 -1
- package/dist/assets/static/js/14.588e3d0c.chunk.js +0 -1
- package/dist/assets/static/js/15.f28d64ab.chunk.js +0 -1
- package/dist/assets/static/js/16.53dd87df.chunk.js +0 -1
- package/dist/assets/static/js/17.b764e125.chunk.js +0 -1
- package/dist/assets/static/js/18.9b7e5575.chunk.js +0 -1
- package/dist/assets/static/js/2.8fafb9ff.chunk.js +0 -1
- package/dist/assets/static/js/20.64809e35.chunk.js +0 -1
- package/dist/assets/static/js/21.f3058669.chunk.js +0 -1
- package/dist/assets/static/js/22.dcfb4883.chunk.js +0 -1
- package/dist/assets/static/js/23.840a4201.chunk.js +0 -1
- package/dist/assets/static/js/24.0a173a0d.chunk.js +0 -1
- package/dist/assets/static/js/25.e4c2217e.chunk.js +0 -1
- package/dist/assets/static/js/26.5f03f1a3.chunk.js +0 -1
- package/dist/assets/static/js/27.5127408d.chunk.js +0 -1
- package/dist/assets/static/js/28.ebac4379.chunk.js +0 -1
- package/dist/assets/static/js/29.de46849d.chunk.js +0 -1
- package/dist/assets/static/js/3.c219b8a8.chunk.js +0 -1
- package/dist/assets/static/js/30.ff543e93.chunk.js +0 -1
- package/dist/assets/static/js/31.1f1ad44f.chunk.js +0 -1
- package/dist/assets/static/js/32.b4c28098.chunk.js +0 -1
- package/dist/assets/static/js/33.3febffaf.chunk.js +0 -1
- package/dist/assets/static/js/34.2e764e96.chunk.js +0 -1
- package/dist/assets/static/js/35.92c40bb9.chunk.js +0 -1
- package/dist/assets/static/js/36.27afe215.chunk.js +0 -1
- package/dist/assets/static/js/37.6d94e34b.chunk.js +0 -1
- package/dist/assets/static/js/38.107b5aa9.chunk.js +0 -1
- package/dist/assets/static/js/39.112b724b.chunk.js +0 -1
- package/dist/assets/static/js/4.19d26f13.chunk.js +0 -1
- package/dist/assets/static/js/40.44aa79f5.chunk.js +0 -1
- package/dist/assets/static/js/41.fb69cc30.chunk.js +0 -1
- package/dist/assets/static/js/42.906cc1ff.chunk.js +0 -1
- package/dist/assets/static/js/43.135e1560.chunk.js +0 -1
- package/dist/assets/static/js/44.a3d23bab.chunk.js +0 -1
- package/dist/assets/static/js/45.f025dffe.chunk.js +0 -1
- package/dist/assets/static/js/46.3ea25c9e.chunk.js +0 -1
- package/dist/assets/static/js/47.5a213255.chunk.js +0 -1
- package/dist/assets/static/js/48.ce4bfe23.chunk.js +0 -1
- package/dist/assets/static/js/49.857650de.chunk.js +0 -1
- package/dist/assets/static/js/5.dc5232a2.chunk.js +0 -1
- package/dist/assets/static/js/50.2a5fd558.chunk.js +0 -1
- package/dist/assets/static/js/6.210f5d48.chunk.js +0 -1
- package/dist/assets/static/js/7.29af7904.chunk.js +0 -1
- package/dist/assets/static/js/8.efcd70d8.chunk.js +0 -1
- package/dist/assets/static/js/9.23e24017.chunk.js +0 -1
- package/dist/assets/static/js/main.c8ce60de.js +0 -1
- package/dist/assets/static/media/ABOUT.d02918c9.md +0 -13
- package/dist/assets/static/media/Roboto-500.64e69384.woff +0 -0
- package/dist/assets/static/media/Roboto-500.7f8f0146.eot +0 -0
- package/dist/assets/static/media/Roboto-500.916656a2.ttf +0 -0
- package/dist/assets/static/media/Roboto-500.abd255e8.svg +0 -305
- package/dist/assets/static/media/Roboto-700.8d11d1e1.ttf +0 -0
- package/dist/assets/static/media/Roboto-700.9c9c164e.svg +0 -310
- package/dist/assets/static/media/Roboto-700.c65552c8.eot +0 -0
- package/dist/assets/static/media/Roboto-700.ee82bda2.woff +0 -0
- package/dist/assets/static/media/Roboto-700italic.1dc5bfed.eot +0 -0
- package/dist/assets/static/media/Roboto-700italic.686da014.woff +0 -0
- package/dist/assets/static/media/Roboto-700italic.896656dc.ttf +0 -0
- package/dist/assets/static/media/Roboto-700italic.cacb9681.svg +0 -325
- package/dist/assets/static/media/Roboto-italic.09ed2f27.svg +0 -323
- package/dist/assets/static/media/Roboto-italic.c1421604.woff +0 -0
- package/dist/assets/static/media/Roboto-italic.c38ecad2.ttf +0 -0
- package/dist/assets/static/media/Roboto-italic.f7677a07.eot +0 -0
- package/dist/assets/static/media/Roboto-regular.5107f918.eot +0 -0
- package/dist/assets/static/media/Roboto-regular.6a307cf2.woff +0 -0
- package/dist/assets/static/media/Roboto-regular.81dc9b21.ttf +0 -0
- package/dist/assets/static/media/Roboto-regular.bcf2ba9e.svg +0 -308
- package/dist/config.js +0 -173
- package/dist/server/app.js +0 -79
- package/dist/server/bin/enforce-prerequisites.js +0 -55
- package/dist/server/bin/migrations/fix-is-admin-flag.js +0 -41
- package/dist/server/bin/migrations/per-user-rtorrent-instances.js +0 -67
- package/dist/server/bin/migrations/run.js +0 -10
- package/dist/server/bin/start.js +0 -18
- package/dist/server/bin/web-server.js +0 -94
- package/dist/server/config/passport.js +0 -32
- package/dist/server/constants/clientGatewayServiceEvents.js +0 -15
- package/dist/server/constants/diskUsageServiceEvents.js +0 -8
- package/dist/server/constants/fileListPropMap.js +0 -29
- package/dist/server/constants/historyServiceEvents.js +0 -18
- package/dist/server/constants/notificationServiceEvents.js +0 -8
- package/dist/server/constants/taxonomyServiceEvents.js +0 -8
- package/dist/server/constants/torrentListPropMap.js +0 -200
- package/dist/server/constants/torrentServiceEvents.js +0 -8
- package/dist/server/constants/transferSummaryPropMap.js +0 -28
- package/dist/server/middleware/appendUserServices.js +0 -10
- package/dist/server/middleware/booleanCoerce.js +0 -9
- package/dist/server/middleware/clientActivityStream.js +0 -124
- package/dist/server/middleware/eventStream.js +0 -25
- package/dist/server/middleware/requireAdmin.js +0 -8
- package/dist/server/models/ClientRequest.js +0 -310
- package/dist/server/models/Feed.js +0 -65
- package/dist/server/models/Filesystem.js +0 -44
- package/dist/server/models/HistoryEra.js +0 -168
- package/dist/server/models/ServerEvent.js +0 -27
- package/dist/server/models/TemporaryStorage.js +0 -20
- package/dist/server/models/Users.js +0 -160
- package/dist/server/models/client.js +0 -363
- package/dist/server/models/settings.js +0 -119
- package/dist/server/routes/api.js +0 -69
- package/dist/server/routes/auth.js +0 -184
- package/dist/server/routes/client.js +0 -101
- package/dist/server/services/BaseService.js +0 -24
- package/dist/server/services/clientGatewayService.js +0 -220
- package/dist/server/services/clientRequestManager.js +0 -76
- package/dist/server/services/diskUsageService.js +0 -133
- package/dist/server/services/feedService.js +0 -290
- package/dist/server/services/historyService.js +0 -181
- package/dist/server/services/index.js +0 -108
- package/dist/server/services/notificationService.js +0 -109
- package/dist/server/services/taxonomyService.js +0 -107
- package/dist/server/services/torrentService.js +0 -235
- package/dist/server/util/ajaxUtil.js +0 -19
- package/dist/server/util/clientResponseUtil.js +0 -99
- package/dist/server/util/fileUtil.js +0 -45
- package/dist/server/util/mediainfo.js +0 -34
- package/dist/server/util/methodCallUtil.js +0 -22
- package/dist/server/util/numberUtils.js +0 -7
- package/dist/server/util/rTorrentDeserializer.js +0 -104
- package/dist/server/util/rTorrentPropMap.js +0 -13
- package/dist/server/util/scgiUtil.js +0 -36
- package/dist/server/util/torrentFileUtil.js +0 -23
- package/dist/shared/config/paths.js +0 -41
- package/dist/shared/constants/clientSettingsMap.js +0 -53
- package/dist/shared/constants/diffActionTypes.js +0 -6
- package/dist/shared/constants/historySnapshotTypes.js +0 -11
- package/dist/shared/constants/serverEventTypes.js +0 -18
- package/dist/shared/constants/torrentFilePropsMap.js +0 -6
- package/dist/shared/constants/torrentPeerPropsMap.js +0 -32
- package/dist/shared/constants/torrentStatusMap.js +0 -17
- package/dist/shared/constants/torrentTrackerPropsMap.js +0 -6
- package/dist/shared/util/formatUtil.js +0 -33
- package/dist/shared/util/objectUtil.js +0 -56
- package/dist/shared/util/regEx.js +0 -7
- /package/dist/assets/{safari-pinned-tab.svg → icon.svg} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/js/main.8378636b.js","mappings":"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5B,EAAAA,GAEnC,kBAAIC,GACF,OAAOx5B,KAAKM,cAAcm5B,mBAAmBC,OAAO,CAACC,GAAc50B,KAAI60B,cACrE,MAAM12B,EAAQoN,OAAOtQ,KAAKM,cAAcu5B,wBAAwB90B,IAEhE,OAAK60B,GAAWtpB,OAAOwpB,MAAM52B,GACpBy2B,EAGFA,EAAcz2B,GACpB,EACL,CAEApD,WAAAA,IACEC,EAAAA,EAAAA,IAAmBC,KACrB,CAEA+5B,gCAAAA,CAAiCC,GAC/Bh6B,KAAKm5B,YAAYC,uBAAwB,EACzCp5B,KAAKs5B,eAAiBU,CACxB,CAEAC,0BAAAA,CAA2BD,GACzBh6B,KAAKm5B,YAAYE,sBAAuB,EACxCl5B,OAAOW,OAAOd,KAAKM,cAAe05B,EACpC,CAEAE,iBAAAA,CAAkBF,GAChB75B,OAAOW,OAAOd,KAAKM,cAAe05B,EACpC,CAEAG,kBAAAA,CAAmBH,GACU,MAAvBh6B,KAAKs5B,gBAITn5B,OAAOW,OAAOd,KAAKs5B,eAAgBU,EACrC,E,iBCtDF,IAAI34B,EAAM,CACT,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,GACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,GACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,IACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,KAED,WAAY,CACX,KACA,MAGF,SAAS+4B,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEl5B,EAAKg5B,GAC9B,OAAOpX,QAAQpG,UAAU5Y,KAAK,KAC7B,IAAI1B,EAAI,IAAImN,MAAM,uBAAyB2qB,EAAM,KAEjD,MADA93B,EAAE2O,KAAO,mBACH3O,IAIR,IAAIi4B,EAAMn5B,EAAIg5B,GAAMt1B,EAAKy1B,EAAI,GAC7B,OAAOF,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","sources":["webpack/runtime/chunk loaded","webpack/runtime/create fake namespace object","webpack/runtime/load script","node_modules/lodash/isObjectLike.js","node_modules/react-use/esm/useEvent.js","client/src/javascript/util/filterTorrents.ts","client/src/javascript/util/selectTorrents.ts","client/src/javascript/util/sortTorrents.ts","client/src/javascript/stores/TorrentStore.ts","node_modules/lodash/_getRawTag.js","client/src/javascript/ui/icons/Active.tsx","client/src/javascript/ui/icons/Add.tsx","client/src/javascript/ui/icons/AddMini.tsx","client/src/javascript/ui/icons/All.tsx","client/src/javascript/ui/icons/Arrow.tsx","client/src/javascript/ui/icons/CalendarFinished.tsx","client/src/javascript/ui/icons/CalendarCreated.tsx","client/src/javascript/ui/icons/Calendar.tsx","client/src/javascript/ui/icons/Checkmark.tsx","client/src/javascript/ui/icons/CheckmarkThick.tsx","client/src/javascript/ui/icons/Chevron.tsx","client/src/javascript/ui/icons/ChevronLeft.tsx","client/src/javascript/ui/icons/ChevronRight.tsx","client/src/javascript/ui/icons/Circle.tsx","client/src/javascript/ui/icons/CircleCheckmark.tsx","client/src/javascript/ui/icons/CircleExclamation.tsx","client/src/javascript/ui/icons/Clipboard.tsx","client/src/javascript/ui/icons/Clock.tsx","client/src/javascript/ui/icons/Close.tsx","client/src/javascript/ui/icons/Completed.tsx","client/src/javascript/ui/icons/CountryFlag.tsx","client/src/javascript/ui/icons/DetailNotAvailable.tsx","client/src/javascript/ui/icons/Disk.tsx","client/src/javascript/ui/icons/DiskFlat.tsx","client/src/javascript/ui/icons/Download.tsx","client/src/javascript/ui/icons/DownloadSmall.tsx","client/src/javascript/ui/icons/DownloadThick.tsx","client/src/javascript/ui/icons/Edit.tsx","client/src/javascript/ui/icons/Error.tsx","client/src/javascript/ui/icons/Feed.tsx","client/src/javascript/ui/icons/File.tsx","client/src/javascript/ui/icons/Files.tsx","client/src/javascript/ui/icons/FolderClosedOutlined.tsx","client/src/javascript/ui/icons/FolderClosedSolid.tsx","client/src/javascript/ui/icons/FolderOpenSolid.tsx","client/src/javascript/ui/icons/Hash.tsx","client/src/javascript/ui/icons/Inactive.tsx","client/src/javascript/ui/icons/InfinityIcon.tsx","client/src/javascript/ui/icons/Limits.tsx","client/src/javascript/ui/icons/LoadingIndicatorDots.tsx","client/src/javascript/ui/icons/Lock.tsx","client/src/javascript/ui/icons/Logout.tsx","client/src/javascript/ui/icons/Menu.tsx","client/src/javascript/ui/icons/Notification.tsx","client/src/javascript/ui/icons/Peers.tsx","client/src/javascript/ui/icons/Radar.tsx","client/src/javascript/ui/icons/Ratio.tsx","client/src/javascript/ui/icons/Remove.tsx","client/src/javascript/ui/icons/RemoveMini.tsx","client/src/javascript/ui/icons/Search.tsx","client/src/javascript/ui/icons/Seeds.tsx","client/src/javascript/ui/icons/Settings.tsx","client/src/javascript/ui/icons/Spinner.tsx","client/src/javascript/ui/icons/Start.tsx","client/src/javascript/ui/icons/Stop.tsx","client/src/javascript/ui/icons/ThemeSwitch.tsx","client/src/javascript/ui/icons/TrackerMessage.tsx","client/src/javascript/ui/icons/Upload.tsx","client/src/javascript/ui/icons/UploadSmall.tsx","client/src/javascript/ui/icons/UploadThick.tsx","node_modules/react-dom/index.js","node_modules/react/cjs/react-jsx-runtime.production.min.js","node_modules/axios/lib/helpers/bind.js","node_modules/axios/lib/utils.js","node_modules/axios/lib/core/AxiosError.js","node_modules/axios/lib/helpers/toFormData.js","node_modules/axios/lib/helpers/AxiosURLSearchParams.js","node_modules/axios/lib/helpers/buildURL.js","node_modules/axios/lib/core/InterceptorManager.js","node_modules/axios/lib/defaults/transitional.js","node_modules/axios/lib/platform/browser/index.js","node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","node_modules/axios/lib/platform/browser/classes/FormData.js","node_modules/axios/lib/platform/browser/classes/Blob.js","node_modules/axios/lib/platform/common/utils.js","node_modules/axios/lib/platform/index.js","node_modules/axios/lib/helpers/formDataToJSON.js","node_modules/axios/lib/defaults/index.js","node_modules/axios/lib/helpers/toURLEncodedForm.js","node_modules/axios/lib/helpers/parseHeaders.js","node_modules/axios/lib/core/AxiosHeaders.js","node_modules/axios/lib/core/transformData.js","node_modules/axios/lib/cancel/isCancel.js","node_modules/axios/lib/cancel/CanceledError.js","node_modules/axios/lib/core/settle.js","node_modules/axios/lib/helpers/speedometer.js","node_modules/axios/lib/helpers/throttle.js","node_modules/axios/lib/helpers/progressEventReducer.js","node_modules/axios/lib/helpers/isURLSameOrigin.js","node_modules/axios/lib/helpers/cookies.js","node_modules/axios/lib/core/buildFullPath.js","node_modules/axios/lib/helpers/isAbsoluteURL.js","node_modules/axios/lib/helpers/combineURLs.js","node_modules/axios/lib/core/mergeConfig.js","node_modules/axios/lib/helpers/resolveConfig.js","node_modules/axios/lib/adapters/xhr.js","node_modules/axios/lib/helpers/parseProtocol.js","node_modules/axios/lib/helpers/composeSignals.js","node_modules/axios/lib/helpers/trackStream.js","node_modules/axios/lib/adapters/fetch.js","node_modules/axios/lib/adapters/adapters.js","node_modules/axios/lib/helpers/null.js","node_modules/axios/lib/core/dispatchRequest.js","node_modules/axios/lib/env/data.js","node_modules/axios/lib/helpers/validator.js","node_modules/axios/lib/core/Axios.js","node_modules/axios/lib/cancel/CancelToken.js","node_modules/axios/lib/helpers/HttpStatusCode.js","node_modules/axios/lib/axios.js","node_modules/axios/lib/helpers/spread.js","node_modules/axios/lib/helpers/isAxiosError.js","client/src/javascript/i18n/strings/en.json?raw-lingui","node_modules/lodash/_Symbol.js","node_modules/react-use/esm/useKey.js","client/src/javascript/components/general/Tooltip.tsx","client/src/javascript/stores/SettingStore.ts","client/src/images/flags|lazy|/^/.//.*/.png$/|chunkName: flag|groupOptions: {}|namespace object","node_modules/react-dom/cjs/react-dom.production.min.js","node_modules/lodash/_baseGetTag.js","client/src/javascript/util/termMatch.ts","node_modules/react-use/esm/misc/util.js","node_modules/lodash/toString.js","node_modules/mobx-react-lite/es/utils/assertEnvironment.js","node_modules/mobx-react-lite/es/utils/observerBatching.js","node_modules/mobx-react-lite/es/utils/printDebugValue.js","node_modules/mobx-react-lite/es/staticRendering.js","node_modules/mobx-react-lite/es/utils/UniversalFinalizationRegistry.js","node_modules/mobx-react-lite/es/observer.js","node_modules/mobx-react-lite/es/utils/observerFinalizationRegistry.js","node_modules/mobx-react-lite/es/useObserver.js","node_modules/mobx-react-lite/es/index.js","shared/constants/defaultFloodSettings.ts","node_modules/lodash/isSymbol.js","client/src/javascript/constants/Languages.ts","client/src/javascript/stores/TransferDataStore.ts","node_modules/react-use/esm/useEffectOnce.js","node_modules/lodash/_freeGlobal.js","node_modules/react/jsx-runtime.js","client/src/javascript/stores/UIStore.ts","node_modules/lodash/_arrayMap.js","node_modules/fast-json-patch/module/helpers.mjs","node_modules/fast-json-patch/module/core.mjs","node_modules/fast-json-patch/module/duplex.mjs","node_modules/fast-json-patch/index.mjs","node_modules/react/cjs/react.production.min.js","node_modules/react-dom/client.js","client/src/javascript/components/sidebar/LogoutButton.tsx","node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","node_modules/@remix-run/router/dist/router.js","client/src/javascript/actions/AuthActions.ts","client/src/javascript/stores/NotificationStore.ts","client/src/javascript/stores/ClientStatusStore.ts","node_modules/lodash/isArray.js","node_modules/dom-helpers/esm/removeClass.js","node_modules/react-transition-group/esm/config.js","node_modules/react-transition-group/esm/utils/reflow.js","node_modules/react-transition-group/esm/Transition.js","node_modules/react-transition-group/esm/CSSTransition.js","node_modules/dom-helpers/esm/addClass.js","node_modules/dom-helpers/esm/hasClass.js","node_modules/react/index.js","client/src/javascript/ui/components/FadeIn.tsx","client/src/javascript/ui/components/FormElementAddon.tsx","client/src/javascript/ui/components/FormRowItem.tsx","client/src/javascript/ui/components/Button.tsx","client/src/javascript/ui/components/util/forms.tsx","client/src/javascript/ui/components/ToggleInput.tsx","client/src/javascript/ui/components/Checkbox.tsx","client/src/javascript/ui/components/Overlay.tsx","client/src/javascript/ui/components/ContextMenu.tsx","client/src/javascript/ui/components/Form.tsx","client/src/javascript/ui/components/FormError.tsx","client/src/javascript/ui/components/FormGroup.tsx","client/src/javascript/ui/components/FormRow.tsx","client/src/javascript/ui/components/FormRowGroup.tsx","client/src/javascript/ui/components/Panel.tsx","client/src/javascript/ui/components/PanelContent.tsx","client/src/javascript/ui/components/PanelFooter.tsx","client/src/javascript/ui/components/PanelHeader.tsx","client/src/javascript/ui/components/Portal.tsx","client/src/javascript/ui/components/Radio.tsx","client/src/javascript/ui/components/Select.tsx","client/src/javascript/ui/components/ContextMenuItem.tsx","client/src/javascript/ui/components/SelectItem.tsx","client/src/javascript/ui/components/Textbox.tsx","client/src/javascript/stores/DiskUsageStore.ts","node_modules/classnames/index.js","node_modules/lodash/uniqueId.js","client/src/javascript/stores/AuthStore.ts","node_modules/react-transition-group/esm/TransitionGroupContext.js","|/^/.//.*/.json$/|referencedExports: [[\"messages\"]]|chunkName: i18n|groupOptions: {}|namespace object","client/src/javascript/util/size.ts","node_modules/scheduler/cjs/scheduler.production.min.js","client/src/javascript/stores/AlertStore.ts","node_modules/lodash/_baseToString.js","node_modules/lodash.memoize/index.js","node_modules/react-router/dist/index.js","node_modules/mobx/dist/mobx.esm.js","shared/schema/constants/ClientConnectionSettings.ts","client/src/javascript/components/general/connection-settings/DelugeConnectionSettingsForm.tsx","client/src/javascript/components/general/connection-settings/QBittorrentConnectionSettingsForm.tsx","client/src/javascript/components/general/connection-settings/RTorrentConnectionSettingsForm.tsx","client/src/javascript/components/general/connection-settings/TransmissionConnectionSettingsForm.tsx","client/src/javascript/components/general/connection-settings/ClientConnectionSettingsForm.tsx","node_modules/react-use/esm/usePrevious.js","node_modules/@babel/runtime/helpers/esm/extends.js","client/src/javascript/ui/icons/LoadingRing.tsx","client/src/javascript/styled-system/helpers.mjs","client/src/javascript/styled-system/css/conditions.mjs","client/src/javascript/styled-system/css/css.mjs","client/src/javascript/actions/ClientActions.ts","node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","client/src/javascript/actions/FloodActions.ts","client/src/javascript/actions/SettingActions.ts","shared/schema/constants/Auth.ts","node_modules/@lingui/react/dist/shared/react.31c3b5fa.mjs","node_modules/@lingui/react/dist/index.mjs","node_modules/lodash/_root.js","node_modules/lodash/_objectToString.js","shared/constants/torrentStatusMap.ts","client/src/javascript/stores/TorrentFilterStore.ts","client/src/javascript/stores/ConfigStore.ts","node_modules/fast-sort/dist/sort.mjs","node_modules/use-sync-external-store/shim/index.js","node_modules/scheduler/index.js","webpack/bootstrap","webpack/runtime/chunk prefetch function","webpack/runtime/compat get default export","webpack/runtime/define property getters","webpack/runtime/ensure chunk","webpack/runtime/get javascript chunk filename","webpack/runtime/get mini-css chunk filename","webpack/runtime/global","webpack/runtime/hasOwnProperty shorthand","webpack/runtime/make namespace object","webpack/runtime/node module decorator","webpack/runtime/publicPath","webpack/runtime/jsonp chunk loading","webpack/runtime/startup prefetch","node_modules/react-router-dom/dist/index.js","node_modules/react-use/esm/useMedia.js","client/src/javascript/components/general/ClientConnectionInterruption.tsx","client/src/javascript/components/general/WindowTitle.tsx","client/src/javascript/components/general/LoadingIndicator.tsx","client/src/javascript/components/general/LoadingOverlay.tsx","client/src/javascript/components/AppWrapper.tsx","node_modules/@lingui/core/dist/index.mjs","node_modules/get-user-locale/dist/esm/index.js","client/src/javascript/util/detectLocale.ts","client/src/javascript/i18n/languages.tsx","shared/util/stringUtil.ts","client/src/javascript/app.tsx"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"@jesec/flood:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","import { useEffect } from 'react';\nimport { isBrowser, off, on } from './misc/util';\nvar defaultTarget = isBrowser ? window : null;\nvar isListenerType1 = function (target) {\n return !!target.addEventListener;\n};\nvar isListenerType2 = function (target) {\n return !!target.on;\n};\nvar useEvent = function (name, handler, target, options) {\n if (target === void 0) { target = defaultTarget; }\n useEffect(function () {\n if (!handler) {\n return;\n }\n if (!target) {\n return;\n }\n if (isListenerType1(target)) {\n on(target, name, handler, options);\n }\n else if (isListenerType2(target)) {\n target.on(name, handler, options);\n }\n return function () {\n if (isListenerType1(target)) {\n off(target, name, handler, options);\n }\n else if (isListenerType2(target)) {\n target.off(name, handler, options);\n }\n };\n }, [name, handler, target, JSON.stringify(options)]);\n};\nexport default useEvent;\n","import type {TorrentProperties} from '@shared/types/Torrent';\nimport type {TorrentStatus} from '@shared/constants/torrentStatusMap';\n\ninterface LocationFilter {\n type: 'location';\n filter: string[];\n}\n\ninterface StatusFilter {\n type: 'status';\n filter: TorrentStatus[];\n}\n\ninterface TrackerFilter {\n type: 'tracker';\n filter: string[];\n}\n\ninterface TagFilter {\n type: 'tag';\n filter: string[];\n}\n\nfunction filterTorrents(\n torrentList: TorrentProperties[],\n opts: LocationFilter | StatusFilter | TrackerFilter | TagFilter,\n): TorrentProperties[] {\n if (opts.filter.length) {\n if (opts.type === 'location') {\n return torrentList.filter((torrent) => opts.filter.some((directory) => torrent.directory.startsWith(directory)));\n }\n\n if (opts.type === 'status') {\n return torrentList.filter((torrent) => torrent.status.some((status) => opts.filter.includes(status)));\n }\n\n if (opts.type === 'tracker') {\n return torrentList.filter((torrent) =>\n torrent.trackerURIs.some((uri) => {\n // Extract domain from tracker URI to match taxonomy computation\n let domain = uri;\n try {\n if (uri.includes('://')) {\n const url = new URL(uri);\n domain = url.hostname;\n } else {\n domain = uri.split('/')[0].split(':')[0];\n }\n } catch {\n // Use as-is if parsing fails\n }\n return opts.filter.includes(domain);\n }),\n );\n }\n\n if (opts.type === 'tag') {\n const includeUntagged = opts.filter.includes('untagged');\n return torrentList.filter(\n (torrent) =>\n (includeUntagged && torrent.tags.length === 0) || torrent.tags.some((tag) => opts.filter.includes(tag)),\n );\n }\n }\n\n return torrentList;\n}\n\nexport default filterTorrents;\n","import {KeyboardEvent, MouseEvent, TouchEvent} from 'react';\n\nimport type {TorrentProperties} from '@shared/types/Torrent';\n\ninterface SelectTorrentOptions {\n event: KeyboardEvent | MouseEvent | TouchEvent;\n hash: string;\n selectedTorrents: Array<string>;\n torrentList: Array<TorrentProperties>;\n}\n\nfunction selectTorrents(options: SelectTorrentOptions): string[] {\n if (options.event.shiftKey) {\n if (options.selectedTorrents.length) {\n const lastHash = options.selectedTorrents[options.selectedTorrents.length - 1];\n let currentHashIndex = -1;\n let lastHashIndex = -1;\n\n // TODO: wtf? Let's just use findIndex or indexOf...\n // get the index of the last selected torrent.\n if (\n !options.torrentList.some((torrent, index) => {\n if (torrent.hash === lastHash) {\n lastHashIndex = index;\n return true;\n }\n\n return false;\n })\n ) {\n return options.selectedTorrents;\n }\n\n // TODO: wtf? Let's just use findIndex or indexOf...\n // get the index of the newly selected torrent.\n if (\n !options.torrentList.some((torrent, index) => {\n if (torrent.hash === options.hash) {\n currentHashIndex = index;\n return true;\n }\n\n return false;\n })\n ) {\n return options.selectedTorrents;\n }\n\n // from the previously selected index to the currently selected index,\n // add all torrent hashes to the selected array.\n // if the newly selcted hash is larger than the previous, start from\n // the newly selected hash and work backwards. otherwise go forwards.\n let increment = 1;\n\n if (currentHashIndex > lastHashIndex) {\n increment = -1;\n }\n\n while (currentHashIndex !== lastHashIndex) {\n const foundHash = options.torrentList[currentHashIndex].hash;\n // if the torrent isn't already selected, add the hash to the array.\n if (options.selectedTorrents.indexOf(foundHash) === -1) {\n options.selectedTorrents.push(foundHash);\n }\n currentHashIndex += increment;\n }\n } else {\n return [options.hash];\n }\n } else if (options.event.metaKey || options.event.ctrlKey) {\n const hashPosition = options.selectedTorrents.indexOf(options.hash);\n if (hashPosition === -1) {\n // if the hash is not in the array, add it.\n options.selectedTorrents.push(options.hash);\n } else {\n // if the hash is in the array, remove it.\n options.selectedTorrents.splice(hashPosition, 1);\n }\n } else {\n // clicked torrent is only item in list.\n return [options.hash];\n }\n return options.selectedTorrents;\n}\n\nexport default selectTorrents;\n","import {sort} from 'fast-sort';\n\nimport type {FloodSettings} from '@shared/types/FloodSettings';\nimport type {TorrentProperties} from '@shared/types/Torrent';\n\ntype SortRule = {\n [direction in FloodSettings['sortTorrents']['direction']]:\n | keyof TorrentProperties\n | ((p: TorrentProperties) => unknown);\n};\n\nfunction sortTorrents(\n torrents: TorrentProperties[],\n sortBy: Readonly<FloodSettings['sortTorrents']>,\n): TorrentProperties[] {\n const {property} = sortBy;\n const sortRules: Array<SortRule> = [];\n\n switch (property) {\n case 'peers':\n case 'seeds':\n sortRules.push(\n {[sortBy.direction]: `${property}Connected`} as SortRule,\n {[sortBy.direction]: `${property}Total`} as SortRule,\n );\n break;\n case 'eta':\n sortRules.push({\n [sortBy.direction]: (p: TorrentProperties) => {\n if (p.eta === -1) {\n return Infinity;\n }\n return p.eta;\n },\n } as SortRule);\n break;\n case 'tags':\n sortRules.push({\n [sortBy.direction]: (p: TorrentProperties) => p[property].join(',').toLowerCase(),\n } as SortRule);\n break;\n case 'directory':\n case 'hash':\n case 'message':\n case 'name':\n // Those fields are strings. We want case-insensitive sorting.\n sortRules.push({\n [sortBy.direction]: (p: TorrentProperties) => p[property].toLowerCase(),\n } as SortRule);\n break;\n default:\n sortRules.push({[sortBy.direction]: property} as SortRule);\n break;\n }\n\n return sort(torrents).by(sortRules);\n}\n\nexport default sortTorrents;\n","import {applyPatch, Operation} from 'fast-json-patch';\nimport {makeAutoObservable} from 'mobx';\nimport type React from 'react';\n\nimport filterTorrents from '@client/util/filterTorrents';\nimport selectTorrents from '@client/util/selectTorrents';\nimport sortTorrents from '@client/util/sortTorrents';\nimport termMatch from '@client/util/termMatch';\n\nimport type {TorrentProperties, TorrentList} from '@shared/types/Torrent';\n\nimport SettingStore from './SettingStore';\nimport TorrentFilterStore from './TorrentFilterStore';\n\nclass TorrentStore {\n selectedTorrents: Array<string> = [];\n torrents: TorrentList = {};\n\n constructor() {\n makeAutoObservable(this);\n }\n\n get sortedTorrents(): Array<TorrentProperties> {\n return sortTorrents(Object.values(this.torrents), SettingStore.floodSettings.sortTorrents);\n }\n\n get filteredTorrents(): Array<TorrentProperties> {\n const {locationFilter, searchFilter, statusFilter, tagFilter, trackerFilter} = TorrentFilterStore;\n\n let filteredTorrents = Object.assign([], this.sortedTorrents) as Array<TorrentProperties>;\n\n if (locationFilter.length) {\n filteredTorrents = filterTorrents(filteredTorrents, {\n type: 'location',\n filter: locationFilter,\n });\n }\n\n if (searchFilter !== '') {\n filteredTorrents = termMatch(filteredTorrents, (properties) => properties.name, searchFilter);\n }\n\n if (statusFilter.length) {\n filteredTorrents = filterTorrents(filteredTorrents, {\n type: 'status',\n filter: statusFilter,\n });\n }\n\n if (tagFilter.length) {\n filteredTorrents = filterTorrents(filteredTorrents, {\n type: 'tag',\n filter: tagFilter,\n });\n }\n\n if (trackerFilter.length) {\n filteredTorrents = filterTorrents(filteredTorrents, {\n type: 'tracker',\n filter: trackerFilter,\n });\n }\n\n return filteredTorrents;\n }\n\n setSelectedTorrents({event, hash}: {event: React.KeyboardEvent | React.MouseEvent | React.TouchEvent; hash: string}) {\n this.selectedTorrents = selectTorrents({\n event,\n hash,\n selectedTorrents: this.selectedTorrents,\n torrentList: this.filteredTorrents,\n });\n }\n\n selectAllTorrents() {\n this.selectedTorrents = this.filteredTorrents.map((v) => v.hash);\n }\n\n handleTorrentListDiffChange(torrentListDiffs: Operation[]) {\n applyPatch(this.torrents, torrentListDiffs);\n }\n\n handleTorrentListFullUpdate(torrentList: TorrentList) {\n this.torrents = torrentList;\n }\n}\n\nexport default new TorrentStore();\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface ActiveProps {\n className?: string;\n}\n\nconst Active: FC<ActiveProps> = memo(({className}: ActiveProps = {}) => (\n <svg className={classnames('icon', 'icon--active', className)} viewBox=\"0 0 60 60\">\n <path d=\"M25.7,25.7H13v17.4H2.6L19.3,60L36,43.1H25.7V25.7z M40.7,0L24,16.9h10.3v17.4H47V16.9h10.3L40.7,0z\" />\n </svg>\n));\n\nexport default Active;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface AddProps {\n className?: string;\n}\n\nconst Add: FC<AddProps> = memo(({className}: AddProps = {}) => (\n <svg className={classnames('icon', 'icon--add', className)} viewBox=\"0 0 60 60\">\n <path d=\"M53.7 25.3h-19v-19h-9.4v19h-19v9.4h19v19h9.4v-19h19\" />\n </svg>\n));\n\nexport default Add;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface AddMiniProps {\n className?: string;\n}\n\nconst AddMini: FC<AddMiniProps> = memo(({className}: AddMiniProps = {}) => (\n <svg className={classnames('icon', 'icon--addmini', className)} viewBox=\"0 0 8 8\">\n <polygon points=\"8,3.5 4.5,3.5 4.5,0 3.5,0 3.5,3.5 0,3.5 0,4.5 3.5,4.5 3.5,8 4.5,8 4.5,4.5 8,4.5\" />\n </svg>\n));\n\nexport default AddMini;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface AllProps {\n className?: string;\n}\n\nconst All: FC<AllProps> = memo(({className}: AllProps = {}) => (\n <svg className={classnames('icon', 'icon--all', className)} viewBox=\"0 0 60 60\">\n <polygon points=\"52,20.6 48.6,14.7 33.4,24 33.4,8.7 26.6,8.7 26.6,24 11.4,14.7 8,20.6 23.4,30 8,39.4 11.4,45.3 26.6,36 26.6,51.3 33.4,51.3 33.4,36 48.6,45.3 52,39.4 36.6,30 \" />\n </svg>\n));\n\nexport default All;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface ArrowProps {\n className?: string;\n}\n\nconst Arrow: FC<ArrowProps> = memo(({className}: ArrowProps = {}) => (\n <svg className={classnames('icon', 'icon--arrow', className)} viewBox=\"0 0 60 60\">\n <path d=\"M25.78,42.22V1.16h8.43V42.22L48,27.77l6.1,5.83L30,58.84,5.87,33.6,12,27.77Z\" />\n </svg>\n));\n\nexport default Arrow;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface CalendarFinishedProps {\n className?: string;\n}\n\nconst CalendarFinished: FC<CalendarFinishedProps> = memo(({className}: CalendarFinishedProps = {}) => (\n <svg className={classnames('icon', 'icon--calendarFinished', className)} viewBox=\"0 0 60 60\">\n <path d=\"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z\" />\n </svg>\n));\n\nexport default CalendarFinished;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface CalendarCreatedProps {\n className?: string;\n}\n\nconst CalendarCreated: FC<CalendarCreatedProps> = memo(({className}: CalendarCreatedProps = {}) => (\n <svg className={classnames('icon', 'icon--calendar icon--calendar--created', className)} viewBox=\"0 0 60 60\">\n <path d=\"M48,9.39V1.15H36V9.39H24.1V1.15h-12V9.39H4V58.85H56V9.39ZM40,5.29h4v7.28H40Zm-23.93,0h4v7.28h-4Zm33.38,48H9.9V16.91H49.5Z\" />\n <polygon points=\"42.88 32 33 32 33 22.12 27 22.12 27 32 17.12 32 17.12 38 27 38 27 47.88 33 47.88 33 38 42.88 38 42.88 32\" />\n </svg>\n));\n\nexport default CalendarCreated;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface CalendarProps {\n className?: string;\n}\n\nconst Calendar: FC<CalendarProps> = memo(({className}: CalendarProps = {}) => (\n <svg className={classnames('icon', 'icon--calendar', className)} viewBox=\"0 0 60 60\">\n <path d=\"M48,9.39V1.15H36V9.39H24.1V1.15h-12V9.39H4V58.85H56V9.39ZM40,5.29h4v7.28H40Zm-23.93,0h4v7.28h-4Zm33.38,48H9.9V16.91H49.5Z\" />\n </svg>\n));\n\nexport default Calendar;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface CheckmarkProps {\n className?: string;\n}\n\nconst Checkmark: FC<CheckmarkProps> = memo(({className}: CheckmarkProps = {}) => (\n <svg\n className={classnames('icon', 'icon--checkmark', className)}\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.904 8.563a1.25 1.25 0 1 0-1.597 1.924l3.895 3.23a1.25 1.25 0 0 0 1.727-.125l6.777-7.525a1.25 1.25 0 1 0-1.858-1.673l-5.974 6.633-2.97-2.464z\"\n fillRule=\"nonzero\"\n />\n </svg>\n));\n\nexport default Checkmark;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface CheckmarkThickProps {\n className?: string;\n}\n\nconst CheckmarkThick: FC<CheckmarkThickProps> = memo(({className}: CheckmarkThickProps = {}) => (\n <svg className={classnames('icon', 'icon--checkmark', className)} viewBox=\"0 0 60 60\">\n <polygon points=\"55.5,18.6 46.1,8.7 24.4,31.5 13.9,20.4 4.5,30.3 24.4,51.3 24.4,51.3 24.4,51.3\" />\n </svg>\n));\n\nexport default CheckmarkThick;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface ChevronProps {\n className?: string;\n}\n\nconst Chevron: FC<ChevronProps> = memo(({className}: ChevronProps = {}) => (\n <svg\n className={classnames('icon', 'icon--chevron', className)}\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.193 6.631A1 1 0 0 0 3.733 8l5.199 5.549 5.376-5.536a1 1 0 0 0-1.435-1.394L8.958\n 10.65 5.193 6.631z\"\n fillRule=\"nonzero\"\n />\n </svg>\n));\n\nexport default Chevron;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface ChevronLeftProps {\n className?: string;\n}\n\nconst ChevronLeft: FC<ChevronLeftProps> = memo(({className}: ChevronLeftProps = {}) => (\n <svg className={classnames('icon', 'icon--chevron-left', className)} viewBox=\"0 0 60 60\">\n <polygon points=\"41.34 1.2 47.35 7.21 24.6 29.96 47.42 52.79 41.41 58.8 12.58 29.96 41.34 1.2\" />\n </svg>\n));\n\nexport default ChevronLeft;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface ChevronRightProps {\n className?: string;\n}\n\nconst ChevronRight: FC<ChevronRightProps> = memo(({className}: ChevronRightProps = {}) => (\n <svg className={classnames('icon', 'icon--chevron-right', className)} viewBox=\"0 0 60 60\">\n <polygon points=\"18.66 58.8 12.65 52.79 35.4 30.04 12.58 7.21 18.59 1.2 47.42 30.04 18.66 58.8\" />\n </svg>\n));\n\nexport default ChevronRight;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface CircleProps {\n className?: string;\n}\n\nconst Circle: FC<CircleProps> = memo(({className}: CircleProps = {}) => (\n <svg\n className={classnames('icon', 'icon--circle', className)}\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"9\" cy=\"9\" r=\"4\" />\n </svg>\n));\n\nexport default Circle;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface CircleCheckmarkProps {\n className?: string;\n}\n\nconst CircleCheckmark: FC<CircleCheckmarkProps> = memo(({className}: CircleCheckmarkProps = {}) => (\n <svg className={classnames('icon', 'icon--circle-checkmark', className)} viewBox=\"0 0 60 60\">\n <path fillOpacity=\"0.05\" d=\"M30,0A30,30,0,1,1,0,30,30,30,0,0,1,30,0Z\" />\n <path\n fillOpacity=\"0.2\"\n d=\"M30,0A30,30,0,1,0,60,30,30,30,0,0,0,30,0Zm0,56.47A26.47,26.47,0,1,1,56.47,30,26.47,26.47,0,0,1,30,56.47Z\"\n />\n <polygon points=\"43.93 19.51 27.64 35.46 19.07 27.07 16.5 29.58 27.64 40.5 46.5 22.03 43.93 19.51\" />\n </svg>\n));\n\nexport default CircleCheckmark;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface CircleExclamationProps {\n className?: string;\n}\n\nconst CircleExclamation: FC<CircleExclamationProps> = memo(({className}: CircleExclamationProps = {}) => (\n <svg className={classnames('icon', 'icon--circle-checkmark', className)} viewBox=\"0 0 60 60\">\n <path fillOpacity=\"0.05\" d=\"M30,0A30,30,0,1,1,0,30,30,30,0,0,1,30,0Z\" />\n <path\n fillOpacity=\"0.2\"\n d=\"M30,0A30,30,0,1,0,60,30,30,30,0,0,0,30,0Zm0,56.47A26.47,26.47,0,1,1,56.47,30,26.47,26.47,0,0,1,30,56.47Z\"\n />\n <path d=\"M30,39.18a3.12,3.12,0,0,1,2.26.83,3,3,0,0,1,0,4.21,3.48,3.48,0,0,1-4.5,0,2.79,2.79,0,0,1-.86-2.1A2.82,2.82,0,0,1,27.75,40,3.07,3.07,0,0,1,30,39.18Zm2.31-3H27.68L27,16.72H33Z\" />\n </svg>\n));\n\nexport default CircleExclamation;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface ClipboardProps {\n className?: string;\n}\n\nconst Clipboard: FC<ClipboardProps> = memo(({className}: ClipboardProps = {}) => (\n <svg className={classnames('icon', 'icon--clipboard', className)} viewBox=\"0 0 60 60\">\n <path d=\"M40.23,8.2H35.3v-2a2.46,2.46,0,0,0-2.47-2.47H27.91a2.47,2.47,0,0,0-2.47,2.47v2H20.51A2.47,2.47,0,0,0,18,10.66v4.27H42.7V10.66A2.47,2.47,0,0,0,40.23,8.2Z\" />\n <rect x=\"18.05\" y=\"31.07\" width=\"24.65\" height=\"5.19\" />\n <rect x=\"18.05\" y=\"20.69\" width=\"24.65\" height=\"5.19\" />\n <rect x=\"18.05\" y=\"41.45\" width=\"24.65\" height=\"5.19\" />\n <polygon points=\"43.93 11.47 43.93 13.94 47.63 13.94 47.63 53.38 13.12 53.38 13.12 13.94 16.81 13.94 16.81 11.47 10.65 11.47 10.65 55.85 50.1 55.85 50.1 11.47 43.93 11.47\" />\n </svg>\n));\n\nexport default Clipboard;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface ClockProps {\n className?: string;\n}\n\nconst Clock: FC<ClockProps> = memo(({className}: ClockProps = {}) => (\n <svg className={classnames('icon', 'icon--clock', className)} viewBox=\"0 0 60 60\">\n <path d=\"M30,6A24,24,0,0,1,47,47,24,24,0,0,1,13,13,23.85,23.85,0,0,1,30,6m0-6A30,30,0,1,0,51.21,8.79,29.91,29.91,0,0,0,30,0h0Z\" />\n <polygon points=\"26.85 46.91 21.18 44.09 28.58 29.21 17.93 22.93 21.14 17.48 36.88 26.75 26.85 46.91\" />\n </svg>\n));\n\nexport default Clock;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface CloseProps {\n className?: string;\n}\n\nconst Close: FC<CloseProps> = memo(({className}: CloseProps = {}) => (\n <svg className={classnames('icon', 'icon--close', className)} viewBox=\"0 0 60 60\">\n <polygon points=\"52.5 14.48 45.52 7.5 30 23.02 14.48 7.5 7.5 14.48 23.02 30 7.51 45.52 14.48 52.5 30 36.98 45.52 52.5 52.5 45.52 36.98 30 52.5 14.48\" />\n </svg>\n));\n\nexport default Close;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface CompletedProps {\n className?: string;\n}\n\nconst Completed: FC<CompletedProps> = memo(({className}: CompletedProps = {}) => (\n <svg className={classnames('icon', 'icon--completed', className)} viewBox=\"0 0 60 60\">\n <polygon points=\"55.5,18.6 46.1,8.7 24.4,31.5 13.9,20.4 4.5,30.3 24.4,51.3 24.4,51.3 24.4,51.3\" />\n </svg>\n));\n\nexport default Completed;\n","import {FC} from 'react';\n\nconst flagsCache: Record<string, string | null> = {};\n\nconst getFlag = (countryCode?: string): string | null => {\n if (countryCode == null) {\n return null;\n }\n\n if (flagsCache[countryCode] !== undefined) {\n return flagsCache[countryCode];\n }\n\n const loadFlag = async () => {\n let flag: string | null = null;\n await import(/* webpackChunkName: 'flag' */ `../../../images/flags/${countryCode.toLowerCase()}.png`)\n .then(\n ({default: image}: {default: string}) => {\n flag = image;\n },\n () => {\n flag = null;\n },\n )\n .finally(() => {\n flagsCache[countryCode] = flag;\n });\n return flag;\n };\n\n throw loadFlag();\n};\n\ninterface CountryFlagProps {\n countryCode: string;\n}\n\nconst CountryFlag: FC<CountryFlagProps> = ({countryCode}: CountryFlagProps) => {\n const flag = getFlag(countryCode);\n if (flag == null) {\n return null;\n }\n return <img alt={countryCode} title={countryCode} className=\"peers-list__flag__image\" src={flag} />;\n};\n\nexport default CountryFlag;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface DetailNotAvailableProps {\n className?: string;\n}\n\nconst DetailNotAvailable: FC<DetailNotAvailableProps> = memo(({className}: DetailNotAvailableProps = {}) => (\n <svg className={classnames('icon', 'icon--clock', className)} viewBox=\"0 0 60 60\">\n <rect y=\"26.63\" width=\"60\" height=\"6.75\" />\n </svg>\n));\n\nexport default DetailNotAvailable;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface DiskProps {\n className?: string;\n}\n\nconst Disk: FC<DiskProps> = memo(({className}: DiskProps = {}) => (\n <svg className={classnames('icon', 'icon--disk', className)} viewBox=\"0 0 60 60\">\n <path d=\"M40.57,42.43a3.11,3.11,0,1,0-3.11,3.11A3.12,3.12,0,0,0,40.57,42.43Zm9.95,0a3.11,3.11,0,1,0-3.11,3.11A3.12,3.12,0,0,0,50.51,42.43Zm4.35,6.22a1.28,1.28,0,0,1-1.24,1.24H6.38a1.28,1.28,0,0,1-1.24-1.24V36.22A1.28,1.28,0,0,1,6.38,35H53.62a1.28,1.28,0,0,1,1.24,1.24V48.65ZM7.08,30l6.1-18.73a1.77,1.77,0,0,1,1.63-1.17H45.19a1.77,1.77,0,0,1,1.63,1.17L52.92,30H7.08Zm52.76,6.22a9.28,9.28,0,0,0-.62-2.91L51.56,9.76a6.77,6.77,0,0,0-6.37-4.62H14.81A6.77,6.77,0,0,0,8.44,9.76L0.78,33.3a9.31,9.31,0,0,0-.62,2.91V48.65a6.23,6.23,0,0,0,6.22,6.22H53.62a6.24,6.24,0,0,0,6.22-6.22V36.22Z\" />\n </svg>\n));\n\nexport default Disk;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface DiskFlatProps {\n className?: string;\n}\n\nconst DiskFlat: FC<DiskFlatProps> = memo(({className}: DiskFlatProps = {}) => (\n <svg className={classnames('icon', 'icon--disk', className)} viewBox=\"0 0 60 60\">\n <polygon points=\"51.8,0 51.8,0 51.8,3.7 51.8,56.3 8.2,56.3 8.2,3.7 8.2,0 8.2,0 4.5,0 4.5,60.1 55.5,60.1 55.5,0 \t\" />\n <rect x=\"18.4\" y=\"8.9\" width=\"23.1\" height=\"3.8\" />\n <path\n d=\"M30,51.8c3.4,0,6.8-1.1,9.6-3.3L29.4,38.4l3.1-3.1l10.2,10.1c4.3-6.1,3.8-14.5-1.7-20c-3-3-7-4.5-11-4.5\n \t\ts-7.9,1.5-11,4.5C13,31.4,13,41.2,19,47.3C22.1,50.3,26,51.8,30,51.8z\"\n />\n <rect x=\"40\" y=\"0\" width=\"3.5\" height=\"3.8\" />\n <rect x=\"45.9\" y=\"0\" width=\"3.5\" height=\"3.8\" />\n <rect x=\"34.1\" y=\"0\" width=\"3.5\" height=\"3.8\" />\n <rect x=\"16.5\" y=\"0\" width=\"3.5\" height=\"3.8\" />\n <rect x=\"10.6\" y=\"0\" width=\"3.5\" height=\"3.8\" />\n <rect x=\"22.4\" y=\"0\" width=\"3.5\" height=\"3.8\" />\n <rect x=\"28.2\" y=\"0\" width=\"3.5\" height=\"3.8\" />\n </svg>\n));\n\nexport default DiskFlat;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface DownloadProps {\n className?: string;\n}\n\nconst Download: FC<DownloadProps> = memo(({className}: DownloadProps = {}) => (\n <svg className={classnames('icon', 'icon--download', className)} viewBox=\"0 0 60 60\">\n <rect x=\"28.2\" width=\"3.7\" height=\"55.5\" />\n <polygon points=\"30,60 11.8,32.7 14.9,30.7 30,53.3 45.1,30.7 48.2,32.7 \" />\n </svg>\n));\n\nexport default Download;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface DownloadSmallProps {\n className?: string;\n}\n\nconst DownloadSmall: FC<DownloadSmallProps> = memo(({className}: DownloadSmallProps = {}) => (\n <svg className={classnames('icon', 'icon--download-small', className)} viewBox=\"0 0 60 60\">\n <path d=\"M55.9,39.1l-8.8-6.4h-5.4l9.4,7.8h-9.8c-0.3,0-0.5,0.2-0.7,0.4l-2.3,6.7H21.7l-2.3-6.7 c-0.1-0.2-0.4-0.4-0.7-0.4H8.9l9.4-7.8h-5.4l-8.8,6.4C2.8,40,2,41.9,2.4,43.5l1.6,9.2c0.4,1.5,1.9,2.8,3.5,2.8h45.2 c1.6,0,3.1-1.3,3.5-2.8l1.6-9.2C58,41.9,57.2,40,55.9,39.1z M44.4,20.1h-8.9V4.5h-11v15.6h-8.9L30,34.5L44.4,20.1z\" />\n </svg>\n));\n\nexport default DownloadSmall;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface DownloadThickProps {\n className?: string;\n}\n\nconst DownloadThick: FC<DownloadThickProps> = memo(({className}: DownloadThickProps = {}) => (\n <svg className={classnames('icon', 'icon--download', className)} viewBox=\"0 0 60 60\">\n <polygon points=\"44.1,23 33,39.7 33,4.6 27,4.6 27,39.7 15.9,23 10.9,26.4 30,55 49.1,26.4 \" />\n </svg>\n));\n\nexport default DownloadThick;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface EditProps {\n className?: string;\n}\n\nconst Edit: FC<EditProps> = memo(({className}: EditProps = {}) => (\n <svg className={classnames('icon', 'icon--edit', className)} viewBox=\"0 0 60 60\">\n <path d=\"M12,38.79l10.84,11H12Zm19-21.54L41.75,28.09,25.44,47.17l-10.78-11Zm5.65-6c1.69-1.69,4.94-1.19,7.26,1.13l2.1,2.1c2.32,2.32,2.82,5.57,1.13,7.26L43.7,25.08,33.21,14.59Z\" />\n </svg>\n));\n\nexport default Edit;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface ErrorProps {\n className?: string;\n}\n\nconst Error: FC<ErrorProps> = memo(({className}: ErrorProps = {}) => (\n <svg className={classnames('icon', 'icon--error', className)} viewBox=\"0 0 60 60\">\n <path d=\"M34.3,51.3h-8.5v-9h8.5V51.3z M34.3,36.4h-8.5L23.6,8.7h12.7L34.3,36.4z\" />\n </svg>\n));\n\nexport default Error;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface FeedProps {\n className?: string;\n}\n\nconst Feed: FC<FeedProps> = memo(({className}: FeedProps = {}) => (\n <svg className={classnames('icon', 'icon--feed', className)} viewBox=\"0 0 60 60\">\n <path d=\"M18.47,47.88A6.49,6.49,0,1,0,12,54.38,6.5,6.5,0,0,0,18.47,47.88Zm18,3.51a30.41,30.41,0,0,0-8.85-19.12A30.33,30.33,0,0,0,8.48,23.41H8.31A2.07,2.07,0,0,0,6.85,24a2.06,2.06,0,0,0-.71,1.59v4.57a2.14,2.14,0,0,0,2,2.13A21.64,21.64,0,0,1,27.57,51.77a2.14,2.14,0,0,0,2.13,2h4.56A2.06,2.06,0,0,0,35.85,53,2.19,2.19,0,0,0,36.42,51.4Zm17.3,0.07a47.68,47.68,0,0,0-14-31.37,47.55,47.55,0,0,0-31.33-14H8.31a2.1,2.1,0,0,0-1.49.61,2.07,2.07,0,0,0-.68,1.56v4.84a2.15,2.15,0,0,0,2,2.13A38.72,38.72,0,0,1,44.57,51.7a2.15,2.15,0,0,0,2.16,2h4.83A2.19,2.19,0,0,0,53.73,51.46Z\" />\n </svg>\n));\n\nexport default Feed;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface FileProps {\n className?: string;\n}\n\nconst File: FC<FileProps> = memo(({className}: FileProps = {}) => (\n <svg className={classnames('icon', 'icon--file', className)} viewBox=\"0 0 60 60\">\n <g style={{transform: 'translate(8px, 0)'}}>\n <path d=\"M48.14,19.89V56a3,3,0,0,1-3,3H3a3,3,0,0,1-3-3V5.84a3,3,0,0,1,3-3H31.09A8.41,8.41,0,0,1,36.23,5L46,14.75A8.4,8.4,0,0,1,48.14,19.89Zm-4,3h-13a3,3,0,0,1-3-3v-13H4V55H44.13V22.89Zm-12-4H43.88a4,4,0,0,0-.69-1.29L33.38,7.79a4,4,0,0,0-1.28-.69V18.88Z\" />\n </g>\n </svg>\n));\n\nexport default File;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface FilesProps {\n className?: string;\n}\n\nconst Files: FC<FilesProps> = memo(({className}: FilesProps = {}) => (\n <svg className={classnames('icon', 'icon--files', className)} viewBox=\"0 0 60 60\">\n <path\n className=\"icon--files__file icon--files__file--front\"\n d=\"M44.3,18l-6.38-6.6A5.4,5.4,0,0,0,34.56,10H16.23a2,2,0,0,0-2,2V45.89a2,2,0,0,0,2,2h27.5a2,2,0,0,0,2-2V21.52A5.78,5.78,0,0,0,44.3,18Zm-9.08-5a2.75,2.75,0,0,1,.84.35L42.46,20a5.15,5.15,0,0,1,.24,1H35.22V13Zm8,32.43H16.76V12.5h16l-0.05,9a2,2,0,0,0,2,2H43.2v22Z\"\n />\n <path\n className=\"icon--files__file icon--files__file--right\"\n d=\"M58.85,23.64l-3.73-3.82a3.16,3.16,0,0,0-2-.83H44.94a6.46,6.46,0,0,1,.62,1.57H52v5.1a1.16,1.16,0,0,0,1.15,1.18h5V39.37H45.7v1.57H58.52a1.16,1.16,0,0,0,1.15-1.18V25.65A3.33,3.33,0,0,0,58.85,23.64Zm-5.3,1.62V20.65a1.51,1.51,0,0,1,.49.27l3.74,3.83a1.57,1.57,0,0,1,.26.5H53.55Z\"\n />\n <path\n className=\"icon--files__file icon--files__file--left\"\n d=\"M14.27,39.37H1.83V20.56H11v5.1a1.16,1.16,0,0,0,1.15,1.18h2.12V25.26H12.53V20.65a1.51,1.51,0,0,1,.49.27l1.25,1.28V20l-0.16-.17a3.16,3.16,0,0,0-2-.83H1.44A1.16,1.16,0,0,0,.3,20.16v19.6a1.16,1.16,0,0,0,1.15,1.18H14.27V39.37Z\"\n />\n </svg>\n));\n\nexport default Files;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface FolderClosedOutlineProps {\n className?: string;\n}\n\nconst FolderClosedOutline: FC<FolderClosedOutlineProps> = memo(({className}: FolderClosedOutlineProps = {}) => (\n <svg className={classnames('icon', 'icon--directory-outlined', className)} viewBox=\"0 0 60 60\">\n <path d=\"M52.3,47.47a7.07,7.07,0,0,1-7,7H7a7.07,7.07,0,0,1-7-7V17.29a7.07,7.07,0,0,1,7-7H17.1a7.07,7.07,0,0,1,7,7v1H45.26a7.07,7.07,0,0,1,7,7V47.47Zm-4-22.13a3,3,0,0,0-3-3H23.13a3,3,0,0,1-3-3v-2a3,3,0,0,0-3-3H7a3,3,0,0,0-3,3V47.47a3,3,0,0,0,3,3H45.26a3,3,0,0,0,3-3V25.34Z\" />\n </svg>\n));\n\nexport default FolderClosedOutline;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface FolderClosedOutlineProps {\n className?: string;\n}\n\nconst FolderClosedOutline: FC<FolderClosedOutlineProps> = memo(({className}: FolderClosedOutlineProps = {}) => (\n <svg className={classnames('icon', 'icon--folder', className)} viewBox=\"0 0 60 60\">\n <path d=\"M48.71,23.45a6.49,6.49,0,0,0-6.37-6.55H23.23V16a6.49,6.49,0,0,0-6.37-6.55H7.76A6.49,6.49,0,0,0,1.39,16V44a6.49,6.49,0,0,0,6.37,6.55H42.34A6.49,6.49,0,0,0,48.71,44V23.45Z\" />\n </svg>\n));\n\nexport default FolderClosedOutline;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface FolderOpenSolidProps {\n className?: string;\n}\n\nconst FolderOpenSolid: FC<FolderOpenSolidProps> = memo(({className}: FolderOpenSolidProps = {}) => (\n <svg className={classnames('icon', 'icon--folder', className)} viewBox=\"0 0 60 60\">\n <path d=\"M58.61,33.58c0-1.3-1.47-1.62-2.51-1.62H21.84a11.36,11.36,0,0,0-7.62,3.52L4.52,46.92a3.09,3.09,0,0,0-.89,1.9c0,1.3,1.47,1.62,2.51,1.62H40.4A11.35,11.35,0,0,0,48,46.92l9.7-11.43A3.09,3.09,0,0,0,58.61,33.58Zm-9.9-10.3a6.49,6.49,0,0,0-6.47-6.47H23.14V15.89a6.49,6.49,0,0,0-6.47-6.46H8a6.49,6.49,0,0,0-6.47,6.46V44c0,0.23,0,.49,0,0.72l0.14-.17,9.73-11.43a15,15,0,0,1,10.42-4.82H48.71v-5Z\" />\n </svg>\n));\n\nexport default FolderOpenSolid;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface HashProps {\n className?: string;\n}\n\nconst Hash: FC<HashProps> = memo(({className}: HashProps = {}) => (\n <svg className={classnames('icon', 'icon--clock', className)} viewBox=\"0 0 60 60\">\n <path d=\"M30.95,42.57H24.58L21.94,58.78H14.07l2.65-16.21H7.94V35.34h10L19.64,24.9H10.91V17.67h9.92L23.56,1.22h7.83L28.7,17.67h6.37L37.79,1.22h7.87L42.93,17.67h9.13V24.9H41.74L40,35.34h9.05v7.23H38.82L36.17,58.78H28.3Zm-5.18-7.23h6.37L33.87,24.9H27.51Z\" />\n </svg>\n));\n\nexport default Hash;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface InactiveProps {\n className?: string;\n}\n\nconst Inactive: FC<InactiveProps> = memo(({className}: InactiveProps = {}) => (\n <svg className={classnames('icon', 'icon--inactive', className)} viewBox=\"0 0 60 60\">\n <path d=\"M56,52H42l-9.7-12.5l-11,4.8L13,20.7l-7,4l-2-9.9L17.2,8l9.5,24.4l9.6-4.3l10.9,15.4H56V52z\" />\n </svg>\n));\n\nexport default Inactive;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface InfinityIconProps {\n className?: string;\n}\n\nconst InfinityIcon: FC<InfinityIconProps> = memo(({className}: InfinityIconProps = {}) => (\n <svg className={classnames('icon', 'icon--infinity', className)} viewBox=\"0 0 60 60\">\n <path d=\"M30,33.17l-5.84,5.16a12.2,12.2,0,0,1-8.27,3.46,11.32,11.32,0,0,1-8.39-3.51,11.66,11.66,0,0,1,0-16.6,11.45,11.45,0,0,1,8.36-3.46,12.06,12.06,0,0,1,8.27,3.46L30,26.77l5.84-5.1a12.4,12.4,0,0,1,8.33-3.46A11.9,11.9,0,0,1,56,30a11.41,11.41,0,0,1-3.46,8.27,11.32,11.32,0,0,1-8.39,3.51,12.26,12.26,0,0,1-8.33-3.46ZM26.46,30l-5.61-5a7.4,7.4,0,0,0-5-2.1,6.81,6.81,0,0,0-5,2.1,6.81,6.81,0,0,0-2.1,5,6.88,6.88,0,0,0,2.07,5,6.74,6.74,0,0,0,5,2.12,7.39,7.39,0,0,0,5-2.1Zm6.91-.06,5.78,5a7.47,7.47,0,0,0,5,2.1,6.79,6.79,0,0,0,5-2.1,6.86,6.86,0,0,0,2.07-5,6.79,6.79,0,0,0-2.1-5,6.86,6.86,0,0,0-5-2.07,7.62,7.62,0,0,0-5,2.1Z\" />\n </svg>\n));\n\nexport default InfinityIcon;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface LimitsProps {\n className?: string;\n}\n\nconst Limits: FC<LimitsProps> = memo(({className}: LimitsProps = {}) => (\n <svg className={classnames('icon', 'icon--limits', className)} viewBox=\"0 0 60 60\">\n <path\n className=\"limits__bars--bottom\"\n d=\"M24.4,48.5c0,3.3,2.5,6,5.6,6s5.6-2.7,5.6-6V18.6H24.4V48.5z M4.4,48.2c0,3.5,2.5,6.3,5.6,6.3 s5.6-2.8,5.6-6.3v-9.3H4.4V48.2z M44.4,30v18.2c0,3.5,2.5,6.3,5.6,6.3s5.6-2.8,5.6-6.3V30H44.4z\"\n />\n <path className=\"limits__bars--top\" d=\"M24.4,18.7v-7.6c0-3.1,2.5-5.5,5.6-5.5s5.6,2.5,5.6,5.5v7.6H24.4z\" />\n <path className=\"limits__bars--top\" d=\"M4.4,38.9v-27c0-3.5,2.5-6.3,5.6-6.3s5.6,2.8,5.6,6.3v27H4.4z\" />\n <path className=\"limits__bars--top\" d=\"M44.4,29.9V11.8c0-3.5,2.5-6.3,5.6-6.3s5.6,2.8,5.6,6.3v18.1H44.4z\" />\n <path\n className=\"limits__bars--middle\"\n d=\"M22.2,16.4h15.6c1.2,0,2.2,1,2.2,2.2c0,1.2-1,2.2-2.2,2.2H22.2c-1.2,0-2.2-1-2.2-2.2 C20,17.4,21,16.4,22.2,16.4z\"\n />\n <path\n className=\"limits__bars--middle\"\n d=\"M2.2,36.7h15.6c1.2,0,2.2,1,2.2,2.2c0,1.2-1,2.2-2.2,2.2H2.2c-1.2,0-2.2-1-2.2-2.2C0,37.7,1,36.7,2.2,36.7z\"\n />\n <path\n className=\"limits__bars--middle\"\n d=\"M42.2,27.8h15.6c1.2,0,2.2,1,2.2,2.2s-1,2.2-2.2,2.2H42.2c-1.2,0-2.2-1-2.2-2.2S41,27.8,42.2,27.8z\"\n />\n </svg>\n));\n\nexport default Limits;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface LoadingIndicatorDotsProps {\n className?: string;\n}\n\nconst LoadingIndicatorDots: FC<LoadingIndicatorDotsProps> = memo(({className}: LoadingIndicatorDotsProps = {}) => (\n <svg className={classnames('icon', 'icon--loading-indicator loading-indicator--dots', className)} viewBox=\"0 0 32 32\">\n <path\n className=\"loading-indicator--dots__dot loading-indicator--dots__dot--right\"\n d=\"M25,11.74h4.73a1.89,1.89,0,0,1,1.89,1.89v4.73a1.89,1.89,0,0,1-1.89,1.89H25a1.89,1.89,0,0,1-1.89-1.89V13.63A1.89,1.89,0,0,1,25,11.74Z\"\n />\n <path\n className=\"loading-indicator--dots__dot loading-indicator--dots__dot--center\"\n d=\"M13.63,11.74h4.73a1.89,1.89,0,0,1,1.89,1.89v4.73a1.89,1.89,0,0,1-1.89,1.89H13.63a1.89,1.89,0,0,1-1.89-1.89V13.63A1.89,1.89,0,0,1,13.63,11.74Z\"\n />\n <path\n className=\"loading-indicator--dots__dot loading-indicator--dots__dot--left\"\n d=\"M2.27,11.74H7A1.89,1.89,0,0,1,8.9,13.63v4.73A1.89,1.89,0,0,1,7,20.26H2.27A1.89,1.89,0,0,1,.38,18.37V13.63A1.89,1.89,0,0,1,2.27,11.74Z\"\n />\n </svg>\n));\n\nexport default LoadingIndicatorDots;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface LockProps {\n className?: string;\n}\n\nconst Lock: FC<LockProps> = memo(({className}: LockProps = {}) => (\n <svg className={classnames('icon', 'icon--lock', className)} viewBox=\"0 0 60 60\">\n <path\n d=\"M9.917 27.364h1.305v-7.91C11.222 9.322 19.464 1 29.5 1c10.036 0 18.278 8.321 18.278 18.455v7.909H9.917zm9.139 0h20.888v-7.91c0-5.808-4.691-10.545-10.444-10.545-5.753 0-10.444 4.737-10.444 10.546v7.909z\"\n fillOpacity=\".4\"\n />\n <path d=\"M6 27.364h46.819V59H6z\" />\n </svg>\n));\n\nexport default Lock;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface LogoutProps {\n className?: string;\n}\n\nconst Logout: FC<LogoutProps> = memo(({className}: LogoutProps = {}) => (\n <svg className={classnames('icon', 'icon--logout', className)} viewBox=\"0 0 60 60\">\n <path d=\"M48.65,11H25.09a3.93,3.93,0,1,1-.37-7.85H52.57A3.92,3.92,0,0,1,56.5,7.05h0V52.94a3.93,3.93,0,0,1-3.92,3.92H25.09A3.93,3.93,0,0,1,24.72,49H48.65ZM27.4,26.08,23,21.67a3.92,3.92,0,0,1,5.55-5.55h0l11.1,11.1a3.92,3.92,0,0,1,0,5.54l0,0-11.1,11.1A3.92,3.92,0,1,1,23,38.33l4.41-4.41h-20a3.92,3.92,0,0,1,0-7.84Z\" />\n </svg>\n));\n\nexport default Logout;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface MenuProps {\n className?: string;\n}\n\nconst Menu: FC<MenuProps> = memo(({className}: MenuProps = {}) => (\n <svg className={classnames('icon', 'icon--menu', className)} viewBox=\"0 0 60 60\">\n <path d=\"M 7.5 45 L 52.5 45 L 52.5 40 L 7.5 40 Z M 7.5 32.5 L 52.5 32.5 L 52.5 27.5 L 7.5 27.5 Z M 7.5 15 L 7.5 20 L 52.5 20 L 52.5 15 Z M 7.5 15\" />\n </svg>\n));\n\nexport default Menu;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface NotificationProps {\n className?: string;\n}\n\nconst Notification: FC<NotificationProps> = memo(({className}: NotificationProps = {}) => (\n <svg className={classnames('icon', 'icon--notification', className)} viewBox=\"0 0 60 60\">\n <path d=\"M46.92,19.29c0-6.43-5.26-13.46-14-14.77a3.4,3.4,0,0,0,.27-1.31,3.17,3.17,0,1,0-6.35,0,3.42,3.42,0,0,0,.26,1.31c-8.76,1.31-14,8.34-14,14.77C13.08,35.46,7.39,44,2.5,48.16a4.29,4.29,0,0,0,4.23,4.29H21.54c0,4.72,3.8,7.56,8.46,7.56s8.46-2.83,8.46-7.56H53.27a4.29,4.29,0,0,0,4.23-4.29C52.61,44,46.92,35.46,46.92,19.29ZM34.3,45c0,4.42-1.92,6.55-4.3,6.55S25.7,49.43,25.7,45h-11a53.45,53.45,0,0,0,6.92-25.73c0-1.77,1.49-6.37,8.32-6.37s8.34,4.6,8.34,6.37A53.46,53.46,0,0,0,45.26,45h-11Z\" />\n </svg>\n));\n\nexport default Notification;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface PeersProps {\n className?: string;\n}\n\nconst Peers: FC<PeersProps> = memo(({className}: PeersProps = {}) => (\n <svg className={classnames('icon', 'icon--peers', className)} viewBox=\"0 0 60 60\">\n <path d=\"M47.95,1.4a12.05,12.05,0,0,0-11.78,9.55H23.84A12,12,0,1,0,12.05,25.5a11.92,11.92,0,0,0,3.56-.6l6,13a12.51,12.51,0,1,0,4.28-2.66L20,22.45a12,12,0,0,0,3.85-6.5H36.16A12,12,0,1,0,47.95,1.4ZM37.05,46.55A7.05,7.05,0,1,1,30,39.5,7.06,7.06,0,0,1,37.05,46.55ZM5,13.45a7.05,7.05,0,1,1,7.05,7.05A7.06,7.06,0,0,1,5,13.45ZM47.95,20.5A7.05,7.05,0,1,1,55,13.45,7.06,7.06,0,0,1,47.95,20.5Z\" />\n </svg>\n));\n\nexport default Peers;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface RadarProps {\n className?: string;\n}\n\nconst Radar: FC<RadarProps> = memo(({className}: RadarProps = {}) => (\n <svg className={classnames('icon', 'icon--disk', className)} viewBox=\"0 0 60 60\">\n <path d=\"M30,59A29,29,0,1,1,59,30,29,29,0,0,1,30,59ZM30,6A24,24,0,1,0,54,30,24,24,0,0,0,30,6Z\" />\n <path d=\"M30,45.75A15.75,15.75,0,1,1,45.75,30,15.77,15.77,0,0,1,30,45.75Zm0-26.5A10.75,10.75,0,1,0,40.75,30,10.76,10.76,0,0,0,30,19.25Z\" />\n <polygon points=\"30 30 56.5 30 53.16 42.88 43.65 52.71 30 30\" />\n </svg>\n));\n\nexport default Radar;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface RatioProps {\n className?: string;\n}\n\nconst Ratio: FC<RatioProps> = memo(({className}: RatioProps = {}) => (\n <svg className={classnames('icon', 'icon--ratio', className)} viewBox=\"0 0 60 60\">\n <path d=\"M54.57,15.76a28.56,28.56,0,1,0-10.45,39A28.56,28.56,0,0,0,54.57,15.76ZM9.68,41.86a23.36,23.36,0,1,1,40.39-23.5C40.72,29.74,24.32,39.36,9.68,41.86Z\" />\n </svg>\n));\n\nexport default Ratio;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface RemoveProps {\n className?: string;\n}\n\nconst Remove: FC<RemoveProps> = memo(({className}: RemoveProps = {}) => (\n <svg className={classnames('icon', 'icon--remove', className)} viewBox=\"0 0 60 60\">\n <path d=\"M53.7,25.3H6.3v9.4h47.4\" />\n </svg>\n));\n\nexport default Remove;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface RemoveMiniProps {\n className?: string;\n}\n\nconst RemoveMini: FC<RemoveMiniProps> = memo(({className}: RemoveMiniProps = {}) => (\n <svg className={classnames('icon', 'icon--remove-mini', className)} viewBox=\"0 0 8 8\">\n <rect y=\"3.5\" width=\"8\" height=\"1\" />\n </svg>\n));\n\nexport default RemoveMini;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface SearchProps {\n className?: string;\n}\n\nconst Search: FC<SearchProps> = memo(({className}: SearchProps = {}) => (\n <svg className={classnames('icon', 'icon--search', className)} viewBox=\"0 0 60 60\">\n <path d=\"M26,38.9c-7.1,0-12.8-5.8-12.8-12.8C13.2,19,19,13.2,26,13.2c7.1,0,12.8,5.8,12.8,12.8 C38.9,33.1,33.1,38.9,26,38.9z M26,18.2c-4.3,0-7.8,3.5-7.8,7.8s3.5,7.8,7.8,7.8s7.8-3.5,7.8-7.8S30.4,18.2,26,18.2z\" />\n <rect x=\"30.9\" y=\"36.7\" transform=\"matrix(0.7071 0.7071 -0.7071 0.7071 39.1863 -16.2315)\" width=\"16.5\" height=\"5\" />\n </svg>\n));\n\nexport default Search;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface SeedsProps {\n className?: string;\n}\n\nconst Seeds: FC<SeedsProps> = memo(({className}: SeedsProps = {}) => (\n <svg className={classnames('icon', 'icon--seeds', className)} viewBox=\"0 0 60 60\">\n <path d=\"M47.95,1.4a12.05,12.05,0,0,0-11.78,9.55H23.84A12,12,0,1,0,12.05,25.5a11.92,11.92,0,0,0,3.56-.6l6,13a12.51,12.51,0,1,0,4.28-2.66L20,22.45a12,12,0,0,0,3.85-6.5H36.16A12,12,0,1,0,47.95,1.4ZM37.05,46.55A7.05,7.05,0,1,1,30,39.5,7.06,7.06,0,0,1,37.05,46.55Z\" />\n </svg>\n));\n\nexport default Seeds;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface SettingsProps {\n className?: string;\n}\n\nconst Settings: FC<SettingsProps> = memo(({className}: SettingsProps = {}) => (\n <svg className={classnames('icon', 'icon--settings', className)} viewBox=\"0 0 60 60\">\n <path d=\"M55.63,33.77a1.28,1.28,0,0,1-.93,1.2l-6.17.93a18.92,18.92,0,0,1-1.3,3c1.14,1.63,2.34,3.1,3.57,4.61a1.31,1.31,0,0,1,.33.83,1.12,1.12,0,0,1-.3.77c-0.8,1.07-5.3,6-6.44,6a1.69,1.69,0,0,1-.87-0.3l-4.61-3.6a20.08,20.08,0,0,1-3,1.27,43.68,43.68,0,0,1-1,6.21,1.22,1.22,0,0,1-1.2.93H26.3a1.19,1.19,0,0,1-1.2-1l-0.93-6.14a19.62,19.62,0,0,1-3-1.23l-4.71,3.57a1.28,1.28,0,0,1-.83.3,1.19,1.19,0,0,1-.83-0.37,41.67,41.67,0,0,1-5.5-5.61A1.3,1.3,0,0,1,9,44.38a1.26,1.26,0,0,1,.27-0.77c1.13-1.54,2.37-3,3.5-4.57a17.8,17.8,0,0,1-1.37-3.3l-6.11-.9a1.22,1.22,0,0,1-1-1.2V26.23a1.29,1.29,0,0,1,.9-1.2l6.21-.93A17.66,17.66,0,0,1,12.78,21c-1.13-1.6-2.34-3.1-3.57-4.61a1.23,1.23,0,0,1-.33-0.8,1.29,1.29,0,0,1,.3-0.77c0.8-1.1,5.3-6,6.44-6a1.49,1.49,0,0,1,.87.33l4.6,3.57a20.07,20.07,0,0,1,3-1.27,43.68,43.68,0,0,1,1-6.21,1.22,1.22,0,0,1,1.2-.93H33.7a1.19,1.19,0,0,1,1.2,1l0.93,6.14a19.66,19.66,0,0,1,3,1.23l4.74-3.57a1.13,1.13,0,0,1,.8-0.3,1.32,1.32,0,0,1,.84.33,42.16,42.16,0,0,1,5.51,5.67,1.14,1.14,0,0,1,.23.73,1.26,1.26,0,0,1-.27.77c-1.13,1.53-2.37,3-3.5,4.57a18.51,18.51,0,0,1,1.37,3.27l6.11,0.93a1.22,1.22,0,0,1,1,1.2v7.41ZM30,21.46A8.54,8.54,0,1,0,38.54,30,8.56,8.56,0,0,0,30,21.46Z\" />\n </svg>\n));\n\nexport default Settings;\n","import classnames from 'classnames';\nimport {FC} from 'react';\nimport uniqueId from 'lodash/uniqueId';\n\ninterface SpinnerProps {\n className?: string;\n}\n\nconst Spinner: FC<SpinnerProps> = ({className}: SpinnerProps = {}) => {\n const id = uniqueId();\n const maskID = `icon--spinner__mask-id--${id}`;\n\n return (\n <svg className={classnames('icon', 'icon--spinner', className)} viewBox=\"0 0 128 128\">\n <defs>\n <mask id={maskID} x=\"0\" y=\"0\" width=\"128\" height=\"128\" maskUnits=\"userSpaceOnUse\">\n <image\n width=\"128\"\n height=\"128\"\n xlinkHref=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzE2ODczNjkyQ0YwMTFFNjgyMTQ4Q0Y5OTZBNUFFNEEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzE2ODczNkEyQ0YwMTFFNjgyMTQ4Q0Y5OTZBNUFFNEEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDMTY4NzM2NzJDRjAxMUU2ODIxNDhDRjk5NkE1QUU0QSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDMTY4NzM2ODJDRjAxMUU2ODIxNDhDRjk5NkE1QUU0QSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoyU+r8AABYHSURBVHja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\"\n />\n </mask>\n </defs>\n <path\n className=\"icon--spinner__ring\"\n style={{mask: `url(#${maskID})`}}\n d=\"M64,2.34A61.66,61.66,0,1,0,125.66,64,61.66,61.66,0,0,0,64,2.34ZM64,111.9A47.9,47.9,0,1,1,111.9,64,47.9,47.9,0,0,1,64,111.9Z\"\n />\n </svg>\n );\n};\n\nexport default Spinner;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface StartProps {\n className?: string;\n}\n\nconst Start: FC<StartProps> = memo(({className}: StartProps = {}) => (\n <svg className={classnames('icon', 'icon--start', className)} viewBox=\"0 0 60 60\">\n <path d=\"M13.1 9.5L46.9 30 13.1 50.5v-41z\" />\n </svg>\n));\n\nexport default Start;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface StopProps {\n className?: string;\n}\n\nconst Stop: FC<StopProps> = memo(({className}: StopProps = {}) => (\n <svg className={classnames('icon', 'icon--stop', className)} viewBox=\"0 0 60 60\">\n <path d=\"M11.9 11.9H48v36.2H11.9V11.9z\" />\n </svg>\n));\n\nexport default Stop;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface ThemeSwitchProps {\n className?: string;\n}\n\n// Material Design : brightness_6 - Apache 2.0\nconst ThemeSwitch: FC<ThemeSwitchProps> = memo(({className}: ThemeSwitchProps = {}) => (\n <svg className={classnames('icon', 'icon--theme-switch', className)} viewBox=\"0 0 60 60\">\n <path d=\"M0,0h60v60H0V0z\" fill=\"none\" />\n <path\n d=\"M50,38.3l8.3-8.3L50,21.7V10H38.3L30,1.7L21.7,10H10v11.7L1.7,30l8.3,8.3V50h11.7l8.3,8.3l8.3-8.3H50C50,50,50,38.3,50,38.3\nz M30,45V15c8.3,0,15,6.7,15,15S38.3,45,30,45z\"\n />\n </svg>\n));\n\nexport default ThemeSwitch;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface TrackerMessageProps {\n className?: string;\n}\n\nconst TrackerMessage: FC<TrackerMessageProps> = memo(({className}: TrackerMessageProps = {}) => (\n <svg className={classnames('icon', 'icon--seeds', className)} viewBox=\"0 0 60 60\">\n <circle cx=\"11.08\" cy=\"30\" r=\"5.94\" />\n <circle cx=\"30\" cy=\"30\" r=\"5.94\" />\n <circle cx=\"48.92\" cy=\"30\" r=\"5.94\" />\n </svg>\n));\n\nexport default TrackerMessage;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface UploadProps {\n className?: string;\n}\n\nconst Upload: FC<UploadProps> = memo(({className}: UploadProps = {}) => (\n <svg className={classnames('icon', 'icon--upload', className)} viewBox=\"0 0 60 60\">\n <rect x=\"28.2\" y=\"4.5\" width=\"3.7\" height=\"55.5\" />\n <polygon points=\"30,0 48.2,27.3 45.1,29.3 30,6.7 14.9,29.3 11.8,27.3 \" />\n </svg>\n));\n\nexport default Upload;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface UploadSmallProps {\n className?: string;\n}\n\nconst UploadSmall: FC<UploadSmallProps> = memo(({className}: UploadSmallProps = {}) => (\n <svg className={classnames('icon', 'icon--upload-small', className)} viewBox=\"0 0 60 60\">\n <path d=\"m15.6 18.9h8.9v15.6h11v-15.6h8.9l-14.4-14.4z\" />\n <path d=\"m55.9 39.1-8.8-6.4h-5.4l9.4 7.8h-9.8c-0.3 0-0.5 0.2-0.7 0.4l-2.3 6.7h-16.6l-2.3-6.7c-0.1-0.2-0.4-0.4-0.7-0.4h-9.8l9.4-7.8h-5.4l-8.8 6.4c-1.3 0.9-2.1 2.8-1.7 4.4l1.6 9.2c0.4 1.5 1.9 2.8 3.5 2.8h45.2c1.6 0 3.1-1.3 3.5-2.8l1.6-9.2c0.2-1.6-0.6-3.5-1.9-4.4z\" />\n </svg>\n));\n\nexport default UploadSmall;\n","import classnames from 'classnames';\nimport {FC, memo} from 'react';\n\ninterface UploadThickProps {\n className?: string;\n}\n\nconst UploadThick: FC<UploadThickProps> = memo(({className}: UploadThickProps = {}) => (\n <svg className={classnames('icon', 'icon--upload', className)} viewBox=\"0 0 60 60\">\n <polygon points=\"15.9,36.6 27,19.9 27,55 33,55 33,19.9 44.1,36.6 49.1,33.3 30,4.6 10.9,33.3 \" />\n </svg>\n));\n\nexport default UploadThick;\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\nconst {iterator, toStringTag} = Symbol;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);\n}\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n if (isBuffer(obj)){\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless, skipUndefined} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n const msg = error && error.message ? error.message : 'Error';\n\n // Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)\n const errCode = code == null && error ? error.code : code;\n AxiosError.call(axiosError, msg, errCode, config, request, response);\n\n // Chain the original error on the standard field; non-enumerable to avoid JSON noise\n if (error && axiosError.cause == null) {\n Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });\n }\n\n axiosError.name = (error && error.name) || 'Error';\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, this.parseReviver);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options\n });\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {}, dest, key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[key = entry[0]] = (dest = obj[key]) ?\n (utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite)\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n getSetCookie() {\n return this.get(\"set-cookie\") || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils.forEach(Object.keys({...config1, ...config2}), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n } \n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n \n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst {isFunction} = utils;\n\nconst globalFetchAPI = (({Request, Response}) => ({\n Request, Response\n}))(utils.global);\n\nconst {\n ReadableStream, TextEncoder\n} = utils.global;\n\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst factory = (env) => {\n env = utils.merge.call({\n skipUndefined: true\n }, globalFetchAPI, env);\n\n const {fetch: envFetch, Request, Response} = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Request(str).arrayBuffer())\n );\n\n const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n };\n\n isFetchSupported && ((() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n })());\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n }\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n }\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request = null;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && \"credentials\" in Request.prototype;\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n }\n}\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = config ? config.env : {};\n const {fetch, Request, Response} = env;\n const seeds = [\n Request, Response, fetch\n ];\n\n let len = seeds.length, i = len,\n seed, target, map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, target = (i ? new Map() : factory(env)))\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n }\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters, config) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.12.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","/*eslint-disable*/export const messages=JSON.parse(\"{\\\"actionbar.button.add.torrent\\\":[\\\"Add Torrent\\\"],\\\"actionbar.button.remove.torrent\\\":[\\\"Remove Torrent\\\"],\\\"actionbar.button.start.torrent\\\":[\\\"Start Torrent\\\"],\\\"actionbar.button.stop.torrent\\\":[\\\"Stop Torrent\\\"],\\\"alert.settings.saved\\\":[\\\"Successfully saved settings.\\\"],\\\"alert.torrent.add\\\":[\\\"Successfully added \\\",[\\\"countElement\\\"],\\\" \\\",[\\\"count\\\",\\\"plural\\\",{\\\"1\\\":[\\\"torrent\\\"],\\\"other\\\":[\\\"torrents\\\"]}],\\\".\\\"],\\\"alert.torrent.add.failed\\\":[\\\"Failed to add \\\",[\\\"countElement\\\"],\\\" \\\",[\\\"count\\\",\\\"plural\\\",{\\\"1\\\":[\\\"torrent\\\"],\\\"other\\\":[\\\"torrents\\\"]}],\\\".\\\"],\\\"alert.torrent.add.sent\\\":[[\\\"countElement\\\"],\\\" \\\",[\\\"count\\\",\\\"plural\\\",{\\\"1\\\":[\\\"request\\\"],\\\"other\\\":[\\\"requests\\\"]}],\\\" sent to the torrent client.\\\"],\\\"alert.torrent.move\\\":[\\\"Successfully moved \\\",[\\\"countElement\\\"],\\\" \\\",[\\\"count\\\",\\\"plural\\\",{\\\"1\\\":[\\\"torrent\\\"],\\\"other\\\":[\\\"torrents\\\"]}],\\\".\\\"],\\\"alert.torrent.move.failed\\\":[\\\"Failed to move \\\",[\\\"countElement\\\"],\\\" \\\",[\\\"count\\\",\\\"plural\\\",{\\\"1\\\":[\\\"torrent\\\"],\\\"other\\\":[\\\"torrents\\\"]}],\\\".\\\"],\\\"alert.torrent.remove\\\":[\\\"Successfully removed \\\",[\\\"countElement\\\"],\\\" \\\",[\\\"count\\\",\\\"plural\\\",{\\\"1\\\":[\\\"torrent\\\"],\\\"other\\\":[\\\"torrents\\\"]}],\\\".\\\"],\\\"alert.torrent.remove.failed\\\":[\\\"Failed to remove \\\",[\\\"countElement\\\"],\\\" \\\",[\\\"count\\\",\\\"plural\\\",{\\\"1\\\":[\\\"torrent\\\"],\\\"other\\\":[\\\"torrents\\\"]}],\\\".\\\"],\\\"auth.add.user\\\":[\\\"Add User\\\"],\\\"auth.admin\\\":[\\\"Admin\\\"],\\\"auth.create.account\\\":[\\\"Create Account\\\"],\\\"auth.create.an.account\\\":[\\\"Create an account\\\"],\\\"auth.create.an.account.intro\\\":[\\\"Welcome to Flood!\\\"],\\\"auth.current.user\\\":[\\\"Current User\\\"],\\\"auth.error.password.empty\\\":[\\\"Password cannot be empty.\\\"],\\\"auth.error.username.empty\\\":[\\\"Username cannot be empty.\\\"],\\\"auth.input.clear\\\":[\\\"Clear\\\"],\\\"auth.log.in\\\":[\\\"Log In\\\"],\\\"auth.login\\\":[\\\"Login\\\"],\\\"auth.login.intro\\\":[\\\"Log in to your account.\\\"],\\\"auth.message.not.admin\\\":[\\\"User is not Admin\\\"],\\\"auth.password\\\":[\\\"Password\\\"],\\\"auth.user.accounts\\\":[\\\"User Accounts\\\"],\\\"auth.username\\\":[\\\"Username\\\"],\\\"button.add\\\":[\\\"Add\\\"],\\\"button.cancel\\\":[\\\"Cancel\\\"],\\\"button.close\\\":[\\\"Close\\\"],\\\"button.download\\\":[\\\"Download\\\"],\\\"button.new\\\":[\\\"New\\\"],\\\"button.no\\\":[\\\"No\\\"],\\\"button.ok\\\":[\\\"OK\\\"],\\\"button.retry\\\":[\\\"Retry\\\"],\\\"button.save\\\":[\\\"Save Settings\\\"],\\\"button.save.feed\\\":[\\\"Save\\\"],\\\"button.yes\\\":[\\\"Yes\\\"],\\\"connection-interruption.action.selection.config\\\":[\\\"Update client connection settings\\\"],\\\"connection-interruption.action.selection.retry\\\":[\\\"Retry with current client connection settings\\\"],\\\"connection-interruption.heading\\\":[\\\"Cannot connect to the client\\\"],\\\"connection-interruption.not.admin\\\":[\\\"Please contact your Flood administrator if this continues.\\\"],\\\"connection-interruption.verification-error\\\":[\\\"Connection could not be verified.\\\"],\\\"connection.settings.client.select\\\":[\\\"Client\\\"],\\\"connection.settings.deluge\\\":[\\\"Deluge\\\"],\\\"connection.settings.deluge.host\\\":[\\\"Host\\\"],\\\"connection.settings.deluge.host.input.placeholder\\\":[\\\"e.g. localhost\\\"],\\\"connection.settings.deluge.password\\\":[\\\"Password\\\"],\\\"connection.settings.deluge.password.input.placeholder\\\":[\\\"Password\\\"],\\\"connection.settings.deluge.port\\\":[\\\"Port\\\"],\\\"connection.settings.deluge.port.input.placeholder\\\":[\\\"e.g. 58846\\\"],\\\"connection.settings.deluge.username\\\":[\\\"Username\\\"],\\\"connection.settings.deluge.username.input.placeholder\\\":[\\\"e.g. localclient\\\"],\\\"connection.settings.error.empty\\\":[\\\"Connection settings can not be empty.\\\"],\\\"connection.settings.qbittorrent\\\":[\\\"qBittorrent\\\"],\\\"connection.settings.qbittorrent.password\\\":[\\\"Password\\\"],\\\"connection.settings.qbittorrent.password.input.placeholder\\\":[\\\"Password\\\"],\\\"connection.settings.qbittorrent.url\\\":[\\\"URL\\\"],\\\"connection.settings.qbittorrent.url.input.placeholder\\\":[\\\"e.g. http://localhost:8080\\\"],\\\"connection.settings.qbittorrent.username\\\":[\\\"Username\\\"],\\\"connection.settings.qbittorrent.username.input.placeholder\\\":[\\\"Username\\\"],\\\"connection.settings.rtorrent\\\":[\\\"rTorrent\\\"],\\\"connection.settings.rtorrent.host\\\":[\\\"Host\\\"],\\\"connection.settings.rtorrent.host.input.placeholder\\\":[\\\"Hostname or IP\\\"],\\\"connection.settings.rtorrent.port\\\":[\\\"Port\\\"],\\\"connection.settings.rtorrent.port.input.placeholder\\\":[\\\"Port\\\"],\\\"connection.settings.rtorrent.socket\\\":[\\\"Path\\\"],\\\"connection.settings.rtorrent.socket.input.placeholder\\\":[\\\"e.g. ~/.local/share/rtorrent/rtorrent.sock\\\"],\\\"connection.settings.rtorrent.type\\\":[\\\"Connection Type\\\"],\\\"connection.settings.rtorrent.type.socket\\\":[\\\"Socket\\\"],\\\"connection.settings.rtorrent.type.tcp\\\":[\\\"TCP\\\"],\\\"connection.settings.rtorrent.type.tcp.warning\\\":[\\\"Exposing rTorrent via TCP may allow privilege escalation.\\\"],\\\"connection.settings.transmission\\\":[\\\"Transmission\\\"],\\\"connection.settings.transmission.password\\\":[\\\"Password\\\"],\\\"connection.settings.transmission.password.input.placeholder\\\":[\\\"Password\\\"],\\\"connection.settings.transmission.url\\\":[\\\"URL\\\"],\\\"connection.settings.transmission.url.input.placeholder\\\":[\\\"e.g. http://localhost:9091/transmission/rpc\\\"],\\\"connection.settings.transmission.username\\\":[\\\"Username\\\"],\\\"connection.settings.transmission.username.input.placeholder\\\":[\\\"Username\\\"],\\\"dependency.loading.notifications\\\":[\\\"Notifications\\\"],\\\"dependency.loading.torrent.list\\\":[\\\"Torrent List\\\"],\\\"dependency.loading.torrent.taxonomy\\\":[\\\"Torrent Taxonomy\\\"],\\\"dependency.loading.transfer.history\\\":[\\\"Data Transfer History\\\"],\\\"dependency.loading.transfer.rate.details\\\":[\\\"Data Transfer Rate Details\\\"],\\\"feeds.applicable.feed\\\":[\\\"Applicable Feed\\\"],\\\"feeds.apply.tags\\\":[\\\"Apply Tags\\\"],\\\"feeds.browse.feeds\\\":[\\\"Browse feeds\\\"],\\\"feeds.check\\\":[\\\"Validate the rule by trying it out. Not saved or sent.\\\"],\\\"feeds.exclude\\\":[\\\"Exclude\\\"],\\\"feeds.exclude.pattern\\\":[\\\"Exclude Pattern\\\"],\\\"feeds.existing.feeds\\\":[\\\"Existing Feeds\\\"],\\\"feeds.existing.rules\\\":[\\\"Existing Rules\\\"],\\\"feeds.interval\\\":[\\\"Interval\\\"],\\\"feeds.label\\\":[\\\"Label\\\"],\\\"feeds.match\\\":[\\\"Match\\\"],\\\"feeds.match.count\\\":[[\\\"count\\\",\\\"plural\\\",{\\\"1\\\":[\\\"#\\\",\\\" match\\\"],\\\"other\\\":[\\\"#\\\",\\\" matches\\\"]}]],\\\"feeds.match.pattern\\\":[\\\"Match Pattern\\\"],\\\"feeds.no.feeds.available\\\":[\\\"No feeds available.\\\"],\\\"feeds.no.feeds.defined\\\":[\\\"No feeds defined.\\\"],\\\"feeds.no.items.matching\\\":[\\\"No items matching search term.\\\"],\\\"feeds.no.rules.defined\\\":[\\\"No rules defined.\\\"],\\\"feeds.regEx\\\":[\\\"RegEx\\\"],\\\"feeds.search\\\":[\\\"Search term\\\"],\\\"feeds.search.term\\\":[\\\"Search term\\\"],\\\"feeds.select.feed\\\":[\\\"Select Feed\\\"],\\\"feeds.select.interval\\\":[\\\"Interval\\\"],\\\"feeds.start.on.load\\\":[\\\"Start on load\\\"],\\\"feeds.tabs.download.rules\\\":[\\\"Download Rules\\\"],\\\"feeds.tabs.feeds\\\":[\\\"Feeds\\\"],\\\"feeds.tabs.heading\\\":[\\\"Torrent Feeds\\\"],\\\"feeds.tags\\\":[\\\"Tags\\\"],\\\"feeds.test.match\\\":[\\\"Test Match Pattern\\\"],\\\"feeds.time.day\\\":[\\\"Days\\\"],\\\"feeds.time.hr\\\":[\\\"Hours\\\"],\\\"feeds.time.min\\\":[\\\"Minutes\\\"],\\\"feeds.torrent.destination\\\":[\\\"Torrent Destination\\\"],\\\"feeds.url\\\":[\\\"URL\\\"],\\\"feeds.validation.interval.not.positive\\\":[\\\"The interval must be a positive integer.\\\"],\\\"feeds.validation.invalid.regular.expression\\\":[\\\"Invalid regular expression.\\\"],\\\"feeds.validation.must.select.feed\\\":[\\\"You must select a feed.\\\"],\\\"feeds.validation.must.specify.destination\\\":[\\\"You must specify a destination.\\\"],\\\"feeds.validation.must.specify.label\\\":[\\\"You must specify a label.\\\"],\\\"feeds.validation.must.specify.valid.feed.url\\\":[\\\"You must specify a valid feed URL.\\\"],\\\"filesystem.empty.directory\\\":[\\\"Empty directory.\\\"],\\\"filesystem.error.eacces\\\":[\\\"Flood does not have permission to read this directory.\\\"],\\\"filesystem.error.enoent\\\":[\\\"This path does not exist. It will be created.\\\"],\\\"filesystem.error.no.input\\\":[\\\"Please enter the path.\\\"],\\\"filesystem.error.unknown\\\":[\\\"An unknown error occurred. Please try again.\\\"],\\\"filesystem.fetching\\\":[\\\"Fetching directory structure...\\\"],\\\"filter.all\\\":[\\\"All\\\"],\\\"filter.location.title\\\":[\\\"Filter by Location\\\"],\\\"filter.status.active\\\":[\\\"Active\\\"],\\\"filter.status.checking\\\":[\\\"Checking\\\"],\\\"filter.status.completed\\\":[\\\"Complete\\\"],\\\"filter.status.downloading\\\":[\\\"Downloading\\\"],\\\"filter.status.error\\\":[\\\"Error\\\"],\\\"filter.status.inactive\\\":[\\\"Inactive\\\"],\\\"filter.status.seeding\\\":[\\\"Seeding\\\"],\\\"filter.status.stopped\\\":[\\\"Stopped\\\"],\\\"filter.status.title\\\":[\\\"Filter by Status\\\"],\\\"filter.tag.title\\\":[\\\"Filter by Tag\\\"],\\\"filter.tracker.title\\\":[\\\"Filter by Tracker\\\"],\\\"filter.untagged\\\":[\\\"Untagged\\\"],\\\"general.ago\\\":[\\\"ago\\\"],\\\"general.clipboard.copied\\\":[\\\"Copied\\\"],\\\"general.clipboard.copy\\\":[\\\"Copy\\\"],\\\"general.error.unknown\\\":[\\\"An unknown error occurred\\\"],\\\"general.of\\\":[\\\"of\\\"],\\\"general.to\\\":[\\\"to\\\"],\\\"locale.language.auto\\\":[\\\"Automatic\\\"],\\\"mediainfo.execError\\\":[\\\"An error occurred while running mediainfo on the server. Check that mediainfo is installed and available in the PATH to Flood.\\\"],\\\"mediainfo.fetching\\\":[\\\"Fetching...\\\"],\\\"mediainfo.heading\\\":[\\\"Mediainfo Output\\\"],\\\"notification.clear.all\\\":[\\\"Clear All\\\"],\\\"notification.feed.torrent.added.body\\\":[[\\\"title\\\"]],\\\"notification.feed.torrent.added.heading\\\":[\\\"Feed Item Queued\\\"],\\\"notification.no.notification\\\":[\\\"No notification to display.\\\"],\\\"notification.showing\\\":[\\\"Showing\\\"],\\\"notification.torrent.errored.body\\\":[[\\\"name\\\"]],\\\"notification.torrent.errored.heading\\\":[\\\"Error Reported\\\"],\\\"notification.torrent.finished.body\\\":[[\\\"name\\\"]],\\\"notification.torrent.finished.heading\\\":[\\\"Finished Downloading\\\"],\\\"priority.dont.download\\\":[\\\"Don't Download\\\"],\\\"priority.high\\\":[\\\"High\\\"],\\\"priority.low\\\":[\\\"Low\\\"],\\\"priority.normal\\\":[\\\"Normal\\\"],\\\"settings.bandwidth.slots.download.global.label\\\":[\\\"Download Slots Global\\\"],\\\"settings.bandwidth.slots.download.label\\\":[\\\"Download Slots Per Torrent\\\"],\\\"settings.bandwidth.slots.heading\\\":[\\\"Slot Availability\\\"],\\\"settings.bandwidth.slots.upload.global.label\\\":[\\\"Upload Slots Global\\\"],\\\"settings.bandwidth.slots.upload.label\\\":[\\\"Upload Slots Per Torrent\\\"],\\\"settings.bandwidth.transferrate.dropdown.preset.download.label\\\":[\\\"Dropdown Presets: Download\\\"],\\\"settings.bandwidth.transferrate.dropdown.preset.upload.label\\\":[\\\"Dropdown Presets: Upload\\\"],\\\"settings.bandwidth.transferrate.global.throttle.download\\\":[\\\"Global Download Rate Throttle\\\"],\\\"settings.bandwidth.transferrate.global.throttle.upload\\\":[\\\"Global Upload Rate Throttle\\\"],\\\"settings.bandwidth.transferrate.heading\\\":[\\\"Transfer Rate Throttles\\\"],\\\"settings.connectivity.dht.label\\\":[\\\"Enable DHT\\\"],\\\"settings.connectivity.dht.port.label\\\":[\\\"DHT Port\\\"],\\\"settings.connectivity.dpd.heading\\\":[\\\"Decentralized Peer Discovery\\\"],\\\"settings.connectivity.incoming.heading\\\":[\\\"Incoming Connections\\\"],\\\"settings.connectivity.ip.hostname.label\\\":[\\\"Reported IP/Hostname\\\"],\\\"settings.connectivity.max.http.connections\\\":[\\\"Maximum HTTP Connections\\\"],\\\"settings.connectivity.peer.exchange.label\\\":[\\\"Enable Peer Exchange\\\"],\\\"settings.connectivity.peers.desired.label\\\":[\\\"Peers Desired\\\"],\\\"settings.connectivity.peers.heading\\\":[\\\"Peers\\\"],\\\"settings.connectivity.peers.max.label\\\":[\\\"Maximum Peers\\\"],\\\"settings.connectivity.peers.min.label\\\":[\\\"Minimum Peers\\\"],\\\"settings.connectivity.peers.seeding.max.label\\\":[\\\"Maximum Peers Seeding\\\"],\\\"settings.connectivity.peers.seeding.min.label\\\":[\\\"Minimum Peers Seeding\\\"],\\\"settings.connectivity.port.open.label\\\":[\\\"Open Port\\\"],\\\"settings.connectivity.port.randomize.label\\\":[\\\"Randomize Port\\\"],\\\"settings.connectivity.port.range.label\\\":[\\\"Port Range\\\"],\\\"settings.diskusage.mount.points\\\":[\\\"Disk Usage Mount Points\\\"],\\\"settings.diskusage.show\\\":[\\\"Show\\\"],\\\"settings.resources.disk.check.hash.label\\\":[\\\"Verify Hash on Completion\\\"],\\\"settings.resources.disk.download.location.label\\\":[\\\"Default Download Directory\\\"],\\\"settings.resources.disk.heading\\\":[\\\"Disk\\\"],\\\"settings.resources.max.open.files\\\":[\\\"Maximum Open Files\\\"],\\\"settings.resources.memory.heading\\\":[\\\"Memory\\\"],\\\"settings.resources.memory.max.label\\\":[\\\"Max Memory Usage\\\"],\\\"settings.tabs.about\\\":[\\\"About\\\"],\\\"settings.tabs.authentication\\\":[\\\"Authentication\\\"],\\\"settings.tabs.bandwidth\\\":[\\\"Bandwidth\\\"],\\\"settings.tabs.connectivity\\\":[\\\"Connectivity\\\"],\\\"settings.tabs.diskusage\\\":[\\\"Disk Usage\\\"],\\\"settings.tabs.heading\\\":[\\\"Settings\\\"],\\\"settings.tabs.resources\\\":[\\\"Resources\\\"],\\\"settings.tabs.userinterface\\\":[\\\"User Interface\\\"],\\\"settings.ui.displayed.context.menu.items\\\":[\\\"Context Menu Items\\\"],\\\"settings.ui.displayed.details\\\":[\\\"Torrent Detail Columns\\\"],\\\"settings.ui.language\\\":[\\\"Language\\\"],\\\"settings.ui.locale\\\":[\\\"Locale\\\"],\\\"settings.ui.misc\\\":[\\\"Miscellaneous\\\"],\\\"settings.ui.page.title.speed\\\":[\\\"Display upload and download speed in page title\\\"],\\\"settings.ui.tag.selector.mode\\\":[\\\"Tag Selector Preference\\\"],\\\"settings.ui.tag.selector.mode.multi\\\":[\\\"Multi Selection\\\"],\\\"settings.ui.tag.selector.mode.single\\\":[\\\"Single Selection\\\"],\\\"settings.ui.torrent.context.menu.items.show\\\":[\\\"Show\\\"],\\\"settings.ui.torrent.details.enabled\\\":[\\\"Enabled\\\"],\\\"settings.ui.torrent.details.tags.placement\\\":[\\\"In the expanded view, tags work best at the end of the list.\\\"],\\\"settings.ui.torrent.list\\\":[\\\"Torrent List Display\\\"],\\\"settings.ui.torrent.size\\\":[\\\"Torrent Size\\\"],\\\"settings.ui.torrent.size.condensed\\\":[\\\"Condensed View\\\"],\\\"settings.ui.torrent.size.expanded\\\":[\\\"Expanded View\\\"],\\\"sidebar.button.feeds\\\":[\\\"Feeds\\\"],\\\"sidebar.button.log.out\\\":[\\\"Log Out\\\"],\\\"sidebar.button.settings\\\":[\\\"Settings\\\"],\\\"sidebar.button.speedlimits\\\":[\\\"Speed Limits\\\"],\\\"sidebar.button.theme.dark\\\":[\\\"Dark Theme\\\"],\\\"sidebar.button.theme.light\\\":[\\\"Light Theme\\\"],\\\"sidebar.search.placeholder\\\":[\\\"Search torrents\\\"],\\\"sidebar.speedlimits.download\\\":[\\\"DOWNLOAD\\\"],\\\"sidebar.speedlimits.upload\\\":[\\\"UPLOAD\\\"],\\\"sidebar.transferdata.downloaded\\\":[\\\"Downloaded\\\"],\\\"sidebar.transferdata.uploaded\\\":[\\\"Uploaded\\\"],\\\"speed.unlimited\\\":[\\\"Unlimited\\\"],\\\"status.diskusage.free\\\":[\\\"Free\\\"],\\\"status.diskusage.title\\\":[\\\"Disk Usage\\\"],\\\"status.diskusage.total\\\":[\\\"Total\\\"],\\\"status.diskusage.used\\\":[\\\"Used\\\"],\\\"torrent.list.peers\\\":[[\\\"connected\\\"],\\\" \\\",[\\\"of\\\"],\\\" \\\",[\\\"total\\\"]],\\\"torrent.list.peers.of\\\":[\\\"of\\\"],\\\"torrents.add.button.add\\\":[\\\"Add Torrent\\\"],\\\"torrents.add.cookies.input.placeholder\\\":[\\\"Optional cookie-name=cookie-value\\\"],\\\"torrents.add.cookies.label\\\":[\\\"Cookies\\\"],\\\"torrents.add.destination.label\\\":[\\\"Destination\\\"],\\\"torrents.add.destination.placeholder\\\":[\\\"Destination\\\"],\\\"torrents.add.heading\\\":[\\\"Add Torrents\\\"],\\\"torrents.add.start.label\\\":[\\\"Start Torrent\\\"],\\\"torrents.add.tab.create.title\\\":[\\\"Create\\\"],\\\"torrents.add.tab.file.browse\\\":[\\\"or click to browse\\\"],\\\"torrents.add.tab.file.drop\\\":[\\\"Drop some files here,\\\"],\\\"torrents.add.tab.file.title\\\":[\\\"By File\\\"],\\\"torrents.add.tab.url.input.placeholder\\\":[\\\"Torrent URL or Magnet Link\\\"],\\\"torrents.add.tab.url.register.magnet.handler\\\":[\\\"Register to handle magnet links\\\"],\\\"torrents.add.tab.url.title\\\":[\\\"By URL\\\"],\\\"torrents.add.tags\\\":[\\\"Tags\\\"],\\\"torrents.add.torrents.label\\\":[\\\"Torrents\\\"],\\\"torrents.create.base.name.input.placeholder\\\":[\\\"Optional base file or directory name of the torrent\\\"],\\\"torrents.create.base.name.label\\\":[\\\"Base Name\\\"],\\\"torrents.create.comment.input.placeholder\\\":[\\\"Optional comment in torrent file\\\"],\\\"torrents.create.comment.label\\\":[\\\"Comment\\\"],\\\"torrents.create.info.source.input.placeholder\\\":[\\\"Optional source entry in infohash\\\"],\\\"torrents.create.info.source.label\\\":[\\\"Info Source\\\"],\\\"torrents.create.is.private.label\\\":[\\\"Private\\\"],\\\"torrents.create.source.path.label\\\":[\\\"Source\\\"],\\\"torrents.create.tags.input.placeholder\\\":[\\\"Tags in Flood. Not added to created torrent.\\\"],\\\"torrents.create.tracker.input.placeholder\\\":[\\\"Tracker URL\\\"],\\\"torrents.create.trackers.label\\\":[\\\"Trackers\\\"],\\\"torrents.destination.base_path\\\":[\\\"Use as Base Path\\\"],\\\"torrents.destination.completed\\\":[\\\"Completed\\\"],\\\"torrents.destination.sequential\\\":[\\\"Sequential Download\\\"],\\\"torrents.details.actions.pause\\\":[\\\"Pause\\\"],\\\"torrents.details.actions.start\\\":[\\\"Start\\\"],\\\"torrents.details.actions.stop\\\":[\\\"Stop\\\"],\\\"torrents.details.details\\\":[\\\"Details\\\"],\\\"torrents.details.files\\\":[\\\"Files\\\"],\\\"torrents.details.files.download.file\\\":[[\\\"count\\\",\\\"plural\\\",{\\\"1\\\":[\\\"Download File\\\"],\\\"other\\\":[\\\"Download Files\\\"]}]],\\\"torrents.details.files.loading\\\":[\\\"Loading file detail...\\\"],\\\"torrents.details.general.comment\\\":[\\\"Comment\\\"],\\\"torrents.details.general.connected\\\":[[\\\"connected\\\"],\\\" connected of \\\",[\\\"total\\\"]],\\\"torrents.details.general.date.active\\\":[\\\"Last Activity\\\"],\\\"torrents.details.general.date.active.now\\\":[\\\"Now\\\"],\\\"torrents.details.general.date.added\\\":[\\\"Added\\\"],\\\"torrents.details.general.date.created\\\":[\\\"Created\\\"],\\\"torrents.details.general.date.finished\\\":[\\\"Finished\\\"],\\\"torrents.details.general.downloaded\\\":[\\\"Downloaded\\\"],\\\"torrents.details.general.free.disk.space\\\":[\\\"Free Disk Space\\\"],\\\"torrents.details.general.hash\\\":[\\\"Hash\\\"],\\\"torrents.details.general.heading.general\\\":[\\\"General\\\"],\\\"torrents.details.general.heading.torrent\\\":[\\\"Torrent\\\"],\\\"torrents.details.general.heading.tracker\\\":[\\\"Tracker\\\"],\\\"torrents.details.general.heading.transfer\\\":[\\\"Transfer\\\"],\\\"torrents.details.general.location\\\":[\\\"Location\\\"],\\\"torrents.details.general.none\\\":[\\\"None\\\"],\\\"torrents.details.general.peers\\\":[\\\"Peers\\\"],\\\"torrents.details.general.scheduler\\\":[\\\"Scheduler\\\"],\\\"torrents.details.general.scheduler.ignored\\\":[\\\"Ignored\\\"],\\\"torrents.details.general.scheduler.obeyed\\\":[\\\"Obeyed\\\"],\\\"torrents.details.general.seeds\\\":[\\\"Seeds\\\"],\\\"torrents.details.general.size\\\":[\\\"Size\\\"],\\\"torrents.details.general.tags\\\":[\\\"Tags\\\"],\\\"torrents.details.general.tracker.message\\\":[\\\"Tracker Message\\\"],\\\"torrents.details.general.type\\\":[\\\"Type\\\"],\\\"torrents.details.general.type.private\\\":[\\\"Private\\\"],\\\"torrents.details.general.type.public\\\":[\\\"Public\\\"],\\\"torrents.details.mediainfo\\\":[\\\"Mediainfo\\\"],\\\"torrents.details.peers\\\":[\\\"Peers\\\"],\\\"torrents.details.peers.no.data\\\":[\\\"There is no peer data for this torrent.\\\"],\\\"torrents.details.selected.files\\\":[[\\\"count\\\",\\\"plural\\\",{\\\"1\\\":[[\\\"countElement\\\"],\\\" selected file\\\"],\\\"other\\\":[[\\\"countElement\\\"],\\\" selected files\\\"]}]],\\\"torrents.details.selected.files.set.priority\\\":[\\\"Set Priority\\\"],\\\"torrents.details.trackers\\\":[\\\"Trackers\\\"],\\\"torrents.details.trackers.no.data\\\":[\\\"There is no tracker data for this torrent.\\\"],\\\"torrents.details.trackers.type\\\":[\\\"Type\\\"],\\\"torrents.generate.magnet.heading\\\":[\\\"Generate Magnet Link\\\"],\\\"torrents.generate.magnet.loading.trackers\\\":[\\\"Loading trackers...\\\"],\\\"torrents.generate.magnet.magnet\\\":[\\\"Magnet Link\\\"],\\\"torrents.generate.magnet.magnet.with.trackers\\\":[\\\"Magnet Link with Trackers\\\"],\\\"torrents.generate.magnet.private.torrent\\\":[\\\"This is a private torrent.\\\"],\\\"torrents.list.cannot.connect\\\":[\\\"Cannot connect to the client.\\\"],\\\"torrents.list.clear.filters\\\":[\\\"Clear Filters\\\"],\\\"torrents.list.context.check.hash\\\":[\\\"Check Hash\\\"],\\\"torrents.list.context.details\\\":[\\\"Torrent Details\\\"],\\\"torrents.list.context.download.contents\\\":[\\\"Download Contents\\\"],\\\"torrents.list.context.download.metainfo\\\":[\\\"Download .torrent\\\"],\\\"torrents.list.context.generate.magnet\\\":[\\\"Generate Magnet Link\\\"],\\\"torrents.list.context.initial.seeding\\\":[\\\"Initial Seeding\\\"],\\\"torrents.list.context.move\\\":[\\\"Set Torrent Location\\\"],\\\"torrents.list.context.pause\\\":[\\\"Pause\\\"],\\\"torrents.list.context.priority\\\":[\\\"Priority\\\"],\\\"torrents.list.context.reannounce\\\":[\\\"Reannounce\\\"],\\\"torrents.list.context.remove\\\":[\\\"Remove\\\"],\\\"torrents.list.context.sequential\\\":[\\\"Sequential\\\"],\\\"torrents.list.context.set.tags\\\":[\\\"Set Tags\\\"],\\\"torrents.list.context.set.trackers\\\":[\\\"Set Trackers\\\"],\\\"torrents.list.context.start\\\":[\\\"Start\\\"],\\\"torrents.list.context.stop\\\":[\\\"Stop\\\"],\\\"torrents.list.drop\\\":[\\\"Drop files here to add them.\\\"],\\\"torrents.list.no.torrents\\\":[\\\"No torrents to display.\\\"],\\\"torrents.move.button.set.location\\\":[\\\"Set Location\\\"],\\\"torrents.move.button.state.setting\\\":[\\\"Setting...\\\"],\\\"torrents.move.check_hash.label\\\":[\\\"Check hash\\\"],\\\"torrents.move.data.label\\\":[\\\"Move data\\\"],\\\"torrents.move.heading\\\":[\\\"Set Torrent Location\\\"],\\\"torrents.properties.comment\\\":[\\\"Comment\\\"],\\\"torrents.properties.date.active\\\":[\\\"Last Activity\\\"],\\\"torrents.properties.date.added\\\":[\\\"Added\\\"],\\\"torrents.properties.date.created\\\":[\\\"Created\\\"],\\\"torrents.properties.date.finished\\\":[\\\"Finished\\\"],\\\"torrents.properties.directory\\\":[\\\"Location\\\"],\\\"torrents.properties.download.speed\\\":[\\\"Download Speed\\\"],\\\"torrents.properties.download.total\\\":[\\\"Downloaded\\\"],\\\"torrents.properties.eta\\\":[\\\"ETA\\\"],\\\"torrents.properties.free.disk.space\\\":[\\\"Free Disk Space\\\"],\\\"torrents.properties.hash\\\":[\\\"Hash\\\"],\\\"torrents.properties.ignore.schedule\\\":[\\\"Ignore Scheduler\\\"],\\\"torrents.properties.is.private\\\":[\\\"Private\\\"],\\\"torrents.properties.name\\\":[\\\"Name\\\"],\\\"torrents.properties.peers\\\":[\\\"Peers\\\"],\\\"torrents.properties.percentage\\\":[\\\"Percent Complete\\\"],\\\"torrents.properties.ratio\\\":[\\\"Ratio\\\"],\\\"torrents.properties.seeds\\\":[\\\"Seeds\\\"],\\\"torrents.properties.size\\\":[\\\"File Size\\\"],\\\"torrents.properties.tags\\\":[\\\"Tags\\\"],\\\"torrents.properties.tracker.message\\\":[\\\"Tracker Message\\\"],\\\"torrents.properties.trackers\\\":[\\\"Trackers\\\"],\\\"torrents.properties.upload.speed\\\":[\\\"Upload Speed\\\"],\\\"torrents.properties.upload.total\\\":[\\\"Uploaded\\\"],\\\"torrents.remove\\\":[\\\"Remove Torrents\\\"],\\\"torrents.remove.are.you.sure\\\":[\\\"Are you sure you want to remove \\\",[\\\"count\\\",\\\"plural\\\",{\\\"1\\\":[\\\"#\\\",\\\" torrent\\\"],\\\"other\\\":[\\\"#\\\",\\\" torrents\\\"]}],\\\"?\\\"],\\\"torrents.remove.delete.data\\\":[\\\"Delete data\\\"],\\\"torrents.remove.error.no.torrents.selected\\\":[\\\"You haven't selected any torrents.\\\"],\\\"torrents.set.tags.button.set\\\":[\\\"Set Tags\\\"],\\\"torrents.set.tags.enter.tags\\\":[\\\"Enter tags\\\"],\\\"torrents.set.tags.heading\\\":[\\\"Set Tags\\\"],\\\"torrents.set.trackers.button.set\\\":[\\\"Set Trackers\\\"],\\\"torrents.set.trackers.enter.tracker\\\":[\\\"Enter a tracker\\\"],\\\"torrents.set.trackers.heading\\\":[\\\"Set Trackers\\\"],\\\"torrents.set.trackers.loading.trackers\\\":[\\\"Loading trackers...\\\"],\\\"torrents.sort.title\\\":[\\\"Sort By\\\"],\\\"unit.size.byte\\\":[\\\"B\\\"],\\\"unit.size.gigabyte\\\":[\\\"GB\\\"],\\\"unit.size.kilobyte\\\":[\\\"kB\\\"],\\\"unit.size.megabyte\\\":[\\\"MB\\\"],\\\"unit.size.terabyte\\\":[\\\"TB\\\"],\\\"unit.speed\\\":[[\\\"baseUnit\\\"],\\\"/s\\\"],\\\"unit.time.day\\\":[\\\"d\\\"],\\\"unit.time.hour\\\":[\\\"hr\\\"],\\\"unit.time.infinity\\\":[\\\"∞\\\"],\\\"unit.time.minute\\\":[\\\"m\\\"],\\\"unit.time.second\\\":[\\\"s\\\"],\\\"unit.time.week\\\":[\\\"wk\\\"],\\\"unit.time.year\\\":[\\\"yr\\\"]}\");","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","import { useMemo } from 'react';\nimport useEvent from './useEvent';\nimport { noop } from './misc/util';\nvar createKeyPredicate = function (keyFilter) {\n return typeof keyFilter === 'function'\n ? keyFilter\n : typeof keyFilter === 'string'\n ? function (event) { return event.key === keyFilter; }\n : keyFilter\n ? function () { return true; }\n : function () { return false; };\n};\nvar useKey = function (key, fn, opts, deps) {\n if (fn === void 0) { fn = noop; }\n if (opts === void 0) { opts = {}; }\n if (deps === void 0) { deps = [key]; }\n var _a = opts.event, event = _a === void 0 ? 'keydown' : _a, target = opts.target, options = opts.options;\n var useMemoHandler = useMemo(function () {\n var predicate = createKeyPredicate(key);\n var handler = function (handlerEvent) {\n if (predicate(handlerEvent)) {\n return fn(handlerEvent);\n }\n };\n return handler;\n }, deps);\n useEvent(event, useMemoHandler, target, options);\n};\nexport default useKey;\n","import React, {\n useState,\n useRef,\n useEffect,\n useCallback,\n useImperativeHandle,\n forwardRef,\n CSSProperties,\n ReactNode,\n} from 'react';\nimport classnames from 'classnames';\nimport {createPortal} from 'react-dom';\n\nimport {css} from '@client/styled-system/css';\n\ntype Align = 'start' | 'center' | 'end';\n\ntype Position = 'top' | 'bottom' | 'right' | 'left';\n\ntype Coordinates = Record<Position, number>;\n\ntype Clearance = Coordinates & {\n boundingRect: Coordinates & {\n width: number;\n height: number;\n };\n};\n\ninterface TooltipProps {\n children?: React.ReactNode;\n align?: Align;\n anchor?: Align;\n position?: Position;\n offset?: number;\n width?: number;\n maxWidth?: number;\n interactive?: boolean;\n suppress?: boolean;\n stayOpen?: boolean;\n wrapText?: boolean;\n className?: string;\n contentClassName?: string;\n wrapperClassName?: string;\n styles?: string | string[];\n content: ReactNode;\n onOpen?: () => void;\n onClose?: () => void;\n onClick?: () => void;\n onMouseLeave?: () => void;\n}\n\ninterface TooltipStates {\n anchor?: Align;\n coordinates?: Pick<Coordinates, 'left' | 'top'>;\n position?: Position;\n isOpen: boolean;\n wasTriggeredClose: boolean;\n}\n\nexport interface TooltipHandle {\n dismissTooltip: (forceClose?: boolean) => void;\n isOpen: () => boolean;\n}\n\nconst getNodeClearance = (domNode: HTMLElement) => {\n const viewportHeight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);\n const viewportWidth = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\n const boundingRect = domNode.getBoundingClientRect();\n\n return {\n bottom: viewportHeight - boundingRect.bottom,\n left: boundingRect.left,\n right: viewportWidth - boundingRect.right,\n top: boundingRect.top,\n boundingRect,\n };\n};\n\nconst getPosition = (\n position: Position,\n clearance: Clearance,\n tooltipWidth: number,\n tooltipHeight: number,\n): Position => {\n // Change the position if the tooltip will be rendered off the screen.\n switch (position) {\n case 'left':\n if (clearance.left < tooltipWidth) {\n return 'right';\n }\n break;\n case 'right':\n if (clearance.right < tooltipWidth) {\n return 'left';\n }\n break;\n case 'top':\n if (clearance.top < tooltipHeight) {\n return 'bottom';\n }\n break;\n case 'bottom':\n if (clearance.bottom < tooltipHeight && clearance.top > clearance.bottom) {\n return 'top';\n }\n break;\n default:\n }\n\n return position;\n};\n\nconst transformAnchor = (\n anchor: Align,\n clearanceStart: number,\n clearanceEnd: number,\n tooltipDimension: number,\n triggerDimension: number,\n): Align => {\n // Change the provided anchor based on the clearance available.\n if (anchor === 'start' && clearanceEnd < tooltipDimension) {\n return 'end';\n }\n\n if (anchor === 'end' && clearanceStart < tooltipDimension) {\n return 'start';\n }\n\n if (anchor === 'center') {\n const tooltipOverflow = (tooltipDimension - triggerDimension) / 2;\n\n if (clearanceStart < tooltipOverflow) {\n return 'start';\n }\n\n if (clearanceEnd < tooltipOverflow) {\n return 'end';\n }\n }\n\n return anchor;\n};\n\nconst getAnchor = (\n isVertical: boolean,\n anchor: Align,\n clearance: Clearance,\n tooltipWidth: number,\n tooltipHeight: number,\n): Align => {\n if (isVertical) {\n return transformAnchor(anchor, clearance.left, clearance.right, tooltipWidth, clearance.boundingRect.width);\n }\n\n return transformAnchor(anchor, clearance.top, clearance.bottom, tooltipHeight, clearance.boundingRect.height);\n};\n\nconst ARROW_SIZE = 7;\n\nconst Tooltip = forwardRef<TooltipHandle, TooltipProps>(\n (\n {\n children,\n align = 'center',\n anchor = 'center',\n position = 'top',\n offset = 0,\n width,\n maxWidth,\n interactive = false,\n suppress = false,\n stayOpen = false,\n wrapText = false,\n className = 'tooltip',\n contentClassName = 'tooltip__content',\n wrapperClassName = 'tooltip__wrapper',\n styles,\n content,\n onOpen,\n onClose,\n onClick,\n onMouseLeave,\n },\n ref,\n ) => {\n const [state, setState] = useState<TooltipStates>({\n isOpen: false,\n wasTriggeredClose: false,\n anchor: undefined,\n position: undefined,\n coordinates: undefined,\n });\n\n const container = useRef<Window>(window);\n const triggerNode = useRef<HTMLDivElement>(null);\n const tooltipNode = useRef<HTMLDivElement>(null);\n const scrollListenerRef = useRef<(() => void) | null>(null);\n\n // Store refs to avoid stale closures\n const stateRef = useRef(state);\n const propsRef = useRef({stayOpen, onClose});\n\n // Update refs when values change\n useEffect(() => {\n stateRef.current = state;\n }, [state]);\n\n useEffect(() => {\n propsRef.current = {stayOpen, onClose};\n }, [stayOpen, onClose]);\n\n const getCoordinates = useCallback(\n (\n tooltipPosition: Position,\n clearance: Clearance,\n tooltipWidth: number,\n tooltipHeight: number,\n ): Pick<Coordinates, 'left' | 'top'> => {\n let top = null;\n\n switch (tooltipPosition) {\n case 'left':\n return {\n top: clearance.boundingRect.top + clearance.boundingRect.height / 2,\n left: clearance.boundingRect.left - tooltipWidth + ARROW_SIZE + offset,\n };\n case 'right':\n return {\n top: clearance.boundingRect.top + clearance.boundingRect.height / 2,\n left: clearance.boundingRect.right + offset,\n };\n case 'top':\n top = clearance.boundingRect.top - tooltipHeight + ARROW_SIZE + offset;\n break;\n case 'bottom':\n top = clearance.boundingRect.bottom + offset;\n break;\n default:\n }\n\n switch (align) {\n case 'start':\n return {\n top: top as number,\n left: clearance.boundingRect.left,\n };\n case 'center':\n return {\n top: top as number,\n left: clearance.boundingRect.left + clearance.boundingRect.width / 2,\n };\n case 'end':\n return {\n top: top as number,\n left: clearance.boundingRect.left + clearance.boundingRect.width - tooltipWidth,\n };\n default:\n }\n\n return {\n top: 0,\n left: 0,\n };\n },\n [align, offset],\n );\n\n const getIdealLocation = useCallback(\n (anchorProp: Align, positionProp: Position) => {\n if (triggerNode.current == null || tooltipNode.current == null || anchorProp == null) {\n return {\n anchor: anchorProp,\n position: positionProp,\n coordinates: {left: 0, top: 0},\n };\n }\n\n const clearance = getNodeClearance(triggerNode.current);\n const tooltipRect = tooltipNode.current.getBoundingClientRect();\n const tooltipHeight = tooltipRect.height + ARROW_SIZE;\n const tooltipWidth = tooltipRect.width + ARROW_SIZE;\n\n const newPosition = getPosition(positionProp, clearance, tooltipWidth, tooltipHeight);\n\n return {\n anchor: getAnchor(\n newPosition !== 'left' && newPosition !== 'right',\n anchorProp,\n clearance,\n tooltipWidth,\n tooltipHeight,\n ),\n position: newPosition,\n coordinates: getCoordinates(newPosition, clearance, tooltipWidth, tooltipHeight),\n };\n },\n [getCoordinates],\n );\n\n // Create a stable dismiss function that doesn't change\n const dismissTooltipInternal = useCallback(() => {\n const currentState = stateRef.current;\n const currentProps = propsRef.current;\n\n if (currentState.isOpen) {\n setState((prevState) => ({...prevState, isOpen: false}));\n\n // Remove scroll listener\n if (scrollListenerRef.current && container.current) {\n container.current.removeEventListener('scroll', scrollListenerRef.current);\n scrollListenerRef.current = null;\n }\n\n if (currentProps.onClose) {\n currentProps.onClose();\n }\n }\n }, []);\n\n const dismissTooltip = useCallback(\n (forceClose?: boolean) => {\n const currentProps = propsRef.current;\n\n if (!currentProps.stayOpen || forceClose) {\n dismissTooltipInternal();\n }\n },\n [dismissTooltipInternal],\n );\n\n const handleTooltipMouseEnter = useCallback(() => {\n if (interactive && !stateRef.current.wasTriggeredClose) {\n setState((prevState) => ({...prevState, isOpen: true}));\n\n // Add scroll listener if not already added\n if (!scrollListenerRef.current && container.current) {\n // Store the exact same function reference\n const listener = () => dismissTooltipInternal();\n scrollListenerRef.current = listener;\n container.current.addEventListener('scroll', listener);\n }\n }\n }, [interactive, dismissTooltipInternal]);\n\n const handleTooltipMouseLeave = useCallback(() => {\n dismissTooltip();\n }, [dismissTooltip]);\n\n const handleMouseEnter = useCallback(\n (forceOpen?: boolean) => {\n if (suppress && !forceOpen) {\n return;\n }\n\n if (anchor == null || position == null) {\n return;\n }\n\n const {anchor: newAnchor, position: newPosition, coordinates} = getIdealLocation(anchor, position);\n\n setState({\n anchor: newAnchor,\n isOpen: true,\n position: newPosition,\n coordinates,\n wasTriggeredClose: false,\n });\n\n // Add scroll listener if not already added\n if (!scrollListenerRef.current && container.current) {\n // Store the exact same function reference\n const listener = () => dismissTooltipInternal();\n scrollListenerRef.current = listener;\n container.current.addEventListener('scroll', listener);\n }\n\n if (onOpen) {\n onOpen();\n }\n },\n [suppress, anchor, position, getIdealLocation, dismissTooltipInternal, onOpen],\n );\n\n const handleMouseLeave = useCallback(() => {\n dismissTooltip();\n\n if (onMouseLeave) {\n onMouseLeave();\n }\n }, [dismissTooltip, onMouseLeave]);\n\n const isOpen = useCallback(() => {\n return stateRef.current.isOpen;\n }, []);\n\n // Expose methods via ref\n useImperativeHandle(\n ref,\n () => ({\n dismissTooltip,\n isOpen,\n }),\n [dismissTooltip, isOpen],\n );\n\n // Cleanup on unmount\n useEffect(() => {\n const containerElement = container.current;\n return () => {\n if (scrollListenerRef.current && containerElement) {\n containerElement.removeEventListener('scroll', scrollListenerRef.current);\n scrollListenerRef.current = null;\n }\n };\n }, []);\n\n // Get the anchor and position from state if possible. If not, get it from the props.\n const finalAnchor = state.anchor || anchor;\n const finalPosition = state.position || position;\n\n const tooltipClasses = classnames(\n className,\n `tooltip--anchor--${finalAnchor}`,\n `tooltip--position--${finalPosition}`,\n `tooltip--align--${align}`,\n {\n 'is-interactive': interactive,\n 'is-open': state.isOpen,\n 'tooltip--no-wrap': !wrapText,\n },\n );\n\n let tooltipStyle: CSSProperties = {};\n\n if (state.coordinates) {\n tooltipStyle = {\n left: state.coordinates.left,\n top: state.coordinates.top,\n };\n }\n\n if (width) {\n tooltipStyle.width = width;\n }\n\n if (maxWidth) {\n tooltipStyle.maxWidth = maxWidth;\n }\n\n const appElement = document.getElementById('app') || document.getElementById('storybook-root') || document.body;\n\n if (appElement == null) {\n return null;\n }\n\n return (\n <div\n aria-label={typeof content === 'string' ? content : undefined}\n className={classnames(\n wrapperClassName,\n css({\n _focus: {\n outline: 'none',\n WebkitTapHighlightColor: 'transparent',\n },\n }),\n Array.isArray(styles) ? styles : styles ? [styles] : undefined,\n )}\n tabIndex={0}\n role=\"button\"\n data-testid=\"tooltip-trigger\"\n onClick={onClick}\n onKeyPress={(e) => {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n onClick?.();\n }\n }}\n onFocus={() => handleMouseEnter()}\n onBlur={() => {\n if (!interactive) {\n handleMouseLeave();\n }\n }}\n onMouseEnter={() => handleMouseEnter()}\n onMouseLeave={() => handleMouseLeave()}\n ref={triggerNode}\n >\n {children}\n {createPortal(\n <div\n className={tooltipClasses}\n ref={tooltipNode}\n style={tooltipStyle}\n role=\"tooltip\"\n data-testid=\"tooltip-content\"\n data-visible={state.isOpen ? 'true' : 'false'}\n data-position={state.position || position}\n data-align={align}\n data-wrap={wrapText !== false ? 'true' : 'false'}\n onMouseEnter={handleTooltipMouseEnter}\n onMouseLeave={handleTooltipMouseLeave}\n >\n <div className={contentClassName}>{content}</div>\n </div>,\n appElement,\n )}\n </div>\n );\n },\n);\n\nTooltip.displayName = 'Tooltip';\n\nexport default Tooltip;\n","import {makeAutoObservable} from 'mobx';\n\nimport defaultFloodSettings from '@shared/constants/defaultFloodSettings';\n\nimport type {ClientSettings} from '@shared/types/ClientSettings';\nimport type {FloodSettings} from '@shared/types/FloodSettings';\n\nclass SettingStore {\n fetchStatus = {\n clientSettingsFetched: false,\n floodSettingsFetched: false,\n };\n\n clientSettings: ClientSettings | null = null;\n\n // Default settings are overridden by settings stored in database.\n floodSettings: FloodSettings = {...defaultFloodSettings};\n\n get totalCellWidth() {\n return this.floodSettings.torrentListColumns.reduce((accumulator, {id, visible}) => {\n const width = Number(this.floodSettings.torrentListColumnWidths[id]);\n\n if (!visible || Number.isNaN(width)) {\n return accumulator;\n }\n\n return accumulator + width;\n }, 0);\n }\n\n constructor() {\n makeAutoObservable(this);\n }\n\n handleClientSettingsFetchSuccess(settings: ClientSettings) {\n this.fetchStatus.clientSettingsFetched = true;\n this.clientSettings = settings;\n }\n\n handleSettingsFetchSuccess(settings: Partial<FloodSettings>): void {\n this.fetchStatus.floodSettingsFetched = true;\n Object.assign(this.floodSettings, settings);\n }\n\n saveFloodSettings(settings: Partial<FloodSettings>) {\n Object.assign(this.floodSettings, settings);\n }\n\n saveClientSettings(settings: Partial<ClientSettings>) {\n if (this.clientSettings == null) {\n return;\n }\n\n Object.assign(this.clientSettings, settings);\n }\n}\n\nexport default new SettingStore();\n","var map = {\n\t\"./ad.png\": [\n\t\t2627,\n\t\t703\n\t],\n\t\"./ae.png\": [\n\t\t1866,\n\t\t894\n\t],\n\t\"./af.png\": [\n\t\t849,\n\t\t309\n\t],\n\t\"./ag.png\": [\n\t\t8136,\n\t\t500\n\t],\n\t\"./al.png\": [\n\t\t9323,\n\t\t309\n\t],\n\t\"./am.png\": [\n\t\t5666,\n\t\t894\n\t],\n\t\"./ao.png\": [\n\t\t7568,\n\t\t894\n\t],\n\t\"./ar.png\": [\n\t\t4901,\n\t\t894\n\t],\n\t\"./at.png\": [\n\t\t2675,\n\t\t500\n\t],\n\t\"./au.png\": [\n\t\t6490,\n\t\t500\n\t],\n\t\"./az.png\": [\n\t\t5725,\n\t\t703\n\t],\n\t\"./ba.png\": [\n\t\t6639,\n\t\t500\n\t],\n\t\"./bb.png\": [\n\t\t7732,\n\t\t500\n\t],\n\t\"./bd.png\": [\n\t\t2514,\n\t\t703\n\t],\n\t\"./be.png\": [\n\t\t3643,\n\t\t894\n\t],\n\t\"./bf.png\": [\n\t\t3792,\n\t\t703\n\t],\n\t\"./bg.png\": [\n\t\t697,\n\t\t894\n\t],\n\t\"./bh.png\": [\n\t\t1310,\n\t\t894\n\t],\n\t\"./bi.png\": [\n\t\t679,\n\t\t703\n\t],\n\t\"./bj.png\": [\n\t\t44,\n\t\t500\n\t],\n\t\"./bn.png\": [\n\t\t9160,\n\t\t703\n\t],\n\t\"./bo.png\": [\n\t\t3777,\n\t\t894\n\t],\n\t\"./br.png\": [\n\t\t9332,\n\t\t703\n\t],\n\t\"./bs.png\": [\n\t\t9277,\n\t\t500\n\t],\n\t\"./bt.png\": [\n\t\t6770,\n\t\t894\n\t],\n\t\"./bw.png\": [\n\t\t7481,\n\t\t500\n\t],\n\t\"./by.png\": [\n\t\t6887,\n\t\t894\n\t],\n\t\"./bz.png\": [\n\t\t6828,\n\t\t309\n\t],\n\t\"./ca.png\": [\n\t\t7304,\n\t\t894\n\t],\n\t\"./cd.png\": [\n\t\t1429,\n\t\t703\n\t],\n\t\"./cf.png\": [\n\t\t3095,\n\t\t703\n\t],\n\t\"./cg.png\": [\n\t\t9950,\n\t\t894\n\t],\n\t\"./ch.png\": [\n\t\t2985,\n\t\t894\n\t],\n\t\"./ci.png\": [\n\t\t6736,\n\t\t500\n\t],\n\t\"./cl.png\": [\n\t\t8125,\n\t\t309\n\t],\n\t\"./cm.png\": [\n\t\t6996,\n\t\t309\n\t],\n\t\"./cn.png\": [\n\t\t2111,\n\t\t703\n\t],\n\t\"./co.png\": [\n\t\t566,\n\t\t500\n\t],\n\t\"./cr.png\": [\n\t\t1843,\n\t\t894\n\t],\n\t\"./cu.png\": [\n\t\t5596,\n\t\t894\n\t],\n\t\"./cv.png\": [\n\t\t8247,\n\t\t894\n\t],\n\t\"./cw.png\": [\n\t\t5758,\n\t\t309\n\t],\n\t\"./cy.png\": [\n\t\t3504,\n\t\t894\n\t],\n\t\"./cz.png\": [\n\t\t5483,\n\t\t500\n\t],\n\t\"./de.png\": [\n\t\t3501,\n\t\t500\n\t],\n\t\"./dj.png\": [\n\t\t6906,\n\t\t309\n\t],\n\t\"./dk.png\": [\n\t\t2115,\n\t\t894\n\t],\n\t\"./dm.png\": [\n\t\t3781,\n\t\t703\n\t],\n\t\"./do.png\": [\n\t\t8999,\n\t\t894\n\t],\n\t\"./dz.png\": [\n\t\t90,\n\t\t500\n\t],\n\t\"./ec.png\": [\n\t\t240,\n\t\t703\n\t],\n\t\"./ee.png\": [\n\t\t5238,\n\t\t500\n\t],\n\t\"./eg.png\": [\n\t\t6916,\n\t\t894\n\t],\n\t\"./eh.png\": [\n\t\t4579,\n\t\t309\n\t],\n\t\"./er.png\": [\n\t\t8281,\n\t\t500\n\t],\n\t\"./es.png\": [\n\t\t1376,\n\t\t894\n\t],\n\t\"./et.png\": [\n\t\t4223,\n\t\t309\n\t],\n\t\"./fi.png\": [\n\t\t9659,\n\t\t894\n\t],\n\t\"./fj.png\": [\n\t\t7904,\n\t\t894\n\t],\n\t\"./fm.png\": [\n\t\t127,\n\t\t309\n\t],\n\t\"./fr.png\": [\n\t\t4680,\n\t\t500\n\t],\n\t\"./ga.png\": [\n\t\t9084,\n\t\t894\n\t],\n\t\"./gb.png\": [\n\t\t7559,\n\t\t703\n\t],\n\t\"./gd.png\": [\n\t\t2337,\n\t\t500\n\t],\n\t\"./ge.png\": [\n\t\t6040,\n\t\t309\n\t],\n\t\"./gh.png\": [\n\t\t1533,\n\t\t500\n\t],\n\t\"./gm.png\": [\n\t\t3936,\n\t\t894\n\t],\n\t\"./gn.png\": [\n\t\t8971,\n\t\t500\n\t],\n\t\"./gq.png\": [\n\t\t8476,\n\t\t894\n\t],\n\t\"./gr.png\": [\n\t\t6583,\n\t\t894\n\t],\n\t\"./gt.png\": [\n\t\t5073,\n\t\t894\n\t],\n\t\"./gw.png\": [\n\t\t4490,\n\t\t500\n\t],\n\t\"./gy.png\": [\n\t\t8052,\n\t\t703\n\t],\n\t\"./hk.png\": [\n\t\t7415,\n\t\t894\n\t],\n\t\"./hn.png\": [\n\t\t1530,\n\t\t703\n\t],\n\t\"./hr.png\": [\n\t\t3622,\n\t\t500\n\t],\n\t\"./ht.png\": [\n\t\t9392,\n\t\t500\n\t],\n\t\"./hu.png\": [\n\t\t3593,\n\t\t894\n\t],\n\t\"./id.png\": [\n\t\t8299,\n\t\t500\n\t],\n\t\"./ie.png\": [\n\t\t9298,\n\t\t894\n\t],\n\t\"./il.png\": [\n\t\t8579,\n\t\t703\n\t],\n\t\"./in.png\": [\n\t\t5313,\n\t\t309\n\t],\n\t\"./iq.png\": [\n\t\t6825,\n\t\t894\n\t],\n\t\"./ir.png\": [\n\t\t413,\n\t\t500\n\t],\n\t\"./is.png\": [\n\t\t7380,\n\t\t309\n\t],\n\t\"./it.png\": [\n\t\t6024,\n\t\t500\n\t],\n\t\"./je.png\": [\n\t\t2579,\n\t\t309\n\t],\n\t\"./jm.png\": [\n\t\t6571,\n\t\t703\n\t],\n\t\"./jo.png\": [\n\t\t2649,\n\t\t500\n\t],\n\t\"./jp.png\": [\n\t\t5422,\n\t\t309\n\t],\n\t\"./ke.png\": [\n\t\t9732,\n\t\t894\n\t],\n\t\"./kg.png\": [\n\t\t1206,\n\t\t703\n\t],\n\t\"./kh.png\": [\n\t\t9985,\n\t\t703\n\t],\n\t\"./ki.png\": [\n\t\t1592,\n\t\t500\n\t],\n\t\"./km.png\": [\n\t\t524,\n\t\t703\n\t],\n\t\"./kn.png\": [\n\t\t1207,\n\t\t309\n\t],\n\t\"./kp.png\": [\n\t\t6921,\n\t\t309\n\t],\n\t\"./kr.png\": [\n\t\t219,\n\t\t500\n\t],\n\t\"./ks.png\": [\n\t\t2914,\n\t\t309\n\t],\n\t\"./kw.png\": [\n\t\t1942,\n\t\t500\n\t],\n\t\"./kz.png\": [\n\t\t9875,\n\t\t894\n\t],\n\t\"./la.png\": [\n\t\t1025,\n\t\t309\n\t],\n\t\"./lb.png\": [\n\t\t2042,\n\t\t894\n\t],\n\t\"./lc.png\": [\n\t\t899,\n\t\t309\n\t],\n\t\"./li.png\": [\n\t\t7945,\n\t\t500\n\t],\n\t\"./lk.png\": [\n\t\t891,\n\t\t894\n\t],\n\t\"./lr.png\": [\n\t\t6666,\n\t\t309\n\t],\n\t\"./ls.png\": [\n\t\t4243,\n\t\t703\n\t],\n\t\"./lt.png\": [\n\t\t4076,\n\t\t894\n\t],\n\t\"./lu.png\": [\n\t\t3173,\n\t\t894\n\t],\n\t\"./lv.png\": [\n\t\t5822,\n\t\t500\n\t],\n\t\"./ly.png\": [\n\t\t4729,\n\t\t500\n\t],\n\t\"./ma.png\": [\n\t\t4986,\n\t\t894\n\t],\n\t\"./mc.png\": [\n\t\t5880,\n\t\t500\n\t],\n\t\"./md.png\": [\n\t\t5495,\n\t\t309\n\t],\n\t\"./me.png\": [\n\t\t3006,\n\t\t500\n\t],\n\t\"./mg.png\": [\n\t\t2844,\n\t\t500\n\t],\n\t\"./mh.png\": [\n\t\t2731,\n\t\t309\n\t],\n\t\"./mk.png\": [\n\t\t752,\n\t\t309\n\t],\n\t\"./ml.png\": [\n\t\t5727,\n\t\t500\n\t],\n\t\"./mm.png\": [\n\t\t8790,\n\t\t309\n\t],\n\t\"./mn.png\": [\n\t\t2765,\n\t\t894\n\t],\n\t\"./mr.png\": [\n\t\t5681,\n\t\t894\n\t],\n\t\"./mt.png\": [\n\t\t343,\n\t\t309\n\t],\n\t\"./mu.png\": [\n\t\t7198,\n\t\t894\n\t],\n\t\"./mv.png\": [\n\t\t8677,\n\t\t309\n\t],\n\t\"./mw.png\": [\n\t\t2764,\n\t\t894\n\t],\n\t\"./mx.png\": [\n\t\t4155,\n\t\t894\n\t],\n\t\"./my.png\": [\n\t\t3650,\n\t\t703\n\t],\n\t\"./mz.png\": [\n\t\t233,\n\t\t703\n\t],\n\t\"./na.png\": [\n\t\t8635,\n\t\t894\n\t],\n\t\"./ne.png\": [\n\t\t2255,\n\t\t309\n\t],\n\t\"./ng.png\": [\n\t\t1197,\n\t\t500\n\t],\n\t\"./ni.png\": [\n\t\t8915,\n\t\t894\n\t],\n\t\"./nl.png\": [\n\t\t9534,\n\t\t894\n\t],\n\t\"./no.png\": [\n\t\t5285,\n\t\t309\n\t],\n\t\"./np.png\": [\n\t\t6498,\n\t\t500\n\t],\n\t\"./nr.png\": [\n\t\t6336,\n\t\t703\n\t],\n\t\"./nz.png\": [\n\t\t7256,\n\t\t703\n\t],\n\t\"./om.png\": [\n\t\t9672,\n\t\t894\n\t],\n\t\"./pa.png\": [\n\t\t357,\n\t\t703\n\t],\n\t\"./pe.png\": [\n\t\t4065,\n\t\t500\n\t],\n\t\"./pg.png\": [\n\t\t2339,\n\t\t894\n\t],\n\t\"./ph.png\": [\n\t\t7044,\n\t\t500\n\t],\n\t\"./pk.png\": [\n\t\t7887,\n\t\t894\n\t],\n\t\"./pl.png\": [\n\t\t5664,\n\t\t500\n\t],\n\t\"./pt.png\": [\n\t\t5032,\n\t\t703\n\t],\n\t\"./pw.png\": [\n\t\t8243,\n\t\t309\n\t],\n\t\"./py.png\": [\n\t\t525,\n\t\t500\n\t],\n\t\"./qa.png\": [\n\t\t2734,\n\t\t500\n\t],\n\t\"./ro.png\": [\n\t\t9649,\n\t\t500\n\t],\n\t\"./rs.png\": [\n\t\t5373,\n\t\t500\n\t],\n\t\"./ru.png\": [\n\t\t9883,\n\t\t894\n\t],\n\t\"./rw.png\": [\n\t\t6585,\n\t\t894\n\t],\n\t\"./sa.png\": [\n\t\t2616,\n\t\t703\n\t],\n\t\"./sb.png\": [\n\t\t5827,\n\t\t894\n\t],\n\t\"./sc.png\": [\n\t\t4250,\n\t\t703\n\t],\n\t\"./sd.png\": [\n\t\t2197,\n\t\t894\n\t],\n\t\"./se.png\": [\n\t\t5660,\n\t\t500\n\t],\n\t\"./sg.png\": [\n\t\t6446,\n\t\t500\n\t],\n\t\"./si.png\": [\n\t\t512,\n\t\t500\n\t],\n\t\"./sk.png\": [\n\t\t6546,\n\t\t309\n\t],\n\t\"./sl.png\": [\n\t\t8109,\n\t\t894\n\t],\n\t\"./sm.png\": [\n\t\t5604,\n\t\t309\n\t],\n\t\"./sn.png\": [\n\t\t9167,\n\t\t309\n\t],\n\t\"./so.png\": [\n\t\t1078,\n\t\t703\n\t],\n\t\"./sr.png\": [\n\t\t9923,\n\t\t703\n\t],\n\t\"./st.png\": [\n\t\t7941,\n\t\t703\n\t],\n\t\"./sv.png\": [\n\t\t3159,\n\t\t894\n\t],\n\t\"./sy.png\": [\n\t\t3248,\n\t\t309\n\t],\n\t\"./sz.png\": [\n\t\t4539,\n\t\t500\n\t],\n\t\"./td.png\": [\n\t\t8532,\n\t\t500\n\t],\n\t\"./tg.png\": [\n\t\t5391,\n\t\t500\n\t],\n\t\"./th.png\": [\n\t\t5544,\n\t\t894\n\t],\n\t\"./tj.png\": [\n\t\t4650,\n\t\t894\n\t],\n\t\"./tl.png\": [\n\t\t2508,\n\t\t894\n\t],\n\t\"./tm.png\": [\n\t\t8421,\n\t\t894\n\t],\n\t\"./tn.png\": [\n\t\t2670,\n\t\t500\n\t],\n\t\"./to.png\": [\n\t\t5159,\n\t\t309\n\t],\n\t\"./tr.png\": [\n\t\t3314,\n\t\t500\n\t],\n\t\"./tt.png\": [\n\t\t5175,\n\t\t500\n\t],\n\t\"./tv.png\": [\n\t\t7478,\n\t\t309\n\t],\n\t\"./tw.png\": [\n\t\t9023,\n\t\t309\n\t],\n\t\"./tz.png\": [\n\t\t7914,\n\t\t500\n\t],\n\t\"./ua.png\": [\n\t\t5730,\n\t\t500\n\t],\n\t\"./ug.png\": [\n\t\t9972,\n\t\t500\n\t],\n\t\"./us.png\": [\n\t\t2832,\n\t\t894\n\t],\n\t\"./uy.png\": [\n\t\t7066,\n\t\t703\n\t],\n\t\"./uz.png\": [\n\t\t8177,\n\t\t894\n\t],\n\t\"./va.png\": [\n\t\t1491,\n\t\t894\n\t],\n\t\"./vc.png\": [\n\t\t4081,\n\t\t500\n\t],\n\t\"./ve.png\": [\n\t\t1383,\n\t\t500\n\t],\n\t\"./vn.png\": [\n\t\t3828,\n\t\t894\n\t],\n\t\"./vu.png\": [\n\t\t2794,\n\t\t894\n\t],\n\t\"./ws.png\": [\n\t\t5486,\n\t\t500\n\t],\n\t\"./ye.png\": [\n\t\t8754,\n\t\t894\n\t],\n\t\"./za.png\": [\n\t\t3799,\n\t\t894\n\t],\n\t\"./zm.png\": [\n\t\t5211,\n\t\t500\n\t],\n\t\"./zw.png\": [\n\t\t4961,\n\t\t703\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 1 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 2470;\nmodule.exports = webpackAsyncContext;","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;\nfunction Lg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction Mg(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function Ng(a){var b=a._init;return b(a._payload)}\nfunction Og(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Pg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Qg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&Ng(f)===b.type))return d=e(b,c.props),d.ref=Lg(a,b,c),d.return=a,d;d=Rg(c.type,c.key,c.props,null,a.mode,d);d.ref=Lg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=Sg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Tg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=Qg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=Rg(b.type,b.key,b.props,null,a.mode,c),\nc.ref=Lg(a,null,b),c.return=a,c;case wa:return b=Sg(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Tg(b,a.mode,c,null),b.return=a,b;Mg(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);Mg(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);Mg(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(a){if(a===th)throw Error(p(174));return a}\nfunction yh(a,b){G(wh,b);G(vh,a);G(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(uh);G(uh,b)}function zh(){E(uh);E(vh);E(wh)}function Ah(a){xh(wh.current);var b=xh(uh.current);var c=lb(b,a.type);b!==c&&(G(vh,a),G(uh,c))}function Bh(a){vh.current===a&&(E(uh),E(vh))}var L=Uf(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M=null,N=null,O=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function P(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;M=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;O=N=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==N&&null!==N.next;Hh=0;O=N=M=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===O?M.memoizedState=O=a:O=O.next=a;return O}function Uh(){if(null===N){var a=M.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===O?M.memoizedState:O.next;if(null!==b)O=b,N=a;else{if(null===a)throw Error(p(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===O?M.memoizedState=O=a:O=O.next=a}return O}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;M.lanes|=m;rh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(dh=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,M.lanes|=f,rh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(dh=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=M,d=Uh(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,dh=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==O&&O.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===Q)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&fi(a)}function ai(a,b,c){return c(function(){ei(b)&&fi(a)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function fi(a){var b=ih(a,1);null!==b&&gi(b,a,1,-1)}\nfunction hi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=ii.bind(null,M,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function ji(){return Uh().memoizedState}function ki(a,b,c,d){var e=Th();M.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction li(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}M.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function mi(a,b){return ki(8390656,8,a,b)}function $h(a,b){return li(2048,8,a,b)}function ni(a,b){return li(4,2,a,b)}function oi(a,b){return li(4,4,a,b)}\nfunction pi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function qi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return li(4,4,pi.bind(null,b,a),c)}function ri(){}function si(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ti(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ui(a,b,c){if(0===(Hh&21))return a.baseState&&(a.baseState=!1,dh=!0),a.memoizedState=c;He(c,b)||(c=yc(),M.lanes|=c,rh|=c,a.baseState=!0);return b}function vi(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},\nuseDebugValue:ri,useDeferredValue:function(a){var b=Uh();return ui(b,N.memoizedState,a)},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(a){var b=Uh();return null===\nN?b.memoizedState=a:ui(b,N.memoizedState,a)},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Di(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Ei={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=R(),d=\nyi(a),e=mh(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=nh(a,e,d);null!==b&&(gi(b,a,d,c),oh(b,a,d))}};function Fi(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction Gi(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=eh(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Ei;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Hi(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Ei.enqueueReplaceState(b,b.state,null)}\nfunction Ii(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs={};kh(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=eh(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Di(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Ei.enqueueReplaceState(e,e.state,null),qh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}function Ji(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}\nfunction Ki(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function Li(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Mi=\"function\"===typeof WeakMap?WeakMap:Map;function Ni(a,b,c){c=mh(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Oi||(Oi=!0,Pi=d);Li(a,b)};return c}\nfunction Qi(a,b,c){c=mh(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Li(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Li(a,b);\"function\"!==typeof d&&(null===Ri?Ri=new Set([this]):Ri.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Si(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Mi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ti.bind(null,a,b,c),b.then(a,a))}function Ui(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Vi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=mh(-1,1),b.tag=2,nh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(a,b,c,d){b.child=null===a?Vg(b,null,c,d):Ug(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ch(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&c&&vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=Rg(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=Pg(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(dh=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(dh=!0);else return b.lanes=a.lanes,Zi(a,b,e)}return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(ej,fj),fj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(ej,fj),fj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(ej,fj);fj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(ej,fj),fj|=d;Xi(a,b,e,c);return b.child}function gj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);ch(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&d&&vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction hj(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;ch(b,e);if(null===b.stateNode)ij(a,b),Gi(b,c,d),Ii(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=eh(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&Hi(b,g,d,l);jh=!1;var r=b.memoizedState;g.state=r;qh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||jh?(\"function\"===typeof m&&(Di(b,c,m,d),k=b.memoizedState),(h=jh||Fi(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;lh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Ci(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=eh(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&Hi(b,g,d,k);jh=!1;r=b.memoizedState;g.state=r;qh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||jh?(\"function\"===typeof y&&(Di(b,c,y,d),n=b.memoizedState),(l=jh||Fi(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return jj(a,b,c,d,f,e)}\nfunction jj(a,b,c,d,e,f){gj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Ug(b,a.child,null,f),b.child=Ug(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function kj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);yh(a,b.containerInfo)}\nfunction lj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Xi(a,b,c,d);return b.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction oj(a,b,c){var d=b.pendingProps,e=L.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(L,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=pj(g,d,0,null),a=Tg(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=nj(c),b.memoizedState=mj,a):qj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return rj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=Pg(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=Pg(h,f):(f=Tg(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?nj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=mj;return d}f=a.child;a=f.sibling;d=Pg(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction qj(a,b){b=pj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){null!==d&&Jg(d);Ug(b,a.child,null,c);a=qj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction rj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Ki(Error(p(422))),sj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=pj({mode:\"visible\",children:d.children},e,0,null);f=Tg(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Ug(b,a.child,null,g);b.child.memoizedState=nj(g);b.memoizedState=mj;return f}if(0===(b.mode&1))return sj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Ki(f,d,void 0);return sj(a,b,g,d)}h=0!==(g&a.childLanes);if(dh||h){d=Q;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,ih(a,e),gi(d,a,e,-1))}tj();d=Ki(Error(p(421)));return sj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=uj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=qj(b,d.children);b.flags|=4096;return b}function vj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);bh(a.return,b,c)}\nfunction wj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction xj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=L.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&vj(a,c,b);else if(19===a.tag)vj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(L,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);wj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}wj(b,!0,c,null,f);break;case \"together\":wj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction ij(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);rh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=Pg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Pg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction yj(a,b,c){switch(b.tag){case 3:kj(b);Ig();break;case 5:Ah(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Wg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(L,L.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return oj(a,b,c);G(L,L.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}G(L,L.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return xj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(L,L.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}var zj,Aj,Bj,Cj;\nzj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Aj=function(){};\nBj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Cj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Dj(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Ej(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;zh();E(Wf);E(H);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Fj(zg),zg=null));Aj(a,b);S(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Bj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Cj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(L);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Fj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(L.current&1)?0===T&&(T=3):tj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return zh(),\nAj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return ah(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(L);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dj(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Dj(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(L,L.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Gj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Xj=!1;break a;case 3:X=h.stateNode.containerInfo;Xj=!0;break a;case 4:X=h.stateNode.containerInfo;Xj=!0;break a}h=h.return}if(null===X)throw Error(p(160));Zj(f,g,e);X=null;Xj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)dk(b,a),b=b.sibling}\nfunction dk(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:ck(b,a);ek(a);if(d&4){try{Pj(3,a,a.return),Qj(3,a)}catch(t){W(a,a.return,t)}try{Pj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);break;case 5:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:ck(b,a);ek(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:ck(b,a);ek(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:ck(b,a);ek(a);break;case 13:ck(b,a);ek(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(fk=B()));d&4&&ak(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,ck(b,a),U=l):ck(b,a);ek(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Pj(4,r,r.return);break;case 1:Lj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Lj(r,r.return);break;case 22:if(null!==r.memoizedState){gk(q);continue}}null!==y?(y.return=r,V=y):gk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:ck(b,a);ek(a);d&4&&ak(a);break;case 21:break;default:ck(b,\na),ek(a)}}function ek(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Tj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Uj(a);Wj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Uj(a);Vj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function hk(a,b,c){V=a;ik(a,b,c)}\nfunction ik(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Jj;var l=U;Jj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?jk(e):null!==k?(k.return=g,V=k):jk(e);for(;null!==f;)V=f,ik(f,b,c),f=f.sibling;V=e;Jj=h;U=l}kk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):kk(a,b,c)}}\nfunction kk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Qj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Ci(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&sh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}sh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Rj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function gk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction jk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Qj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Rj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Rj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K=0,Q=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=Infinity,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R(){return 0!==(K&6)?B():-1!==Ak?Ak:Ak=B()}\nfunction yi(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Bk&&(Bk=yc()),Bk;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function gi(a,b,c,d){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==Q)a===Q&&(0===(K&2)&&(qk|=c),4===T&&Ck(a,Z)),Dk(a,d),1===c&&0===K&&0===(b.mode&1)&&(Gj=B()+500,fg&&jg())}\nfunction Dk(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===Q?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Ek.bind(null,a)):hg(Ek.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Fk(c,Gk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Gk(a,b){Ak=-1;Bk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Hk()&&a.callbackNode!==c)return null;var d=uc(a,a===Q?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Ik(a,d);else{b=d;var e=K;K|=2;var f=Jk();if(Q!==a||Z!==b)uk=null,Gj=B()+500,Kk(a,b);do try{Lk();break}catch(h){Mk(a,h)}while(1);$g();mk.current=f;K=e;null!==Y?b=0:(Q=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Nk(a,e)));if(1===b)throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;if(6===b)Ck(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Ok(e)&&(b=Ik(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Nk(a,f))),1===b))throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Pk(a,tk,uk);break;case 3:Ck(a,d);if((d&130023424)===d&&(b=fk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){R();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),b);break}Pk(a,tk,uk);break;case 4:Ck(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),d);break}Pk(a,tk,uk);break;case 5:Pk(a,tk,uk);break;default:throw Error(p(329));}}}Dk(a,B());return a.callbackNode===c?Gk.bind(null,a):null}\nfunction Nk(a,b){var c=sk;a.current.memoizedState.isDehydrated&&(Kk(a,b).flags|=256);a=Ik(a,b);2!==a&&(b=tk,tk=c,null!==b&&Fj(b));return a}function Fj(a){null===tk?tk=a:tk.push.apply(tk,a)}\nfunction Ok(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Ck(a,b){b&=~rk;b&=~qk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Ek(a){if(0!==(K&6))throw Error(p(327));Hk();var b=uc(a,0);if(0===(b&1))return Dk(a,B()),null;var c=Ik(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Nk(a,d))}if(1===c)throw c=pk,Kk(a,0),Ck(a,b),Dk(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Pk(a,tk,uk);Dk(a,B());return null}\nfunction Qk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Gj=B()+500,fg&&jg())}}function Rk(a){null!==wk&&0===wk.tag&&0===(K&6)&&Hk();var b=K;K|=1;var c=ok.transition,d=C;try{if(ok.transition=null,C=1,a)return a()}finally{C=d,ok.transition=c,K=b,0===(K&6)&&jg()}}function Hj(){fj=ej.current;E(ej)}\nfunction Kk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:zh();E(Wf);E(H);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:E(L);break;case 19:E(L);break;case 10:ah(d.type._context);break;case 22:case 23:Hj()}c=c.return}Q=a;Y=a=Pg(a.current,null);Z=fj=b;T=0;pk=null;rk=qk=rh=0;tk=sk=null;if(null!==fh){for(b=\n0;b<fh.length;b++)if(c=fh[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}fh=null}return a}\nfunction Mk(a,b){do{var c=Y;try{$g();Fh.current=Rh;if(Ih){for(var d=M.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;O=N=M=null;Jh=!1;Kh=0;nk.current=null;if(null===c||null===c.return){T=1;pk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ui(g);if(null!==y){y.flags&=-257;Vi(y,g,h,f,b);y.mode&1&&Si(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Si(f,l,b);tj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Ui(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Vi(J,g,h,f,b);Jg(Ji(k,h));break a}}f=k=Ji(k,h);4!==T&&(T=2);null===sk?sk=[f]:sk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Ni(f,k,b);ph(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Ri||!Ri.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Qi(f,h,b);ph(f,F);break a}}f=f.return}while(null!==f)}Sk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Jk(){var a=mk.current;mk.current=Rh;return null===a?Rh:a}\nfunction tj(){if(0===T||3===T||2===T)T=4;null===Q||0===(rh&268435455)&&0===(qk&268435455)||Ck(Q,Z)}function Ik(a,b){var c=K;K|=2;var d=Jk();if(Q!==a||Z!==b)uk=null,Kk(a,b);do try{Tk();break}catch(e){Mk(a,e)}while(1);$g();K=c;mk.current=d;if(null!==Y)throw Error(p(261));Q=null;Z=0;return T}function Tk(){for(;null!==Y;)Uk(Y)}function Lk(){for(;null!==Y&&!cc();)Uk(Y)}function Uk(a){var b=Vk(a.alternate,a,fj);a.memoizedProps=a.pendingProps;null===b?Sk(a):Y=b;nk.current=null}\nfunction Sk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Ej(c,b,fj),null!==c){Y=c;return}}else{c=Ij(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Pk(a,b,c){var d=C,e=ok.transition;try{ok.transition=null,C=1,Wk(a,b,c,d)}finally{ok.transition=e,C=d}return null}\nfunction Wk(a,b,c,d){do Hk();while(null!==wk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===Q&&(Y=Q=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||vk||(vk=!0,Fk(hc,function(){Hk();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ok.transition;ok.transition=null;\nvar g=C;C=1;var h=K;K|=4;nk.current=null;Oj(a,c);dk(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;hk(c,a,e);dc();K=h;C=g;ok.transition=f}else a.current=c;vk&&(vk=!1,wk=a,xk=e);f=a.pendingLanes;0===f&&(Ri=null);mc(c.stateNode,d);Dk(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Oi)throw Oi=!1,a=Pi,Pi=null,a;0!==(xk&1)&&0!==a.tag&&Hk();f=a.pendingLanes;0!==(f&1)?a===zk?yk++:(yk=0,zk=a):yk=0;jg();return null}\nfunction Hk(){if(null!==wk){var a=Dc(xk),b=ok.transition,c=C;try{ok.transition=null;C=16>a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Pj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Sj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Pj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Qj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,ok.transition=b}}return!1}function Xk(a,b,c){b=Ji(c,b);b=Ni(a,b,1);a=nh(a,b,1);b=R();null!==a&&(Ac(a,1,b),Dk(a,b))}\nfunction W(a,b,c){if(3===a.tag)Xk(a,a,c);else for(;null!==b;){if(3===b.tag){Xk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ri||!Ri.has(d))){a=Ji(c,a);a=Qi(b,a,1);b=nh(b,a,1);a=R();null!==b&&(Ac(b,1,a),Dk(b,a));break}}b=b.return}}\nfunction Ti(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=R();a.pingedLanes|=a.suspendedLanes&c;Q===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction dl(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction el(a,b,c,d,e,f,g,h,k){a=bl(c,d,!0,a,e,f,g,h,k);a.context=dl(null);c=a.current;d=R();e=yi(c);f=mh(d,e);f.callback=void 0!==b&&null!==b?b:null;nh(c,f,e);a.current.lanes=e;Ac(a,e,d);Dk(a,d);return a}function fl(a,b,c,d){var e=b.current,f=R(),g=yi(e);c=dl(c);null===b.context?b.context=c:b.pendingContext=c;b=mh(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=nh(e,b,g);null!==a&&(gi(a,e,g,f),oh(a,e,g));return g}\nfunction gl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function hl(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function il(a,b){hl(a,b);(a=a.alternate)&&hl(a,b)}function jl(){return null}var kl=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ll(a){this._internalRoot=a}\nml.prototype.render=ll.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));fl(a,b,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Rk(function(){fl(null,a,null,null)});b[uf]=null}};function ml(a){this._internalRoot=a}\nml.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function nl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function pl(){}\nfunction ql(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=gl(g);f.call(a)}}var g=el(b,d,a,0,null,!1,!1,\"\",pl);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Rk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=gl(k);h.call(a)}}var k=bl(a,0,!1,null,null,!1,!1,\"\",pl);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Rk(function(){fl(b,k,c,d)});return k}\nfunction rl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=gl(g);h.call(a)}}fl(b,g,a,e)}else g=ql(c,b,a,e,d);return gl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Dk(b,B()),0===(K&6)&&(Gj=B()+500,jg()))}break;case 13:Rk(function(){var b=ih(a,1);if(null!==b){var c=R();gi(b,a,1,c)}}),il(a,1)}};\nFc=function(a){if(13===a.tag){var b=ih(a,134217728);if(null!==b){var c=R();gi(b,a,134217728,c)}il(a,134217728)}};Gc=function(a){if(13===a.tag){var b=yi(a),c=ih(a,b);if(null!==c){var d=R();gi(c,a,b,d)}il(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Qk;Hb=Rk;\nvar sl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"};\nvar ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||\njl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nl(b))throw Error(p(200));return cl(a,b,null,c)};exports.createRoot=function(a,b){if(!nl(a))throw Error(p(299));var c=!1,d=\"\",e=kl;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=bl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ll(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Rk(a)};exports.hydrate=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!nl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=kl;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=el(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new ml(b)};exports.render=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!ol(a))throw Error(p(40));return a._reactRootContainer?(Rk(function(){rl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Qk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!ol(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return rl(a,b,c,!1,d)};exports.version=\"18.3.1-next-f1338f8080-20240426\";\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","const termMatch = <T>(\n elements: Array<T> | undefined | null,\n sub: (element: T) => string,\n searchString: string,\n): Array<T> => {\n if (searchString !== '' && elements?.length) {\n const queries: Array<RegExp> = [];\n const searchTerms = searchString.replace(/,/g, ' ').split(' ');\n\n for (let i = 0, len = searchTerms.length; i < len; i += 1) {\n try {\n queries.push(new RegExp(searchTerms[i], 'gi'));\n } catch {\n // do nothing.\n }\n }\n\n return elements.filter((element) => {\n if (sub(element) === searchString) {\n return true;\n }\n\n if (queries.every((query) => sub(element).match(query))) {\n return true;\n }\n\n return false;\n });\n }\n\n return elements ?? [];\n};\n\nexport default termMatch;\n","export var noop = function () { };\nexport function on(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.addEventListener) {\n obj.addEventListener.apply(obj, args);\n }\n}\nexport function off(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.removeEventListener) {\n obj.removeEventListener.apply(obj, args);\n }\n}\nexport var isBrowser = typeof window !== 'undefined';\nexport var isNavigator = typeof navigator !== 'undefined';\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","import { makeObservable } from \"mobx\";\nimport { useState } from \"react\";\nif (!useState) {\n throw new Error(\"mobx-react-lite requires React with Hooks support\");\n}\nif (!makeObservable) {\n throw new Error(\"mobx-react-lite@3 requires mobx at least version 6 to be available\");\n}\n//# sourceMappingURL=assertEnvironment.js.map","import { configure } from \"mobx\";\nexport function defaultNoopBatch(callback) {\n callback();\n}\nexport function observerBatching(reactionScheduler) {\n if (!reactionScheduler) {\n reactionScheduler = defaultNoopBatch;\n if (\"production\" !== process.env.NODE_ENV) {\n console.warn(\"[MobX] Failed to get unstable_batched updates from react-dom / react-native\");\n }\n }\n configure({ reactionScheduler: reactionScheduler });\n}\nexport var isObserverBatched = function () {\n if (\"production\" !== process.env.NODE_ENV) {\n console.warn(\"[MobX] Deprecated\");\n }\n return true;\n};\n//# sourceMappingURL=observerBatching.js.map","import { getDependencyTree } from \"mobx\";\nexport function printDebugValue(v) {\n return getDependencyTree(v);\n}\n//# sourceMappingURL=printDebugValue.js.map","var globalIsUsingStaticRendering = false;\nexport function enableStaticRendering(enable) {\n globalIsUsingStaticRendering = enable;\n}\nexport function isUsingStaticRendering() {\n return globalIsUsingStaticRendering;\n}\n//# sourceMappingURL=staticRendering.js.map","export var REGISTRY_FINALIZE_AFTER = 10000;\nexport var REGISTRY_SWEEP_INTERVAL = 10000;\nvar TimerBasedFinalizationRegistry = /** @class */ (function () {\n function TimerBasedFinalizationRegistry(finalize) {\n var _this = this;\n Object.defineProperty(this, \"finalize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: finalize\n });\n Object.defineProperty(this, \"registrations\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, \"sweepTimeout\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n // Bound so it can be used directly as setTimeout callback.\n Object.defineProperty(this, \"sweep\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: function (maxAge) {\n if (maxAge === void 0) { maxAge = REGISTRY_FINALIZE_AFTER; }\n // cancel timeout so we can force sweep anytime\n clearTimeout(_this.sweepTimeout);\n _this.sweepTimeout = undefined;\n var now = Date.now();\n _this.registrations.forEach(function (registration, token) {\n if (now - registration.registeredAt >= maxAge) {\n _this.finalize(registration.value);\n _this.registrations.delete(token);\n }\n });\n if (_this.registrations.size > 0) {\n _this.scheduleSweep();\n }\n }\n });\n // Bound so it can be exported directly as clearTimers test utility.\n Object.defineProperty(this, \"finalizeAllImmediately\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: function () {\n _this.sweep(0);\n }\n });\n }\n // Token is actually required with this impl\n Object.defineProperty(TimerBasedFinalizationRegistry.prototype, \"register\", {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function (target, value, token) {\n this.registrations.set(token, {\n value: value,\n registeredAt: Date.now()\n });\n this.scheduleSweep();\n }\n });\n Object.defineProperty(TimerBasedFinalizationRegistry.prototype, \"unregister\", {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function (token) {\n this.registrations.delete(token);\n }\n });\n Object.defineProperty(TimerBasedFinalizationRegistry.prototype, \"scheduleSweep\", {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function () {\n if (this.sweepTimeout === undefined) {\n this.sweepTimeout = setTimeout(this.sweep, REGISTRY_SWEEP_INTERVAL);\n }\n }\n });\n return TimerBasedFinalizationRegistry;\n}());\nexport { TimerBasedFinalizationRegistry };\nexport var UniversalFinalizationRegistry = typeof FinalizationRegistry !== \"undefined\"\n ? FinalizationRegistry\n : TimerBasedFinalizationRegistry;\n//# sourceMappingURL=UniversalFinalizationRegistry.js.map","var _a, _b;\nimport { forwardRef, memo } from \"react\";\nimport { isUsingStaticRendering } from \"./staticRendering\";\nimport { useObserver } from \"./useObserver\";\nvar warnObserverOptionsDeprecated = true;\nvar warnLegacyContextTypes = true;\nvar hasSymbol = typeof Symbol === \"function\" && Symbol.for;\nvar isFunctionNameConfigurable = (_b = (_a = Object.getOwnPropertyDescriptor(function () { }, \"name\")) === null || _a === void 0 ? void 0 : _a.configurable) !== null && _b !== void 0 ? _b : false;\n// Using react-is had some issues (and operates on elements, not on types), see #608 / #609\nvar ReactForwardRefSymbol = hasSymbol\n ? Symbol.for(\"react.forward_ref\")\n : typeof forwardRef === \"function\" && forwardRef(function (props) { return null; })[\"$$typeof\"];\nvar ReactMemoSymbol = hasSymbol\n ? Symbol.for(\"react.memo\")\n : typeof memo === \"function\" && memo(function (props) { return null; })[\"$$typeof\"];\n// n.b. base case is not used for actual typings or exported in the typing files\nexport function observer(baseComponent, \n// TODO remove in next major\noptions) {\n var _a;\n if (process.env.NODE_ENV !== \"production\" && warnObserverOptionsDeprecated && options) {\n warnObserverOptionsDeprecated = false;\n console.warn(\"[mobx-react-lite] `observer(fn, { forwardRef: true })` is deprecated, use `observer(React.forwardRef(fn))`\");\n }\n if (ReactMemoSymbol && baseComponent[\"$$typeof\"] === ReactMemoSymbol) {\n throw new Error(\"[mobx-react-lite] You are trying to use `observer` on a function component wrapped in either another `observer` or `React.memo`. The observer already applies 'React.memo' for you.\");\n }\n // The working of observer is explained step by step in this talk: https://www.youtube.com/watch?v=cPF4iBedoF0&feature=youtu.be&t=1307\n if (isUsingStaticRendering()) {\n return baseComponent;\n }\n var useForwardRef = (_a = options === null || options === void 0 ? void 0 : options.forwardRef) !== null && _a !== void 0 ? _a : false;\n var render = baseComponent;\n var baseComponentName = baseComponent.displayName || baseComponent.name;\n // If already wrapped with forwardRef, unwrap,\n // so we can patch render and apply memo\n if (ReactForwardRefSymbol && baseComponent[\"$$typeof\"] === ReactForwardRefSymbol) {\n useForwardRef = true;\n render = baseComponent[\"render\"];\n if (typeof render !== \"function\") {\n throw new Error(\"[mobx-react-lite] `render` property of ForwardRef was not a function\");\n }\n }\n var observerComponent = function (props, ref) {\n return useObserver(function () { return render(props, ref); }, baseComponentName);\n };\n observerComponent.displayName = baseComponent.displayName;\n if (isFunctionNameConfigurable) {\n Object.defineProperty(observerComponent, \"name\", {\n value: baseComponent.name,\n writable: true,\n configurable: true\n });\n }\n // Support legacy context: `contextTypes` must be applied before `memo`\n if (baseComponent.contextTypes) {\n ;\n observerComponent.contextTypes = baseComponent.contextTypes;\n if (process.env.NODE_ENV !== \"production\" && warnLegacyContextTypes) {\n warnLegacyContextTypes = false;\n console.warn(\"[mobx-react-lite] Support for Legacy Context in function components will be removed in the next major release.\");\n }\n }\n if (useForwardRef) {\n // `forwardRef` must be applied prior `memo`\n // `forwardRef(observer(cmp))` throws:\n // \"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))\"\n observerComponent = forwardRef(observerComponent);\n }\n // memo; we are not interested in deep updates\n // in props; we assume that if deep objects are changed,\n // this is in observables, which would have been tracked anyway\n observerComponent = memo(observerComponent);\n copyStaticProperties(baseComponent, observerComponent);\n if (\"production\" !== process.env.NODE_ENV) {\n Object.defineProperty(observerComponent, \"contextTypes\", {\n set: function () {\n var _a, _b;\n throw new Error(\"[mobx-react-lite] `\".concat(this.displayName || ((_a = this.type) === null || _a === void 0 ? void 0 : _a.displayName) || ((_b = this.type) === null || _b === void 0 ? void 0 : _b.name) || \"Component\", \".contextTypes` must be set before applying `observer`.\"));\n }\n });\n }\n return observerComponent;\n}\n// based on https://github.com/mridgway/hoist-non-react-statics/blob/master/src/index.js\nvar hoistBlackList = {\n $$typeof: true,\n render: true,\n compare: true,\n type: true,\n // Don't redefine `displayName`,\n // it's defined as getter-setter pair on `memo` (see #3192).\n displayName: true\n};\nfunction copyStaticProperties(base, target) {\n Object.keys(base).forEach(function (key) {\n if (!hoistBlackList[key]) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(base, key));\n }\n });\n}\n//# sourceMappingURL=observer.js.map","import { UniversalFinalizationRegistry } from \"./UniversalFinalizationRegistry\";\nexport var observerFinalizationRegistry = new UniversalFinalizationRegistry(function (adm) {\n var _a;\n (_a = adm.reaction) === null || _a === void 0 ? void 0 : _a.dispose();\n adm.reaction = null;\n});\n//# sourceMappingURL=observerFinalizationRegistry.js.map","import { Reaction } from \"mobx\";\nimport React from \"react\";\nimport { printDebugValue } from \"./utils/printDebugValue\";\nimport { isUsingStaticRendering } from \"./staticRendering\";\nimport { observerFinalizationRegistry } from \"./utils/observerFinalizationRegistry\";\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nfunction createReaction(adm) {\n adm.reaction = new Reaction(\"observer\".concat(adm.name), function () {\n var _a;\n adm.stateVersion = Symbol();\n // onStoreChange won't be available until the component \"mounts\".\n // If state changes in between initial render and mount,\n // `useSyncExternalStore` should handle that by checking the state version and issuing update.\n (_a = adm.onStoreChange) === null || _a === void 0 ? void 0 : _a.call(adm);\n });\n}\nexport function useObserver(render, baseComponentName) {\n if (baseComponentName === void 0) { baseComponentName = \"observed\"; }\n if (isUsingStaticRendering()) {\n return render();\n }\n var admRef = React.useRef(null);\n if (!admRef.current) {\n // First render\n var adm_1 = {\n reaction: null,\n onStoreChange: null,\n stateVersion: Symbol(),\n name: baseComponentName,\n subscribe: function (onStoreChange) {\n // Do NOT access admRef here!\n observerFinalizationRegistry.unregister(adm_1);\n adm_1.onStoreChange = onStoreChange;\n if (!adm_1.reaction) {\n // We've lost our reaction and therefore all subscriptions, occurs when:\n // 1. Timer based finalization registry disposed reaction before component mounted.\n // 2. React \"re-mounts\" same component without calling render in between (typically <StrictMode>).\n // We have to recreate reaction and schedule re-render to recreate subscriptions,\n // even if state did not change.\n createReaction(adm_1);\n // `onStoreChange` won't force update if subsequent `getSnapshot` returns same value.\n // So we make sure that is not the case\n adm_1.stateVersion = Symbol();\n }\n return function () {\n var _a;\n // Do NOT access admRef here!\n adm_1.onStoreChange = null;\n (_a = adm_1.reaction) === null || _a === void 0 ? void 0 : _a.dispose();\n adm_1.reaction = null;\n };\n },\n getSnapshot: function () {\n // Do NOT access admRef here!\n return adm_1.stateVersion;\n }\n };\n admRef.current = adm_1;\n }\n var adm = admRef.current;\n if (!adm.reaction) {\n // First render or reaction was disposed by registry before subscribe\n createReaction(adm);\n // StrictMode/ConcurrentMode/Suspense may mean that our component is\n // rendered and abandoned multiple times, so we need to track leaked\n // Reactions.\n observerFinalizationRegistry.register(admRef, adm, adm);\n }\n React.useDebugValue(adm.reaction, printDebugValue);\n useSyncExternalStore(\n // Both of these must be stable, otherwise it would keep resubscribing every render.\n adm.subscribe, adm.getSnapshot, adm.getSnapshot);\n // render the original component, but have the\n // reaction track the observables, so that rendering\n // can be invalidated (see above) once a dependency changes\n var renderResult;\n var exception;\n adm.reaction.track(function () {\n try {\n renderResult = render();\n }\n catch (e) {\n exception = e;\n }\n });\n if (exception) {\n throw exception; // re-throw any exceptions caught during rendering\n }\n return renderResult;\n}\n//# sourceMappingURL=useObserver.js.map","var _a;\nimport \"./utils/assertEnvironment\";\nimport { unstable_batchedUpdates as batch } from \"./utils/reactBatchedUpdates\";\nimport { observerBatching } from \"./utils/observerBatching\";\nimport { useDeprecated } from \"./utils/utils\";\nimport { useObserver as useObserverOriginal } from \"./useObserver\";\nimport { enableStaticRendering } from \"./staticRendering\";\nimport { observerFinalizationRegistry } from \"./utils/observerFinalizationRegistry\";\nobserverBatching(batch);\nexport { isUsingStaticRendering, enableStaticRendering } from \"./staticRendering\";\nexport { observer } from \"./observer\";\nexport { Observer } from \"./ObserverComponent\";\nexport { useLocalObservable } from \"./useLocalObservable\";\nexport { useLocalStore } from \"./useLocalStore\";\nexport { useAsObservableSource } from \"./useAsObservableSource\";\nexport { observerFinalizationRegistry as _observerFinalizationRegistry };\nexport var clearTimers = (_a = observerFinalizationRegistry[\"finalizeAllImmediately\"]) !== null && _a !== void 0 ? _a : (function () { });\nexport function useObserver(fn, baseComponentName) {\n if (baseComponentName === void 0) { baseComponentName = \"observed\"; }\n if (\"production\" !== process.env.NODE_ENV) {\n useDeprecated(\"[mobx-react-lite] 'useObserver(fn)' is deprecated. Use `<Observer>{fn}</Observer>` instead, or wrap the entire component in `observer`.\");\n }\n return useObserverOriginal(fn, baseComponentName);\n}\nexport { isObserverBatched, observerBatching } from \"./utils/observerBatching\";\nexport function useStaticRendering(enable) {\n if (\"production\" !== process.env.NODE_ENV) {\n console.warn(\"[mobx-react-lite] 'useStaticRendering' is deprecated, use 'enableStaticRendering' instead\");\n }\n enableStaticRendering(enable);\n}\n//# sourceMappingURL=index.js.map","import type {FloodSettings} from '@shared/types/FloodSettings';\n\nconst defaultFloodSettings: Readonly<FloodSettings> = {\n language: 'auto',\n sortTorrents: {\n direction: 'desc',\n property: 'dateAdded',\n },\n torrentListColumns: [\n {id: 'name', visible: true},\n {id: 'percentComplete', visible: true},\n {id: 'downTotal', visible: true},\n {id: 'downRate', visible: true},\n {id: 'upTotal', visible: true},\n {id: 'upRate', visible: true},\n {id: 'eta', visible: true},\n {id: 'ratio', visible: true},\n {id: 'sizeBytes', visible: true},\n {id: 'peers', visible: true},\n {id: 'seeds', visible: true},\n {id: 'dateActive', visible: false},\n {id: 'dateAdded', visible: true},\n {id: 'dateCreated', visible: false},\n {id: 'dateFinished', visible: false},\n {id: 'directory', visible: false},\n {id: 'hash', visible: false},\n {id: 'isPrivate', visible: false},\n {id: 'message', visible: false},\n {id: 'trackerURIs', visible: false},\n {id: 'tags', visible: true},\n ],\n torrentListColumnWidths: {\n name: 200,\n percentComplete: 100,\n downTotal: 100,\n downRate: 100,\n upTotal: 100,\n upRate: 100,\n eta: 100,\n ratio: 100,\n sizeBytes: 100,\n peers: 100,\n seeds: 100,\n dateActive: 100,\n dateAdded: 100,\n dateCreated: 100,\n dateFinished: 100,\n directory: 100,\n hash: 100,\n isPrivate: 100,\n message: 100,\n trackerURIs: 100,\n tags: 100,\n },\n torrentContextMenuActions: [\n {id: 'start', visible: true},\n {id: 'stop', visible: true},\n {id: 'remove', visible: true},\n {id: 'checkHash', visible: true},\n {id: 'reannounce', visible: false},\n {id: 'setTaxonomy', visible: true},\n {id: 'move', visible: true},\n {id: 'setTrackers', visible: false},\n {id: 'torrentDetails', visible: true},\n {id: 'downloadContents', visible: true},\n {id: 'downloadMetainfo', visible: false},\n {id: 'generateMagnet', visible: false},\n {id: 'setInitialSeeding', visible: false},\n {id: 'setSequential', visible: false},\n {id: 'setPriority', visible: false},\n ],\n torrentListViewSize: 'condensed',\n speedLimits: {\n // B/s\n download: [1024, 10240, 102400, 512000, 1048576, 2097152, 5242880, 10485760, 0],\n upload: [1024, 10240, 102400, 512000, 1048576, 2097152, 5242880, 10485760, 0],\n },\n mountPoints: [],\n deleteTorrentData: true,\n startTorrentsOnLoad: true,\n UIPageTitleSpeedEnabled: true,\n};\n\nexport default defaultFloodSettings;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","const Languages = {\n auto: {\n id: 'locale.language.auto',\n },\n en: 'English',\n cs: 'Čeština',\n de: 'Deutsch',\n es: 'Español',\n fr: 'Français',\n it: 'italiano',\n hu: 'Magyar',\n nl: 'Nederlands',\n no: 'norsk',\n pl: 'Polskie',\n pt: 'português',\n ru: 'русский язык',\n ro: 'Romanian',\n fi: 'suomi',\n sv: 'svenska',\n uk: 'українська мова',\n ko: '한국어',\n ja: '日本語',\n 'zh-Hans': '中文(简体)',\n 'zh-Hant': '中文(繁體)',\n ar: 'اَلْعَرَبِيَّةُ',\n} as const;\n\nexport default Languages;\nexport type Language = keyof typeof Languages;\n","import {makeAutoObservable} from 'mobx';\n\nimport type {TransferDirection, TransferHistory, TransferSummary} from '@shared/types/TransferData';\n\nexport const TRANSFER_DIRECTIONS: Readonly<Array<TransferDirection>> = ['download', 'upload'] as const;\n\nclass TransferDataStore {\n transferRates: TransferHistory = {\n download: [0, 0],\n upload: [0, 0],\n timestamps: [Date.now() - 5000, Date.now()],\n };\n\n transferSummary: TransferSummary = {\n downRate: 0,\n downTotal: 0,\n upRate: 0,\n upTotal: 0,\n };\n\n constructor() {\n makeAutoObservable(this);\n }\n\n appendCurrentTransferRateToHistory() {\n const download = this.transferRates.download.slice();\n const upload = this.transferRates.upload.slice();\n const timestamps = this.transferRates.timestamps.slice();\n\n download.push(this.transferSummary.downRate);\n upload.push(this.transferSummary.upRate);\n timestamps.push(Date.now());\n\n if (timestamps.length > 30) {\n download.shift();\n upload.shift();\n timestamps.shift();\n }\n\n this.transferRates = {download, upload, timestamps};\n }\n\n handleFetchTransferHistorySuccess(transferData: TransferHistory) {\n if (transferData.timestamps.length > 1) {\n this.transferRates = transferData;\n }\n }\n\n handleTransferSummaryFullUpdate(transferSummary: TransferSummary) {\n this.transferSummary = transferSummary;\n this.appendCurrentTransferRateToHistory();\n }\n}\n\nexport default new TransferDataStore();\n","import { useEffect } from 'react';\nvar useEffectOnce = function (effect) {\n useEffect(effect, []);\n};\nexport default useEffectOnce;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import {makeAutoObservable} from 'mobx';\nimport React, {FC, MouseEvent} from 'react';\n\nimport type {ProcessedFiles} from '@client/components/general/form-elements/FileDropzone';\nimport type {TorrentContextMenuAction} from '@client/constants/TorrentContextMenuActions';\n\nexport type ContextMenuItem =\n | {\n type: 'action';\n action: TorrentContextMenuAction;\n label: string;\n labelAction?: FC;\n labelSecondary?: FC;\n clickHandler(event: MouseEvent): void;\n dismissMenu?: boolean;\n }\n | {\n type: 'separator';\n };\n\nexport interface ActiveContextMenu {\n id: string;\n clickPosition: {\n x: number;\n y: number;\n };\n items: Array<ContextMenuItem>;\n}\n\nexport interface Dependency {\n id: string;\n message: {id: string} | string;\n satisfied?: boolean;\n}\n\nexport type Dependencies = Record<string, Dependency>;\n\ninterface BaseModalAction {\n content: React.ReactNode;\n triggerDismiss?: boolean;\n}\n\ninterface CheckboxModalAction extends BaseModalAction {\n type: 'checkbox';\n id?: string;\n checked?: boolean;\n clickHandler?: ((event: React.MouseEvent<HTMLInputElement> | KeyboardEvent) => void) | null;\n}\n\ninterface ButtonModalAction extends BaseModalAction {\n type: 'primary' | 'tertiary';\n isLoading?: boolean;\n submit?: boolean;\n clickHandler?: ((event: React.MouseEvent<HTMLButtonElement>) => void) | null;\n}\n\nexport type ModalAction = CheckboxModalAction | ButtonModalAction;\n\nexport type Modal =\n | {\n id:\n | 'feeds'\n | 'generate-magnet'\n | 'move-torrents'\n | 'remove-torrents'\n | 'set-taxonomy'\n | 'set-trackers'\n | 'settings';\n }\n | {\n id: 'add-torrents';\n tab?: 'by-url';\n urls?: Array<{id: number; value: string}>;\n }\n | {\n id: 'add-torrents';\n tab: 'by-file';\n files: ProcessedFiles;\n }\n | {\n id: 'confirm';\n content: React.ReactNode;\n heading: React.ReactNode;\n actions: Array<ModalAction>;\n }\n | {\n id: 'torrent-details';\n hash: string;\n };\n\nclass UIStore {\n activeContextMenu: ActiveContextMenu | null = null;\n activeDropdownMenu: string | null = null;\n activeModal: Modal | null = null;\n dependencies: Dependencies = {};\n globalStyles: Array<string> = [];\n haveUIDependenciesResolved = false;\n styleElement: HTMLStyleElement & {\n styleSheet?: {cssText: string};\n } = this.createStyleElement();\n\n constructor() {\n makeAutoObservable(this);\n }\n\n addGlobalStyle(cssString: string) {\n this.globalStyles.push(cssString);\n this.applyStyles();\n }\n\n applyStyles() {\n const {globalStyles, styleElement} = this;\n const nextStyleString = globalStyles.join('');\n\n if (styleElement == null) {\n return;\n }\n\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = nextStyleString;\n } else {\n styleElement.appendChild(document.createTextNode(nextStyleString));\n }\n }\n\n createStyleElement() {\n if (this.styleElement == null) {\n const stylesheetRef = document.createElement('style');\n stylesheetRef.type = 'text/css';\n\n document.head.appendChild(stylesheetRef);\n\n return stylesheetRef;\n }\n return this.styleElement;\n }\n\n dismissContextMenu(menuID: ActiveContextMenu['id']) {\n if (this.activeContextMenu != null && this.activeContextMenu.id === menuID) {\n this.activeContextMenu = null;\n }\n }\n\n handleSetTaxonomySuccess() {\n if (this.activeModal != null && this.activeModal.id === 'set-taxonomy') {\n this.setActiveModal(null);\n }\n }\n\n removeGlobalStyle(cssString: string) {\n this.globalStyles = this.globalStyles.filter((style) => style !== cssString);\n this.applyStyles();\n }\n\n registerDependency(dependencies: Array<Omit<Dependency, 'satisfied'>>) {\n dependencies.forEach((dependency) => {\n const {id} = dependency;\n\n if (!this.dependencies[id]) {\n this.dependencies[id] = {...dependency, satisfied: false};\n }\n });\n }\n\n satisfyDependency(dependencyID: string) {\n if (this.dependencies[dependencyID] && !this.dependencies[dependencyID].satisfied) {\n this.dependencies[dependencyID].satisfied = true;\n this.verifyDependencies();\n }\n }\n\n setActiveContextMenu(contextMenu: this['activeContextMenu']) {\n this.activeContextMenu = contextMenu;\n }\n\n setActiveDropdownMenu(dropdownMenu: this['activeDropdownMenu']) {\n this.activeDropdownMenu = dropdownMenu;\n }\n\n setActiveModal(modal: this['activeModal']) {\n this.activeModal = modal;\n }\n\n verifyDependencies() {\n const isDependencyLoading = Object.keys(this.dependencies).some((id) => this.dependencies[id].satisfied === false);\n\n if (!isDependencyLoading) {\n this.haveUIDependenciesResolved = true;\n }\n }\n}\n\nexport default new UIStore();\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/*!\n * https://github.com/Starcounter-Jack/JSON-Patch\n * (c) 2017-2022 Joachim Wester\n * MIT licensed\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function hasOwnProperty(obj, key) {\n return _hasOwnProperty.call(obj, key);\n}\nexport function _objectKeys(obj) {\n if (Array.isArray(obj)) {\n var keys_1 = new Array(obj.length);\n for (var k = 0; k < keys_1.length; k++) {\n keys_1[k] = \"\" + k;\n }\n return keys_1;\n }\n if (Object.keys) {\n return Object.keys(obj);\n }\n var keys = [];\n for (var i in obj) {\n if (hasOwnProperty(obj, i)) {\n keys.push(i);\n }\n }\n return keys;\n}\n;\n/**\n* Deeply clone the object.\n* https://jsperf.com/deep-copy-vs-json-stringify-json-parse/25 (recursiveDeepCopy)\n* @param {any} obj value to clone\n* @return {any} cloned obj\n*/\nexport function _deepClone(obj) {\n switch (typeof obj) {\n case \"object\":\n return JSON.parse(JSON.stringify(obj)); //Faster than ES5 clone - http://jsperf.com/deep-cloning-of-objects/5\n case \"undefined\":\n return null; //this is how JSON.stringify behaves for array items\n default:\n return obj; //no need to clone primitives\n }\n}\n//3x faster than cached /^\\d+$/.test(str)\nexport function isInteger(str) {\n var i = 0;\n var len = str.length;\n var charCode;\n while (i < len) {\n charCode = str.charCodeAt(i);\n if (charCode >= 48 && charCode <= 57) {\n i++;\n continue;\n }\n return false;\n }\n return true;\n}\n/**\n* Escapes a json pointer path\n* @param path The raw pointer\n* @return the Escaped path\n*/\nexport function escapePathComponent(path) {\n if (path.indexOf('/') === -1 && path.indexOf('~') === -1)\n return path;\n return path.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n/**\n * Unescapes a json pointer path\n * @param path The escaped pointer\n * @return The unescaped path\n */\nexport function unescapePathComponent(path) {\n return path.replace(/~1/g, '/').replace(/~0/g, '~');\n}\nexport function _getPathRecursive(root, obj) {\n var found;\n for (var key in root) {\n if (hasOwnProperty(root, key)) {\n if (root[key] === obj) {\n return escapePathComponent(key) + '/';\n }\n else if (typeof root[key] === 'object') {\n found = _getPathRecursive(root[key], obj);\n if (found != '') {\n return escapePathComponent(key) + '/' + found;\n }\n }\n }\n }\n return '';\n}\nexport function getPath(root, obj) {\n if (root === obj) {\n return '/';\n }\n var path = _getPathRecursive(root, obj);\n if (path === '') {\n throw new Error(\"Object not found in root\");\n }\n return \"/\" + path;\n}\n/**\n* Recursively checks whether an object has any undefined values inside.\n*/\nexport function hasUndefined(obj) {\n if (obj === undefined) {\n return true;\n }\n if (obj) {\n if (Array.isArray(obj)) {\n for (var i_1 = 0, len = obj.length; i_1 < len; i_1++) {\n if (hasUndefined(obj[i_1])) {\n return true;\n }\n }\n }\n else if (typeof obj === \"object\") {\n var objKeys = _objectKeys(obj);\n var objKeysLength = objKeys.length;\n for (var i = 0; i < objKeysLength; i++) {\n if (hasUndefined(obj[objKeys[i]])) {\n return true;\n }\n }\n }\n }\n return false;\n}\nfunction patchErrorMessageFormatter(message, args) {\n var messageParts = [message];\n for (var key in args) {\n var value = typeof args[key] === 'object' ? JSON.stringify(args[key], null, 2) : args[key]; // pretty print\n if (typeof value !== 'undefined') {\n messageParts.push(key + \": \" + value);\n }\n }\n return messageParts.join('\\n');\n}\nvar PatchError = /** @class */ (function (_super) {\n __extends(PatchError, _super);\n function PatchError(message, name, index, operation, tree) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, patchErrorMessageFormatter(message, { name: name, index: index, operation: operation, tree: tree })) || this;\n _this.name = name;\n _this.index = index;\n _this.operation = operation;\n _this.tree = tree;\n Object.setPrototypeOf(_this, _newTarget.prototype); // restore prototype chain, see https://stackoverflow.com/a/48342359\n _this.message = patchErrorMessageFormatter(message, { name: name, index: index, operation: operation, tree: tree });\n return _this;\n }\n return PatchError;\n}(Error));\nexport { PatchError };\n","import { PatchError, _deepClone, isInteger, unescapePathComponent, hasUndefined } from './helpers.mjs';\nexport var JsonPatchError = PatchError;\nexport var deepClone = _deepClone;\n/* We use a Javascript hash to store each\n function. Each hash entry (property) uses\n the operation identifiers specified in rfc6902.\n In this way, we can map each patch operation\n to its dedicated function in efficient way.\n */\n/* The operations applicable to an object */\nvar objOps = {\n add: function (obj, key, document) {\n obj[key] = this.value;\n return { newDocument: document };\n },\n remove: function (obj, key, document) {\n var removed = obj[key];\n delete obj[key];\n return { newDocument: document, removed: removed };\n },\n replace: function (obj, key, document) {\n var removed = obj[key];\n obj[key] = this.value;\n return { newDocument: document, removed: removed };\n },\n move: function (obj, key, document) {\n /* in case move target overwrites an existing value,\n return the removed value, this can be taxing performance-wise,\n and is potentially unneeded */\n var removed = getValueByPointer(document, this.path);\n if (removed) {\n removed = _deepClone(removed);\n }\n var originalValue = applyOperation(document, { op: \"remove\", path: this.from }).removed;\n applyOperation(document, { op: \"add\", path: this.path, value: originalValue });\n return { newDocument: document, removed: removed };\n },\n copy: function (obj, key, document) {\n var valueToCopy = getValueByPointer(document, this.from);\n // enforce copy by value so further operations don't affect source (see issue #177)\n applyOperation(document, { op: \"add\", path: this.path, value: _deepClone(valueToCopy) });\n return { newDocument: document };\n },\n test: function (obj, key, document) {\n return { newDocument: document, test: _areEquals(obj[key], this.value) };\n },\n _get: function (obj, key, document) {\n this.value = obj[key];\n return { newDocument: document };\n }\n};\n/* The operations applicable to an array. Many are the same as for the object */\nvar arrOps = {\n add: function (arr, i, document) {\n if (isInteger(i)) {\n arr.splice(i, 0, this.value);\n }\n else { // array props\n arr[i] = this.value;\n }\n // this may be needed when using '-' in an array\n return { newDocument: document, index: i };\n },\n remove: function (arr, i, document) {\n var removedList = arr.splice(i, 1);\n return { newDocument: document, removed: removedList[0] };\n },\n replace: function (arr, i, document) {\n var removed = arr[i];\n arr[i] = this.value;\n return { newDocument: document, removed: removed };\n },\n move: objOps.move,\n copy: objOps.copy,\n test: objOps.test,\n _get: objOps._get\n};\n/**\n * Retrieves a value from a JSON document by a JSON pointer.\n * Returns the value.\n *\n * @param document The document to get the value from\n * @param pointer an escaped JSON pointer\n * @return The retrieved value\n */\nexport function getValueByPointer(document, pointer) {\n if (pointer == '') {\n return document;\n }\n var getOriginalDestination = { op: \"_get\", path: pointer };\n applyOperation(document, getOriginalDestination);\n return getOriginalDestination.value;\n}\n/**\n * Apply a single JSON Patch Operation on a JSON document.\n * Returns the {newDocument, result} of the operation.\n * It modifies the `document` and `operation` objects - it gets the values by reference.\n * If you would like to avoid touching your values, clone them:\n * `jsonpatch.applyOperation(document, jsonpatch._deepClone(operation))`.\n *\n * @param document The document to patch\n * @param operation The operation to apply\n * @param validateOperation `false` is without validation, `true` to use default jsonpatch's validation, or you can pass a `validateOperation` callback to be used for validation.\n * @param mutateDocument Whether to mutate the original document or clone it before applying\n * @param banPrototypeModifications Whether to ban modifications to `__proto__`, defaults to `true`.\n * @return `{newDocument, result}` after the operation\n */\nexport function applyOperation(document, operation, validateOperation, mutateDocument, banPrototypeModifications, index) {\n if (validateOperation === void 0) { validateOperation = false; }\n if (mutateDocument === void 0) { mutateDocument = true; }\n if (banPrototypeModifications === void 0) { banPrototypeModifications = true; }\n if (index === void 0) { index = 0; }\n if (validateOperation) {\n if (typeof validateOperation == 'function') {\n validateOperation(operation, 0, document, operation.path);\n }\n else {\n validator(operation, 0);\n }\n }\n /* ROOT OPERATIONS */\n if (operation.path === \"\") {\n var returnValue = { newDocument: document };\n if (operation.op === 'add') {\n returnValue.newDocument = operation.value;\n return returnValue;\n }\n else if (operation.op === 'replace') {\n returnValue.newDocument = operation.value;\n returnValue.removed = document; //document we removed\n return returnValue;\n }\n else if (operation.op === 'move' || operation.op === 'copy') { // it's a move or copy to root\n returnValue.newDocument = getValueByPointer(document, operation.from); // get the value by json-pointer in `from` field\n if (operation.op === 'move') { // report removed item\n returnValue.removed = document;\n }\n return returnValue;\n }\n else if (operation.op === 'test') {\n returnValue.test = _areEquals(document, operation.value);\n if (returnValue.test === false) {\n throw new JsonPatchError(\"Test operation failed\", 'TEST_OPERATION_FAILED', index, operation, document);\n }\n returnValue.newDocument = document;\n return returnValue;\n }\n else if (operation.op === 'remove') { // a remove on root\n returnValue.removed = document;\n returnValue.newDocument = null;\n return returnValue;\n }\n else if (operation.op === '_get') {\n operation.value = document;\n return returnValue;\n }\n else { /* bad operation */\n if (validateOperation) {\n throw new JsonPatchError('Operation `op` property is not one of operations defined in RFC-6902', 'OPERATION_OP_INVALID', index, operation, document);\n }\n else {\n return returnValue;\n }\n }\n } /* END ROOT OPERATIONS */\n else {\n if (!mutateDocument) {\n document = _deepClone(document);\n }\n var path = operation.path || \"\";\n var keys = path.split('/');\n var obj = document;\n var t = 1; //skip empty element - http://jsperf.com/to-shift-or-not-to-shift\n var len = keys.length;\n var existingPathFragment = undefined;\n var key = void 0;\n var validateFunction = void 0;\n if (typeof validateOperation == 'function') {\n validateFunction = validateOperation;\n }\n else {\n validateFunction = validator;\n }\n while (true) {\n key = keys[t];\n if (key && key.indexOf('~') != -1) {\n key = unescapePathComponent(key);\n }\n if (banPrototypeModifications &&\n (key == '__proto__' ||\n (key == 'prototype' && t > 0 && keys[t - 1] == 'constructor'))) {\n throw new TypeError('JSON-Patch: modifying `__proto__` or `constructor/prototype` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README');\n }\n if (validateOperation) {\n if (existingPathFragment === undefined) {\n if (obj[key] === undefined) {\n existingPathFragment = keys.slice(0, t).join('/');\n }\n else if (t == len - 1) {\n existingPathFragment = operation.path;\n }\n if (existingPathFragment !== undefined) {\n validateFunction(operation, 0, document, existingPathFragment);\n }\n }\n }\n t++;\n if (Array.isArray(obj)) {\n if (key === '-') {\n key = obj.length;\n }\n else {\n if (validateOperation && !isInteger(key)) {\n throw new JsonPatchError(\"Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index\", \"OPERATION_PATH_ILLEGAL_ARRAY_INDEX\", index, operation, document);\n } // only parse key when it's an integer for `arr.prop` to work\n else if (isInteger(key)) {\n key = ~~key;\n }\n }\n if (t >= len) {\n if (validateOperation && operation.op === \"add\" && key > obj.length) {\n throw new JsonPatchError(\"The specified index MUST NOT be greater than the number of elements in the array\", \"OPERATION_VALUE_OUT_OF_BOUNDS\", index, operation, document);\n }\n var returnValue = arrOps[operation.op].call(operation, obj, key, document); // Apply patch\n if (returnValue.test === false) {\n throw new JsonPatchError(\"Test operation failed\", 'TEST_OPERATION_FAILED', index, operation, document);\n }\n return returnValue;\n }\n }\n else {\n if (t >= len) {\n var returnValue = objOps[operation.op].call(operation, obj, key, document); // Apply patch\n if (returnValue.test === false) {\n throw new JsonPatchError(\"Test operation failed\", 'TEST_OPERATION_FAILED', index, operation, document);\n }\n return returnValue;\n }\n }\n obj = obj[key];\n // If we have more keys in the path, but the next value isn't a non-null object,\n // throw an OPERATION_PATH_UNRESOLVABLE error instead of iterating again.\n if (validateOperation && t < len && (!obj || typeof obj !== \"object\")) {\n throw new JsonPatchError('Cannot perform operation at the desired path', 'OPERATION_PATH_UNRESOLVABLE', index, operation, document);\n }\n }\n }\n}\n/**\n * Apply a full JSON Patch array on a JSON document.\n * Returns the {newDocument, result} of the patch.\n * It modifies the `document` object and `patch` - it gets the values by reference.\n * If you would like to avoid touching your values, clone them:\n * `jsonpatch.applyPatch(document, jsonpatch._deepClone(patch))`.\n *\n * @param document The document to patch\n * @param patch The patch to apply\n * @param validateOperation `false` is without validation, `true` to use default jsonpatch's validation, or you can pass a `validateOperation` callback to be used for validation.\n * @param mutateDocument Whether to mutate the original document or clone it before applying\n * @param banPrototypeModifications Whether to ban modifications to `__proto__`, defaults to `true`.\n * @return An array of `{newDocument, result}` after the patch\n */\nexport function applyPatch(document, patch, validateOperation, mutateDocument, banPrototypeModifications) {\n if (mutateDocument === void 0) { mutateDocument = true; }\n if (banPrototypeModifications === void 0) { banPrototypeModifications = true; }\n if (validateOperation) {\n if (!Array.isArray(patch)) {\n throw new JsonPatchError('Patch sequence must be an array', 'SEQUENCE_NOT_AN_ARRAY');\n }\n }\n if (!mutateDocument) {\n document = _deepClone(document);\n }\n var results = new Array(patch.length);\n for (var i = 0, length_1 = patch.length; i < length_1; i++) {\n // we don't need to pass mutateDocument argument because if it was true, we already deep cloned the object, we'll just pass `true`\n results[i] = applyOperation(document, patch[i], validateOperation, true, banPrototypeModifications, i);\n document = results[i].newDocument; // in case root was replaced\n }\n results.newDocument = document;\n return results;\n}\n/**\n * Apply a single JSON Patch Operation on a JSON document.\n * Returns the updated document.\n * Suitable as a reducer.\n *\n * @param document The document to patch\n * @param operation The operation to apply\n * @return The updated document\n */\nexport function applyReducer(document, operation, index) {\n var operationResult = applyOperation(document, operation);\n if (operationResult.test === false) { // failed test\n throw new JsonPatchError(\"Test operation failed\", 'TEST_OPERATION_FAILED', index, operation, document);\n }\n return operationResult.newDocument;\n}\n/**\n * Validates a single operation. Called from `jsonpatch.validate`. Throws `JsonPatchError` in case of an error.\n * @param {object} operation - operation object (patch)\n * @param {number} index - index of operation in the sequence\n * @param {object} [document] - object where the operation is supposed to be applied\n * @param {string} [existingPathFragment] - comes along with `document`\n */\nexport function validator(operation, index, document, existingPathFragment) {\n if (typeof operation !== 'object' || operation === null || Array.isArray(operation)) {\n throw new JsonPatchError('Operation is not an object', 'OPERATION_NOT_AN_OBJECT', index, operation, document);\n }\n else if (!objOps[operation.op]) {\n throw new JsonPatchError('Operation `op` property is not one of operations defined in RFC-6902', 'OPERATION_OP_INVALID', index, operation, document);\n }\n else if (typeof operation.path !== 'string') {\n throw new JsonPatchError('Operation `path` property is not a string', 'OPERATION_PATH_INVALID', index, operation, document);\n }\n else if (operation.path.indexOf('/') !== 0 && operation.path.length > 0) {\n // paths that aren't empty string should start with \"/\"\n throw new JsonPatchError('Operation `path` property must start with \"/\"', 'OPERATION_PATH_INVALID', index, operation, document);\n }\n else if ((operation.op === 'move' || operation.op === 'copy') && typeof operation.from !== 'string') {\n throw new JsonPatchError('Operation `from` property is not present (applicable in `move` and `copy` operations)', 'OPERATION_FROM_REQUIRED', index, operation, document);\n }\n else if ((operation.op === 'add' || operation.op === 'replace' || operation.op === 'test') && operation.value === undefined) {\n throw new JsonPatchError('Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)', 'OPERATION_VALUE_REQUIRED', index, operation, document);\n }\n else if ((operation.op === 'add' || operation.op === 'replace' || operation.op === 'test') && hasUndefined(operation.value)) {\n throw new JsonPatchError('Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)', 'OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED', index, operation, document);\n }\n else if (document) {\n if (operation.op == \"add\") {\n var pathLen = operation.path.split(\"/\").length;\n var existingPathLen = existingPathFragment.split(\"/\").length;\n if (pathLen !== existingPathLen + 1 && pathLen !== existingPathLen) {\n throw new JsonPatchError('Cannot perform an `add` operation at the desired path', 'OPERATION_PATH_CANNOT_ADD', index, operation, document);\n }\n }\n else if (operation.op === 'replace' || operation.op === 'remove' || operation.op === '_get') {\n if (operation.path !== existingPathFragment) {\n throw new JsonPatchError('Cannot perform the operation at a path that does not exist', 'OPERATION_PATH_UNRESOLVABLE', index, operation, document);\n }\n }\n else if (operation.op === 'move' || operation.op === 'copy') {\n var existingValue = { op: \"_get\", path: operation.from, value: undefined };\n var error = validate([existingValue], document);\n if (error && error.name === 'OPERATION_PATH_UNRESOLVABLE') {\n throw new JsonPatchError('Cannot perform the operation from a path that does not exist', 'OPERATION_FROM_UNRESOLVABLE', index, operation, document);\n }\n }\n }\n}\n/**\n * Validates a sequence of operations. If `document` parameter is provided, the sequence is additionally validated against the object document.\n * If error is encountered, returns a JsonPatchError object\n * @param sequence\n * @param document\n * @returns {JsonPatchError|undefined}\n */\nexport function validate(sequence, document, externalValidator) {\n try {\n if (!Array.isArray(sequence)) {\n throw new JsonPatchError('Patch sequence must be an array', 'SEQUENCE_NOT_AN_ARRAY');\n }\n if (document) {\n //clone document and sequence so that we can safely try applying operations\n applyPatch(_deepClone(document), _deepClone(sequence), externalValidator || true);\n }\n else {\n externalValidator = externalValidator || validator;\n for (var i = 0; i < sequence.length; i++) {\n externalValidator(sequence[i], i, document, undefined);\n }\n }\n }\n catch (e) {\n if (e instanceof JsonPatchError) {\n return e;\n }\n else {\n throw e;\n }\n }\n}\n// based on https://github.com/epoberezkin/fast-deep-equal\n// MIT License\n// Copyright (c) 2017 Evgeny Poberezkin\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\nexport function _areEquals(a, b) {\n if (a === b)\n return true;\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = Array.isArray(a), arrB = Array.isArray(b), i, length, key;\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length)\n return false;\n for (i = length; i-- !== 0;)\n if (!_areEquals(a[i], b[i]))\n return false;\n return true;\n }\n if (arrA != arrB)\n return false;\n var keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length)\n return false;\n for (i = length; i-- !== 0;)\n if (!b.hasOwnProperty(keys[i]))\n return false;\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (!_areEquals(a[key], b[key]))\n return false;\n }\n return true;\n }\n return a !== a && b !== b;\n}\n;\n","/*!\n * https://github.com/Starcounter-Jack/JSON-Patch\n * (c) 2017-2021 Joachim Wester\n * MIT license\n */\nimport { _deepClone, _objectKeys, escapePathComponent, hasOwnProperty } from './helpers.mjs';\nimport { applyPatch } from './core.mjs';\nvar beforeDict = new WeakMap();\nvar Mirror = /** @class */ (function () {\n function Mirror(obj) {\n this.observers = new Map();\n this.obj = obj;\n }\n return Mirror;\n}());\nvar ObserverInfo = /** @class */ (function () {\n function ObserverInfo(callback, observer) {\n this.callback = callback;\n this.observer = observer;\n }\n return ObserverInfo;\n}());\nfunction getMirror(obj) {\n return beforeDict.get(obj);\n}\nfunction getObserverFromMirror(mirror, callback) {\n return mirror.observers.get(callback);\n}\nfunction removeObserverFromMirror(mirror, observer) {\n mirror.observers.delete(observer.callback);\n}\n/**\n * Detach an observer from an object\n */\nexport function unobserve(root, observer) {\n observer.unobserve();\n}\n/**\n * Observes changes made to an object, which can then be retrieved using generate\n */\nexport function observe(obj, callback) {\n var patches = [];\n var observer;\n var mirror = getMirror(obj);\n if (!mirror) {\n mirror = new Mirror(obj);\n beforeDict.set(obj, mirror);\n }\n else {\n var observerInfo = getObserverFromMirror(mirror, callback);\n observer = observerInfo && observerInfo.observer;\n }\n if (observer) {\n return observer;\n }\n observer = {};\n mirror.value = _deepClone(obj);\n if (callback) {\n observer.callback = callback;\n observer.next = null;\n var dirtyCheck = function () {\n generate(observer);\n };\n var fastCheck = function () {\n clearTimeout(observer.next);\n observer.next = setTimeout(dirtyCheck);\n };\n if (typeof window !== 'undefined') { //not Node\n window.addEventListener('mouseup', fastCheck);\n window.addEventListener('keyup', fastCheck);\n window.addEventListener('mousedown', fastCheck);\n window.addEventListener('keydown', fastCheck);\n window.addEventListener('change', fastCheck);\n }\n }\n observer.patches = patches;\n observer.object = obj;\n observer.unobserve = function () {\n generate(observer);\n clearTimeout(observer.next);\n removeObserverFromMirror(mirror, observer);\n if (typeof window !== 'undefined') {\n window.removeEventListener('mouseup', fastCheck);\n window.removeEventListener('keyup', fastCheck);\n window.removeEventListener('mousedown', fastCheck);\n window.removeEventListener('keydown', fastCheck);\n window.removeEventListener('change', fastCheck);\n }\n };\n mirror.observers.set(callback, new ObserverInfo(callback, observer));\n return observer;\n}\n/**\n * Generate an array of patches from an observer\n */\nexport function generate(observer, invertible) {\n if (invertible === void 0) { invertible = false; }\n var mirror = beforeDict.get(observer.object);\n _generate(mirror.value, observer.object, observer.patches, \"\", invertible);\n if (observer.patches.length) {\n applyPatch(mirror.value, observer.patches);\n }\n var temp = observer.patches;\n if (temp.length > 0) {\n observer.patches = [];\n if (observer.callback) {\n observer.callback(temp);\n }\n }\n return temp;\n}\n// Dirty check if obj is different from mirror, generate patches and update mirror\nfunction _generate(mirror, obj, patches, path, invertible) {\n if (obj === mirror) {\n return;\n }\n if (typeof obj.toJSON === \"function\") {\n obj = obj.toJSON();\n }\n var newKeys = _objectKeys(obj);\n var oldKeys = _objectKeys(mirror);\n var changed = false;\n var deleted = false;\n //if ever \"move\" operation is implemented here, make sure this test runs OK: \"should not generate the same patch twice (move)\"\n for (var t = oldKeys.length - 1; t >= 0; t--) {\n var key = oldKeys[t];\n var oldVal = mirror[key];\n if (hasOwnProperty(obj, key) && !(obj[key] === undefined && oldVal !== undefined && Array.isArray(obj) === false)) {\n var newVal = obj[key];\n if (typeof oldVal == \"object\" && oldVal != null && typeof newVal == \"object\" && newVal != null && Array.isArray(oldVal) === Array.isArray(newVal)) {\n _generate(oldVal, newVal, patches, path + \"/\" + escapePathComponent(key), invertible);\n }\n else {\n if (oldVal !== newVal) {\n changed = true;\n if (invertible) {\n patches.push({ op: \"test\", path: path + \"/\" + escapePathComponent(key), value: _deepClone(oldVal) });\n }\n patches.push({ op: \"replace\", path: path + \"/\" + escapePathComponent(key), value: _deepClone(newVal) });\n }\n }\n }\n else if (Array.isArray(mirror) === Array.isArray(obj)) {\n if (invertible) {\n patches.push({ op: \"test\", path: path + \"/\" + escapePathComponent(key), value: _deepClone(oldVal) });\n }\n patches.push({ op: \"remove\", path: path + \"/\" + escapePathComponent(key) });\n deleted = true; // property has been deleted\n }\n else {\n if (invertible) {\n patches.push({ op: \"test\", path: path, value: mirror });\n }\n patches.push({ op: \"replace\", path: path, value: obj });\n changed = true;\n }\n }\n if (!deleted && newKeys.length == oldKeys.length) {\n return;\n }\n for (var t = 0; t < newKeys.length; t++) {\n var key = newKeys[t];\n if (!hasOwnProperty(mirror, key) && obj[key] !== undefined) {\n patches.push({ op: \"add\", path: path + \"/\" + escapePathComponent(key), value: _deepClone(obj[key]) });\n }\n }\n}\n/**\n * Create an array of patches from the differences in two objects\n */\nexport function compare(tree1, tree2, invertible) {\n if (invertible === void 0) { invertible = false; }\n var patches = [];\n _generate(tree1, tree2, patches, '', invertible);\n return patches;\n}\n","export * from './module/core.mjs';\nexport * from './module/duplex.mjs';\nexport {\n PatchError as JsonPatchError,\n _deepClone as deepClone,\n escapePathComponent,\n unescapePathComponent\n} from './module/helpers.mjs';\n\n\n/**\n * Default export for backwards compat\n */\n\nimport * as core from './module/core.mjs';\nimport * as duplex from './module/duplex.mjs';\nimport {\n PatchError as JsonPatchError,\n _deepClone as deepClone,\n escapePathComponent,\n unescapePathComponent\n} from './module/helpers.mjs';\n\nexport default Object.assign({}, core, duplex, {\n JsonPatchError,\n deepClone,\n escapePathComponent,\n unescapePathComponent\n});","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","import {FC} from 'react';\nimport {useLingui} from '@lingui/react';\nimport classnames from 'classnames';\n\nimport AuthActions from '@client/actions/AuthActions';\nimport ConfigStore from '@client/stores/ConfigStore';\nimport {Logout} from '@client/ui/icons';\n\nimport Tooltip from '../general/Tooltip';\n\ninterface LogoutButtonProps {\n className?: string;\n}\n\nconst LogoutButton: FC<LogoutButtonProps> = ({className}: LogoutButtonProps) => {\n const {i18n} = useLingui();\n\n if (ConfigStore.authMethod === 'none') {\n return null;\n }\n\n return (\n <Tooltip\n content={i18n._('sidebar.button.log.out')}\n onClick={() =>\n AuthActions.logout().then(() => {\n window.location.reload();\n })\n }\n position=\"bottom\"\n wrapperClassName={classnames(\n 'sidebar__action',\n 'sidebar__action--last',\n 'sidebar__icon-button',\n 'sidebar__icon-button--interactive',\n 'tooltip__wrapper',\n className,\n )}\n >\n <Logout />\n </Tooltip>\n );\n};\n\nexport default LogoutButton;\n","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","/**\n * @remix-run/router v1.23.2\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Actions represent the type of change to a location value.\n */\nvar Action;\n(function (Action) {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Action[\"Pop\"] = \"POP\";\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Action[\"Push\"] = \"PUSH\";\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\nconst PopStateEventType = \"popstate\";\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n let {\n initialEntries = [\"/\"],\n initialIndex,\n v5Compat = false\n } = options;\n let entries; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) => createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation() {\n return entries[index];\n }\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n function createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n let history = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 1\n });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 0\n });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: nextLocation,\n delta\n });\n }\n },\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route (<Route path=\"*\">) since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createHashHref(window, to) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n function validateHashLocation(location, to) {\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = _extends({\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\"\n }, typeof to === \"string\" ? parsePath(to) : to, {\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n });\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nfunction parsePath(path) {\n let parsedPath = {};\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n if (path) {\n parsedPath.pathname = path;\n }\n }\n return parsedPath;\n}\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n let index = getIndex();\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), \"\");\n }\n function getIndex() {\n let state = globalHistory.state || {\n idx: null\n };\n return state.idx;\n }\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: history.location,\n delta\n });\n }\n }\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 1\n });\n }\n }\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 0\n });\n }\n }\n function createURL(to) {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n }\n let history = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n }\n };\n return history;\n}\n//#endregion\n\nvar ResultType;\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\nconst immutableRouteKeys = new Set([\"lazy\", \"caseSensitive\", \"path\", \"id\", \"index\", \"children\"]);\nfunction isIndexRoute(route) {\n return route.index === true;\n}\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nfunction convertRoutesToDataRoutes(routes, mapRouteProperties, parentPath, manifest) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n if (manifest === void 0) {\n manifest = {};\n }\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!manifest[id], \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, mapRouteProperties(route), {\n id\n });\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, mapRouteProperties(route), {\n id,\n children: undefined\n });\n manifest[id] = pathOrLayoutRoute;\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(route.children, mapRouteProperties, treePath, manifest);\n }\n return pathOrLayoutRoute;\n }\n });\n}\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/v6/utils/match-routes\n */\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\nfunction matchRoutesImpl(routes, locationArg, basename, allowPartial) {\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n if (pathname == null) {\n return null;\n }\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded, allowPartial);\n }\n return matches;\n}\nfunction convertRouteMatchToUiMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n routes.forEach((route, index) => {\n var _route$path;\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _route$path.includes(\"?\"))) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n return branches;\n}\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments;\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = [];\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\")));\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n // for absolute paths, ensure `/` instead of empty segment\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = s => s === \"*\";\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n if (index) {\n initialScore += indexRouteValue;\n }\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ?\n // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] :\n // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\nfunction matchRouteBranch(branch, pathname, allowPartial) {\n if (allowPartial === void 0) {\n allowPartial = false;\n }\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n let route = meta.route;\n if (!match && end && allowPartial && !routesMeta[routesMeta.length - 1].route.index) {\n match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false\n }, remainingPathname);\n }\n if (!match) {\n return null;\n }\n Object.assign(matchedParams, match.params);\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/v6/utils/generate-path\n */\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n }\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n const stringify = p => p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n const segments = path.split(/\\/+/).map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\";\n // Apply the splat\n return stringify(params[star]);\n }\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key];\n invariant(optional === \"?\" || param != null, \"Missing \\\":\" + key + \"\\\" param\");\n return stringify(param);\n }\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter(segment => !!segment);\n return prefix + segments.join(\"/\");\n}\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/v6/utils/match-path\n */\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n let [matcher, compiledParams] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = compiledParams.reduce((memo, _ref, index) => {\n let {\n paramName,\n isOptional\n } = _ref;\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n if (end === void 0) {\n end = true;\n }\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let params = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:([\\w-]+)(\\?)?/g, (_, paramName, isOptional) => {\n params.push({\n paramName,\n isOptional: isOptional != null\n });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n });\n if (path.endsWith(\"*\")) {\n params.push({\n paramName: \"*\"\n });\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else ;\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, params];\n}\nfunction decodePath(value) {\n try {\n return value.split(\"/\").map(v => decodeURIComponent(v).replace(/\\//g, \"%2F\")).join(\"/\");\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n return pathname.slice(startIndex) || \"/\";\n}\nconst ABSOLUTE_URL_REGEX$1 = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst isAbsoluteUrl = url => ABSOLUTE_URL_REGEX$1.test(url);\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/v6/utils/resolve-path\n */\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname;\n if (toPathname) {\n if (isAbsoluteUrl(toPathname)) {\n pathname = toPathname;\n } else {\n if (toPathname.includes(\"//\")) {\n let oldPathname = toPathname;\n toPathname = toPathname.replace(/\\/\\/+/g, \"/\");\n warning(false, \"Pathnames cannot have embedded double slashes - normalizing \" + (oldPathname + \" -> \" + toPathname));\n }\n if (toPathname.startsWith(\"/\")) {\n pathname = resolvePathname(toPathname.substring(1), \"/\");\n } else {\n pathname = resolvePathname(toPathname, fromPathname);\n }\n }\n } else {\n pathname = fromPathname;\n }\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in <Link to=\\\"...\\\"> and the router will parse it for you.\";\n}\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\" element={<Link to=\"..\"}>\n * </Route>\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\">\n * <Route element={<AccountsLayout />}> // <-- Does not contribute\n * <Route index element={<Link to=\"..\"} /> // <-- Does not contribute\n * </Route\n * </Route>\n * </Route>\n */\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nfunction getResolveToMatches(matches, v7_relativeSplatPath) {\n let pathMatches = getPathContributingMatches(matches);\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) => idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase);\n }\n return pathMatches.map(match => match.pathnameBase);\n}\n/**\n * @private\n */\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n let to;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from;\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `<Link to>` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how <a href> works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n to.pathname = toSegments.join(\"/\");\n }\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n let path = resolvePath(to, from);\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n return path;\n}\n/**\n * @private\n */\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n *\n * @deprecated The `json` method is deprecated in favor of returning raw objects.\n * This method will be removed in v7.\n */\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n return new Response(JSON.stringify(data), _extends({}, responseInit, {\n headers\n }));\n};\nclass DataWithResponseInit {\n constructor(data, init) {\n this.type = \"DataWithResponseInit\";\n this.data = data;\n this.init = init || null;\n }\n}\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nfunction data(data, init) {\n return new DataWithResponseInit(data, typeof init === \"number\" ? {\n status: init\n } : init);\n}\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data, responseInit) {\n this.pendingKeysSet = new Set();\n this.subscribers = new Set();\n this.deferredKeys = [];\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\");\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n this.init = responseInit;\n }\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, undefined, data), error => this.onSettle(promise, key, error));\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n this.pendingKeysSet.delete(key);\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\"Deferred data for key \\\"\" + key + \"\\\" resolved/rejected with `undefined`, \" + \"you must resolve/reject with a value or `null`.\");\n Object.defineProperty(promise, \"_error\", {\n get: () => undefinedError\n });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n this.emit(false, key);\n return Promise.reject(error);\n }\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n this.emit(false, key);\n return data;\n }\n emit(aborted, settledKey) {\n this.subscribers.forEach(subscriber => subscriber(aborted, settledKey));\n }\n subscribe(fn) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n async resolveData(signal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref3) => {\n let [key, value] = _ref3;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n/**\n * @deprecated The `defer` method is deprecated in favor of returning raw\n * objects. This method will be removed in v7.\n */\nconst defer = function defer(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n return new DeferredData(data, responseInit);\n};\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirectDocument = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst replace = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nclass ErrorResponseImpl {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined\n};\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst defaultMapRouteProperties = route => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary)\n});\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a router and listen to history POP navigations\n */\nfunction createRouter(init) {\n const routerWindow = init.window ? init.window : typeof window !== \"undefined\" ? window : undefined;\n const isBrowser = typeof routerWindow !== \"undefined\" && typeof routerWindow.document !== \"undefined\" && typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let mapRouteProperties;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Routes keyed by ID\n let manifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(init.routes, mapRouteProperties, undefined, manifest);\n let inFlightDataRoutes;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.patchRoutesOnNavigation;\n // Config driven behavior flags\n let future = _extends({\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false\n }, init.future);\n // Cleanup function for history\n let unlistenHistory = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from <ScrollRestoration /> until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialMatchesIsFOW = false;\n let initialErrors = null;\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(initialMatches, dataRoutes, init.history.location.pathname);\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n let initialized;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(null, dataRoutes, init.history.location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatchesIsFOW = true;\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some(m => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some(m => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(m => errors[m.route.id] !== undefined);\n initialized = initialMatches.slice(0, idx + 1).every(m => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n } else {\n initialized = initialMatches.every(m => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: new Map(),\n blockers: new Map()\n };\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction = Action.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController;\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions = new Map();\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener = null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads = new Set();\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate = undefined;\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(_ref => {\n let {\n action: historyAction,\n location,\n delta\n } = _ref;\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n warning(blockerFunctions.size === 0 || delta != null, \"You are trying to use a blocker on a POP navigation to a location \" + \"that was not created by @remix-run/router. This will fail silently in \" + \"production. This can happen if you are navigating outside the router \" + \"via `window.history.pushState`/`window.location.hash` instead of using \" + \"router navigation APIs. This can also happen if you are using \" + \"createHashRouter and the user manually changes the URL.\");\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise(resolve => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return startNavigation(historyAction, location);\n });\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () => persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () => routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location, {\n initialHydration: true\n });\n }\n return router;\n }\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n // Subscribe to state updates for the router\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n // Update our state and notify the calling context of the change\n function updateState(newState, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state = _extends({}, state, newState);\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers = [];\n let deletedFetchersKeys = [];\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n // Remove any lingering deleted fetchers that have already been removed\n // from state.fetchers\n deletedFetchers.forEach(key => {\n if (!state.fetchers.has(key) && !fetchControllers.has(key)) {\n deletedFetchersKeys.push(key);\n }\n });\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach(subscriber => subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n viewTransitionOpts: opts.viewTransitionOpts,\n flushSync: opts.flushSync === true\n }));\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach(key => state.fetchers.delete(key));\n deletedFetchersKeys.forEach(key => deleteFetcher(key));\n } else {\n // We already called deleteFetcher() on these, can remove them from this\n // Set now that we've handed the keys off to the data layer\n deletedFetchersKeys.forEach(key => deletedFetchers.delete(key));\n }\n }\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(location, newState, _temp) {\n var _location$state, _location$state2;\n let {\n flushSync\n } = _temp === void 0 ? {} : _temp;\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData;\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && ((_location$state2 = location.state) == null ? void 0 : _location$state2._isRedirect) !== true;\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n }\n let viewTransitionOpts;\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === Action.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n }\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset,\n blockers\n }), {\n viewTransitionOpts,\n flushSync: flushSync === true\n });\n // Reset stateful navigation vars\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, to, future.v7_relativeSplatPath, opts == null ? void 0 : opts.fromRouteId, opts == null ? void 0 : opts.relative);\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, false, normalizedPath, opts);\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = _extends({}, nextLocation, init.history.encodeLocation(nextLocation));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = Action.Replace;\n }\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n let flushSync = (opts && opts.flushSync) === true;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.viewTransition,\n flushSync\n });\n }\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\n });\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\n }\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true\n });\n }\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(historyAction, location, opts) {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true;\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = opts != null && opts.initialHydration && state.matches && state.matches.length > 0 && !initialMatchesIsFOW ?\n // `matchRoutes()` has already been called if we're in here via `router.initialize()`\n state.matches : matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial hydration will always\n // be \"same hash\". For example, on /page#hash and submit a <Form method=\"post\">\n // which will default to a navigation to /page\n if (matches && state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, {\n matches\n }, {\n flushSync\n });\n return;\n }\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let {\n error,\n notFoundMatches,\n route\n } = handleNavigational404(location.pathname);\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n }, {\n flushSync\n });\n return;\n }\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(init.history, location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionResult;\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [findNearestBoundary(matches).route.id, {\n type: ResultType.error,\n error: opts.pendingError\n }];\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionResult = await handleAction(request, location, opts.submission, matches, fogOfWar.active, {\n replace: opts.replace,\n flushSync\n });\n if (actionResult.shortCircuited) {\n return;\n }\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (isErrorResult(result) && isRouteErrorResponse(result.error) && result.error.status === 404) {\n pendingNavigationController = null;\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error\n }\n });\n return;\n }\n }\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n // Create a GET request for the loaders\n request = createClientSideRequest(init.history, request.url, request.signal);\n }\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, fogOfWar.active, loadingNavigation, opts && opts.submission, opts && opts.fetcherSubmission, opts && opts.replace, opts && opts.initialHydration === true, flushSync, pendingActionResult);\n if (shortCircuited) {\n return;\n }\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches: updatedMatches || matches\n }, getActionDataForCommit(pendingActionResult), {\n loaderData,\n errors\n }));\n }\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(request, location, submission, matches, isFogOfWar, opts) {\n if (opts === void 0) {\n opts = {};\n }\n interruptActiveLoads();\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({\n navigation\n }, {\n flushSync: opts.flushSync === true\n });\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(matches, location.pathname, request.signal);\n if (discoverResult.type === \"aborted\") {\n return {\n shortCircuited: true\n };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [boundaryId, {\n type: ResultType.error,\n error: discoverResult.error\n }]\n };\n } else if (!discoverResult.matches) {\n let {\n notFoundMatches,\n error,\n route\n } = handleNavigational404(location.pathname);\n return {\n matches: notFoundMatches,\n pendingActionResult: [route.id, {\n type: ResultType.error,\n error\n }]\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n // Call our action and get the result\n let result;\n let actionMatch = getTargetMatch(matches, location);\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n let results = await callDataStrategy(\"action\", state, request, [actionMatch], matches, null);\n result = results[actionMatch.route.id];\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n if (isRedirectResult(result)) {\n let replace;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(result.response.headers.get(\"Location\"), new URL(request.url), basename, init.history);\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\n }\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result]\n };\n }\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result]\n };\n }\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(request, location, matches, isFogOfWar, overrideNavigation, submission, fetcherSubmission, replace, initialHydration, flushSync, pendingActionResult) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation || getLoadingNavigation(location, submission);\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission || fetcherSubmission || getSubmissionFromNavigation(loadingNavigation);\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState = !isUninterruptedRevalidation && (!future.v7_partialHydration || !initialHydration);\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData !== undefined ? {\n actionData\n } : {}), {\n flushSync\n });\n }\n let discoverResult = await discoverRoutes(matches, location.pathname, request.signal);\n if (discoverResult.type === \"aborted\") {\n return {\n shortCircuited: true\n };\n } else if (discoverResult.type === \"error\") {\n let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: discoverResult.error\n }\n };\n } else if (!discoverResult.matches) {\n let {\n error,\n notFoundMatches,\n route\n } = handleNavigational404(location.pathname);\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, activeSubmission, location, future.v7_partialHydration && initialHydration === true, future.v7_skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionResult);\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId));\n pendingNavigationLoadId = ++incrementingLoadId;\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n [pendingActionResult[0]]: pendingActionResult[1].error\n } : null\n }, getActionDataForCommit(pendingActionResult), updatedFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n return {\n shortCircuited: true\n };\n }\n if (shouldUpdateNavigationState) {\n let updates = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, {\n flushSync\n });\n }\n revalidatingFetchers.forEach(rf => {\n abortFetcher(rf.key);\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(f => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n let {\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state, matches, matchesToLoad, revalidatingFetchers, request);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n revalidatingFetchers.forEach(rf => fetchControllers.delete(rf.key));\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, loaderResults, pendingActionResult, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe(aborted => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n // Preserve SSR errors during partial hydration\n if (future.v7_partialHydration && initialHydration && state.errors) {\n errors = _extends({}, state.errors, errors);\n }\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n return _extends({\n matches,\n loaderData,\n errors\n }, shouldUpdateFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n function getUpdatedActionData(pendingActionResult) {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n function getUpdatedRevalidatingFetchers(revalidatingFetchers) {\n revalidatingFetchers.forEach(rf => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(undefined, fetcher ? fetcher.data : undefined);\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n abortFetcher(key);\n let flushSync = (opts && opts.flushSync) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, href, future.v7_relativeSplatPath, routeId, opts == null ? void 0 : opts.relative);\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: normalizedPath\n }), {\n flushSync\n });\n return;\n }\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, true, normalizedPath, opts);\n if (error) {\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n let match = getTargetMatch(matches, path);\n let preventScrollReset = (opts && opts.preventScrollReset) === true;\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, fogOfWar.active, flushSync, preventScrollReset, submission);\n return;\n }\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, {\n routeId,\n path\n });\n handleFetcherLoader(key, routeId, path, match, matches, fogOfWar.active, flushSync, preventScrollReset, submission);\n }\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(key, routeId, path, match, requestMatches, isFogOfWar, flushSync, preventScrollReset, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n function detectAndHandle405Error(m) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return true;\n }\n return false;\n }\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync\n });\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal, submission);\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(requestMatches, new URL(fetchRequest.url).pathname, fetchRequest.signal, key);\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, {\n flushSync\n });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: path\n }), {\n flushSync\n });\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\"action\", state, fetchRequest, [match], requestMatches, key);\n let actionResult = actionResults[match.route.id];\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n preventScrollReset\n });\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(init.history, nextLocation, abortController.signal);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, submission, nextLocation, false, future.v7_skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, [match.route.id, actionResult]);\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers.filter(rf => rf.key !== key).forEach(rf => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(undefined, existingFetcher ? existingFetcher.data : undefined);\n state.fetchers.set(staleKey, revalidatingFetcher);\n abortFetcher(staleKey);\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(rf => abortFetcher(rf.key));\n abortController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n let {\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n if (abortController.signal.aborted) {\n return;\n }\n abortController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(r => fetchControllers.delete(r.key));\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(revalidationRequest, redirect.result, false, {\n preventScrollReset\n });\n }\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(revalidationRequest, redirect.result, false, {\n preventScrollReset\n });\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n abortStaleFetchLoads(loadId);\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors),\n fetchers: new Map(state.fetchers)\n });\n isRevalidationRequired = false;\n }\n }\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(key, routeId, path, match, matches, isFogOfWar, flushSync, preventScrollReset, submission) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getLoadingFetcher(submission, existingFetcher ? existingFetcher.data : undefined), {\n flushSync\n });\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal);\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(matches, new URL(fetchRequest.url).pathname, fetchRequest.signal, key);\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.error, {\n flushSync\n });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: path\n }), {\n flushSync\n });\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\"loader\", state, fetchRequest, [match], matches, key);\n let result = results[match.route.id];\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n }\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n if (fetchRequest.signal.aborted) {\n return;\n }\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false, {\n preventScrollReset\n });\n return;\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(request, redirect, isNavigation, _temp2) {\n let {\n submission,\n fetcherSubmission,\n preventScrollReset,\n replace\n } = _temp2 === void 0 ? {} : _temp2;\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(location, new URL(request.url), basename, init.history);\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true\n });\n if (isBrowser) {\n let isDocumentReload = false;\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true || redirect.response.headers.has(\"X-Remix-Replace\") ? Action.Replace : Action.Push;\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let {\n formMethod,\n formAction,\n formEncType\n } = state.navigation;\n if (!submission && !fetcherSubmission && formMethod && formAction && formEncType) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (redirectPreserveMethodStatusCodes.has(redirect.response.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, activeSubmission, {\n formAction: location\n }),\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation ? pendingViewTransitionEnabled : undefined\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(redirectLocation, submission);\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n enableViewTransition: isNavigation ? pendingViewTransitionEnabled : undefined\n });\n }\n }\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(type, state, request, matchesToLoad, matches, fetcherKey) {\n let results;\n let dataResults = {};\n try {\n results = await callDataStrategyImpl(dataStrategyImpl, type, state, request, matchesToLoad, matches, fetcherKey, manifest, mapRouteProperties);\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach(m => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e\n };\n });\n return dataResults;\n }\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(response, request, routeId, matches, basename, future.v7_relativeSplatPath)\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(result);\n }\n }\n return dataResults;\n }\n async function callLoadersAndMaybeResolveData(state, matches, matchesToLoad, fetchersToLoad, request) {\n let currentMatches = state.matches;\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\"loader\", state, request, matchesToLoad, matches, null);\n let fetcherResultsPromise = Promise.all(fetchersToLoad.map(async f => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\"loader\", state, createClientSideRequest(init.history, f.path, f.controller.signal), [f.match], f.matches, f.key);\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return {\n [f.key]: result\n };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n }\n });\n }\n }));\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce((acc, r) => Object.assign(acc, r), {});\n await Promise.all([resolveNavigationDeferredResults(matches, loaderResults, request.signal, currentMatches, state.loaderData), resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad)]);\n return {\n loaderResults,\n fetcherResults\n };\n }\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n }\n abortFetcher(key);\n });\n }\n function updateFetcherState(key, fetcher, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function setFetcherError(key, routeId, error, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function getFetcher(key) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n function deleteFetcher(key) {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (fetchControllers.has(key) && !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n // If we opted into the flag we can clear this now since we're calling\n // deleteFetcher() at the end of updateState() and we've already handed the\n // deleted fetcher keys off to the data layer.\n // If not, we're eagerly calling deleteFetcher() and we need to keep this\n // Set populated until the next updateState call, and we'll clear\n // `deletedFetchers` then\n if (future.v7_fetcherPersist) {\n deletedFetchers.delete(key);\n }\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n function deleteFetcherAndUpdateState(key) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n if (!future.v7_fetcherPersist) {\n deleteFetcher(key);\n }\n } else {\n activeFetchers.set(key, count);\n }\n updateState({\n fetchers: new Map(state.fetchers)\n });\n }\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n if (controller) {\n controller.abort();\n fetchControllers.delete(key);\n }\n }\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n function markFetchRedirectsDone() {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n return blocker;\n }\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\", \"Invalid blocker state transition: \" + blocker.state + \" -> \" + newBlocker.state);\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({\n blockers\n });\n }\n function shouldBlockNavigation(_ref2) {\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = _ref2;\n if (blockerFunctions.size === 0) {\n return;\n }\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({\n currentLocation,\n nextLocation,\n historyAction\n })) {\n return blockerKey;\n }\n }\n function handleNavigational404(pathname) {\n let error = getInternalRouterError(404, {\n pathname\n });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let {\n matches,\n route\n } = getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n return {\n notFoundMatches: matches,\n route,\n error\n };\n }\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the <ScrollRestoration> component\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered <ScrollRestoration/>\n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n function getScrollKey(location, matches) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(location, matches.map(m => convertRouteMatchToUiMatch(m, state.loaderData)));\n return key || location.key;\n }\n return location.key;\n }\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n function checkFogOfWar(matches, routesToUse, pathname) {\n if (patchRoutesOnNavigationImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n return {\n active: true,\n matches: fogMatches || []\n };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n return {\n active: true,\n matches: partialMatches\n };\n }\n }\n }\n return {\n active: false,\n matches: null\n };\n }\n async function discoverRoutes(matches, pathname, signal, fetcherKey) {\n if (!patchRoutesOnNavigationImpl) {\n return {\n type: \"success\",\n matches\n };\n }\n let partialMatches = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let localManifest = manifest;\n try {\n await patchRoutesOnNavigationImpl({\n signal,\n path: pathname,\n matches: partialMatches,\n fetcherKey,\n patch: (routeId, children) => {\n if (signal.aborted) return;\n patchRoutesImpl(routeId, children, routesToUse, localManifest, mapRouteProperties);\n }\n });\n } catch (e) {\n return {\n type: \"error\",\n error: e,\n partialMatches\n };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR && !signal.aborted) {\n dataRoutes = [...dataRoutes];\n }\n }\n if (signal.aborted) {\n return {\n type: \"aborted\"\n };\n }\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n return {\n type: \"success\",\n matches: newMatches\n };\n }\n let newPartialMatches = matchRoutesImpl(routesToUse, pathname, basename, true);\n // Avoid loops if the second pass results in the same partial matches\n if (!newPartialMatches || partialMatches.length === newPartialMatches.length && partialMatches.every((m, i) => m.route.id === newPartialMatches[i].route.id)) {\n return {\n type: \"success\",\n matches: null\n };\n }\n partialMatches = newPartialMatches;\n }\n }\n function _internalSetRoutes(newRoutes) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(newRoutes, mapRouteProperties, undefined, manifest);\n }\n function patchRoutes(routeId, children) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties);\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: to => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes\n };\n return router;\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\nconst UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let manifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties;\n if (opts != null && opts.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts != null && opts.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future = _extends({\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false\n }, opts ? opts.future : null);\n let dataRoutes = convertRoutesToDataRoutes(routes, mapRouteProperties, undefined, manifest);\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(request, _temp3) {\n let {\n requestContext,\n skipLoaderErrorBubbling,\n dataStrategy\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n let result = await queryImpl(request, location, matches, requestContext, dataStrategy || null, skipLoaderErrorBubbling === true, null);\n if (isResponse(result)) {\n return result;\n }\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return _extends({\n location,\n basename\n }, result);\n }\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(request, _temp4) {\n let {\n routeId,\n requestContext,\n dataStrategy\n } = _temp4 === void 0 ? {} : _temp4;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location);\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let result = await queryImpl(request, location, matches, requestContext, dataStrategy || null, false, match);\n if (isResponse(result)) {\n return result;\n }\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n if (result.loaderData) {\n var _result$activeDeferre;\n let data = Object.values(result.loaderData)[0];\n if ((_result$activeDeferre = result.activeDeferreds) != null && _result$activeDeferre[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n return undefined;\n }\n async function queryImpl(request, location, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch != null);\n return result;\n }\n let result = await loadRouteData(request, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n async function submit(request, matches, actionMatch, requestContext, dataStrategy, skipLoaderErrorBubbling, isRouteRequest) {\n let result;\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n } else {\n let results = await callDataStrategy(\"action\", request, [actionMatch], matches, isRouteRequest, requestContext, dataStrategy);\n result = results[actionMatch.route.id];\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")\n }\n });\n }\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, {\n type: \"defer-action\"\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n }\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: {\n [actionMatch.route.id]: result.data\n },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling ? actionMatch : findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(loaderRequest, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, null, [boundaryMatch.route.id, result]);\n // action status codes take precedence over loader status codes\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : result.statusCode != null ? result.statusCode : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n let context = await loadRouteData(loaderRequest, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, null);\n return _extends({}, context, {\n actionData: {\n [actionMatch.route.id]: result.data\n }\n }, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionHeaders: result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {}\n });\n }\n async function loadRouteData(request, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch, pendingActionResult) {\n let isRouteRequest = routeMatch != null;\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader) && !(routeMatch != null && routeMatch.route.lazy)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n let requestMatches = routeMatch ? [routeMatch] : pendingActionResult && isErrorResult(pendingActionResult[1]) ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0]) : matches;\n let matchesToLoad = requestMatches.filter(m => m.route.loader || m.route.lazy);\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n [pendingActionResult[0]]: pendingActionResult[1].error\n } : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null\n };\n }\n let results = await callDataStrategy(\"loader\", request, matchesToLoad, matches, isRouteRequest, requestContext, dataStrategy);\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, skipLoaderErrorBubbling);\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(matchesToLoad.map(match => match.route.id));\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches,\n activeDeferreds: activeDeferreds.size > 0 ? Object.fromEntries(activeDeferreds.entries()) : null\n });\n }\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(type, request, matchesToLoad, matches, isRouteRequest, requestContext, dataStrategy) {\n let results = await callDataStrategyImpl(dataStrategy || defaultDataStrategy, type, null, request, matchesToLoad, matches, null, manifest, mapRouteProperties, requestContext);\n let dataResults = {};\n await Promise.all(matches.map(async match => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(response, request, match.route.id, matches, basename, future.v7_relativeSplatPath);\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n dataResults[match.route.id] = await convertDataStrategyResultToDataResult(result);\n }));\n return dataResults;\n }\n return {\n dataRoutes,\n query,\n queryRoute\n };\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n return newContext;\n}\nfunction throwStaticHandlerAbortedError(request, isRouteRequest, future) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n}\nfunction isSubmissionNavigation(opts) {\n return opts != null && (\"formData\" in opts && opts.formData != null || \"body\" in opts && opts.body !== undefined);\n}\nfunction normalizeTo(location, matches, basename, prependBasename, to, v7_relativeSplatPath, fromRouteId, relative) {\n let contextualMatches;\n let activeRouteMatch;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n // Resolve the relative path\n let path = resolveTo(to ? to : \".\", getResolveToMatches(contextualMatches, v7_relativeSplatPath), stripBasename(location.pathname, basename) || location.pathname, relative === \"path\");\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n // Account for `?index` params when routing to the current location\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch) {\n let nakedIndex = hasNakedIndexQuery(path.search);\n if (activeRouteMatch.route.index && !nakedIndex) {\n // Add one when we're targeting an index route\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n } else if (!activeRouteMatch.route.index && nakedIndex) {\n // Remove existing ones when we're not\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n params.delete(\"index\");\n indexValues.filter(v => v).forEach(v => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? \"?\" + qs : \"\";\n }\n }\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(normalizeFormMethod, isFetcher, path, opts) {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n }\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, {\n type: \"invalid-body\"\n })\n });\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod ? rawFormMethod.toUpperCase() : rawFormMethod.toLowerCase();\n let formAction = stripHashFromPath(path);\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n let text = typeof opts.body === \"string\" ? opts.body : opts.body instanceof FormData || opts.body instanceof URLSearchParams ?\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce((acc, _ref3) => {\n let [name, value] = _ref3;\n return \"\" + acc + name + \"=\" + value + \"\\n\";\n }, \"\") : String(opts.body);\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text\n }\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n try {\n let json = typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined\n }\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n invariant(typeof FormData === \"function\", \"FormData is not available in this environment\");\n let searchParams;\n let formData;\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n let submission = {\n formMethod,\n formAction,\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined\n };\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = \"?\" + searchParams;\n return {\n path: createPath(parsedPath),\n submission\n };\n}\n// Filter out all routes at/below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId, includeBoundary) {\n if (includeBoundary === void 0) {\n includeBoundary = false;\n }\n let index = matches.findIndex(m => m.route.id === boundaryId);\n if (index >= 0) {\n return matches.slice(0, includeBoundary ? index + 1 : index);\n }\n return matches;\n}\nfunction getMatchesToLoad(history, state, matches, submission, location, initialHydration, skipActionErrorRevalidation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionResult) {\n let actionResult = pendingActionResult ? isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : pendingActionResult[1].data : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryMatches = matches;\n if (initialHydration && state.errors) {\n // On initial hydration, only consider matches up to _and including_ the boundary.\n // This is inclusive to handle cases where a server loader ran successfully,\n // a child server loader bubbled up to this route, but this route has\n // `clientLoader.hydrate` so we want to still run the `clientLoader` so that\n // we have a complete version of `loaderData`\n boundaryMatches = getLoaderMatchesUntilBoundary(matches, Object.keys(state.errors)[0], true);\n } else if (pendingActionResult && isErrorResult(pendingActionResult[1])) {\n // If an action threw an error, we call loaders up to, but not including the\n // boundary\n boundaryMatches = getLoaderMatchesUntilBoundary(matches, pendingActionResult[0]);\n }\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult ? pendingActionResult[1].statusCode : undefined;\n let shouldSkipRevalidation = skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let {\n route\n } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (route.loader == null) {\n return false;\n }\n if (initialHydration) {\n return shouldLoadRouteOnHydration(route, state.loaderData, state.errors);\n }\n // Always call the loader on new route instances and pending defer cancellations\n if (isNewLoader(state.loaderData, state.matches[index], match) || cancelledDeferredRoutes.some(id => id === match.route.id)) {\n return true;\n }\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n return shouldRevalidateLoader(match, _extends({\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params\n }, submission, {\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation ? false :\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired || currentUrl.pathname + currentUrl.search === nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search || isNewRouteInstance(currentRouteMatch, nextRouteMatch)\n }));\n });\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial hydration (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (initialHydration || !matches.some(m => m.route.id === f.routeId) || deletedFetchers.has(key)) {\n return;\n }\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null\n });\n return;\n }\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (fetcher && fetcher.state !== \"idle\" && fetcher.data === undefined) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, _extends({\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params\n }, submission, {\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation ? false : isRevalidationRequired\n }));\n }\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController()\n });\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\nfunction shouldLoadRouteOnHydration(route, loaderData, errors) {\n // We dunno if we have a loader - gotta find out!\n if (route.lazy) {\n return true;\n }\n // No loader, nothing to initialize\n if (!route.loader) {\n return false;\n }\n let hasData = loaderData != null && loaderData[route.id] !== undefined;\n let hasError = errors != null && errors[route.id] !== undefined;\n // Don't run if we error'd during SSR\n if (!hasData && hasError) {\n return false;\n }\n // Explicitly opting-in to running on hydration\n if (typeof route.loader === \"function\" && route.loader.hydrate === true) {\n return true;\n }\n // Otherwise, run if we're not yet initialized with anything\n return !hasData && !hasError;\n}\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return arg.defaultShouldRevalidate;\n}\nfunction patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties) {\n var _childrenToPatch;\n let childrenToPatch;\n if (routeId) {\n let route = manifest[routeId];\n invariant(route, \"No route found to patch children into: routeId = \" + routeId);\n if (!route.children) {\n route.children = [];\n }\n childrenToPatch = route.children;\n } else {\n childrenToPatch = routesToUse;\n }\n // Don't patch in routes we already know about so that `patch` is idempotent\n // to simplify user-land code. This is useful because we re-call the\n // `patchRoutesOnNavigation` function for matched routes with params.\n let uniqueChildren = children.filter(newRoute => !childrenToPatch.some(existingRoute => isSameRoute(newRoute, existingRoute)));\n let newRoutes = convertRoutesToDataRoutes(uniqueChildren, mapRouteProperties, [routeId || \"_\", \"patch\", String(((_childrenToPatch = childrenToPatch) == null ? void 0 : _childrenToPatch.length) || \"0\")], manifest);\n childrenToPatch.push(...newRoutes);\n}\nfunction isSameRoute(newRoute, existingRoute) {\n // Most optimal check is by id\n if (\"id\" in newRoute && \"id\" in existingRoute && newRoute.id === existingRoute.id) {\n return true;\n }\n // Second is by pathing differences\n if (!(newRoute.index === existingRoute.index && newRoute.path === existingRoute.path && newRoute.caseSensitive === existingRoute.caseSensitive)) {\n return false;\n }\n // Pathless layout routes are trickier since we need to check children.\n // If they have no children then they're the same as far as we can tell\n if ((!newRoute.children || newRoute.children.length === 0) && (!existingRoute.children || existingRoute.children.length === 0)) {\n return true;\n }\n // Otherwise, we look to see if every child in the new route is already\n // represented in the existing route's children\n return newRoute.children.every((aChild, i) => {\n var _existingRoute$childr;\n return (_existingRoute$childr = existingRoute.children) == null ? void 0 : _existingRoute$childr.some(bChild => isSameRoute(aChild, bChild));\n });\n}\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(route, mapRouteProperties, manifest) {\n if (!route.lazy) {\n return;\n }\n let lazyRoute = await route.lazy();\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue = routeToUpdate[lazyRouteProperty];\n let isPropertyStaticallyDefined = staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n warning(!isPropertyStaticallyDefined, \"Route \\\"\" + routeToUpdate.id + \"\\\" has a static property \\\"\" + lazyRouteProperty + \"\\\" \" + \"defined but its lazy function is also returning a value for this property. \" + (\"The lazy route property \\\"\" + lazyRouteProperty + \"\\\" will be ignored.\"));\n if (!isPropertyStaticallyDefined && !immutableRouteKeys.has(lazyRouteProperty)) {\n routeUpdates[lazyRouteProperty] = lazyRoute[lazyRouteProperty];\n }\n }\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, _extends({}, mapRouteProperties(routeToUpdate), {\n lazy: undefined\n }));\n}\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy(_ref4) {\n let {\n matches\n } = _ref4;\n let matchesToLoad = matches.filter(m => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map(m => m.resolve()));\n return results.reduce((acc, result, i) => Object.assign(acc, {\n [matchesToLoad[i].route.id]: result\n }), {});\n}\nasync function callDataStrategyImpl(dataStrategyImpl, type, state, request, matchesToLoad, matches, fetcherKey, manifest, mapRouteProperties, requestContext) {\n let loadRouteDefinitionsPromises = matches.map(m => m.route.lazy ? loadLazyRouteModule(m.route, mapRouteProperties, manifest) : undefined);\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some(m => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve = async handlerOverride => {\n if (handlerOverride && request.method === \"GET\" && (match.route.lazy || match.route.loader)) {\n shouldLoad = true;\n }\n return shouldLoad ? callLoaderOrAction(type, request, match, loadRoutePromise, handlerOverride, requestContext) : Promise.resolve({\n type: ResultType.data,\n result: undefined\n });\n };\n return _extends({}, match, {\n shouldLoad,\n resolve\n });\n });\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext\n });\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n return results;\n}\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(type, request, match, loadRoutePromise, handlerOverride, staticContext) {\n let result;\n let onReject;\n let runHandler = handler => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject;\n // This will never resolve so safe to type it as Promise<DataStrategyResult> to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => reject = r);\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n let actualHandler = ctx => {\n if (typeof handler !== \"function\") {\n return Promise.reject(new Error(\"You cannot call the handler for a route which defines a boolean \" + (\"\\\"\" + type + \"\\\" [routeId: \" + match.route.id + \"]\")));\n }\n return handler({\n request,\n params: match.params,\n context: staticContext\n }, ...(ctx !== undefined ? [ctx] : []));\n };\n let handlerPromise = (async () => {\n try {\n let val = await (handlerOverride ? handlerOverride(ctx => actualHandler(ctx)) : actualHandler());\n return {\n type: \"data\",\n result: val\n };\n } catch (e) {\n return {\n type: \"error\",\n result: e\n };\n }\n })();\n return Promise.race([handlerPromise, abortPromise]);\n };\n try {\n let handler = match.route[type];\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch(e => {\n handlerError = e;\n }), loadRoutePromise]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return {\n type: ResultType.data,\n result: undefined\n };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname\n });\n } else {\n result = await runHandler(handler);\n }\n invariant(result.result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return {\n type: ResultType.error,\n result: e\n };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n return result;\n}\nasync function convertDataStrategyResultToDataResult(dataStrategyResult) {\n let {\n result,\n type\n } = dataStrategyResult;\n if (isResponse(result)) {\n let data;\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return {\n type: ResultType.error,\n error: e\n };\n }\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers\n };\n }\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers\n };\n }\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n var _result$init3, _result$init4;\n if (result.data instanceof Error) {\n var _result$init, _result$init2;\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: (_result$init = result.init) == null ? void 0 : _result$init.status,\n headers: (_result$init2 = result.init) != null && _result$init2.headers ? new Headers(result.init.headers) : undefined\n };\n }\n // Convert thrown data() to ErrorResponse instances\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(((_result$init3 = result.init) == null ? void 0 : _result$init3.status) || 500, undefined, result.data),\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n headers: (_result$init4 = result.init) != null && _result$init4.headers ? new Headers(result.init.headers) : undefined\n };\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined\n };\n }\n if (isDeferredData(result)) {\n var _result$init5, _result$init6;\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: (_result$init5 = result.init) == null ? void 0 : _result$init5.status,\n headers: ((_result$init6 = result.init) == null ? void 0 : _result$init6.headers) && new Headers(result.init.headers)\n };\n }\n if (isDataWithResponseInit(result)) {\n var _result$init7, _result$init8;\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: (_result$init7 = result.init) == null ? void 0 : _result$init7.status,\n headers: (_result$init8 = result.init) != null && _result$init8.headers ? new Headers(result.init.headers) : undefined\n };\n }\n return {\n type: ResultType.data,\n data: result\n };\n}\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(response, request, routeId, matches, basename, v7_relativeSplatPath) {\n let location = response.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\");\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1);\n location = normalizeTo(new URL(request.url), trimmedMatches, basename, true, location, v7_relativeSplatPath);\n response.headers.set(\"Location\", location);\n }\n return response;\n}\nfunction normalizeRedirectLocation(location, currentUrl, basename, historyInstance) {\n // Match Chrome's behavior:\n // https://github.com/chromium/chromium/blob/216dbeb61db0c667e62082e5f5400a32d6983df3/content/public/common/url_utils.cc#L82\n let invalidProtocols = [\"about:\", \"blob:\", \"chrome:\", \"chrome-untrusted:\", \"content:\", \"data:\", \"devtools:\", \"file:\", \"filesystem:\",\n // eslint-disable-next-line no-script-url\n \"javascript:\"];\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\") ? new URL(currentUrl.protocol + normalizedLocation) : new URL(normalizedLocation);\n if (invalidProtocols.includes(url.protocol)) {\n throw new Error(\"Invalid redirect location\");\n }\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n try {\n let url = historyInstance.createURL(location);\n if (invalidProtocols.includes(url.protocol)) {\n throw new Error(\"Invalid redirect location\");\n }\n } catch (e) {}\n return location;\n}\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType\n } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n if (formEncType === \"application/json\") {\n init.headers = new Headers({\n \"Content-Type\": formEncType\n });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (formEncType === \"application/x-www-form-urlencoded\" && submission.formData) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n return new Request(url, init);\n}\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n return searchParams;\n}\nfunction convertSearchParamsToFormData(searchParams) {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\nfunction processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, skipLoaderErrorBubbling) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {};\n let pendingError = pendingActionResult && isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : undefined;\n // Process loader results into state.loaderData/state.errors\n matches.forEach(match => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n errors = errors || {};\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = {\n [pendingActionResult[0]]: pendingError\n };\n loaderData[pendingActionResult[0]] = undefined;\n }\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\nfunction processLoaderData(state, matches, results, pendingActionResult, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, results, pendingActionResult, activeDeferreds, false // This method is only called client side so we always want to bubble\n );\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach(rf => {\n let {\n key,\n match,\n controller\n } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match == null ? void 0 : match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n return {\n loaderData,\n errors\n };\n}\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\nfunction getActionDataForCommit(pendingActionResult) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1]) ? {\n // Clear out prior actionData on errors\n actionData: {}\n } : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data\n }\n };\n}\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.length === 1 ? routes[0] : routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\nfunction getInternalRouterError(status, _temp5) {\n let {\n pathname,\n routeId,\n method,\n type,\n message\n } = _temp5 === void 0 ? {} : _temp5;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = \"Route \\\"\" + routeId + \"\\\" does not match URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = \"No route matches URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (method) {\n errorMessage = \"Invalid request method \\\"\" + method.toUpperCase() + \"\\\"\";\n }\n }\n return new ErrorResponseImpl(status || 500, statusText, new Error(errorMessage), true);\n}\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results) {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return {\n key,\n result\n };\n }\n }\n}\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\nfunction isHashChangeOnly(a, b) {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\nfunction isDataStrategyResult(result) {\n return result != null && typeof result === \"object\" && \"type\" in result && \"result\" in result && (result.type === ResultType.data || result.type === ResultType.error);\n}\nfunction isRedirectDataStrategyResultResult(result) {\n return isResponse(result.result) && redirectStatusCodes.has(result.result.status);\n}\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\nfunction isDataWithResponseInit(value) {\n return typeof value === \"object\" && value != null && \"type\" in value && \"data\" in value && \"init\" in value && value.type === \"DataWithResponseInit\";\n}\nfunction isDeferredData(value) {\n let deferred = value;\n return deferred && typeof deferred === \"object\" && typeof deferred.data === \"object\" && typeof deferred.subscribe === \"function\" && typeof deferred.cancel === \"function\" && typeof deferred.resolveData === \"function\";\n}\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isRedirectResponse(result) {\n if (!isResponse(result)) {\n return false;\n }\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toLowerCase());\n}\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toLowerCase());\n}\nasync function resolveNavigationDeferredResults(matches, results, signal, currentMatches, currentLoaderData) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find(m => (m == null ? void 0 : m.route.id) === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then(result => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\nasync function resolveFetcherDeferredResults(matches, results, revalidatingFetchers) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let {\n key,\n routeId,\n controller\n } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find(m => (m == null ? void 0 : m.route.id) === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(controller, \"Expected an AbortController for revalidating fetcher deferred result\");\n await resolveDeferredData(result, controller.signal, true).then(result => {\n if (result) {\n results[key] = result;\n }\n });\n }\n }\n}\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e\n };\n }\n }\n return {\n type: ResultType.data,\n data: result.deferredData.data\n };\n}\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n}\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\nfunction getSubmissionFromNavigation(navigation) {\n let {\n formMethod,\n formAction,\n formEncType,\n text,\n formData,\n json\n } = navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined\n };\n }\n}\nfunction getLoadingNavigation(location, submission) {\n if (submission) {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n } else {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n };\n return navigation;\n }\n}\nfunction getSubmittingNavigation(location, submission) {\n let navigation = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n}\nfunction getLoadingFetcher(submission, data) {\n if (submission) {\n let fetcher = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data\n };\n return fetcher;\n } else {\n let fetcher = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n }\n}\nfunction getSubmittingFetcher(submission, existingFetcher) {\n let fetcher = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined\n };\n return fetcher;\n}\nfunction getDoneFetcher(data) {\n let fetcher = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n}\nfunction restoreAppliedTransitions(_window, transitions) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(TRANSITIONS_STORAGE_KEY);\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\nfunction persistAppliedTransitions(_window, transitions) {\n if (transitions.size > 0) {\n let json = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(TRANSITIONS_STORAGE_KEY, JSON.stringify(json));\n } catch (error) {\n warning(false, \"Failed to save applied view transitions in sessionStorage (\" + error + \").\");\n }\n }\n}\n//#endregion\n\nexport { AbortedDeferredError, Action, IDLE_BLOCKER, IDLE_FETCHER, IDLE_NAVIGATION, UNSAFE_DEFERRED_SYMBOL, DeferredData as UNSAFE_DeferredData, ErrorResponseImpl as UNSAFE_ErrorResponseImpl, convertRouteMatchToUiMatch as UNSAFE_convertRouteMatchToUiMatch, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, decodePath as UNSAFE_decodePath, getResolveToMatches as UNSAFE_getResolveToMatches, invariant as UNSAFE_invariant, warning as UNSAFE_warning, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, data, defer, generatePath, getStaticContextFromError, getToPathname, isDataWithResponseInit, isDeferredData, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, redirectDocument, replace, resolvePath, resolveTo, stripBasename };\n//# sourceMappingURL=router.js.map\n","import axios, {AxiosError} from 'axios';\n\nimport AuthStore from '@client/stores/AuthStore';\nimport ConfigStore from '@client/stores/ConfigStore';\n\nimport type {\n AuthAuthenticationOptions,\n AuthAuthenticationResponse,\n AuthRegistrationOptions,\n AuthRegistrationResponse,\n AuthUpdateUserOptions,\n AuthVerificationResponse,\n} from '@shared/schema/api/auth';\nimport type {Credentials} from '@shared/schema/Auth';\n\nimport ClientActions from './ClientActions';\nimport FloodActions from './FloodActions';\nimport SettingActions from './SettingActions';\n\nconst {baseURI} = ConfigStore;\n\nconst AuthActions = {\n authenticate: (options: AuthAuthenticationOptions) =>\n axios\n .post<AuthAuthenticationResponse>(`${baseURI}api/auth/authenticate`, options)\n .then(\n ({data}) => {\n AuthStore.handleLoginSuccess(data);\n },\n (error) => {\n // TODO: Handle errors consistently in API, then create a client-side class to get meaningful messages from\n // server's response.\n let errorMessage;\n\n if (error.response && error.response.data.message != null) {\n errorMessage = error.response.data.message;\n } else if (error.message) {\n errorMessage = error.message;\n } else {\n errorMessage = 'An unknown error occurred.';\n }\n\n AuthStore.handleLoginError();\n\n throw new Error(errorMessage);\n },\n )\n .then(() =>\n Promise.all([\n ClientActions.fetchSettings(),\n SettingActions.fetchSettings(),\n FloodActions.restartActivityStream(),\n ]),\n ),\n\n createUser: (options: AuthRegistrationOptions) =>\n axios.post<AuthRegistrationResponse>(`${baseURI}api/auth/register?cookie=false`, options).then(({data}) => {\n AuthStore.handleCreateUserSuccess(data);\n }),\n\n updateUser: (username: Credentials['username'], options: AuthUpdateUserOptions) =>\n axios.patch(`${baseURI}api/auth/users/${encodeURIComponent(username)}`, options).then((res) => res.data),\n\n deleteUser: (username: Credentials['username']) =>\n axios.delete(`${baseURI}api/auth/users/${encodeURIComponent(username)}`).then(\n () => {\n // do nothing.\n },\n () => {\n // do nothing.\n },\n ),\n\n fetchUsers: () =>\n axios.get<Array<Credentials>>(`${baseURI}api/auth/users`).then(({data}) => {\n AuthStore.handleListUsersSuccess(data);\n }),\n\n logout: () =>\n axios.get(`${baseURI}api/auth/logout`).then(\n () => {\n // do nothing.\n },\n () => {\n // do nothing.\n },\n ),\n\n register: (options: AuthRegistrationOptions) =>\n axios.post<AuthRegistrationResponse>(`${baseURI}api/auth/register`, options).then(\n ({data}) => {\n AuthStore.handleRegisterSuccess(data);\n },\n (error: AxiosError) => {\n throw error;\n },\n ),\n\n verify: () =>\n axios\n .get<AuthVerificationResponse>(`${baseURI}api/auth/verify?${Date.now()}`)\n .then(\n ({data}) => {\n if (data.configs != null) {\n ConfigStore.handlePreloadConfigs(data.configs);\n }\n return data;\n },\n (error: AxiosError<AuthVerificationResponse>) => {\n if (error.response?.data?.configs != null) {\n ConfigStore.handlePreloadConfigs(error.response.data.configs);\n }\n throw error;\n },\n )\n .then((data) => {\n AuthStore.handleAuthVerificationSuccess(data);\n\n return Promise.all([ClientActions.fetchSettings(), SettingActions.fetchSettings()]).then(() => data);\n })\n .catch((error) => {\n AuthStore.handleAuthVerificationError();\n\n throw error;\n }),\n} as const;\n\nexport default AuthActions;\n","import {makeAutoObservable} from 'mobx';\n\nimport type {Notification, NotificationCount, NotificationState} from '@shared/types/Notification';\n\nconst INITIAL_COUNT_STATE: NotificationCount = {total: 0, unread: 0, read: 0};\n\nclass NotificationStore {\n notifications: Array<Notification> = [];\n notificationCount: NotificationCount = INITIAL_COUNT_STATE;\n\n get hasNotification() {\n return this.notificationCount.total !== 0;\n }\n\n constructor() {\n makeAutoObservable(this);\n }\n\n clearAll() {\n this.notifications = [];\n this.notificationCount = INITIAL_COUNT_STATE;\n }\n\n handleNotificationCountChange(notificationCount: NotificationCount) {\n this.notificationCount = notificationCount == null ? INITIAL_COUNT_STATE : notificationCount;\n }\n\n handleNotificationsFetchSuccess(data: NotificationState) {\n this.notifications = data.notifications;\n }\n}\n\nexport default new NotificationStore();\n","import {makeAutoObservable} from 'mobx';\n\nclass ClientStatusStore {\n isConnected = true;\n\n constructor() {\n makeAutoObservable(this);\n }\n\n handleConnectivityStatusChange({isConnected}: {isConnected: boolean}) {\n if (this.isConnected !== isConnected) {\n this.isConnected = isConnected === true;\n }\n }\n}\n\nexport default new ClientStatusStore();\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default {\n disabled: false\n};","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n * <div>\n * {\"I'll receive my-node-* classes\"}\n * </div>\n * </CSSTransition>\n * <button type=\"button\" onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import CSSTransition, {CSSTransitionProps} from 'react-transition-group/CSSTransition';\nimport {FC, ReactNode} from 'react';\n\ninterface FadeInProps {\n children: ReactNode;\n isIn: CSSTransitionProps['in'];\n}\n\nconst FadeIn: FC<FadeInProps> = ({children, isIn}: FadeInProps) => (\n <CSSTransition classNames=\"fade\" mountOnEnter timeout={375} in={isIn}>\n {children}\n </CSSTransition>\n);\n\nexport default FadeIn;\n","import classnames from 'classnames';\nimport {FC, ReactNode} from 'react';\n\nimport {css} from '@client/styled-system/css';\n\ninterface FormElementAddonProps {\n children: ReactNode;\n addonPlacement?: 'before' | 'after';\n addonIndex?: number;\n className?: string;\n isInteractive?: boolean;\n type?: 'icon';\n onClick?: () => void;\n}\n\nconst FormElementAddon: FC<FormElementAddonProps> = ({\n children,\n type = 'icon',\n addonPlacement,\n addonIndex,\n className,\n isInteractive = false,\n onClick,\n}: FormElementAddonProps) => {\n const classes = classnames(\n 'form__element__addon',\n {\n [`form__element__addon--placed-${addonPlacement}`]: addonPlacement,\n [`form__element__addon--index-${addonIndex}`]: addonIndex,\n 'form__element__addon--is-interactive': isInteractive || onClick,\n 'form__element__addon--is-icon': type === 'icon',\n },\n className,\n );\n\n return (\n <div\n className={`${classes} ${css({\n _focus: {\n outline: 'none',\n WebkitTapHighlightColor: 'transparent',\n },\n })}`}\n role=\"button\"\n tabIndex={0}\n onClick={onClick}\n onKeyPress={(e) => {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n onClick?.();\n }\n }}\n >\n {children}\n </div>\n );\n};\n\nexport default FormElementAddon;\n","import classnames from 'classnames';\nimport {forwardRef, ReactNode} from 'react';\n\nexport interface FormRowItemProps {\n children?: ReactNode;\n\n className?: string;\n type?: string;\n\n grow?: boolean;\n shrink?: boolean;\n width?:\n | 'auto'\n | 'one-eighth'\n | 'one-quarter'\n | 'three-eighths'\n | 'one-half'\n | 'five-eighths'\n | 'three-quarters'\n | 'seven-eighths';\n}\n\nconst FormRowItem = forwardRef<HTMLDivElement, FormRowItemProps>(\n ({children, className, type, width = 'auto', grow = true, shrink = true}: FormRowItemProps, ref) => {\n const classes = classnames('form__row__item', className, {\n [`form__row__item--${width}`]: width,\n 'form__row__item--grow': grow,\n 'form__row__item--shrink': shrink,\n 'form__row__item--error': type === 'error',\n });\n\n return (\n <div className={classes} ref={ref}>\n {children}\n </div>\n );\n },\n);\n\nexport default FormRowItem;\n","import React, {ButtonHTMLAttributes, Children, cloneElement, FC, ReactElement, ReactNode, Ref} from 'react';\nimport classnames from 'classnames';\n\nimport {LoadingRing} from '@client/ui/icons';\n\nimport FadeIn from './FadeIn';\nimport FormElementAddon from './FormElementAddon';\nimport FormRowItem from './FormRowItem';\n\nexport type ButtonProps = Pick<ButtonHTMLAttributes<HTMLButtonElement>, 'disabled' | 'onClick' | 'onChange'> & {\n children: ReactNode;\n\n buttonRef?: Ref<HTMLButtonElement>;\n isLoading?: boolean;\n additionalClassNames?: string;\n labelOffset?: boolean;\n addonPlacement?: 'before' | 'after';\n priority?: 'primary' | 'secondary' | 'tertiary' | 'quaternary';\n type?: 'submit' | 'button';\n\n wrap?: boolean;\n wrapper?: string | FC;\n wrapperProps?: Record<string, unknown>;\n grow?: boolean;\n shrink?: boolean;\n};\n\nconst Button: FC<ButtonProps> = ({\n children,\n type = 'button',\n additionalClassNames = '',\n buttonRef,\n labelOffset = false,\n addonPlacement,\n priority = 'primary',\n isLoading,\n disabled = false,\n wrap = true,\n wrapper = FormRowItem,\n wrapperProps = {width: 'auto'},\n shrink = false,\n grow = false,\n onClick,\n}: ButtonProps) => {\n const addonNodes: Array<ReactElement> = [];\n const childNodes: Array<ReactElement> = [];\n\n Children.toArray(children).forEach((child) => {\n const childAsElement = child as ReactElement;\n\n if (childAsElement.type === FormElementAddon) {\n addonNodes.push(\n cloneElement(childAsElement, {\n addonPlacement,\n key: childAsElement.props.className,\n }),\n );\n } else {\n childNodes.push(childAsElement);\n }\n });\n\n const content = (\n <div className=\"form__element__wrapper\">\n <button\n className={classnames('button form__element', additionalClassNames, {\n 'form__element--label-offset': labelOffset,\n 'form__element--has-addon': addonPlacement,\n [`form__element--has-addon--placed-${addonPlacement}`]: addonPlacement,\n [`button--${priority}`]: priority,\n 'button--is-loading': isLoading,\n 'button--is-disabled': disabled,\n })}\n disabled={disabled}\n onClick={onClick}\n ref={buttonRef}\n type={type === 'submit' ? 'submit' : 'button'}\n >\n <div className=\"button__content\" key=\"button-content\">\n {childNodes}\n </div>\n <FadeIn isIn={isLoading}>\n <LoadingRing />\n </FadeIn>\n </button>\n {addonNodes}\n </div>\n );\n\n if (wrap) {\n const WrapperComponent = wrapper as FC<{children?: React.ReactNode}>;\n return (\n <WrapperComponent\n {...{\n shrink,\n grow,\n ...wrapperProps,\n }}\n >\n {content}\n </WrapperComponent>\n );\n }\n\n return content;\n};\n\nexport default Button;\n","export const dispatchEvent = (\n eventID: string,\n element: HTMLInputElement,\n options = {bubbles: true, cancelable: true},\n): void => {\n let event;\n\n if (typeof Event === 'function') {\n event = new Event(eventID, options);\n } else {\n event = document.createEvent('Event');\n event.initEvent(eventID, options.bubbles, options.cancelable);\n }\n\n element.dispatchEvent(event);\n};\n\nexport const dispatchChangeEvent = (element: HTMLInputElement): void => {\n dispatchEvent('flood-form-change', element);\n};\n\nexport const getDataFromForm = (form: HTMLFormElement): Record<string, unknown> =>\n Array.from(form.elements).reduce((formData: Record<string, unknown>, element) => {\n const inputElement = element as HTMLInputElement;\n const {name, type, value} = inputElement;\n const retForm = formData;\n\n if (!name || type === 'button' || type === 'submit' || type === 'reset') {\n return retForm;\n }\n\n if (type === 'checkbox') {\n retForm[name] = inputElement.checked;\n } else if (type !== 'radio') {\n retForm[name] = value;\n } else if (type === 'radio' && !inputElement.checked && formData[name] === undefined) {\n retForm[name] = null;\n } else if (type === 'radio' && inputElement.checked) {\n retForm[name] = value;\n }\n\n return retForm;\n }, {});\n\nexport const resetFormData = (form: HTMLFormElement): void =>\n Array.from(form.elements).forEach((element) => {\n const inputElement = element as HTMLInputElement;\n // getAttribute is supposedly faster than using the dataset API.\n const defaultValue = inputElement.getAttribute('data-initial-value');\n\n if (inputElement.type === 'checkbox' || inputElement.type === 'radio') {\n if (defaultValue === 'true') {\n inputElement.checked = true;\n } else {\n inputElement.checked = false;\n }\n } else if (defaultValue !== null) {\n inputElement.value = defaultValue;\n } else {\n inputElement.value = '';\n }\n });\n","import classnames from 'classnames';\nimport {FC, InputHTMLAttributes, MouseEvent, ReactNode, useRef} from 'react';\n\nimport {dispatchChangeEvent} from './util/forms';\nimport FormRowItem from './FormRowItem';\n\nimport type {FormRowItemProps} from './FormRowItem';\n\nexport interface ToggleInputProps {\n children?: ReactNode;\n id: InputHTMLAttributes<HTMLInputElement>['name'];\n groupID?: InputHTMLAttributes<HTMLInputElement>['name'];\n type: 'checkbox' | 'radio';\n value?: InputHTMLAttributes<HTMLInputElement>['value'];\n defaultChecked?: InputHTMLAttributes<HTMLInputElement>['defaultChecked'];\n checked?: InputHTMLAttributes<HTMLInputElement>['checked'];\n shrink?: FormRowItemProps['shrink'];\n grow?: FormRowItemProps['grow'];\n width?: FormRowItemProps['width'];\n icon: JSX.Element;\n matchTextboxHeight?: boolean;\n labelOffset?: boolean;\n onClick?: (event: MouseEvent<HTMLInputElement>) => void;\n}\n\nconst ToggleInput: FC<ToggleInputProps> = ({\n children,\n id,\n groupID,\n type,\n value,\n defaultChecked,\n checked,\n shrink = false,\n grow = false,\n width,\n icon,\n matchTextboxHeight,\n labelOffset,\n onClick = () => {\n // do nothing.\n },\n}: ToggleInputProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n return (\n <FormRowItem shrink={shrink} grow={grow} width={width}>\n <label\n className={classnames('form__element toggle-input', type, {\n 'form__element--match-textbox-height': matchTextboxHeight,\n 'form__element--label-offset': labelOffset,\n })}\n >\n <input\n defaultChecked={defaultChecked}\n checked={checked}\n className=\"toggle-input__element\"\n id={id}\n name={type === 'radio' ? groupID : id}\n data-testid={`${type}-${id}`}\n onClick={(event) => {\n if (inputRef.current != null) {\n dispatchChangeEvent(inputRef.current);\n }\n if (typeof onClick === 'function') {\n onClick(event);\n }\n }}\n onChange={(event) => {\n event.stopPropagation();\n }}\n ref={inputRef}\n type={type}\n value={value}\n />\n <div className=\"toggle-input__indicator\">\n <div className=\"toggle-input__indicator__icon\">{icon}</div>\n </div>\n <div className=\"toggle-input__label\">{children}</div>\n </label>\n </FormRowItem>\n );\n};\n\nexport default ToggleInput;\n","import {FC} from 'react';\n\nimport {Checkmark} from '@client/ui/icons';\n\nimport ToggleInput, {ToggleInputProps} from './ToggleInput';\n\ntype CheckboxProps = Omit<ToggleInputProps, 'type' | 'icon'>;\n\nconst Checkbox: FC<CheckboxProps> = (props: CheckboxProps) => (\n <ToggleInput {...props} type=\"checkbox\" icon={<Checkmark />} />\n);\n\nexport default Checkbox;\n","import classnames from 'classnames';\nimport {FC, MouseEvent, ReactNode} from 'react';\n\nexport interface OverlayProps {\n children?: ReactNode;\n additionalClassNames?: string;\n isInteractive?: boolean;\n isTransparent?: boolean;\n onClick?: (event: MouseEvent<HTMLDivElement>) => void;\n onContextMenu?: (event: MouseEvent<HTMLDivElement>) => void;\n}\n\nconst Overlay: FC<OverlayProps> = ({\n children,\n additionalClassNames,\n onClick,\n onContextMenu,\n isInteractive = true,\n isTransparent = false,\n}: OverlayProps) => {\n const classes = classnames('overlay', additionalClassNames, {\n 'overlay--no-interaction': !isInteractive,\n 'overlay--transparent': isTransparent,\n });\n\n return (\n <div className={classes} onClickCapture={onClick} onContextMenuCapture={onContextMenu}>\n {children}\n </div>\n );\n};\n\nexport default Overlay;\n","import CSSTransition from 'react-transition-group/CSSTransition';\nimport classnames from 'classnames';\nimport {CSSProperties, forwardRef, MouseEvent, ReactNode, RefObject} from 'react';\n\nimport Overlay from './Overlay';\n\nimport type {OverlayProps} from './Overlay';\n\nconst minPreferableBottomSpace = 150;\nconst minPreferableHorizontalSpace = 200;\n\ninterface ContextMenuProps {\n children: ReactNode;\n isIn: boolean;\n menuAlign?: 'left' | 'right';\n triggerCoordinates?: {\n x: number;\n y: number;\n };\n triggerRef?: RefObject<Element>;\n matchTriggerWidth?: boolean;\n padding?: boolean;\n scrolling?: boolean;\n overlayProps?: OverlayProps;\n onClick?: (event: MouseEvent<HTMLDivElement>) => void;\n onOverlayClick?: (event: MouseEvent<HTMLDivElement>) => void;\n onOverlayRightClick?: (event: MouseEvent<HTMLDivElement>) => void;\n}\n\nconst ContextMenu = forwardRef<HTMLDivElement, ContextMenuProps>(\n (\n {\n children,\n isIn,\n matchTriggerWidth = true,\n menuAlign = 'left',\n padding = true,\n scrolling = true,\n triggerRef,\n triggerCoordinates = {\n x: 0,\n y: 0,\n },\n onClick,\n onOverlayClick,\n onOverlayRightClick,\n overlayProps = {},\n }: ContextMenuProps,\n ref,\n ) => {\n const dropdownStyle: CSSProperties = {};\n let shouldRenderAbove = false;\n\n if (triggerRef?.current) {\n const buttonBoundingRect = triggerRef.current.getBoundingClientRect();\n const windowHeight = window.innerHeight;\n const spaceAbove = buttonBoundingRect.top;\n const spaceBelow = windowHeight - buttonBoundingRect.bottom;\n\n shouldRenderAbove = spaceBelow < minPreferableBottomSpace && spaceAbove > spaceBelow;\n\n if (shouldRenderAbove) {\n dropdownStyle.top = 'auto';\n dropdownStyle.bottom = spaceBelow + buttonBoundingRect.height + 5;\n dropdownStyle.maxHeight = buttonBoundingRect.top - 10;\n } else {\n dropdownStyle.top = buttonBoundingRect.bottom + 5;\n dropdownStyle.maxHeight = spaceBelow - 10;\n }\n\n if (matchTriggerWidth) {\n dropdownStyle.width = buttonBoundingRect.width;\n dropdownStyle.left = buttonBoundingRect.left;\n dropdownStyle.right = window.innerWidth - buttonBoundingRect.left - buttonBoundingRect.width;\n } else if (menuAlign === 'right') {\n dropdownStyle.right = window.innerWidth - buttonBoundingRect.left - buttonBoundingRect.width;\n } else {\n dropdownStyle.left = buttonBoundingRect.left;\n }\n } else if (triggerCoordinates) {\n const windowHeight = window.innerHeight;\n const windowWidth = window.innerWidth;\n const spaceAbove = triggerCoordinates.y;\n const spaceBelow = windowHeight - spaceAbove;\n\n shouldRenderAbove = spaceBelow < minPreferableBottomSpace && spaceAbove > spaceBelow;\n\n if (shouldRenderAbove) {\n dropdownStyle.top = 'auto';\n dropdownStyle.bottom = spaceBelow;\n dropdownStyle.maxHeight = spaceAbove - 10;\n } else {\n dropdownStyle.top = spaceAbove;\n dropdownStyle.maxHeight = spaceBelow - 10;\n }\n\n if (menuAlign === 'right' || windowWidth - triggerCoordinates.x < minPreferableHorizontalSpace) {\n dropdownStyle.right = windowWidth - triggerCoordinates.x;\n } else {\n dropdownStyle.left = triggerCoordinates.x;\n }\n }\n\n const classes = classnames('context-menu__items', {\n 'context-menu__items--is-up': shouldRenderAbove,\n 'context-menu__items--is-down': !shouldRenderAbove,\n 'context-menu__items--match-trigger-width': matchTriggerWidth,\n 'context-menu__items--no-padding': !padding,\n 'context-menu__items--no-scrolling': !scrolling,\n });\n\n return (\n <CSSTransition\n classNames={{\n enter: 'context-menu--enter',\n enterActive: 'context-menu--enter--active',\n exit: 'context-menu--exit',\n exitActive: 'context-menu--exit--active',\n appear: 'context-menu--appear',\n appearActive: 'context-menu--appear--active',\n }}\n in={isIn}\n mountOnEnter\n unmountOnExit\n timeout={250}\n >\n <div className=\"context-menu\" onClick={onClick} role=\"none\">\n <Overlay\n additionalClassNames=\"context-menu__overlay\"\n onClick={onOverlayClick}\n onContextMenu={onOverlayRightClick}\n isTransparent\n {...overlayProps}\n />\n <div className={classes} ref={ref} style={dropdownStyle}>\n {children}\n </div>\n </div>\n </CSSTransition>\n );\n },\n);\n\nexport default ContextMenu;\n","import React, {useRef, useEffect, useCallback, useImperativeHandle, forwardRef, FormEvent} from 'react';\n\nimport {getDataFromForm, resetFormData} from './util/forms';\n\ninterface FormProps {\n children?: React.ReactNode;\n className?: string;\n onChange?: ({\n event,\n formData,\n }: {\n event: Event | FormEvent<HTMLFormElement>;\n formData: Record<string, unknown>;\n }) => void;\n onSubmit?: ({\n event,\n formData,\n }: {\n event: Event | FormEvent<HTMLFormElement>;\n formData: Record<string, unknown>;\n }) => void;\n}\n\nexport interface FormHandle {\n getFormData: () => Record<string, unknown>;\n resetForm: () => void;\n}\n\nconst Form = forwardRef<FormHandle, FormProps>(({children, className, onChange, onSubmit}, ref) => {\n const formRef = useRef<HTMLFormElement>(null);\n\n // Handle custom flood-form-change event\n const handleFormChange = useCallback(\n (event: Event | FormEvent<HTMLFormElement>) => {\n if (formRef.current && onChange) {\n const formData = getDataFromForm(formRef.current);\n onChange({event, formData});\n }\n },\n [onChange],\n );\n\n // Handle form submit\n const handleFormSubmit = useCallback(\n (event: Event | FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n\n if (onSubmit) {\n const formData = getDataFromForm(event.target as HTMLFormElement);\n onSubmit({event, formData});\n }\n },\n [onSubmit],\n );\n\n // Expose methods via ref\n useImperativeHandle(\n ref,\n () => ({\n getFormData: () => {\n if (formRef.current) {\n return getDataFromForm(formRef.current);\n }\n return {};\n },\n resetForm: () => {\n if (formRef.current) {\n resetFormData(formRef.current);\n }\n },\n }),\n [],\n );\n\n // Add/remove custom event listener for flood-form-change\n useEffect(() => {\n const form = formRef.current;\n if (!form) return;\n\n // We need to store the handler to remove it later with the same reference\n const customEventHandler = (e: Event) => handleFormChange(e);\n\n form.addEventListener('flood-form-change', customEventHandler);\n\n return () => {\n form.removeEventListener('flood-form-change', customEventHandler);\n };\n }, [handleFormChange]);\n\n return (\n <form\n className={className}\n onChange={handleFormChange}\n onInput={handleFormChange}\n onSubmit={handleFormSubmit}\n ref={formRef}\n >\n {children}\n </form>\n );\n});\n\nForm.displayName = 'Form';\n\nexport default Form;\n","import classnames from 'classnames';\nimport {FC, ReactNode} from 'react';\n\nimport FormRowItem from './FormRowItem';\n\ninterface FormErrorProps {\n children: ReactNode;\n isLoading?: boolean;\n}\n\nconst FormError: FC<FormErrorProps> = ({children, isLoading = false}: FormErrorProps) => {\n // Maybe add some classes later.\n const classes = classnames('form__element error', {\n 'error--is-loading': isLoading,\n });\n\n return (\n <FormRowItem className={classes} type=\"error\">\n {children}\n </FormRowItem>\n );\n};\n\nexport default FormError;\n","import {FC, ReactNode} from 'react';\n\nimport FormRowItem from './FormRowItem';\n\nimport type {FormRowItemProps} from './FormRowItem';\n\ninterface FormGroupProps {\n children: ReactNode;\n label?: string;\n width?: FormRowItemProps['width'];\n}\n\nconst FormGroup: FC<FormGroupProps> = ({children, label, width = 'auto'}: FormGroupProps) => (\n <FormRowItem className=\"form__group\" width={width}>\n {label ? <span className=\"form__element__label\">{label}</span> : undefined}\n {children}\n </FormRowItem>\n);\n\nexport default FormGroup;\n","import classnames from 'classnames';\nimport {FC, ReactNode} from 'react';\n\ninterface FormRowProps {\n children: ReactNode;\n align?: 'start' | 'center' | 'end';\n justify?: 'start' | 'center' | 'end';\n wrap?: boolean;\n}\n\nconst FormRow: FC<FormRowProps> = ({children, align = 'start', justify = 'start', wrap = false}: FormRowProps) => {\n const classes = classnames('form__row', {\n 'form__row--wrap': wrap,\n [`form__row--justify--${justify}`]: justify,\n [`form__row--align--${align}`]: align,\n });\n\n return <div className={classes}>{children}</div>;\n};\n\nexport default FormRow;\n","import {forwardRef, ReactNode} from 'react';\n\ninterface FormRowGroupProps {\n children: ReactNode;\n}\n\nconst FormRowGroup = forwardRef<HTMLDivElement, FormRowGroupProps>(({children}: FormRowGroupProps, ref) => (\n <div className=\"form__row form__row--group\" ref={ref}>\n {children}\n </div>\n));\n\nexport default FormRowGroup;\n","import classnames from 'classnames';\nimport {FC, ReactNode} from 'react';\nimport ConfigStore from '@client/stores/ConfigStore';\n\ninterface PanelProps {\n children: ReactNode;\n spacing?: 'small' | 'medium' | 'large';\n transparent?: boolean;\n}\n\nconst Panel: FC<PanelProps> = ({children, spacing = 'medium', transparent = false}: PanelProps) => {\n const classes = classnames(`panel`, `panel--${spacing}`, {\n 'panel--transparent': transparent,\n inverse: ConfigStore.isPreferDark,\n });\n\n return <div className={classes}>{children}</div>;\n};\n\nexport default Panel;\n","import classnames from 'classnames';\nimport {FC, ReactNode} from 'react';\n\ninterface PanelContentProps {\n children: ReactNode;\n hasBorder?: boolean;\n borderPosition?: string;\n}\n\nconst PanelContent: FC<PanelContentProps> = ({\n children,\n hasBorder = false,\n borderPosition = 'top',\n}: PanelContentProps) => {\n const classes = classnames(`panel__content`, {\n [`panel__content--has-border--${borderPosition}`]: hasBorder,\n });\n\n return <div className={classes}>{children}</div>;\n};\n\nexport default PanelContent;\n","import classnames from 'classnames';\nimport {FC, ReactNode} from 'react';\n\ninterface PanelFooterProps {\n children: ReactNode;\n hasBorder?: boolean;\n}\n\nconst PanelFooter: FC<PanelFooterProps> = ({children, hasBorder = false}: PanelFooterProps) => {\n const classes = classnames('panel__footer', {\n 'panel__footer--has-border': hasBorder,\n });\n\n return <div className={classes}>{children}</div>;\n};\n\nexport default PanelFooter;\n","import classnames from 'classnames';\nimport {FC, ReactNode} from 'react';\n\ninterface PanelHeaderProps {\n children: ReactNode;\n hasBorder?: boolean;\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n}\n\nconst PanelHeader: FC<PanelHeaderProps> = ({children, hasBorder = false, level = 1}: PanelHeaderProps) => {\n const classes = classnames(`panel__header panel__header--level-${level}`, {\n 'panel__header--has-border': hasBorder,\n });\n\n return <div className={classes}>{children}</div>;\n};\n\nexport default PanelHeader;\n","import {FC, ReactNode, useEffect, useRef} from 'react';\nimport ReactDOM from 'react-dom';\n\ninterface PortalProps {\n children: ReactNode;\n}\n\nconst Portal: FC<PortalProps> = ({children}: PortalProps) => {\n const mountPoint = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n mountPoint.current = document.createElement('div');\n mountPoint.current.classList.add('portal');\n\n const appElement = document.getElementById('app');\n if (appElement == null) {\n document.body.appendChild(mountPoint.current);\n } else {\n appElement.appendChild(mountPoint.current);\n }\n\n return () => {\n if (mountPoint.current != null) {\n ReactDOM.unmountComponentAtNode(mountPoint.current);\n if (appElement == null) {\n document.body.removeChild(mountPoint.current);\n } else {\n appElement.removeChild(mountPoint.current);\n }\n }\n };\n }, []);\n\n if (mountPoint.current == null) return null;\n\n return ReactDOM.createPortal(children, mountPoint.current);\n};\n\nexport default Portal;\n","import {FC} from 'react';\n\nimport {Circle} from '@client/ui/icons';\n\nimport ToggleInput, {ToggleInputProps} from './ToggleInput';\n\ntype RadioProps = Omit<ToggleInputProps, 'icon' | 'id' | 'type' | 'value'> & {\n id: Required<ToggleInputProps['id']>;\n groupID: Required<ToggleInputProps['groupID']>;\n};\n\nconst Radio: FC<RadioProps> = (props: RadioProps) => {\n const {groupID, id} = props;\n return <ToggleInput {...props} icon={<Circle />} id={id} groupID={groupID} type=\"radio\" value={id} />;\n};\n\nexport default Radio;\n","import classnames from 'classnames';\nimport {cloneElement, ReactElement, ReactNode, ReactNodeArray, Children, useState, useEffect, useRef, FC} from 'react';\nimport {useEvent, useKey} from 'react-use';\n\nimport {Chevron} from '@client/ui/icons';\n\nimport Button from './Button';\nimport ContextMenu from './ContextMenu';\nimport {dispatchChangeEvent} from './util/forms';\nimport FormElementAddon from './FormElementAddon';\nimport FormRowItem from './FormRowItem';\nimport Portal from './Portal';\n\nimport type {FormRowItemProps} from './FormRowItem';\nimport type {ButtonProps} from './Button';\nimport type {SelectItemProps} from './SelectItem';\n\ninterface SelectProps {\n id: string | number;\n children: ReactNode;\n defaultID?: string | number;\n additionalClassNames?: string;\n width?: FormRowItemProps['width'];\n priority?: ButtonProps['priority'];\n onOpen?: () => void;\n onClose?: () => void;\n onSelect?: (id: this['id']) => void;\n label?: ReactNode;\n menuAlign?: 'left' | 'right';\n disabled?: boolean;\n persistentPlaceholder?: boolean;\n matchTriggerWidth?: boolean;\n shrink?: boolean;\n grow?: boolean;\n labelOffset?: boolean;\n}\n\nconst Select: FC<SelectProps> = ({\n additionalClassNames,\n children,\n defaultID,\n disabled,\n label,\n labelOffset,\n persistentPlaceholder = false,\n priority = 'quaternary',\n shrink,\n grow,\n matchTriggerWidth,\n width,\n id,\n menuAlign,\n onOpen,\n onClose,\n onSelect,\n}: SelectProps) => {\n const menuRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [selectedID, setSelectedID] = useState<string | number>(\n defaultID ??\n (\n (children as ReactNodeArray)?.find(\n (child) => (child as ReactElement<SelectItemProps>)?.props?.id != null,\n ) as ReactElement<SelectItemProps>\n )?.props.id ??\n '',\n );\n\n const classes = classnames('select form__element', additionalClassNames, {\n 'form__element--disabled': disabled,\n 'form__element--label-offset': labelOffset,\n 'select--is-open': isOpen,\n });\n\n const selectedItem = Children.toArray(children).find((child, index) => {\n const item = child as ReactElement<SelectItemProps>;\n return (\n (persistentPlaceholder && item.props.isPlaceholder) ||\n (!selectedID && index === 0) ||\n item.props.id === selectedID\n );\n });\n\n useKey('Escape', (event) => {\n event.preventDefault();\n setIsOpen(false);\n });\n\n useEvent(\n 'scroll',\n (event: Event) => {\n if (menuRef.current && !menuRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n }\n },\n window,\n {capture: true},\n );\n\n useEffect(() => {\n if (isOpen) {\n onOpen?.();\n } else {\n onClose?.();\n }\n }, [isOpen, onClose, onOpen]);\n\n useEffect(() => {\n onSelect?.(selectedID);\n\n if (inputRef.current != null) {\n dispatchChangeEvent(inputRef.current);\n }\n }, [onSelect, selectedID]);\n\n return (\n <FormRowItem shrink={shrink} grow={grow} width={width}>\n {label && (\n <label className=\"form__element__label\" htmlFor={`${id}`}>\n {label}\n </label>\n )}\n <div className={classes}>\n <input\n className=\"input input--hidden\"\n name={`${id}`}\n onChange={() => undefined}\n tabIndex={-1}\n ref={inputRef}\n type=\"text\"\n value={selectedID}\n />\n <Button\n additionalClassNames=\"select__button\"\n buttonRef={triggerRef}\n addonPlacement=\"after\"\n onClick={() => {\n if (!disabled) {\n setIsOpen(!isOpen);\n }\n }}\n priority={priority}\n wrap={false}\n >\n <FormElementAddon className=\"select__indicator\">\n <Chevron />\n </FormElementAddon>\n {selectedItem && cloneElement(selectedItem as ReactElement, {isTrigger: true})}\n </Button>\n <Portal>\n <ContextMenu\n onOverlayClick={() => {\n setIsOpen(!isOpen);\n }}\n isIn={isOpen}\n matchTriggerWidth={matchTriggerWidth}\n menuAlign={menuAlign}\n ref={menuRef}\n triggerRef={triggerRef}\n >\n {Children.toArray(children).reduce((accumulator: Array<ReactElement>, child) => {\n const item = child as ReactElement<SelectItemProps>;\n\n if (item.props.isPlaceholder) {\n return accumulator;\n }\n\n accumulator.push(\n cloneElement(child as ReactElement, {\n onClick: (selection: string | number) => {\n setIsOpen(false);\n setSelectedID(selection);\n },\n isSelected: item.props.id === selectedID,\n }),\n );\n\n return accumulator;\n }, [])}\n </ContextMenu>\n </Portal>\n </div>\n </FormRowItem>\n );\n};\n\nexport default Select;\n","import classnames from 'classnames';\nimport {EventHandler, FC, ReactNode, SyntheticEvent} from 'react';\n\nimport {css} from '@client/styled-system/css';\n\ninterface ContextMenuItemProps {\n children: ReactNode;\n className?: string;\n onClick: EventHandler<SyntheticEvent>;\n}\n\nconst ContextMenuItem: FC<ContextMenuItemProps> = ({children, className, onClick}: ContextMenuItemProps) => {\n const classes = classnames('context-menu__item', className);\n\n return (\n <div\n className={`${classes} ${css({\n width: '100%',\n textAlign: 'left',\n _focus: {\n outline: 'none',\n WebkitTapHighlightColor: 'transparent',\n },\n })}`}\n role=\"button\"\n tabIndex={0}\n onClick={onClick}\n onKeyPress={(e) => {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n onClick?.(e);\n }\n }}\n >\n {children}\n </div>\n );\n};\n\nexport default ContextMenuItem;\n","import classnames from 'classnames';\nimport {FC, ReactNode} from 'react';\n\nimport {Checkmark} from '@client/ui/icons';\n\nimport ContextMenuItem from './ContextMenuItem';\n\nexport interface SelectItemProps {\n children: ReactNode;\n id: string | number;\n isPlaceholder?: boolean;\n isSelected?: boolean;\n isTrigger?: boolean;\n onClick?: (id: this['id']) => void;\n}\n\nconst SelectItem: FC<SelectItemProps> = ({\n children,\n id,\n isPlaceholder = false,\n isTrigger = false,\n isSelected = false,\n onClick,\n}: SelectItemProps) => {\n let icon = null;\n if (!isTrigger && isSelected) {\n icon = <Checkmark />;\n }\n\n const classes = classnames({\n 'select__item context-menu__item': !isTrigger,\n 'select__item--is-placeholder': isPlaceholder,\n 'select__item--is-selected': isSelected,\n });\n\n return (\n <ContextMenuItem className={classes} onClick={() => onClick?.(id)}>\n {icon}\n {children}\n </ContextMenuItem>\n );\n};\n\nexport default SelectItem;\n","import classnames from 'classnames';\nimport React, {Children, cloneElement, forwardRef, ReactElement} from 'react';\n\nimport FormElementAddon from './FormElementAddon';\nimport FormRowItem from './FormRowItem';\n\nimport type {FormRowItemProps} from './FormRowItem';\n\ntype TextboxProps = Pick<\n React.InputHTMLAttributes<HTMLInputElement>,\n 'children' | 'disabled' | 'defaultValue' | 'placeholder' | 'readOnly' | 'onChange' | 'onClick' | 'autoComplete'\n> & {\n id: string;\n label?: React.ReactNode;\n type?: 'text' | 'password';\n width?: FormRowItemProps['width'];\n addonPlacement?: 'before' | 'after';\n labelOffset?: boolean;\n wrapperClassName?: string;\n};\n\nconst Textbox = forwardRef<HTMLInputElement, TextboxProps>(\n (\n {\n children,\n id,\n label,\n addonPlacement,\n labelOffset,\n wrapperClassName,\n width,\n defaultValue,\n placeholder,\n autoComplete,\n type = 'text',\n disabled,\n readOnly,\n onChange,\n onClick,\n }: TextboxProps,\n ref,\n ) => {\n let addonCount = 0;\n const childElements = Children.map(children, (child) => {\n const childAsElement = child as ReactElement;\n if (childAsElement && childAsElement.type === FormElementAddon) {\n addonCount += 1;\n return cloneElement(childAsElement, {\n addonIndex: addonCount,\n addonPlacement,\n });\n }\n\n return child;\n });\n\n const inputClasses = classnames('input input--text form__element', {\n [`form__element--has-addon--placed-${addonPlacement}`]: addonPlacement && children,\n [`form__element--has-addon--count-${addonCount}`]: addonCount > 0,\n 'form__element--label-offset': labelOffset,\n });\n const wrapperClasses = classnames('form__element__wrapper', wrapperClassName);\n\n return (\n <FormRowItem width={width}>\n {label != null ? (\n <label className=\"form__element__label\" htmlFor={id}>\n {label}\n </label>\n ) : undefined}\n <div className={wrapperClasses}>\n <input\n className={inputClasses}\n defaultValue={defaultValue}\n placeholder={placeholder}\n id={id}\n name={id}\n onChange={onChange}\n onClick={onClick}\n ref={ref}\n tabIndex={0}\n type={type}\n autoComplete={autoComplete}\n disabled={disabled}\n readOnly={readOnly}\n />\n {childElements}\n </div>\n </FormRowItem>\n );\n },\n);\n\nexport default Textbox;\n","import {makeAutoObservable} from 'mobx';\n\nimport type {Disks} from '@shared/types/DiskUsage';\n\nclass DiskUsageStore {\n disks: Disks = [];\n\n constructor() {\n makeAutoObservable(this);\n }\n\n setDiskUsage(disks: Disks) {\n this.disks = disks;\n }\n}\n\nexport default new DiskUsageStore();\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","var toString = require('./toString');\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nmodule.exports = uniqueId;\n","import {makeAutoObservable} from 'mobx';\n\nimport FloodActions from '@client/actions/FloodActions';\n\nimport {AccessLevel} from '@shared/schema/constants/Auth';\n\nimport type {\n AuthAuthenticationResponse,\n AuthRegistrationResponse,\n AuthVerificationResponse,\n} from '@shared/schema/api/auth';\nimport type {Credentials} from '@shared/schema/Auth';\n\nclass AuthStore {\n isAuthenticating = false;\n isAuthenticated = false;\n users: Array<Credentials> = [];\n optimisticUsers: Array<{username: string}> = [];\n currentUser: {\n isAdmin: boolean;\n isInitialUser: boolean;\n username: string | null;\n } = {\n isAdmin: false,\n isInitialUser: false,\n username: null,\n };\n\n constructor() {\n makeAutoObservable(this);\n }\n\n handleCreateUserSuccess({username}: AuthRegistrationResponse): void {\n this.optimisticUsers.push({username});\n }\n\n handleListUsersSuccess(nextUserList: Array<Credentials>): void {\n this.optimisticUsers = this.optimisticUsers.filter(\n (optimisticUser) => !nextUserList.some((databaseUser) => databaseUser.username === optimisticUser.username),\n );\n this.users = nextUserList;\n }\n\n handleLoginSuccess({username, level}: AuthAuthenticationResponse): void {\n this.currentUser.username = username;\n this.currentUser.isAdmin = level === AccessLevel.ADMINISTRATOR;\n this.currentUser.isInitialUser = false;\n this.isAuthenticating = true;\n this.isAuthenticated = true;\n }\n\n handleLoginError(): void {\n this.isAuthenticated = false;\n this.isAuthenticating = true;\n }\n\n handleRegisterSuccess({username, level}: AuthRegistrationResponse): void {\n this.currentUser.username = username;\n this.currentUser.isAdmin = level === AccessLevel.ADMINISTRATOR;\n this.currentUser.isInitialUser = false;\n FloodActions.restartActivityStream();\n }\n\n handleAuthVerificationSuccess(response: AuthVerificationResponse): void {\n if (response.initialUser === true) {\n this.currentUser.isInitialUser = true;\n } else {\n const {username, level} = response;\n\n this.currentUser = {\n username: username,\n isAdmin: level === AccessLevel.ADMINISTRATOR,\n isInitialUser: false,\n };\n }\n\n this.isAuthenticating = true;\n this.isAuthenticated = !this.currentUser.isInitialUser;\n }\n\n handleAuthVerificationError(): void {\n this.isAuthenticated = false;\n this.isAuthenticating = true;\n this.currentUser.isInitialUser = false;\n }\n}\n\nexport default new AuthStore();\n","import React from 'react';\nexport default React.createContext(null);","var map = {\n\t\"./af.json\": [\n\t\t1011,\n\t\t41\n\t],\n\t\"./ar.json\": [\n\t\t4143,\n\t\t232\n\t],\n\t\"./ca.json\": [\n\t\t7322,\n\t\t243\n\t],\n\t\"./cs.json\": [\n\t\t972,\n\t\t850\n\t],\n\t\"./da.json\": [\n\t\t299,\n\t\t861\n\t],\n\t\"./de.json\": [\n\t\t5351,\n\t\t52\n\t],\n\t\"./el.json\": [\n\t\t1041,\n\t\t255\n\t],\n\t\"./en.json\": [\n\t\t1583\n\t],\n\t\"./es.json\": [\n\t\t7182,\n\t\t873\n\t],\n\t\"./fi.json\": [\n\t\t8233,\n\t\t64\n\t],\n\t\"./fr.json\": [\n\t\t4242,\n\t\t792\n\t],\n\t\"./he.json\": [\n\t\t9179,\n\t\t601\n\t],\n\t\"./hu.json\": [\n\t\t3019,\n\t\t994\n\t],\n\t\"./it.json\": [\n\t\t6829,\n\t\t803\n\t],\n\t\"./ja.json\": [\n\t\t9837,\n\t\t612\n\t],\n\t\"./ko.json\": [\n\t\t5600,\n\t\t421\n\t],\n\t\"./nl.json\": [\n\t\t4344,\n\t\t6\n\t],\n\t\"./no.json\": [\n\t\t7971,\n\t\t815\n\t],\n\t\"./pl.json\": [\n\t\t3726,\n\t\t624\n\t],\n\t\"./pt.json\": [\n\t\t5702,\n\t\t17\n\t],\n\t\"./ro.json\": [\n\t\t9671,\n\t\t961\n\t],\n\t\"./ru.json\": [\n\t\t1201,\n\t\t152\n\t],\n\t\"./sr.json\": [\n\t\t7449,\n\t\t355\n\t],\n\t\"./sv.json\": [\n\t\t8733,\n\t\t354\n\t],\n\t\"./tr.json\": [\n\t\t2560,\n\t\t557\n\t],\n\t\"./uk.json\": [\n\t\t1846,\n\t\t164\n\t],\n\t\"./vi.json\": [\n\t\t9705,\n\t\t175\n\t],\n\t\"./zh-Hans.json\": [\n\t\t3661,\n\t\t366\n\t],\n\t\"./zh-Hant.json\": [\n\t\t2605,\n\t\t129\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 7287;\nmodule.exports = webpackAsyncContext;","const UNIT_TO_STRING_ID = {\n B: 'unit.size.byte',\n kB: 'unit.size.kilobyte',\n MB: 'unit.size.megabyte',\n GB: 'unit.size.gigabyte',\n TB: 'unit.size.terabyte',\n} as const;\n\ntype Unit = keyof typeof UNIT_TO_STRING_ID;\n\nexport function compute(bytes: number, precision = 2): {value: number; unit: Unit} {\n const kilobyte = 1024;\n\n const megabyte = kilobyte * 1024;\n\n const gigabyte = megabyte * 1024;\n\n const terabyte = gigabyte * 1024;\n let value = 0;\n\n let unit: Unit;\n\n if (bytes >= terabyte) {\n value = bytes / terabyte;\n unit = 'TB';\n } else if (bytes >= gigabyte) {\n value = bytes / gigabyte;\n unit = 'GB';\n } else if (bytes >= megabyte) {\n value = bytes / megabyte;\n unit = 'MB';\n } else if (bytes >= kilobyte) {\n value = bytes / kilobyte;\n unit = 'kB';\n } else {\n value = bytes;\n unit = 'B';\n }\n\n value = Number(value);\n if (!!value && value >= 100) {\n value = Math.floor(value);\n } else if (!!value && value > 10) {\n value = Number(value.toFixed(precision - 1));\n } else if (value) {\n value = Number(value.toFixed(precision));\n }\n\n return {\n value,\n unit,\n };\n}\n\nexport function getTranslationString(unit: Unit): (typeof UNIT_TO_STRING_ID)[Unit] {\n return UNIT_TO_STRING_ID[unit] || UNIT_TO_STRING_ID.B;\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","import {extendObservable, makeAutoObservable, runInAction} from 'mobx';\nimport {sort} from 'fast-sort';\n\nexport interface Alert {\n id: string;\n type: 'success' | 'error';\n count: number;\n duration: number;\n timer: number;\n updated: number;\n}\n\nclass AlertStore {\n alerts: Record<string, Alert> = {};\n\n get sortedAlerts(): Array<Alert> {\n return sort(Object.values(this.alerts)).asc((alert) => alert.updated);\n }\n\n constructor() {\n makeAutoObservable(this);\n }\n\n add({\n id,\n type = 'success',\n count = 0,\n duration = 5 * 1000,\n }: {\n id: string;\n type?: Alert['type'];\n count?: number;\n duration?: number;\n }) {\n const curAlert = this.alerts[id];\n\n if (curAlert != null) {\n clearTimeout(curAlert.timer);\n\n curAlert.count += count;\n curAlert.timer = this.scheduleClose(id, duration);\n curAlert.updated = Date.now();\n } else {\n const newAlert: Alert = {\n id,\n type,\n count,\n duration,\n timer: this.scheduleClose(id, duration),\n updated: Date.now(),\n };\n extendObservable(this.alerts, {[id]: newAlert});\n }\n }\n\n scheduleClose(id: string, duration: number): number {\n return window.setTimeout(() => {\n runInAction(() => {\n delete this.alerts[id];\n });\n }, duration);\n }\n}\n\nexport default new AlertStore();\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = memoize;\n","/**\n * React Router v6.30.3\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { UNSAFE_invariant, joinPaths, matchPath, UNSAFE_decodePath, UNSAFE_getResolveToMatches, UNSAFE_warning, resolveTo, parsePath, matchRoutes, Action, UNSAFE_convertRouteMatchToUiMatch, stripBasename, IDLE_BLOCKER, isRouteErrorResponse, createMemoryHistory, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, replace, resolvePath } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nconst DataRouterContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterContext.displayName = \"DataRouter\";\n}\nconst DataRouterStateContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n AwaitContext.displayName = \"Await\";\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `<Router>` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\nconst LocationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/v6/hooks/use-href\n */\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n\n/**\n * Returns true if this component is a descendant of a `<Router>`.\n *\n * @see https://reactrouter.com/v6/hooks/use-in-router-context\n */\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/v6/hooks/use-location\n */\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigation-type\n */\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * `<NavLink>`.\n *\n * @see https://reactrouter.com/v6/hooks/use-match\n */\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, UNSAFE_decodePath(pathname)), [pathname, pattern]);\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\nconst navigateEffectWarning = \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\";\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(cb) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by `<Link>`s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigate\n */\nfunction useNavigate() {\n let {\n isDataRoute\n } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let dataRouterContext = React.useContext(DataRouterContext);\n let {\n basename,\n future,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\");\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname, dataRouterContext]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/v6/hooks/use-outlet-context\n */\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `<Outlet>` to render child routes.\n *\n * @see https://reactrouter.com/v6/hooks/use-outlet\n */\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/v6/hooks/use-params\n */\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/v6/hooks/use-resolved-path\n */\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n future\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `<Outlet>` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/v6/hooks/use-routes\n */\nfunction useRoutes(routes, locationArg) {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nfunction useRoutesImpl(routes, locationArg, dataRouterState, future) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different <Routes> under a <Route>\n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // <Routes>\n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // <Route path=\"blog\" element={<Blog />} />\n // <Route path=\"blog/feed\" element={<BlogFeed />} />\n // </Routes>\n //\n // function Blog() {\n // return (\n // <Routes>\n // <Route path=\"post/:id\" element={<Post />} />\n // </Routes>\n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant <Routes> (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under <Route path=\\\"\" + parentPath + \"\\\">) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent <Route path=\\\"\" + parentPath + \"\\\"> to <Route \") + (\"path=\\\"\" + (parentPath === \"/\" ? \"*\" : parentPath + \"/*\") + \"\\\">.\"));\n }\n let locationFromContext = useLocation();\n let location;\n if (locationArg) {\n var _parsedLocationArg$pa;\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"When overriding the location using `<Routes location>` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : UNSAFE_invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n let pathname = location.pathname || \"/\";\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(matches == null || matches[matches.length - 1].route.element !== undefined || matches[matches.length - 1].route.Component !== undefined || matches[matches.length - 1].route.lazy !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \" + \"does not have an element or Component. This means it will render an <Outlet /> with a \" + \"null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterState, future);\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n let devInfo = null;\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"Error handled by React Router default ErrorBoundary:\", error);\n devInfo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"ErrorBoundary\"), \" or\", \" \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"errorElement\"), \" prop on your route.\"));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unexpected Application Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, devInfo);\n}\nconst defaultErrorElement = /*#__PURE__*/React.createElement(DefaultErrorComponent, null);\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location || state.revalidation !== \"idle\" && props.revalidation === \"idle\") {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n render() {\n return this.state.error !== undefined ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n}\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\nfunction _renderMatches(matches, parentMatches, dataRouterState, future) {\n var _dataRouterState;\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n if (dataRouterState === void 0) {\n dataRouterState = null;\n }\n if (future === void 0) {\n future = null;\n }\n if (matches == null) {\n var _future;\n if (!dataRouterState) {\n return null;\n }\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else if ((_future = future) != null && _future.v7_partialHydration && parentMatches.length === 0 && !dataRouterState.initialized && dataRouterState.matches.length > 0) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // `<Routes>`\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = (_dataRouterState = dataRouterState) == null ? void 0 : _dataRouterState.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]) !== undefined);\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"Could not find a matching route for errors on route IDs: \" + Object.keys(errors).join(\",\")) : UNSAFE_invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n if (match.route.id) {\n let {\n loaderData,\n errors\n } = dataRouterState;\n let needsToRunLoader = match.route.loader && loaderData[match.route.id] === undefined && (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error;\n let shouldRenderHydrateFallback = false;\n let errorElement = null;\n let hydrateFallbackElement = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\"route-fallback\", false, \"No `HydrateFallback` element provided to render during initial hydration\");\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `<Route Component={...}>` in `<Routes>` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = /*#__PURE__*/React.createElement(match.route.Component, null);\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches,\n isDataRoute: dataRouterState != null\n },\n children: children\n });\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n revalidation: dataRouterState.revalidation,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches,\n isDataRoute: true\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook = /*#__PURE__*/function (DataRouterHook) {\n DataRouterHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterHook[\"UseNavigateStable\"] = \"useNavigate\";\n return DataRouterHook;\n}(DataRouterHook || {});\nvar DataRouterStateHook = /*#__PURE__*/function (DataRouterStateHook) {\n DataRouterStateHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterStateHook[\"UseNavigateStable\"] = \"useNavigate\";\n DataRouterStateHook[\"UseRouteId\"] = \"useRouteId\";\n return DataRouterStateHook;\n}(DataRouterStateHook || {});\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/v6/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nfunction useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(() => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n }), [dataRouterContext.router.revalidate, state.revalidation]);\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(m => UNSAFE_convertRouteMatchToUiMatch(m, loaderData)), [matches, loaderData]);\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nfunction useRouteError() {\n var _state$errors;\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `<Await />` value\n */\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `<Await />` value\n */\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nfunction useBlocker(shouldBlock) {\n let {\n router,\n basename\n } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(arg => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = arg;\n return shouldBlock({\n currentLocation: _extends({}, currentLocation, {\n pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n }),\n nextLocation: _extends({}, nextLocation, {\n pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n }),\n historyAction\n });\n }, [basename, shouldBlock]);\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, _extends({\n fromRouteId: id\n }, options));\n }\n }, [router, id]);\n return navigate;\n}\nconst alreadyWarned$1 = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned$1[key]) {\n alreadyWarned$1[key] = true;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, message) : void 0;\n }\n}\n\nconst alreadyWarned = {};\nfunction warnOnce(key, message) {\n if (process.env.NODE_ENV !== \"production\" && !alreadyWarned[message]) {\n alreadyWarned[message] = true;\n console.warn(message);\n }\n}\nconst logDeprecation = (flag, msg, link) => warnOnce(flag, \"\\u26A0\\uFE0F React Router Future Flag Warning: \" + msg + \". \" + (\"You can use the `\" + flag + \"` future flag to opt-in early. \") + (\"For more information, see \" + link + \".\"));\nfunction logV6DeprecationWarnings(renderFuture, routerFuture) {\n if ((renderFuture == null ? void 0 : renderFuture.v7_startTransition) === undefined) {\n logDeprecation(\"v7_startTransition\", \"React Router will begin wrapping state updates in `React.startTransition` in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_starttransition\");\n }\n if ((renderFuture == null ? void 0 : renderFuture.v7_relativeSplatPath) === undefined && (!routerFuture || routerFuture.v7_relativeSplatPath === undefined)) {\n logDeprecation(\"v7_relativeSplatPath\", \"Relative route resolution within Splat routes is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath\");\n }\n if (routerFuture) {\n if (routerFuture.v7_fetcherPersist === undefined) {\n logDeprecation(\"v7_fetcherPersist\", \"The persistence behavior of fetchers is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist\");\n }\n if (routerFuture.v7_normalizeFormMethod === undefined) {\n logDeprecation(\"v7_normalizeFormMethod\", \"Casing of `formMethod` fields is being normalized to uppercase in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod\");\n }\n if (routerFuture.v7_partialHydration === undefined) {\n logDeprecation(\"v7_partialHydration\", \"`RouterProvider` hydration behavior is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_partialhydration\");\n }\n if (routerFuture.v7_skipActionErrorRevalidation === undefined) {\n logDeprecation(\"v7_skipActionErrorRevalidation\", \"The revalidation behavior after 4xx/5xx `action` responses is changing in v7\", \"https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation\");\n }\n }\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n }, [setStateImpl, v7_startTransition]);\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`<RouterProvider fallbackElement>` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n React.useEffect(() => logV6DeprecationWarnings(future, router.future), [router, future]);\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DataRouterContext.Provider, {\n value: dataRouterContext\n }, /*#__PURE__*/React.createElement(DataRouterStateContext.Provider, {\n value: state\n }, /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator: navigator,\n future: {\n v7_relativeSplatPath: router.future.v7_relativeSplatPath\n }\n }, state.initialized || router.future.v7_partialHydration ? /*#__PURE__*/React.createElement(DataRoutes, {\n routes: router.routes,\n future: router.future,\n state: state\n }) : fallbackElement))), null);\n}\nfunction DataRoutes(_ref2) {\n let {\n routes,\n future,\n state\n } = _ref2;\n return useRoutesImpl(routes, undefined, state, future);\n}\n/**\n * A `<Router>` that stores all entries in memory.\n *\n * @see https://reactrouter.com/v6/router-components/memory-router\n */\nfunction MemoryRouter(_ref3) {\n let {\n basename,\n children,\n initialEntries,\n initialIndex,\n future\n } = _ref3;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n React.useEffect(() => logV6DeprecationWarnings(future), [future]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/v6/components/navigate\n */\nfunction Navigate(_ref4) {\n let {\n to,\n replace,\n state,\n relative\n } = _ref4;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n \"<Navigate> may be used only in the context of a <Router> component.\") : UNSAFE_invariant(false) : void 0;\n let {\n future,\n static: isStatic\n } = React.useContext(NavigationContext);\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(!isStatic, \"<Navigate> must not be used on the initial render in a <StaticRouter>. \" + \"This is a no-op, but you should modify your code so the <Navigate> is \" + \"only ever rendered in response to some user interaction or state change.\") : void 0;\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let navigate = useNavigate();\n\n // Resolve the path outside of the effect so that when effects run twice in\n // StrictMode they navigate to the same place\n let path = resolveTo(to, UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath), locationPathname, relative === \"path\");\n let jsonPath = JSON.stringify(path);\n React.useEffect(() => navigate(JSON.parse(jsonPath), {\n replace,\n state,\n relative\n }), [navigate, jsonPath, relative, replace, state]);\n return null;\n}\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/v6/components/outlet\n */\nfunction Outlet(props) {\n return useOutlet(props.context);\n}\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/v6/components/route\n */\nfunction Route(_props) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"A <Route> is only ever to be used as the child of <Routes> element, \" + \"never rendered directly. Please wrap your <Route> in a <Routes>.\") : UNSAFE_invariant(false) ;\n}\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a `<Router>` directly. Instead, you'll render a\n * router that is more specific to your environment such as a `<BrowserRouter>`\n * in web browsers or a `<StaticRouter>` for server rendering.\n *\n * @see https://reactrouter.com/v6/router-components/router\n */\nfunction Router(_ref5) {\n let {\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = Action.Pop,\n navigator,\n static: staticProp = false,\n future\n } = _ref5;\n !!useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"You cannot render a <Router> inside another <Router>.\" + \" You should never have more than one in your app.\") : UNSAFE_invariant(false) : void 0;\n\n // Preserve trailing slashes on basename, so we can let the user control\n // the enforcement of trailing slashes throughout the app\n let basename = basenameProp.replace(/^\\/*/, \"/\");\n let navigationContext = React.useMemo(() => ({\n basename,\n navigator,\n static: staticProp,\n future: _extends({\n v7_relativeSplatPath: false\n }, future)\n }), [basename, future, navigator, staticProp]);\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\"\n } = locationProp;\n let locationContext = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n if (trailingPathname == null) {\n return null;\n }\n return {\n location: {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key\n },\n navigationType\n };\n }, [basename, pathname, search, hash, state, key, navigationType]);\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(locationContext != null, \"<Router basename=\\\"\" + basename + \"\\\"> is not able to match the URL \" + (\"\\\"\" + pathname + search + hash + \"\\\" because it does not start with the \") + \"basename, so the <Router> won't render anything.\") : void 0;\n if (locationContext == null) {\n return null;\n }\n return /*#__PURE__*/React.createElement(NavigationContext.Provider, {\n value: navigationContext\n }, /*#__PURE__*/React.createElement(LocationContext.Provider, {\n children: children,\n value: locationContext\n }));\n}\n/**\n * A container for a nested tree of `<Route>` elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/v6/components/routes\n */\nfunction Routes(_ref6) {\n let {\n children,\n location\n } = _ref6;\n return useRoutes(createRoutesFromChildren(children), location);\n}\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nfunction Await(_ref7) {\n let {\n children,\n errorElement,\n resolve\n } = _ref7;\n return /*#__PURE__*/React.createElement(AwaitErrorBoundary, {\n resolve: resolve,\n errorElement: errorElement\n }, /*#__PURE__*/React.createElement(ResolveAwait, null, children));\n}\nvar AwaitRenderStatus = /*#__PURE__*/function (AwaitRenderStatus) {\n AwaitRenderStatus[AwaitRenderStatus[\"pending\"] = 0] = \"pending\";\n AwaitRenderStatus[AwaitRenderStatus[\"success\"] = 1] = \"success\";\n AwaitRenderStatus[AwaitRenderStatus[\"error\"] = 2] = \"error\";\n return AwaitRenderStatus;\n}(AwaitRenderStatus || {});\nconst neverSettledPromise = new Promise(() => {});\nclass AwaitErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n error: null\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"<Await> caught the following error during render\", error, errorInfo);\n }\n render() {\n let {\n children,\n errorElement,\n resolve\n } = this.props;\n let promise = null;\n let status = AwaitRenderStatus.pending;\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - provide as a resolved promise\n status = AwaitRenderStatus.success;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n Object.defineProperty(promise, \"_data\", {\n get: () => resolve\n });\n } else if (this.state.error) {\n // Caught a render error, provide it as a rejected promise\n status = AwaitRenderStatus.error;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n Object.defineProperty(promise, \"_error\", {\n get: () => renderError\n });\n } else if (resolve._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status = \"_error\" in promise ? AwaitRenderStatus.error : \"_data\" in promise ? AwaitRenderStatus.success : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", {\n get: () => true\n });\n promise = resolve.then(data => Object.defineProperty(resolve, \"_data\", {\n get: () => data\n }), error => Object.defineProperty(resolve, \"_error\", {\n get: () => error\n }));\n }\n if (status === AwaitRenderStatus.error && promise._error instanceof AbortedDeferredError) {\n // Freeze the UI by throwing a never resolved promise\n throw neverSettledPromise;\n }\n if (status === AwaitRenderStatus.error && !errorElement) {\n // No errorElement, throw to the nearest route-level error boundary\n throw promise._error;\n }\n if (status === AwaitRenderStatus.error) {\n // Render via our errorElement\n return /*#__PURE__*/React.createElement(AwaitContext.Provider, {\n value: promise,\n children: errorElement\n });\n }\n if (status === AwaitRenderStatus.success) {\n // Render children with resolved value\n return /*#__PURE__*/React.createElement(AwaitContext.Provider, {\n value: promise,\n children: children\n });\n }\n\n // Throw to the suspense boundary\n throw promise;\n }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on `<Await>`\n */\nfunction ResolveAwait(_ref8) {\n let {\n children\n } = _ref8;\n let data = useAsyncValue();\n let toRender = typeof children === \"function\" ? children(data) : children;\n return /*#__PURE__*/React.createElement(React.Fragment, null, toRender);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/v6/utils/create-routes-from-children\n */\nfunction createRoutesFromChildren(children, parentPath) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n let routes = [];\n React.Children.forEach(children, (element, index) => {\n if (! /*#__PURE__*/React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n let treePath = [...parentPath, index];\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(routes, createRoutesFromChildren(element.props.children, treePath));\n return;\n }\n !(element.type === Route) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"[\" + (typeof element.type === \"string\" ? element.type : element.type.name) + \"] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>\") : UNSAFE_invariant(false) : void 0;\n !(!element.props.index || !element.props.children) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"An index route cannot have child routes.\") : UNSAFE_invariant(false) : void 0;\n let route = {\n id: element.props.id || treePath.join(\"-\"),\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n Component: element.props.Component,\n index: element.props.index,\n path: element.props.path,\n loader: element.props.loader,\n action: element.props.action,\n errorElement: element.props.errorElement,\n ErrorBoundary: element.props.ErrorBoundary,\n hasErrorBoundary: element.props.ErrorBoundary != null || element.props.errorElement != null,\n shouldRevalidate: element.props.shouldRevalidate,\n handle: element.props.handle,\n lazy: element.props.lazy\n };\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children, treePath);\n }\n routes.push(route);\n });\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nfunction renderMatches(matches) {\n return _renderMatches(matches);\n}\n\nfunction mapRouteProperties(route) {\n let updates = {\n // Note: this check also occurs in createRoutesFromChildren so update\n // there if you change this -- please and thank you!\n hasErrorBoundary: route.ErrorBoundary != null || route.errorElement != null\n };\n if (route.Component) {\n if (process.env.NODE_ENV !== \"production\") {\n if (route.element) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `Component` and `element` on your route - \" + \"`Component` will be used.\") : void 0;\n }\n }\n Object.assign(updates, {\n element: /*#__PURE__*/React.createElement(route.Component),\n Component: undefined\n });\n }\n if (route.HydrateFallback) {\n if (process.env.NODE_ENV !== \"production\") {\n if (route.hydrateFallbackElement) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - \" + \"`HydrateFallback` will be used.\") : void 0;\n }\n }\n Object.assign(updates, {\n hydrateFallbackElement: /*#__PURE__*/React.createElement(route.HydrateFallback),\n HydrateFallback: undefined\n });\n }\n if (route.ErrorBoundary) {\n if (process.env.NODE_ENV !== \"production\") {\n if (route.errorElement) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"You should not include both `ErrorBoundary` and `errorElement` on your route - \" + \"`ErrorBoundary` will be used.\") : void 0;\n }\n }\n Object.assign(updates, {\n errorElement: /*#__PURE__*/React.createElement(route.ErrorBoundary),\n ErrorBoundary: undefined\n });\n }\n return updates;\n}\nfunction createMemoryRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createMemoryHistory({\n initialEntries: opts == null ? void 0 : opts.initialEntries,\n initialIndex: opts == null ? void 0 : opts.initialIndex\n }),\n hydrationData: opts == null ? void 0 : opts.hydrationData,\n routes,\n mapRouteProperties,\n dataStrategy: opts == null ? void 0 : opts.dataStrategy,\n patchRoutesOnNavigation: opts == null ? void 0 : opts.patchRoutesOnNavigation\n }).initialize();\n}\n\nexport { Await, MemoryRouter, Navigate, Outlet, Route, Router, RouterProvider, Routes, DataRouterContext as UNSAFE_DataRouterContext, DataRouterStateContext as UNSAFE_DataRouterStateContext, LocationContext as UNSAFE_LocationContext, NavigationContext as UNSAFE_NavigationContext, RouteContext as UNSAFE_RouteContext, logV6DeprecationWarnings as UNSAFE_logV6DeprecationWarnings, mapRouteProperties as UNSAFE_mapRouteProperties, useRouteId as UNSAFE_useRouteId, useRoutesImpl as UNSAFE_useRoutesImpl, createMemoryRouter, createRoutesFromChildren, createRoutesFromChildren as createRoutesFromElements, renderMatches, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes };\n//# sourceMappingURL=index.js.map\n","var niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\n 2(prop) {\n return `invalid decorator for '${prop.toString()}'`\n },\n 3(prop) {\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\n },\n 4(prop) {\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\n },\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = process.env.NODE_ENV !== \"production\" ? niceErrors : {};\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (process.env.NODE_ENV !== \"production\") {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die(process.env.NODE_ENV !== \"production\" ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : \"Proxy not available\");\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if (process.env.NODE_ENV !== \"production\" && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\n * Makes sure that the provided function is invoked at most once.\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\n/**\n * Yields true for both native and observable Map, even across different windows.\n */\nfunction isES6Map(thing) {\n return thing != null && Object.prototype.toString.call(thing) === \"[object Map]\";\n}\n/**\n * Makes sure a Map is an instance of non-inherited native or observable Map.\n */\nfunction isPlainES6Map(thing) {\n var mapProto = Object.getPrototypeOf(thing);\n var objectProto = Object.getPrototypeOf(mapProto);\n var nullProto = Object.getPrototypeOf(objectProto);\n return nullProto === null;\n}\n/**\n * Yields true for both native and observable Set, even across different windows.\n */\nfunction isES6Set(thing) {\n return thing != null && Object.prototype.toString.call(thing) === \"[object Set]\";\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\n * Returns the following: own enumerable keys and symbols.\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\nfunction getFlag(flags, mask) {\n return !!(flags & mask);\n}\nfunction setFlag(flags, mask, newValue) {\n if (newValue) {\n flags |= mask;\n } else {\n flags &= ~mask;\n }\n return flags;\n}\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nfunction _createForOfIteratorHelperLoose(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (t) return (t = t.call(r)).next.bind(t);\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var o = 0;\n return function () {\n return o >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[o++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);\n}\nfunction _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\n * Creates a function that acts as\n * - decorator\n * - annotation object\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n if (is20223Decorator(property)) {\n return annotation.decorate_20223_(target, property);\n } else {\n storeAnnotation(target, property, annotation);\n }\n }\n return Object.assign(decorator, annotation);\n}\n/**\n * Stores annotation to prototype,\n * so it can be inspected later by `makeObservable` called from constructor\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if (process.env.NODE_ENV !== \"production\" && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if (process.env.NODE_ENV !== \"production\" && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\n * Collects annotations from prototypes and stores them on target (instance)\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n // if (__DEV__ && !target[storedAnnotationsSymbol]) {\n // die(\n // `No annotations were passed to makeObservable, but no decorated members have been found either`\n // )\n // }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\nfunction is20223Decorator(context) {\n return typeof context == \"object\" && typeof context[\"kind\"] == \"string\";\n}\nfunction assert20223DecoratorType(context, types) {\n if (process.env.NODE_ENV !== \"production\" && !types.includes(context.kind)) {\n die(\"The decorator applied to '\" + String(context.name) + \"' cannot be used on a \" + context.kind + \" element\");\n }\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n /**\n * Create a new atom. For debugging purposes it is recommended to give it a name.\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"Atom@\" + getNextId() : \"Atom\";\n }\n this.name_ = void 0;\n this.flags_ = 0;\n this.observers_ = new Set();\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n // onBecomeObservedListeners\n this.onBOL = void 0;\n // onBecomeUnobservedListeners\n this.onBUOL = void 0;\n this.name_ = name_;\n }\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Invoke this method to notify mobx that your atom has been used somehow.\n * Returns true if there is currently a reactive context.\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\n */;\n _proto.reportChanged = function reportChanged() {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return _createClass(Atom, [{\n key: \"isBeingObserved\",\n get: function get() {\n return getFlag(this.flags_, Atom.isBeingObservedMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, Atom.isBeingObservedMask_, newValue);\n }\n }, {\n key: \"isPendingUnobservation\",\n get: function get() {\n return getFlag(this.flags_, Atom.isPendingUnobservationMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, Atom.isPendingUnobservationMask_, newValue);\n }\n }, {\n key: \"diffValue\",\n get: function get() {\n return getFlag(this.flags_, Atom.diffValueMask_) ? 1 : 0;\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, Atom.diffValueMask_, newValue === 1 ? true : false);\n }\n }]);\n}();\nAtom.isBeingObservedMask_ = 1;\nAtom.isPendingUnobservationMask_ = 2;\nAtom.diffValueMask_ = 4;\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (process.env.NODE_ENV !== \"production\") {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if (process.env.NODE_ENV !== \"production\" && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_,\n decorate_20223_: decorate_20223_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if (process.env.NODE_ENV !== \"production\" && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if (process.env.NODE_ENV !== \"production\" && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* MakeResult.Cancel */;\n}\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\nfunction decorate_20223_(desc, context) {\n console.warn(\"'\" + this.annotationType_ + \"' cannot be used with decorators - this is a no-op\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1,\n decorate_20223_: decorate_20223_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* MakeResult.Continue */;\n}\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction decorate_20223_$1(mthd, context) {\n if (process.env.NODE_ENV !== \"production\") {\n assert20223DecoratorType(context, [\"method\", \"field\"]);\n }\n var kind = context.kind,\n name = context.name,\n addInitializer = context.addInitializer;\n var ann = this;\n var _createAction = function _createAction(m) {\n var _ann$options_$name, _ann$options_, _ann$options_$autoAct, _ann$options_2;\n return createAction((_ann$options_$name = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.name) != null ? _ann$options_$name : name.toString(), m, (_ann$options_$autoAct = (_ann$options_2 = ann.options_) == null ? void 0 : _ann$options_2.autoAction) != null ? _ann$options_$autoAct : false);\n };\n if (kind == \"field\") {\n return function (initMthd) {\n var _ann$options_3;\n var mthd = initMthd;\n if (!isAction(mthd)) {\n mthd = _createAction(mthd);\n }\n if ((_ann$options_3 = ann.options_) != null && _ann$options_3.bound) {\n mthd = mthd.bind(this);\n mthd.isMobxAction = true;\n }\n return mthd;\n };\n }\n if (kind == \"method\") {\n var _this$options_2;\n if (!isAction(mthd)) {\n mthd = _createAction(mthd);\n }\n if ((_this$options_2 = this.options_) != null && _this$options_2.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobxAction = true;\n self[name] = bound;\n });\n }\n return mthd;\n }\n die(\"Cannot apply '\" + ann.annotationType_ + \"' to '\" + String(name) + \"' (kind: \" + kind + \"):\" + (\"\\n'\" + ann.annotationType_ + \"' can only be used on properties with a function value.\"));\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if (process.env.NODE_ENV !== \"production\" && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2,\n decorate_20223_: decorate_20223_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* MakeResult.Cancel */;\n }\n }\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* MakeResult.Continue */;\n}\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction decorate_20223_$2(mthd, context) {\n var _this$options_3;\n if (process.env.NODE_ENV !== \"production\") {\n assert20223DecoratorType(context, [\"method\"]);\n }\n var name = context.name,\n addInitializer = context.addInitializer;\n if (!isFlow(mthd)) {\n mthd = flow(mthd);\n }\n if ((_this$options_3 = this.options_) != null && _this$options_3.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobXFlow = true;\n self[name] = bound;\n });\n }\n return mthd;\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if (process.env.NODE_ENV !== \"production\" && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3,\n decorate_20223_: decorate_20223_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction decorate_20223_$3(get, context) {\n if (process.env.NODE_ENV !== \"production\") {\n assert20223DecoratorType(context, [\"getter\"]);\n }\n var ann = this;\n var key = context.name,\n addInitializer = context.addInitializer;\n addInitializer(function () {\n var adm = asObservableObject(this)[$mobx];\n var options = _extends({}, ann.options_, {\n get: get,\n context: this\n });\n options.name || (options.name = process.env.NODE_ENV !== \"production\" ? adm.name_ + \".\" + key.toString() : \"ObservableObject.\" + key.toString());\n adm.values_.set(key, new ComputedValue(options));\n });\n return function () {\n return this[$mobx].getObservablePropValue_(key);\n };\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if (process.env.NODE_ENV !== \"production\" && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4,\n decorate_20223_: decorate_20223_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction decorate_20223_$4(desc, context) {\n if (process.env.NODE_ENV !== \"production\") {\n if (context.kind === \"field\") {\n throw die(\"Please use `@observable accessor \" + String(context.name) + \"` instead of `@observable \" + String(context.name) + \"`\");\n }\n assert20223DecoratorType(context, [\"accessor\"]);\n }\n var ann = this;\n var kind = context.kind,\n name = context.name;\n // The laziness here is not ideal... It's a workaround to how 2022.3 Decorators are implemented:\n // `addInitializer` callbacks are executed _before_ any accessors are defined (instead of the ideal-for-us right after each).\n // This means that, if we were to do our stuff in an `addInitializer`, we'd attempt to read a private slot\n // before it has been initialized. The runtime doesn't like that and throws a `Cannot read private member\n // from an object whose class did not declare it` error.\n // TODO: it seems that this will not be required anymore in the final version of the spec\n // See TODO: link\n var initializedObjects = new WeakSet();\n function initializeObservable(target, value) {\n var _ann$options_$enhance, _ann$options_;\n var adm = asObservableObject(target)[$mobx];\n var observable = new ObservableValue(value, (_ann$options_$enhance = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.enhancer) != null ? _ann$options_$enhance : deepEnhancer, process.env.NODE_ENV !== \"production\" ? adm.name_ + \".\" + name.toString() : \"ObservableObject.\" + name.toString(), false);\n adm.values_.set(name, observable);\n initializedObjects.add(target);\n }\n if (kind == \"accessor\") {\n return {\n get: function get() {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, desc.get.call(this));\n }\n return this[$mobx].getObservablePropValue_(name);\n },\n set: function set(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return this[$mobx].setObservablePropValue_(name, value);\n },\n init: function init(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return value;\n }\n };\n }\n return;\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if (process.env.NODE_ENV !== \"production\" && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5,\n decorate_20223_: decorate_20223_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* MakeResult.Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\nfunction decorate_20223_$5(desc, context) {\n die(\"'\" + this.annotationType_ + \"' cannot be used as a decorator\");\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\n * Turns an object, array or function into a reactive structure.\n * @param v the value which should become observable.\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp; (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return observableAnnotation.decorate_20223_(v, arg2);\n }\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\n * Decorator for class properties: @computed get value() { return expr; }.\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\n */\nvar computed = function computed(arg1, arg2) {\n if (is20223Decorator(arg2)) {\n // @computed (2022.3 Decorators)\n return computedAnnotation.decorate_20223_(arg1, arg2);\n }\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n res.toString = function () {\n return fn.toString();\n };\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = process.env.NODE_ENV !== \"production\" && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if (process.env.NODE_ENV !== \"production\" && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if (process.env.NODE_ENV !== \"production\" && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar CREATE = \"create\";\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"ObservableValue@\" + getNextId() : \"ObservableValue\";\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if (process.env.NODE_ENV !== \"production\" && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _this,\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n return _this;\n }\n _inheritsLoose(ObservableValue, _Atom);\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[Symbol.toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\n/**\n * A node in the state dependency root that observes other nodes, and can be observed itself.\n *\n * ComputedValue will remember the result of the computation for the duration of the batch, or\n * while being observed.\n *\n * During this time it will recompute only when one of its direct dependencies changed,\n * but only when it is being accessed with `ComputedValue.get()`.\n *\n * Implementation description:\n * 1. First time it's being accessed it will compute and remember result\n * give back remembered result until 2. happens\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\n * 3. When it's being accessed, recompute if any shallow dependency changed.\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\n * go to step 2. either way\n *\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\n */\nvar ComputedValue = /*#__PURE__*/function () {\n /**\n * Create a new computed value based on a function expression.\n *\n * The `name` property is for debug purposes only.\n *\n * The `equals` property specifies the comparer function to use to determine if a newly produced\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\n * Structural comparison can be convenient if you always produce a new aggregated object and\n * don't want to notify observers if it is structurally the same.\n * This is useful for working with vectors, mouse coordinates etc.\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n // nodes we are looking at. Our value depends on these nodes\n this.newObserving_ = null;\n // during tracking it's an array with new observed observers\n this.observers_ = new Set();\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.flags_ = 0;\n this.derivation = void 0;\n // N.B: unminified as it is used by MST\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || (process.env.NODE_ENV !== \"production\" ? \"ComputedValue@\" + getNextId() : \"ComputedValue\");\n if (options.set) {\n this.setter_ = createAction(process.env.NODE_ENV !== \"production\" ? this.name_ + \"-setter\" : \"ComputedValue-setter\", options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n // to check for cycles\n ;\n /**\n * Returns the current value of this computed value.\n * Will evaluate its computation first if needed.\n */\n _proto.get = function get() {\n if (this.isComputing) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter) {\n die(33, this.name_);\n }\n this.isRunningSetter = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if (process.env.NODE_ENV !== \"production\" && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if (process.env.NODE_ENV !== \"production\" && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[Symbol.toPrimitive] = function () {\n return this.valueOf();\n };\n return _createClass(ComputedValue, [{\n key: \"isComputing\",\n get: function get() {\n return getFlag(this.flags_, ComputedValue.isComputingMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, ComputedValue.isComputingMask_, newValue);\n }\n }, {\n key: \"isRunningSetter\",\n get: function get() {\n return getFlag(this.flags_, ComputedValue.isRunningSetterMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, ComputedValue.isRunningSetterMask_, newValue);\n }\n }, {\n key: \"isBeingObserved\",\n get: function get() {\n return getFlag(this.flags_, ComputedValue.isBeingObservedMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, ComputedValue.isBeingObservedMask_, newValue);\n }\n }, {\n key: \"isPendingUnobservation\",\n get: function get() {\n return getFlag(this.flags_, ComputedValue.isPendingUnobservationMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, ComputedValue.isPendingUnobservationMask_, newValue);\n }\n }, {\n key: \"diffValue\",\n get: function get() {\n return getFlag(this.flags_, ComputedValue.diffValueMask_) ? 1 : 0;\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, ComputedValue.diffValueMask_, newValue === 1 ? true : false);\n }\n }]);\n}();\nComputedValue.isComputingMask_ = 1;\nComputedValue.isRunningSetterMask_ = 2;\nComputedValue.isBeingObservedMask_ = 4;\nComputedValue.isPendingUnobservationMask_ = 8;\nComputedValue.diffValueMask_ = 16;\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\n * Finds out whether any dependency of the derivation has actually changed.\n * If dependenciesState is 1 then it will recalculate dependencies,\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\n *\n * By iterating over the dependencies in the same order that they were reported and\n * stopping on the first change, all the recalculations are only called for ComputedValues\n * that will be tracked by derivation. That is because we assume that if the first x\n * dependencies of the derivation doesn't change then the derivation should run the same way\n * up until accessing x-th dependency.\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if (process.env.NODE_ENV !== \"production\" && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\n * Executes the provided function `f` and tracks which observables are being accessed.\n * The tracking information is stored on the `derivation` object and the derivation is registered\n * as observer of any of the accessed observables.\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n changeDependenciesStateTo0(derivation);\n // Preallocate array; will be trimmed by bindDependencies.\n derivation.newObserving_ = new Array(\n // Reserve constant space for initial dependencies, dynamic space otherwise.\n // See https://github.com/mobxjs/mobx/pull/3833\n derivation.runId_ === 0 ? 100 : derivation.observing_.length);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\n * diffs newObserving with observing.\n * update observing to be newObserving with unique observables\n * notify observers that become observed/unobserved\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue === 0) {\n dep.diffValue = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue === 1) {\n _dep2.diffValue = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\n *\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\n * These values will persist if global state is reset\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n /**\n * MobXGlobals version.\n * MobX compatiblity with other versions loaded in memory as long as this version matches.\n * It indicates that the global state still stores similar information\n *\n * N.B: this version is unrelated to the package version of MobX, and is only the version of the\n * internal state storage of MobX, and can be the same across many different package versions\n */\n this.version = 6;\n /**\n * globally unique token to signal unchanged\n */\n this.UNCHANGED = {};\n /**\n * Currently running derivation\n */\n this.trackingDerivation = null;\n /**\n * Currently running reaction. This determines if we currently have a reactive context.\n * (Tracking derivation is also set for temporal tracking of computed values inside actions,\n * but trackingReaction can only be set by a form of Reaction)\n */\n this.trackingContext = null;\n /**\n * Each time a derivation is tracked, it is assigned a unique run-id\n */\n this.runId = 0;\n /**\n * 'guid' for general purpose. Will be persisted amongst resets.\n */\n this.mobxGuid = 0;\n /**\n * Are we in a batch block? (and how many of them)\n */\n this.inBatch = 0;\n /**\n * Observables that don't have observers anymore, and are about to be\n * suspended, unless somebody else accesses it in the same batch\n *\n * @type {IObservable[]}\n */\n this.pendingUnobservations = [];\n /**\n * List of scheduled, not yet executed, reactions.\n */\n this.pendingReactions = [];\n /**\n * Are we currently processing reactions?\n */\n this.isRunningReactions = false;\n /**\n * Is it allowed to change observables at this point?\n * In general, MobX doesn't allow that when running computations and React.render.\n * To ensure that those functions stay pure.\n */\n this.allowStateChanges = false;\n /**\n * Is it allowed to read observables at this point?\n * Used to hold the state needed for `observableRequiresReaction`\n */\n this.allowStateReads = true;\n /**\n * If strict mode is enabled, state changes are by default not allowed\n */\n this.enforceActions = true;\n /**\n * Spy callbacks\n */\n this.spyListeners = [];\n /**\n * Globally attached error handlers that react specifically to errors in reactions\n */\n this.globalReactionErrorHandlers = [];\n /**\n * Warn if computed values are accessed outside a reactive context\n */\n this.computedRequiresReaction = false;\n /**\n * (Experimental)\n * Warn if you try to create to derivation / reactive context without accessing any observable.\n */\n this.reactionRequiresObservable = false;\n /**\n * (Experimental)\n * Warn if observables are accessed outside a reactive context\n */\n this.observableRequiresReaction = false;\n /*\n * Don't catch and rethrow exceptions. This is useful for inspecting the state of\n * the stack when an exception occurs while debugging.\n */\n this.disableErrorBoundaries = false;\n /*\n * If true, we are already handling an exception in an action. Any errors in reactions should be suppressed, as\n * they are not the cause, see: https://github.com/mobxjs/mobx/issues/1836\n */\n this.suppressReactionErrors = false;\n this.useProxies = true;\n /*\n * print warnings about code that would fail if proxies weren't available\n */\n this.verifyProxies = false;\n /**\n * False forces all object's descriptors to\n * writable: true\n * configurable: true\n */\n this.safeDescriptors = true;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\n * For testing purposes only; this will break the internal state of existing observables,\n * but can be used to get back at a stable state after throwing errors\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\n * Avoids unnecessary recalculations.\n */\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\n * Simple optimization, give each derivation run an unique id (runId)\n * Check if last time this observable was accessed the same runId is used\n * if this is the case, the relation is already known\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved && globalState.trackingContext) {\n observable.isBeingObserved = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\n * It will propagate changes to observers from previous run\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\n * Hopefully self reruning autoruns aren't a feature people should depend on\n * Also most basic use cases should be ok\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if (process.env.NODE_ENV !== \"production\" && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if (process.env.NODE_ENV !== \"production\" && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"Reaction@\" + getNextId() : \"Reaction\";\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n // nodes we are looking at. Our value depends on these nodes\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.flags_ = 0;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled) {\n this.isScheduled = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n }\n /**\n * internal, use schedule() if you intend to kick off a reaction\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed) {\n startBatch();\n this.isScheduled = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending = true;\n try {\n this.onInvalidate_();\n if (process.env.NODE_ENV !== \"production\" && this.isTrackPending && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if (process.env.NODE_ENV !== \"production\" && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning = false;\n this.isTrackPending = false;\n if (this.isDisposed) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if (process.env.NODE_ENV !== \"production\" && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = process.env.NODE_ENV !== \"production\" ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : \"[mobx] uncaught error in '\" + this + \"'\";\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if (process.env.NODE_ENV !== \"production\" && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed) {\n this.isDisposed = true;\n if (!this.isRunning) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null || abortSignal.removeEventListener == null || abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null || abortSignal.addEventListener == null || abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return _createClass(Reaction, [{\n key: \"isDisposed\",\n get: function get() {\n return getFlag(this.flags_, Reaction.isDisposedMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, Reaction.isDisposedMask_, newValue);\n }\n }, {\n key: \"isScheduled\",\n get: function get() {\n return getFlag(this.flags_, Reaction.isScheduledMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, Reaction.isScheduledMask_, newValue);\n }\n }, {\n key: \"isTrackPending\",\n get: function get() {\n return getFlag(this.flags_, Reaction.isTrackPendingMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, Reaction.isTrackPendingMask_, newValue);\n }\n }, {\n key: \"isRunning\",\n get: function get() {\n return getFlag(this.flags_, Reaction.isRunningMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, Reaction.isRunningMask_, newValue);\n }\n }, {\n key: \"diffValue\",\n get: function get() {\n return getFlag(this.flags_, Reaction.diffValueMask_) ? 1 : 0;\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, Reaction.diffValueMask_, newValue === 1 ? true : false);\n }\n }]);\n}();\nReaction.isDisposedMask_ = 1;\nReaction.isScheduledMask_ = 2;\nReaction.isTrackPendingMask_ = 4;\nReaction.isRunningMask_ = 8;\nReaction.diffValueMask_ = 16;\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\n * Magic number alert!\n * Defines within how many times a reaction is allowed to re-trigger itself\n * until it is assumed that this is gonna be a never ending loop...\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error(process.env.NODE_ENV !== \"production\" ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : \"[mobx] cycle in reaction: \" + allReactions[0]);\n allReactions.splice(0); // clear reactions\n }\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return process.env.NODE_ENV !== \"production\" && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n } // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\"[mobx.spy] Is a no-op in production builds\");\n return function () {};\n } else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"<unnamed action>\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return (autoAction ? autoActionAnnotation : actionAnnotation).decorate_20223_(arg1, arg2);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (process.env.NODE_ENV !== \"production\") {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\n * Creates a named reactive view and keeps it alive, so that the view is always\n * updated if one of the dependencies changes, even when the view is not further used by something else.\n * @param view The reactive view\n * @returns disposer function, which can be used to stop the view from being updated in the future.\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : process.env.NODE_ENV !== \"production\" ? view.name || \"Autorun@\" + getNextId() : \"Autorun\";\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2 = _opts2.signal) != null && _opts2.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : process.env.NODE_ENV !== \"production\" ? \"Reaction@\" + getNextId() : \"Reaction\";\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed) {\n return;\n }\n var changed = false;\n var oldValue = value;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4 = _opts4.signal) != null && _opts4.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if (process.env.NODE_ENV !== \"production\" && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (process.env.NODE_ENV !== \"production\") {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return flowAnnotation.decorate_20223_(arg1, arg2);\n }\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if (process.env.NODE_ENV !== \"production\" && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"<unnamed flow>\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if (process.env.NODE_ENV !== \"production\" && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (process.env.NODE_ENV !== \"production\") {\n return die(\"Expected observable map, object or array as first array\");\n }\n if (process.env.NODE_ENV !== \"production\" && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if (process.env.NODE_ENV !== \"production\" && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if (process.env.NODE_ENV !== \"production\" && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if (process.env.NODE_ENV !== \"production\" && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if (process.env.NODE_ENV !== \"production\" && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if (process.env.NODE_ENV !== \"production\" && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\n * Recursively converts an observable to it's non-observable native counterpart.\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\n * Computed and other non-enumerable properties are completely ignored.\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\n */\nfunction toJS(source, options) {\n if (process.env.NODE_ENV !== \"production\" && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\n * During a transaction no views are updated until the end of the transaction.\n * The transaction will be run synchronously nonetheless.\n *\n * @param action a function that updates some reactive state\n * @returns any value that was returned by the 'action' parameter.\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = process.env.NODE_ENV !== \"production\" ? opts.name || \"When@\" + getNextId() : \"When\";\n var effectAction = createAction(process.env.NODE_ENV !== \"production\" ? opts.name + \"-effect\" : \"When-effect\", effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if (process.env.NODE_ENV !== \"production\" && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null || (_opts$signal2 = opts.signal) == null || _opts$signal2.addEventListener == null || _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null || (_opts$signal3 = opts.signal) == null || _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if (process.env.NODE_ENV !== \"production\" && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if (process.env.NODE_ENV !== \"production\" && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (process.env.NODE_ENV !== \"production\") {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (process.env.NODE_ENV !== \"production\") {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if (process.env.NODE_ENV !== \"production\" && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if (process.env.NODE_ENV !== \"production\" && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set<PropertyKey>()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = process.env.NODE_ENV !== \"production\" ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n // this is the prop that gets proxied, so can't replace it!\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, process.env.NODE_ENV !== \"production\" ? name + \"[..]\" : \"ObservableArray[..]\");\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || process.env.NODE_ENV !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn(process.env.NODE_ENV !== \"production\" ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : \"[mobx] Out of bounds read: \" + index);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n // since \"this\" is the real array we need to pass its proxy\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = process.env.NODE_ENV !== \"production\" ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\n * since these functions alter the inner structure of the array, the have side effects.\n * Because the have side effects, they should not be used in computed function,\n * and for that reason the do not call dependencyState.notifyObserved\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\n * Wrap function from prototype\n * Without this, everything works as well, but this works\n * faster as everything works on unproxied values\n */\naddArrayExtension(\"at\", simpleFunc);\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\naddArrayExtension(\"toSorted\", simpleFunc);\naddArrayExtension(\"toSpliced\", simpleFunc);\naddArrayExtension(\"with\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"findLast\", mapLikeFunc);\naddArrayExtension(\"findLastIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\naddArrayExtension(\"toReversed\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\nvar ObservableMap = /*#__PURE__*/function () {\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"ObservableMap@\" + getNextId() : \"ObservableMap\";\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n // hasMap, not hashMap >-).\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom(process.env.NODE_ENV !== \"production\" ? _this.name_ + \".keys()\" : \"ObservableMap.keys()\");\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + stringifyKey(key) + \"?\" : \"ObservableMap.key?\", false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null || _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, process.env.NODE_ENV !== \"production\" ? _this4.name_ + \".\" + stringifyKey(key) : \"ObservableMap.key\", false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null || _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterableForMap({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterableForMap({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[Symbol.iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (!isPlainES6Map(other)) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (process.env.NODE_ENV !== \"production\" && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n return _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: Symbol.toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction makeIterableForMap(iterator) {\n iterator[Symbol.toStringTag] = \"MapIterator\";\n return makeIterable(iterator);\n}\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar ObservableSetMarker = {};\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"ObservableSet@\" + getNextId() : \"ObservableSet\";\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // implemented reassignment same as it's done for ObservableMap\n value = change.newValue;\n }\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var values = this.values();\n return makeIterableForSet({\n next: function next() {\n var _values$next = values.next(),\n value = _values$next.value,\n done = _values$next.done;\n return !done ? {\n value: [value, value],\n done: done\n } : {\n value: undefined,\n done: done\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var values = this.data_.values();\n return makeIterableForSet({\n next: function next() {\n var _values$next2 = values.next(),\n value = _values$next2.value,\n done = _values$next2.done;\n return !done ? {\n value: self.dehanceValue_(value),\n done: done\n } : {\n value: undefined,\n done: done\n };\n }\n });\n };\n _proto.intersection = function intersection(otherSet) {\n if (isES6Set(otherSet) && !isObservableSet(otherSet)) {\n return otherSet.intersection(this);\n } else {\n var dehancedSet = new Set(this);\n return dehancedSet.intersection(otherSet);\n }\n };\n _proto.union = function union(otherSet) {\n if (isES6Set(otherSet) && !isObservableSet(otherSet)) {\n return otherSet.union(this);\n } else {\n var dehancedSet = new Set(this);\n return dehancedSet.union(otherSet);\n }\n };\n _proto.difference = function difference(otherSet) {\n return new Set(this).difference(otherSet);\n };\n _proto.symmetricDifference = function symmetricDifference(otherSet) {\n if (isES6Set(otherSet) && !isObservableSet(otherSet)) {\n return otherSet.symmetricDifference(this);\n } else {\n var dehancedSet = new Set(this);\n return dehancedSet.symmetricDifference(otherSet);\n }\n };\n _proto.isSubsetOf = function isSubsetOf(otherSet) {\n return new Set(this).isSubsetOf(otherSet);\n };\n _proto.isSupersetOf = function isSupersetOf(otherSet) {\n return new Set(this).isSupersetOf(otherSet);\n };\n _proto.isDisjointFrom = function isDisjointFrom(otherSet) {\n if (isES6Set(otherSet) && !isObservableSet(otherSet)) {\n return otherSet.isDisjointFrom(this);\n } else {\n var dehancedSet = new Set(this);\n return dehancedSet.isDisjointFrom(otherSet);\n }\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if (process.env.NODE_ENV !== \"production\" && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[Symbol.iterator] = function () {\n return this.values();\n };\n return _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: Symbol.toStringTag,\n get: function get() {\n return \"Set\";\n }\n }]);\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\nfunction makeIterableForSet(iterator) {\n iterator[Symbol.toStringTag] = \"SetIterator\";\n return makeIterable(iterator);\n}\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom(process.env.NODE_ENV !== \"production\" ? this.name_ + \".keys\" : \"ObservableObject.keys\");\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if (process.env.NODE_ENV !== \"production\" && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (process.env.NODE_ENV !== \"production\") {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\n * @param {PropertyKey} key\n * @param {any} value\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + stringifyKey(key) + \"?\" : \"ObservableObject.key?\", false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\n * @param {PropertyKey} key\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* MakeResult.Cancel */) {\n return;\n }\n if (outcome === 1 /* MakeResult.Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + key.toString() : \"ObservableObject.key\", false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + key.toString() : \"ObservableObject.key\");\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (process.env.NODE_ENV !== \"production\") {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null || (_this$pendingKeys_ = _this$pendingKeys_.get(key)) == null || _this$pendingKeys_.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if (process.env.NODE_ENV !== \"production\" && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2;\n var notify = hasListeners(this);\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null || (_this$pendingKeys_2 = _this$pendingKeys_2.get(key)) == null || _this$pendingKeys_2.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if (process.env.NODE_ENV !== \"production\" && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if (process.env.NODE_ENV !== \"production\" && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if (process.env.NODE_ENV !== \"production\" && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : process.env.NODE_ENV !== \"production\" ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : \"ObservableObject\";\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (process.env.NODE_ENV !== \"production\") {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null || delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if (process.env.NODE_ENV !== \"production\" && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\n // Configurable, not sealed, not frozen\n // Possibly not needed, just a little better error then the one thrown by engine.\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\n if (__DEV__) {\n const configurable = getDescriptor(adm.target_, key)?.configurable\n const frozen = Object.isFrozen(adm.target_)\n const sealed = Object.isSealed(adm.target_)\n if (!configurable || frozen || sealed) {\n const fieldName = `${adm.name_}.${key.toString()}`\n const requestedAnnotationType = annotation.annotationType_\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\n if (frozen) {\n error += `\\nObject is frozen.`\n }\n if (sealed) {\n error += `\\nObject is sealed.`\n }\n if (!configurable) {\n error += `\\nproperty is not configurable.`\n // Mention only if caused by us to avoid confusion\n if (hasProp(adm.appliedAnnotations!, key)) {\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\n }\n }\n die(error)\n }\n }\n */\n // Not annotated\n if (process.env.NODE_ENV !== \"production\" && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\n * This array buffer contains two lists of properties, so that all arrays\n * can recycle their property definitions, which significantly improves performance of creating\n * properties on the fly.\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray) {\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = process.env.NODE_ENV !== \"production\" ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _this;\n addHiddenFinalProp(_this, $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter until any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_this, \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n _inheritsLoose(LegacyObservableArray, _StubArray);\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[Symbol.iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n return _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: Symbol.toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n}(StubArray);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\n * Helper function for initializing observable structures, it applies:\n * 1. allowStateChanges so we don't violate enforceActions.\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\n * 3. batch to avoid state version updates\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Modified: \"Deep compare objects\" part to iterate over keys in forward order instead of reverse order.\n//\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var _length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== _length) {\n return false;\n }\n for (var i = 0; i < _length; i++) {\n // Deep compare each member\n var key = keys[i];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nvar _getGlobal$Iterator;\n// safely get iterator prototype if available\nvar maybeIteratorPrototype = ((_getGlobal$Iterator = /*#__PURE__*/getGlobal().Iterator) == null ? void 0 : _getGlobal$Iterator.prototype) || {};\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return Object.assign(Object.create(maybeIteratorPrototype), iterator);\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\n * (c) Michel Weststrate 2015 - 2020\n * MIT Licensed\n *\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\n * this is a good place to start:\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n *\n * Source folders:\n * ===============\n *\n * - api/ Most of the public static methods exposed by the module can be found here.\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\n * - utils/ Utility stuff.\n *\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\nexport { $mobx, FlowCancellationError, ObservableMap, ObservableSet, Reaction, allowStateChanges as _allowStateChanges, runInAction as _allowStateChangesInsideComputed, allowStateReadsEnd as _allowStateReadsEnd, allowStateReadsStart as _allowStateReadsStart, autoAction as _autoAction, _endAction, getAdministration as _getAdministration, getGlobalState as _getGlobalState, interceptReads as _interceptReads, isComputingDerivation as _isComputingDerivation, resetGlobalState as _resetGlobalState, _startAction, action, autorun, comparer, computed, configure, createAtom, apiDefineProperty as defineProperty, entries, extendObservable, flow, flowResult, get, getAtom, getDebugName, getDependencyTree, getObserverTree, has, intercept, isAction, isObservableValue as isBoxedObservable, isComputed, isComputedProp, isFlow, isFlowCancellationError, isObservable, isObservableArray, isObservableMap, isObservableObject, isObservableProp, isObservableSet, keys, makeAutoObservable, makeObservable, observable, observe, onBecomeObserved, onBecomeUnobserved, onReactionError, override, apiOwnKeys as ownKeys, reaction, remove, runInAction, set, spy, toJS, trace, transaction, untracked, values, when };\n//# sourceMappingURL=mobx.esm.js.map\n","export const SUPPORTED_CLIENTS = ['Deluge', 'qBittorrent', 'rTorrent', 'Transmission'] as const;\n","import {FC, useState} from 'react';\nimport {Trans, useLingui} from '@lingui/react';\n\nimport {FormGroup, FormRow, FormRowGroup, Textbox} from '@client/ui';\n\nimport type {DelugeConnectionSettings} from '@shared/schema/ClientConnectionSettings';\n\nexport interface DelugeConnectionSettingsProps {\n onSettingsChange: (settings: DelugeConnectionSettings | null) => void;\n}\n\nconst DelugeConnectionSettingsForm: FC<DelugeConnectionSettingsProps> = ({\n onSettingsChange,\n}: DelugeConnectionSettingsProps) => {\n const {i18n} = useLingui();\n const [settings, setSettings] = useState<DelugeConnectionSettings>({\n client: 'Deluge',\n type: 'rpc',\n version: 1,\n host: '127.0.0.1',\n port: 58846,\n username: '',\n password: '',\n });\n\n const handleFormChange = (field: 'host' | 'port' | 'username' | 'password', value: string | number): void => {\n const newSettings = {\n ...settings,\n [field]: value,\n };\n\n if (!newSettings.host || Number.isNaN(newSettings.port)) {\n onSettingsChange(null);\n } else {\n onSettingsChange(newSettings);\n }\n\n setSettings(newSettings);\n };\n\n return (\n <FormRow>\n <FormGroup>\n <FormRowGroup>\n <FormRow>\n <Textbox\n onChange={(e) => handleFormChange('host', e.target.value)}\n id=\"host\"\n label={<Trans id=\"connection.settings.deluge.host\" />}\n placeholder={i18n._('connection.settings.deluge.host.input.placeholder')}\n />\n <Textbox\n onChange={(e) => handleFormChange('port', Number(e.target.value))}\n id=\"port\"\n label={<Trans id=\"connection.settings.deluge.port\" />}\n placeholder={i18n._('connection.settings.deluge.port.input.placeholder')}\n />\n </FormRow>\n </FormRowGroup>\n <FormRowGroup>\n <FormRow>\n <Textbox\n onChange={(e) => handleFormChange('username', e.target.value)}\n id=\"deluge-username\"\n label={<Trans id=\"connection.settings.deluge.username\" />}\n placeholder={i18n._('connection.settings.deluge.username.input.placeholder')}\n autoComplete=\"off\"\n />\n <Textbox\n onChange={(e) => handleFormChange('password', e.target.value)}\n id=\"deluge-password\"\n label={<Trans id=\"connection.settings.deluge.password\" />}\n placeholder={i18n._('connection.settings.deluge.password.input.placeholder')}\n autoComplete=\"off\"\n type=\"password\"\n />\n </FormRow>\n </FormRowGroup>\n </FormGroup>\n </FormRow>\n );\n};\n\nexport default DelugeConnectionSettingsForm;\n","import {FC, useState} from 'react';\nimport {Trans, useLingui} from '@lingui/react';\n\nimport {FormGroup, FormRow, Textbox} from '@client/ui';\n\nimport type {QBittorrentConnectionSettings} from '@shared/schema/ClientConnectionSettings';\n\nexport interface QBittorrentConnectionSettingsProps {\n onSettingsChange: (settings: QBittorrentConnectionSettings | null) => void;\n}\n\nconst QBittorrentConnectionSettingsForm: FC<QBittorrentConnectionSettingsProps> = ({\n onSettingsChange,\n}: QBittorrentConnectionSettingsProps) => {\n const {i18n} = useLingui();\n const [settings, setSettings] = useState<QBittorrentConnectionSettings>({\n client: 'qBittorrent',\n type: 'web',\n version: 1,\n url: '',\n username: '',\n password: '',\n });\n\n const handleFormChange = (field: 'url' | 'username' | 'password', value: string): void => {\n const newSettings = {\n ...settings,\n [field]: value,\n };\n\n if (newSettings.url == null || newSettings.url === '') {\n onSettingsChange(null);\n } else {\n onSettingsChange(newSettings);\n }\n\n setSettings(newSettings);\n };\n\n return (\n <FormRow>\n <FormGroup>\n <FormRow>\n <Textbox\n onChange={(e) => handleFormChange('url', e.target.value)}\n id=\"url\"\n label={<Trans id=\"connection.settings.qbittorrent.url\" />}\n placeholder={i18n._('connection.settings.qbittorrent.url.input.placeholder')}\n />\n </FormRow>\n <FormRow>\n <Textbox\n onChange={(e) => handleFormChange('username', e.target.value)}\n id=\"qbt-username\"\n label={<Trans id=\"connection.settings.qbittorrent.username\" />}\n placeholder={i18n._('connection.settings.qbittorrent.username.input.placeholder')}\n autoComplete=\"off\"\n />\n <Textbox\n onChange={(e) => handleFormChange('password', e.target.value)}\n id=\"qbt-password\"\n label={<Trans id=\"connection.settings.qbittorrent.password\" />}\n placeholder={i18n._('connection.settings.qbittorrent.password.input.placeholder')}\n autoComplete=\"off\"\n type=\"password\"\n />\n </FormRow>\n </FormGroup>\n </FormRow>\n );\n};\n\nexport default QBittorrentConnectionSettingsForm;\n","import {FC, useState} from 'react';\nimport {Trans, useLingui} from '@lingui/react';\n\nimport {FormError, FormGroup, FormRow, FormRowGroup, Radio, Textbox} from '@client/ui';\n\nimport type {RTorrentConnectionSettings, RTorrentTCPConnectionSettings} from '@shared/schema/ClientConnectionSettings';\n\nexport interface RTorrentConnectionSettingsProps {\n onSettingsChange: (settings: RTorrentConnectionSettings | null) => void;\n}\n\nconst RTorrentConnectionSettingsForm: FC<RTorrentConnectionSettingsProps> = ({\n onSettingsChange,\n}: RTorrentConnectionSettingsProps) => {\n const {i18n} = useLingui();\n const [type, setType] = useState<'tcp' | 'socket'>('socket');\n const [settings, setSettings] = useState<RTorrentConnectionSettings | null>(null);\n\n const handleFormChange = (field: 'host' | 'port' | 'socket', value: string | number): void => {\n let newSettings: RTorrentConnectionSettings | null = null;\n\n if (field === 'host' || field === 'port') {\n newSettings = {\n client: 'rTorrent',\n type: 'tcp',\n version: 1,\n host: (settings as RTorrentTCPConnectionSettings)?.host ?? '',\n port: (settings as RTorrentTCPConnectionSettings)?.port ?? 5000,\n ...{[field]: value},\n };\n }\n\n if (field === 'socket') {\n newSettings = {\n client: 'rTorrent',\n type: 'socket',\n version: 1,\n socket: value as string,\n };\n }\n\n onSettingsChange(newSettings);\n setSettings(newSettings);\n };\n\n return (\n <FormRow>\n <FormGroup>\n <FormRow>\n <FormGroup label={i18n._('connection.settings.rtorrent.type')}>\n <FormRow>\n <Radio\n onClick={() => {\n setType('socket');\n }}\n groupID=\"type\"\n id=\"socket\"\n grow={false}\n defaultChecked={type === 'socket'}\n >\n <Trans id=\"connection.settings.rtorrent.type.socket\" />\n </Radio>\n <Radio\n onClick={() => {\n setType('tcp');\n }}\n groupID=\"type\"\n id=\"tcp\"\n grow={false}\n defaultChecked={type === 'tcp'}\n >\n <Trans id=\"connection.settings.rtorrent.type.tcp\" />\n </Radio>\n </FormRow>\n </FormGroup>\n </FormRow>\n {type === 'tcp' ? (\n <FormRowGroup>\n <FormRow>\n <FormError>{i18n._('connection.settings.rtorrent.type.tcp.warning')}</FormError>\n </FormRow>\n <FormRow>\n <Textbox\n onChange={(e) => handleFormChange('host', e.target.value)}\n id=\"host\"\n label={<Trans id=\"connection.settings.rtorrent.host\" />}\n placeholder={i18n._('connection.settings.rtorrent.host.input.placeholder')}\n />\n <Textbox\n onChange={(e) => handleFormChange('port', Number(e.target.value))}\n id=\"port\"\n label={<Trans id=\"connection.settings.rtorrent.port\" />}\n placeholder={i18n._('connection.settings.rtorrent.port.input.placeholder')}\n />\n </FormRow>\n </FormRowGroup>\n ) : (\n <FormRow>\n <Textbox\n onChange={(e) => handleFormChange('socket', e.target.value)}\n id=\"socket\"\n label={<Trans id=\"connection.settings.rtorrent.socket\" />}\n placeholder={i18n._('connection.settings.rtorrent.socket.input.placeholder')}\n />\n </FormRow>\n )}\n </FormGroup>\n </FormRow>\n );\n};\n\nexport default RTorrentConnectionSettingsForm;\n","import {FC, useState} from 'react';\nimport {Trans, useLingui} from '@lingui/react';\n\nimport {FormGroup, FormRow, Textbox} from '@client/ui';\n\nimport type {TransmissionConnectionSettings} from '@shared/schema/ClientConnectionSettings';\n\nexport interface TransmissionConnectionSettingsProps {\n onSettingsChange: (settings: TransmissionConnectionSettings | null) => void;\n}\n\nconst TransmissionConnectionSettingsForm: FC<TransmissionConnectionSettingsProps> = ({\n onSettingsChange,\n}: TransmissionConnectionSettingsProps) => {\n const {i18n} = useLingui();\n const [settings, setSettings] = useState<TransmissionConnectionSettings>({\n client: 'Transmission',\n type: 'rpc',\n version: 1,\n url: '',\n username: '',\n password: '',\n });\n\n const handleFormChange = (field: 'url' | 'username' | 'password', value: string): void => {\n const newSettings = {\n ...settings,\n [field]: value,\n };\n\n if (newSettings.url == null || newSettings.url === '') {\n onSettingsChange(null);\n } else {\n onSettingsChange(newSettings);\n }\n\n setSettings(newSettings);\n };\n\n return (\n <FormRow>\n <FormGroup>\n <FormRow>\n <Textbox\n onChange={(e) => handleFormChange('url', e.target.value)}\n id=\"url\"\n label={<Trans id=\"connection.settings.transmission.url\" />}\n placeholder={i18n._('connection.settings.transmission.url.input.placeholder')}\n />\n </FormRow>\n <FormRow>\n <Textbox\n onChange={(e) => handleFormChange('username', e.target.value)}\n id=\"transmission-username\"\n label={<Trans id=\"connection.settings.transmission.username\" />}\n placeholder={i18n._('connection.settings.transmission.username.input.placeholder')}\n autoComplete=\"off\"\n />\n <Textbox\n onChange={(e) => handleFormChange('password', e.target.value)}\n id=\"transmission-password\"\n label={<Trans id=\"connection.settings.transmission.password\" />}\n placeholder={i18n._('connection.settings.transmission.password.input.placeholder')}\n autoComplete=\"off\"\n type=\"password\"\n />\n </FormRow>\n </FormGroup>\n </FormRow>\n );\n};\n\nexport default TransmissionConnectionSettingsForm;\n","import {FC, ReactNode, useState} from 'react';\nimport {Trans, useLingui} from '@lingui/react';\nimport {usePrevious} from 'react-use';\n\nimport {FormRow, Select, SelectItem} from '@client/ui';\n\nimport {SUPPORTED_CLIENTS} from '@shared/schema/constants/ClientConnectionSettings';\n\nimport type {ClientConnectionSettings} from '@shared/schema/ClientConnectionSettings';\n\nimport DelugeConnectionSettingsForm from './DelugeConnectionSettingsForm';\nimport QBittorrentConnectionSettingsForm from './QBittorrentConnectionSettingsForm';\nimport RTorrentConnectionSettingsForm from './RTorrentConnectionSettingsForm';\nimport TransmissionConnectionSettingsForm from './TransmissionConnectionSettingsForm';\n\nconst DEFAULT_SELECTION: ClientConnectionSettings['client'] = 'rTorrent' as const;\n\ninterface ClientConnectionSettingsFormProps {\n onSettingsChange: (settings: ClientConnectionSettings | null) => void;\n}\n\nconst ClientConnectionSettingsForm: FC<ClientConnectionSettingsFormProps> = ({\n onSettingsChange,\n}: ClientConnectionSettingsFormProps) => {\n const {i18n} = useLingui();\n const [selectedClient, setSelectedClient] = useState<ClientConnectionSettings['client']>(DEFAULT_SELECTION);\n\n const prevSelectedClient = usePrevious(selectedClient);\n\n if (selectedClient !== prevSelectedClient) {\n onSettingsChange(null);\n }\n\n let settingsForm: ReactNode = null;\n switch (selectedClient) {\n case 'Deluge':\n settingsForm = <DelugeConnectionSettingsForm onSettingsChange={onSettingsChange} />;\n break;\n case 'qBittorrent':\n settingsForm = <QBittorrentConnectionSettingsForm onSettingsChange={onSettingsChange} />;\n break;\n case 'rTorrent':\n settingsForm = <RTorrentConnectionSettingsForm onSettingsChange={onSettingsChange} />;\n break;\n case 'Transmission':\n settingsForm = <TransmissionConnectionSettingsForm onSettingsChange={onSettingsChange} />;\n break;\n default:\n break;\n }\n\n return (\n <div>\n <FormRow>\n <Select\n id=\"client\"\n label={i18n._('connection.settings.client.select')}\n onSelect={(newSelectedClient) => {\n setSelectedClient(newSelectedClient as ClientConnectionSettings['client']);\n }}\n defaultID={DEFAULT_SELECTION}\n >\n {SUPPORTED_CLIENTS.map((client) => (\n <SelectItem key={client} id={client}>\n <Trans id={`connection.settings.${client.toLowerCase()}`} />\n </SelectItem>\n ))}\n </Select>\n </FormRow>\n {settingsForm}\n </div>\n );\n};\n\nexport default ClientConnectionSettingsForm;\n","import { useEffect, useRef } from 'react';\nexport default function usePrevious(state) {\n var ref = useRef();\n useEffect(function () {\n ref.current = state;\n });\n return ref.current;\n}\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import classnames from 'classnames';\nimport {FC} from 'react';\n\ninterface LoadingRingProps {\n size?: string;\n}\n\nconst LoadingRing: FC<LoadingRingProps> = ({size = 'small'}: LoadingRingProps = {}) => {\n const classes = classnames('icon icon--loading icon--loading--ring', {\n 'icon--small': size === 'small',\n });\n\n return (\n <div className={classes}>\n <div className=\"icon__element\">\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\">\n <g fill=\"none\" fillRule=\"evenodd\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\">\n <circle strokeOpacity=\"0.2\" cx=\"9\" cy=\"9\" r=\"6\" />\n </g>\n </svg>\n </div>\n <div className=\"icon__element icon__ring-slice\">\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\">\n <g fill=\"none\" fillRule=\"evenodd\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\">\n <path d=\"M9,3 C7.227,3 5.633,3.769 4.535,4.992\" />\n </g>\n </svg>\n </div>\n </div>\n );\n};\n\nexport default LoadingRing;\n","// src/assert.ts\nfunction isObject(value) {\n return typeof value === \"object\" && value != null && !Array.isArray(value);\n}\nvar isObjectOrArray = (obj) => typeof obj === \"object\" && obj !== null;\n\n// src/compact.ts\nfunction compact(value) {\n return Object.fromEntries(Object.entries(value ?? {}).filter(([_, value2]) => value2 !== void 0));\n}\n\n// src/condition.ts\nvar isBaseCondition = (v) => v === \"base\";\nfunction filterBaseConditions(c) {\n return c.slice().filter((v) => !isBaseCondition(v));\n}\n\n// src/hash.ts\nfunction toChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n}\nfunction toName(code) {\n let name = \"\";\n let x;\n for (x = Math.abs(code); x > 52; x = x / 52 | 0) name = toChar(x % 52) + name;\n return toChar(x % 52) + name;\n}\nfunction toPhash(h, x) {\n let i = x.length;\n while (i) h = h * 33 ^ x.charCodeAt(--i);\n return h;\n}\nfunction toHash(value) {\n return toName(toPhash(5381, value) >>> 0);\n}\n\n// src/important.ts\nvar importantRegex = /\\s*!(important)?/i;\nfunction isImportant(value) {\n return typeof value === \"string\" ? importantRegex.test(value) : false;\n}\nfunction withoutImportant(value) {\n return typeof value === \"string\" ? value.replace(importantRegex, \"\").trim() : value;\n}\nfunction withoutSpace(str) {\n return typeof str === \"string\" ? str.replaceAll(\" \", \"_\") : str;\n}\n\n// src/memo.ts\nvar memo = (fn) => {\n const cache = /* @__PURE__ */ new Map();\n const get = (...args) => {\n const key = JSON.stringify(args);\n if (cache.has(key)) {\n return cache.get(key);\n }\n const result = fn(...args);\n cache.set(key, result);\n return result;\n };\n return get;\n};\n\n// src/merge-props.ts\nvar MERGE_OMIT = /* @__PURE__ */ new Set([\"__proto__\", \"constructor\", \"prototype\"]);\nfunction mergeProps(...sources) {\n return sources.reduce((prev, obj) => {\n if (!obj) return prev;\n Object.keys(obj).forEach((key) => {\n if (MERGE_OMIT.has(key)) return;\n const prevValue = prev[key];\n const value = obj[key];\n if (isObject(prevValue) && isObject(value)) {\n prev[key] = mergeProps(prevValue, value);\n } else {\n prev[key] = value;\n }\n });\n return prev;\n }, {});\n}\n\n// src/walk-object.ts\nvar isNotNullish = (element) => element != null;\nfunction walkObject(target, predicate, options = {}) {\n const { stop, getKey } = options;\n function inner(value, path = []) {\n if (isObjectOrArray(value)) {\n const result = {};\n for (const [prop, child] of Object.entries(value)) {\n const key = getKey?.(prop, child) ?? prop;\n const childPath = [...path, key];\n if (stop?.(value, childPath)) {\n return predicate(value, path);\n }\n const next = inner(child, childPath);\n if (isNotNullish(next)) {\n result[key] = next;\n }\n }\n return result;\n }\n return predicate(value, path);\n }\n return inner(target);\n}\nfunction mapObject(obj, fn) {\n if (Array.isArray(obj)) return obj.map((value) => fn(value));\n if (!isObject(obj)) return fn(obj);\n return walkObject(obj, (value) => fn(value));\n}\n\n// src/normalize-style-object.ts\nfunction toResponsiveObject(values, breakpoints) {\n return values.reduce(\n (acc, current, index) => {\n const key = breakpoints[index];\n if (current != null) {\n acc[key] = current;\n }\n return acc;\n },\n {}\n );\n}\nfunction normalizeStyleObject(styles, context, shorthand = true) {\n const { utility, conditions } = context;\n const { hasShorthand, resolveShorthand } = utility;\n return walkObject(\n styles,\n (value) => {\n return Array.isArray(value) ? toResponsiveObject(value, conditions.breakpoints.keys) : value;\n },\n {\n stop: (value) => Array.isArray(value),\n getKey: shorthand ? (prop) => hasShorthand ? resolveShorthand(prop) : prop : void 0\n }\n );\n}\n\n// src/classname.ts\nvar fallbackCondition = {\n shift: (v) => v,\n finalize: (v) => v,\n breakpoints: { keys: [] }\n};\nvar sanitize = (value) => typeof value === \"string\" ? value.replaceAll(/[\\n\\s]+/g, \" \") : value;\nfunction createCss(context) {\n const { utility, hash, conditions: conds = fallbackCondition } = context;\n const formatClassName = (str) => [utility.prefix, str].filter(Boolean).join(\"-\");\n const hashFn = (conditions, className) => {\n let result;\n if (hash) {\n const baseArray = [...conds.finalize(conditions), className];\n result = formatClassName(utility.toHash(baseArray, toHash));\n } else {\n const baseArray = [...conds.finalize(conditions), formatClassName(className)];\n result = baseArray.join(\":\");\n }\n return result;\n };\n return memo(({ base, ...styles } = {}) => {\n const styleObject = Object.assign(styles, base);\n const normalizedObject = normalizeStyleObject(styleObject, context);\n const classNames = /* @__PURE__ */ new Set();\n walkObject(normalizedObject, (value, paths) => {\n if (value == null) return;\n const important = isImportant(value);\n const [prop, ...allConditions] = conds.shift(paths);\n const conditions = filterBaseConditions(allConditions);\n const transformed = utility.transform(prop, withoutImportant(sanitize(value)));\n let className = hashFn(conditions, transformed.className);\n if (important) className = `${className}!`;\n classNames.add(className);\n });\n return Array.from(classNames).join(\" \");\n });\n}\nfunction compactStyles(...styles) {\n return styles.flat().filter((style) => isObject(style) && Object.keys(compact(style)).length > 0);\n}\nfunction createMergeCss(context) {\n function resolve(styles) {\n const allStyles = compactStyles(...styles);\n if (allStyles.length === 1) return allStyles;\n return allStyles.map((style) => normalizeStyleObject(style, context));\n }\n function mergeCss(...styles) {\n return mergeProps(...resolve(styles));\n }\n function assignCss(...styles) {\n return Object.assign({}, ...resolve(styles));\n }\n return { mergeCss: memo(mergeCss), assignCss };\n}\n\n// src/hypenate-property.ts\nvar wordRegex = /([A-Z])/g;\nvar msRegex = /^ms-/;\nvar hypenateProperty = memo((property) => {\n if (property.startsWith(\"--\")) return property;\n return property.replace(wordRegex, \"-$1\").replace(msRegex, \"-ms-\").toLowerCase();\n});\n\n// src/is-css-function.ts\nvar fns = [\"min\", \"max\", \"clamp\", \"calc\"];\nvar fnRegExp = new RegExp(`^(${fns.join(\"|\")})\\\\(.*\\\\)`);\nvar isCssFunction = (v) => typeof v === \"string\" && fnRegExp.test(v);\n\n// src/is-css-unit.ts\nvar lengthUnits = \"cm,mm,Q,in,pc,pt,px,em,ex,ch,rem,lh,rlh,vw,vh,vmin,vmax,vb,vi,svw,svh,lvw,lvh,dvw,dvh,cqw,cqh,cqi,cqb,cqmin,cqmax,%\";\nvar lengthUnitsPattern = `(?:${lengthUnits.split(\",\").join(\"|\")})`;\nvar lengthRegExp = new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${lengthUnitsPattern}$`);\nvar isCssUnit = (v) => typeof v === \"string\" && lengthRegExp.test(v);\n\n// src/is-css-var.ts\nvar isCssVar = (v) => typeof v === \"string\" && /^var\\(--.+\\)$/.test(v);\n\n// src/pattern-fns.ts\nvar patternFns = {\n map: mapObject,\n isCssFunction,\n isCssVar,\n isCssUnit\n};\nvar getPatternStyles = (pattern, styles) => {\n if (!pattern?.defaultValues) return styles;\n const defaults = typeof pattern.defaultValues === \"function\" ? pattern.defaultValues(styles) : pattern.defaultValues;\n return Object.assign({}, defaults, compact(styles));\n};\n\n// src/slot.ts\nvar getSlotRecipes = (recipe = {}) => {\n const init = (slot) => ({\n className: [recipe.className, slot].filter(Boolean).join(\"__\"),\n base: recipe.base?.[slot] ?? {},\n variants: {},\n defaultVariants: recipe.defaultVariants ?? {},\n compoundVariants: recipe.compoundVariants ? getSlotCompoundVariant(recipe.compoundVariants, slot) : []\n });\n const slots = recipe.slots ?? [];\n const recipeParts = slots.map((slot) => [slot, init(slot)]);\n for (const [variantsKey, variantsSpec] of Object.entries(recipe.variants ?? {})) {\n for (const [variantKey, variantSpec] of Object.entries(variantsSpec)) {\n recipeParts.forEach(([slot, slotRecipe]) => {\n slotRecipe.variants[variantsKey] ??= {};\n slotRecipe.variants[variantsKey][variantKey] = variantSpec[slot] ?? {};\n });\n }\n }\n return Object.fromEntries(recipeParts);\n};\nvar getSlotCompoundVariant = (compoundVariants, slotName) => compoundVariants.filter((compoundVariant) => compoundVariant.css[slotName]).map((compoundVariant) => ({ ...compoundVariant, css: compoundVariant.css[slotName] }));\n\n// src/split-props.ts\nfunction splitProps(props, ...keys) {\n const descriptors = Object.getOwnPropertyDescriptors(props);\n const dKeys = Object.keys(descriptors);\n const split = (k) => {\n const clone = {};\n for (let i = 0; i < k.length; i++) {\n const key = k[i];\n if (descriptors[key]) {\n Object.defineProperty(clone, key, descriptors[key]);\n delete descriptors[key];\n }\n }\n return clone;\n };\n const fn = (key) => split(Array.isArray(key) ? key : dKeys.filter(key));\n return keys.map(fn).concat(split(dKeys));\n}\n\n// src/uniq.ts\nvar uniq = (...items) => {\n const set = items.reduce((acc, currItems) => {\n if (currItems) {\n currItems.forEach((item) => acc.add(item));\n }\n return acc;\n }, /* @__PURE__ */ new Set([]));\n return Array.from(set);\n};\nexport {\n compact,\n createCss,\n createMergeCss,\n filterBaseConditions,\n getPatternStyles,\n getSlotCompoundVariant,\n getSlotRecipes,\n hypenateProperty,\n isBaseCondition,\n isObject,\n mapObject,\n memo,\n mergeProps,\n patternFns,\n splitProps,\n toHash,\n uniq,\n walkObject,\n withoutSpace\n};\n\n\n\n\n\nexport function __spreadValues(a, b) {\n return { ...a, ...b }\n}\n\nexport function __objRest(source, exclude) {\n return Object.fromEntries(Object.entries(source).filter(([key]) => !exclude.includes(key)))\n}","import { withoutSpace } from '../helpers.mjs';\n\nconst conditionsStr = \"_hover,_focus,_focusWithin,_focusVisible,_disabled,_active,_visited,_target,_readOnly,_readWrite,_empty,_checked,_enabled,_expanded,_highlighted,_complete,_incomplete,_dragging,_before,_after,_firstLetter,_firstLine,_marker,_selection,_file,_backdrop,_first,_last,_only,_even,_odd,_firstOfType,_lastOfType,_onlyOfType,_peerFocus,_peerHover,_peerActive,_peerFocusWithin,_peerFocusVisible,_peerDisabled,_peerChecked,_peerInvalid,_peerExpanded,_peerPlaceholderShown,_groupFocus,_groupHover,_groupActive,_groupFocusWithin,_groupFocusVisible,_groupDisabled,_groupChecked,_groupExpanded,_groupInvalid,_indeterminate,_required,_valid,_invalid,_autofill,_inRange,_outOfRange,_placeholder,_placeholderShown,_pressed,_selected,_grabbed,_underValue,_overValue,_atValue,_default,_optional,_open,_closed,_fullscreen,_loading,_hidden,_current,_currentPage,_currentStep,_today,_unavailable,_rangeStart,_rangeEnd,_now,_topmost,_motionReduce,_motionSafe,_print,_landscape,_portrait,_dark,_light,_osDark,_osLight,_highContrast,_lessContrast,_moreContrast,_ltr,_rtl,_scrollbar,_scrollbarThumb,_scrollbarTrack,_horizontal,_vertical,_icon,_starting,_noscript,_invertedColors,sm,smOnly,smDown,md,mdOnly,mdDown,lg,lgOnly,lgDown,xl,xlOnly,xlDown,2xl,2xlOnly,2xlDown,smToMd,smToLg,smToXl,smTo2xl,mdToLg,mdToXl,mdTo2xl,lgToXl,lgTo2xl,xlTo2xl,@/xs,@/sm,@/md,@/lg,@/xl,@/2xl,@/3xl,@/4xl,@/5xl,@/6xl,@/7xl,@/8xl,base\"\nconst conditions = new Set(conditionsStr.split(','))\n\nconst conditionRegex = /^@|&|&$/\n\nexport function isCondition(value){\n return conditions.has(value) || conditionRegex.test(value)\n}\n\nconst underscoreRegex = /^_/\nconst conditionsSelectorRegex = /&|@/\n\nexport function finalizeConditions(paths){\n return paths.map((path) => {\n if (conditions.has(path)){\n return path.replace(underscoreRegex, '')\n }\n\n if (conditionsSelectorRegex.test(path)){\n return `[${withoutSpace(path.trim())}]`\n }\n\n return path\n })}\n\n export function sortConditions(paths){\n return paths.sort((a, b) => {\n const aa = isCondition(a)\n const bb = isCondition(b)\n if (aa && !bb) return 1\n if (!aa && bb) return -1\n return 0\n })\n }","import { createCss, createMergeCss, hypenateProperty, withoutSpace } from '../helpers.mjs';\nimport { sortConditions, finalizeConditions } from './conditions.mjs';\n\nconst utilities = \"aspectRatio:asp,boxDecorationBreak:bx-db,zIndex:z,boxSizing:bx-s,objectPosition:obj-p,objectFit:obj-f,overscrollBehavior:ovs-b,overscrollBehaviorX:ovs-bx,overscrollBehaviorY:ovs-by,position:pos/1,top:top,left:left,inset:inset,insetInline:inset-x/insetX,insetBlock:inset-y/insetY,insetBlockEnd:inset-be,insetBlockStart:inset-bs,insetInlineEnd:inset-e/insetEnd/end,insetInlineStart:inset-s/insetStart/start,right:right,bottom:bottom,float:float,visibility:vis,display:d,hideFrom:hide,hideBelow:show,flexBasis:flex-b,flex:flex,flexDirection:flex-d/flexDir,flexGrow:flex-g,flexShrink:flex-sh,gridTemplateColumns:grid-tc,gridTemplateRows:grid-tr,gridColumn:grid-c,gridRow:grid-r,gridColumnStart:grid-cs,gridColumnEnd:grid-ce,gridAutoFlow:grid-af,gridAutoColumns:grid-ac,gridAutoRows:grid-ar,gap:gap,gridGap:grid-g,gridRowGap:grid-rg,gridColumnGap:grid-cg,rowGap:rg,columnGap:cg,justifyContent:jc,alignContent:ac,alignItems:ai,alignSelf:as,padding:p/1,paddingLeft:pl/1,paddingRight:pr/1,paddingTop:pt/1,paddingBottom:pb/1,paddingBlock:py/1/paddingY,paddingBlockEnd:pbe,paddingBlockStart:pbs,paddingInline:px/paddingX/1,paddingInlineEnd:pe/1/paddingEnd,paddingInlineStart:ps/1/paddingStart,marginLeft:ml/1,marginRight:mr/1,marginTop:mt/1,marginBottom:mb/1,margin:m/1,marginBlock:my/1/marginY,marginBlockEnd:mbe,marginBlockStart:mbs,marginInline:mx/1/marginX,marginInlineEnd:me/1/marginEnd,marginInlineStart:ms/1/marginStart,spaceX:sx,spaceY:sy,outlineWidth:ring-w/ringWidth,outlineColor:ring-c/ringColor,outline:ring/1,outlineOffset:ring-o/ringOffset,divideX:dvd-x,divideY:dvd-y,divideColor:dvd-c,divideStyle:dvd-s,width:w/1,inlineSize:w-is,minWidth:min-w/minW,minInlineSize:min-w-is,maxWidth:max-w/maxW,maxInlineSize:max-w-is,height:h/1,blockSize:h-bs,minHeight:min-h/minH,minBlockSize:min-h-bs,maxHeight:max-h/maxH,maxBlockSize:max-b,boxSize:size,color:c,fontFamily:ff,fontSize:fs,fontSizeAdjust:fs-a,fontPalette:fp,fontKerning:fk,fontFeatureSettings:ff-s,fontWeight:fw,fontSmoothing:fsmt,fontVariant:fv,fontVariantAlternates:fv-alt,fontVariantCaps:fv-caps,fontVariationSettings:fv-s,fontVariantNumeric:fv-num,letterSpacing:ls,lineHeight:lh,textAlign:ta,textDecoration:td,textDecorationColor:td-c,textEmphasisColor:te-c,textDecorationStyle:td-s,textDecorationThickness:td-t,textUnderlineOffset:tu-o,textTransform:tt,textIndent:ti,textShadow:tsh,textShadowColor:tsh-c/textShadowColor,textOverflow:tov,verticalAlign:va,wordBreak:wb,textWrap:tw,truncate:trunc,lineClamp:lc,listStyleType:li-t,listStylePosition:li-pos,listStyleImage:li-img,listStyle:li-s,backgroundPosition:bg-p/bgPosition,backgroundPositionX:bg-p-x/bgPositionX,backgroundPositionY:bg-p-y/bgPositionY,backgroundAttachment:bg-a/bgAttachment,backgroundClip:bg-cp/bgClip,background:bg/1,backgroundColor:bg-c/bgColor,backgroundOrigin:bg-o/bgOrigin,backgroundImage:bg-i/bgImage,backgroundRepeat:bg-r/bgRepeat,backgroundBlendMode:bg-bm/bgBlendMode,backgroundSize:bg-s/bgSize,backgroundGradient:bg-grad/bgGradient,backgroundLinear:bg-linear/bgLinear,backgroundRadial:bg-radial/bgRadial,backgroundConic:bg-conic/bgConic,textGradient:txt-grad,gradientFromPosition:grad-from-pos,gradientToPosition:grad-to-pos,gradientFrom:grad-from,gradientTo:grad-to,gradientVia:grad-via,gradientViaPosition:grad-via-pos,borderRadius:bdr/rounded,borderTopLeftRadius:bdr-tl/roundedTopLeft,borderTopRightRadius:bdr-tr/roundedTopRight,borderBottomRightRadius:bdr-br/roundedBottomRight,borderBottomLeftRadius:bdr-bl/roundedBottomLeft,borderTopRadius:bdr-t/roundedTop,borderRightRadius:bdr-r/roundedRight,borderBottomRadius:bdr-b/roundedBottom,borderLeftRadius:bdr-l/roundedLeft,borderStartStartRadius:bdr-ss/roundedStartStart,borderStartEndRadius:bdr-se/roundedStartEnd,borderStartRadius:bdr-s/roundedStart,borderEndStartRadius:bdr-es/roundedEndStart,borderEndEndRadius:bdr-ee/roundedEndEnd,borderEndRadius:bdr-e/roundedEnd,border:bd,borderWidth:bd-w,borderTopWidth:bd-t-w,borderLeftWidth:bd-l-w,borderRightWidth:bd-r-w,borderBottomWidth:bd-b-w,borderBlockStartWidth:bd-bs-w,borderBlockEndWidth:bd-be-w,borderColor:bd-c,borderInline:bd-x/borderX,borderInlineWidth:bd-x-w/borderXWidth,borderInlineColor:bd-x-c/borderXColor,borderBlock:bd-y/borderY,borderBlockWidth:bd-y-w/borderYWidth,borderBlockColor:bd-y-c/borderYColor,borderLeft:bd-l,borderLeftColor:bd-l-c,borderInlineStart:bd-s/borderStart,borderInlineStartWidth:bd-s-w/borderStartWidth,borderInlineStartColor:bd-s-c/borderStartColor,borderRight:bd-r,borderRightColor:bd-r-c,borderInlineEnd:bd-e/borderEnd,borderInlineEndWidth:bd-e-w/borderEndWidth,borderInlineEndColor:bd-e-c/borderEndColor,borderTop:bd-t,borderTopColor:bd-t-c,borderBottom:bd-b,borderBottomColor:bd-b-c,borderBlockEnd:bd-be,borderBlockEndColor:bd-be-c,borderBlockStart:bd-bs,borderBlockStartColor:bd-bs-c,opacity:op,boxShadow:bx-sh/shadow,boxShadowColor:bx-sh-c/shadowColor,mixBlendMode:mix-bm,filter:filter,brightness:brightness,contrast:contrast,grayscale:grayscale,hueRotate:hue-rotate,invert:invert,saturate:saturate,sepia:sepia,dropShadow:drop-shadow,blur:blur,backdropFilter:bkdp,backdropBlur:bkdp-blur,backdropBrightness:bkdp-brightness,backdropContrast:bkdp-contrast,backdropGrayscale:bkdp-grayscale,backdropHueRotate:bkdp-hue-rotate,backdropInvert:bkdp-invert,backdropOpacity:bkdp-opacity,backdropSaturate:bkdp-saturate,backdropSepia:bkdp-sepia,borderCollapse:bd-cl,borderSpacing:bd-sp,borderSpacingX:bd-sx,borderSpacingY:bd-sy,tableLayout:tbl,transitionTimingFunction:trs-tmf,transitionDelay:trs-dly,transitionDuration:trs-dur,transitionProperty:trs-prop,transition:trs,animation:anim,animationName:anim-n,animationTimingFunction:anim-tmf,animationDuration:anim-dur,animationDelay:anim-dly,animationPlayState:anim-ps,animationComposition:anim-comp,animationFillMode:anim-fm,animationDirection:anim-dir,animationIterationCount:anim-ic,animationRange:anim-r,animationState:anim-s,animationRangeStart:anim-rs,animationRangeEnd:anim-re,animationTimeline:anim-tl,transformOrigin:trf-o,transformBox:trf-b,transformStyle:trf-s,transform:trf,rotate:rotate,rotateX:rotate-x,rotateY:rotate-y,rotateZ:rotate-z,scale:scale,scaleX:scale-x,scaleY:scale-y,translate:translate,translateX:translate-x/x,translateY:translate-y/y,translateZ:translate-z/z,accentColor:ac-c,caretColor:ca-c,scrollBehavior:scr-bhv,scrollbar:scr-bar,scrollbarColor:scr-bar-c,scrollbarGutter:scr-bar-g,scrollbarWidth:scr-bar-w,scrollMargin:scr-m,scrollMarginLeft:scr-ml,scrollMarginRight:scr-mr,scrollMarginTop:scr-mt,scrollMarginBottom:scr-mb,scrollMarginBlock:scr-my/scrollMarginY,scrollMarginBlockEnd:scr-mbe,scrollMarginBlockStart:scr-mbt,scrollMarginInline:scr-mx/scrollMarginX,scrollMarginInlineEnd:scr-me,scrollMarginInlineStart:scr-ms,scrollPadding:scr-p,scrollPaddingBlock:scr-py/scrollPaddingY,scrollPaddingBlockStart:scr-pbs,scrollPaddingBlockEnd:scr-pbe,scrollPaddingInline:scr-px/scrollPaddingX,scrollPaddingInlineEnd:scr-pe,scrollPaddingInlineStart:scr-ps,scrollPaddingLeft:scr-pl,scrollPaddingRight:scr-pr,scrollPaddingTop:scr-pt,scrollPaddingBottom:scr-pb,scrollSnapAlign:scr-sa,scrollSnapStop:scrs-s,scrollSnapType:scrs-t,scrollSnapStrictness:scrs-strt,scrollSnapMargin:scrs-m,scrollSnapMarginTop:scrs-mt,scrollSnapMarginBottom:scrs-mb,scrollSnapMarginLeft:scrs-ml,scrollSnapMarginRight:scrs-mr,scrollSnapCoordinate:scrs-c,scrollSnapDestination:scrs-d,scrollSnapPointsX:scrs-px,scrollSnapPointsY:scrs-py,scrollSnapTypeX:scrs-tx,scrollSnapTypeY:scrs-ty,scrollTimeline:scrtl,scrollTimelineAxis:scrtl-a,scrollTimelineName:scrtl-n,touchAction:tch-a,userSelect:us,overflow:ov,overflowWrap:ov-wrap,overflowX:ov-x,overflowY:ov-y,overflowAnchor:ov-a,overflowBlock:ov-b,overflowInline:ov-i,overflowClipBox:ovcp-bx,overflowClipMargin:ovcp-m,overscrollBehaviorBlock:ovs-bb,overscrollBehaviorInline:ovs-bi,fill:fill,stroke:stk,strokeWidth:stk-w,strokeDasharray:stk-dsh,strokeDashoffset:stk-do,strokeLinecap:stk-lc,strokeLinejoin:stk-lj,strokeMiterlimit:stk-ml,strokeOpacity:stk-op,srOnly:sr,debug:debug,appearance:ap,backfaceVisibility:bfv,clipPath:cp-path,hyphens:hy,mask:msk,maskImage:msk-i,maskSize:msk-s,textSizeAdjust:txt-adj,container:cq,containerName:cq-n,containerType:cq-t,cursor:cursor,textStyle:textStyle\"\n\nconst classNameByProp = new Map()\nconst shorthands = new Map()\nutilities.split(',').forEach((utility) => {\n const [prop, meta] = utility.split(':')\n const [className, ...shorthandList] = meta.split('/')\n classNameByProp.set(prop, className)\n if (shorthandList.length) {\n shorthandList.forEach((shorthand) => {\n shorthands.set(shorthand === '1' ? className : shorthand, prop)\n })\n }\n})\n\nconst resolveShorthand = (prop) => shorthands.get(prop) || prop\n\nconst context = {\n \n conditions: {\n shift: sortConditions,\n finalize: finalizeConditions,\n breakpoints: { keys: [\"base\",\"sm\",\"md\",\"lg\",\"xl\",\"2xl\"] }\n },\n utility: {\n \n transform: (prop, value) => {\n const key = resolveShorthand(prop)\n const propKey = classNameByProp.get(key) || hypenateProperty(key)\n return { className: `${propKey}_${withoutSpace(value)}` }\n },\n hasShorthand: true,\n toHash: (path, hashFn) => hashFn(path.join(\":\")),\n resolveShorthand: resolveShorthand,\n }\n}\n\nconst cssFn = createCss(context)\nexport const css = (...styles) => cssFn(mergeCss(...styles))\ncss.raw = (...styles) => mergeCss(...styles)\n\nexport const { mergeCss, assignCss } = createMergeCss(context)","import axios from 'axios';\n\nimport ConfigStore from '@client/stores/ConfigStore';\nimport SettingStore from '@client/stores/SettingStore';\nimport AlertStore from '@client/stores/AlertStore';\n\nimport type {ClientSetting, ClientSettings} from '@shared/types/ClientSettings';\nimport type {SetClientSettingsOptions} from '@shared/types/api/client';\n\nconst {baseURI} = ConfigStore;\n\nconst ClientActions = {\n fetchSettings: async (): Promise<void> =>\n axios.get<ClientSettings>(`${baseURI}api/client/settings`).then(\n ({data}) => {\n SettingStore.handleClientSettingsFetchSuccess(data);\n },\n () => {\n // do nothing.\n },\n ),\n\n saveSettings: async (settings: SetClientSettingsOptions, options?: {alert?: boolean}): Promise<void> => {\n if (Object.keys(settings).length > 0) {\n SettingStore.saveClientSettings(settings);\n\n const success = await axios.patch(`${baseURI}api/client/settings`, settings).then(\n () => true,\n () => false,\n );\n\n if (options?.alert) {\n // TODO: More precise error message.\n AlertStore.add(\n success\n ? {\n id: 'alert.settings.saved',\n type: 'success',\n }\n : {\n id: 'general.error.unknown',\n type: 'error',\n },\n );\n }\n }\n },\n\n saveSetting: async <T extends ClientSetting>(property: T, data: ClientSettings[T]): Promise<void> =>\n ClientActions.saveSettings({[property]: data}),\n\n testConnection: async (): Promise<void> =>\n axios.get(`${baseURI}api/client/connection-test`).then(() => {\n // do nothing.\n }),\n} as const;\n\nexport default ClientActions;\n","/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import axios from 'axios';\n\nimport ClientStatusStore from '@client/stores/ClientStatusStore';\nimport ConfigStore from '@client/stores/ConfigStore';\nimport DiskUsageStore from '@client/stores/DiskUsageStore';\nimport NotificationStore from '@client/stores/NotificationStore';\nimport TorrentFilterStore from '@client/stores/TorrentFilterStore';\nimport TorrentStore from '@client/stores/TorrentStore';\nimport TransferDataStore from '@client/stores/TransferDataStore';\nimport UIStore from '@client/stores/UIStore';\n\nimport type {DirectoryListResponse} from '@shared/types/api';\nimport type {NotificationFetchOptions, NotificationState} from '@shared/types/Notification';\nimport type {ServerEvents} from '@shared/types/ServerEvents';\n\nconst {baseURI} = ConfigStore;\n\nlet activityStreamEventSource: EventSource | null = null;\nlet visibilityChangeTimeout: NodeJS.Timeout;\n\n// TODO: Use standard Event interfaces\nconst ServerEventHandlers: Record<keyof ServerEvents, (event: unknown) => void> = {\n CLIENT_CONNECTIVITY_STATUS_CHANGE: (event: unknown) => {\n ClientStatusStore.handleConnectivityStatusChange(JSON.parse((event as {data: string}).data));\n },\n\n DISK_USAGE_CHANGE: (event: unknown) => {\n DiskUsageStore.setDiskUsage(JSON.parse((event as {data: string}).data));\n },\n\n NOTIFICATION_COUNT_CHANGE: (event: unknown) => {\n NotificationStore.handleNotificationCountChange(JSON.parse((event as {data: string}).data));\n UIStore.satisfyDependency('notifications');\n },\n\n TORRENT_LIST_DIFF_CHANGE: (event: unknown) => {\n TorrentStore.handleTorrentListDiffChange(JSON.parse((event as {data: string}).data));\n },\n\n TORRENT_LIST_FULL_UPDATE: (event: unknown) => {\n TorrentStore.handleTorrentListFullUpdate(JSON.parse((event as {data: string}).data));\n UIStore.satisfyDependency('torrent-list');\n },\n\n TAXONOMY_DIFF_CHANGE: (event: unknown) => {\n TorrentFilterStore.handleTorrentTaxonomyDiffChange(JSON.parse((event as {data: string}).data));\n },\n\n TAXONOMY_FULL_UPDATE: (event: unknown) => {\n TorrentFilterStore.handleTorrentTaxonomyFullUpdate(JSON.parse((event as {data: string}).data));\n UIStore.satisfyDependency('torrent-taxonomy');\n },\n\n TRANSFER_SUMMARY_FULL_UPDATE: (event: unknown) => {\n TransferDataStore.handleTransferSummaryFullUpdate(JSON.parse((event as {data: string}).data));\n UIStore.satisfyDependency('transfer-data');\n },\n\n TRANSFER_HISTORY_FULL_UPDATE: (event: unknown) => {\n TransferDataStore.handleFetchTransferHistorySuccess(JSON.parse((event as {data: string}).data));\n UIStore.satisfyDependency('transfer-history');\n },\n} as const;\n\nconst FloodActions = {\n clearNotifications: () => {\n NotificationStore.clearAll();\n return axios.delete(`${baseURI}api/notifications`).then(\n () => {\n // do nothing.\n },\n () => {\n // do nothing.\n },\n );\n },\n\n closeActivityStream() {\n if (activityStreamEventSource == null) {\n return;\n }\n\n activityStreamEventSource.close();\n\n Object.entries(ServerEventHandlers).forEach(([event, handler]) => {\n if (activityStreamEventSource != null) {\n activityStreamEventSource.removeEventListener(event, handler);\n }\n });\n\n activityStreamEventSource = null;\n },\n\n fetchDirectoryList: (path: string) =>\n axios\n .get<DirectoryListResponse>(`${baseURI}api/directory-list`, {\n params: {path},\n })\n .then((res) => res.data),\n\n fetchNotifications: (options: NotificationFetchOptions) =>\n axios\n .get<NotificationState>(`${baseURI}api/notifications`, {\n params: options,\n })\n .then(\n ({data}) => {\n NotificationStore.handleNotificationsFetchSuccess(data);\n },\n () => {\n // do nothing.\n },\n ),\n\n restartActivityStream() {\n this.closeActivityStream();\n this.startActivityStream();\n },\n\n startActivityStream() {\n // If the user requested a new history snapshot, or the event source has not\n // alraedy been created, we open the event stream.\n if (activityStreamEventSource == null) {\n activityStreamEventSource = new EventSource(`${baseURI}api/activity-stream`);\n\n Object.entries(ServerEventHandlers).forEach(([event, handler]) => {\n if (activityStreamEventSource != null) {\n activityStreamEventSource.addEventListener(event, handler);\n }\n });\n }\n },\n} as const;\n\nconst handleProlongedInactivity = () => {\n FloodActions.closeActivityStream();\n};\n\nconst handleWindowVisibilityChange = () => {\n if (global.document.hidden) {\n // After 30 seconds of inactivity, we stop the event stream.\n visibilityChangeTimeout = global.setTimeout(handleProlongedInactivity, 1000 * 30);\n } else {\n global.clearTimeout(visibilityChangeTimeout);\n\n if (activityStreamEventSource == null) {\n FloodActions.startActivityStream();\n }\n }\n};\n\nglobal.document.addEventListener('visibilitychange', handleWindowVisibilityChange);\n\nexport default FloodActions;\n","import axios from 'axios';\n\nimport AlertStore from '@client/stores/AlertStore';\nimport ConfigStore from '@client/stores/ConfigStore';\nimport SettingStore from '@client/stores/SettingStore';\n\nimport type {FloodSetting, FloodSettings} from '@shared/types/FloodSettings';\nimport type {SetFloodSettingsOptions} from '@shared/types/api/index';\n\nconst {baseURI} = ConfigStore;\n\nconst SettingActions = {\n fetchSettings: async (): Promise<void> =>\n axios.get<FloodSettings>(`${baseURI}api/settings`).then(\n ({data}) => {\n SettingStore.handleSettingsFetchSuccess(data);\n },\n () => {\n // do nothing.\n },\n ),\n\n saveSettings: async (settings: SetFloodSettingsOptions, options?: {alert?: boolean}): Promise<void> => {\n if (Object.keys(settings).length > 0) {\n SettingStore.saveFloodSettings(settings);\n\n const success = await axios.patch(`${baseURI}api/settings`, settings).then(\n () => true,\n () => false,\n );\n\n if (options?.alert) {\n // TODO: More precise error message.\n AlertStore.add(\n success\n ? {\n id: 'alert.settings.saved',\n type: 'success',\n }\n : {\n id: 'general.error.unknown',\n type: 'error',\n },\n );\n }\n }\n },\n\n saveSetting: async <T extends FloodSetting>(property: T, data: FloodSettings[T]): Promise<void> =>\n SettingActions.saveSettings({[property]: data}),\n} as const;\n\nexport default SettingActions;\n","export enum AccessLevel {\n USER = 5,\n ADMINISTRATOR = 10,\n}\n","import React from 'react';\n\nconst tagRe = /<([a-zA-Z0-9]+)>([\\s\\S]*?)<\\/\\1>|<([a-zA-Z0-9]+)\\/>/;\nconst voidElementTags = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true,\n menuitem: true\n};\nfunction formatElements(value, elements = {}) {\n const uniqueId = makeCounter(0, \"$lingui$\");\n const parts = value.split(tagRe);\n if (parts.length === 1)\n return value;\n const tree = [];\n const before = parts.shift();\n if (before)\n tree.push(before);\n for (const [index, children, after] of getElements(parts)) {\n let element = typeof index !== \"undefined\" ? elements[index] : void 0;\n if (!element || voidElementTags[element.type] && children) {\n if (!element) {\n console.error(\n `Can't use element at index '${index}' as it is not declared in the original translation`\n );\n } else {\n console.error(\n `${element.type} is a void element tag therefore it must have no children`\n );\n }\n element = React.createElement(React.Fragment);\n }\n if (Array.isArray(element)) {\n element = React.createElement(React.Fragment, {}, element);\n }\n tree.push(\n React.cloneElement(\n element,\n { key: uniqueId() },\n // format children for pair tags\n // unpaired tags might have children if it's a component passed as a variable\n children ? formatElements(children, elements) : element.props.children\n )\n );\n if (after)\n tree.push(after);\n }\n return tree.length === 1 ? tree[0] : tree;\n}\nfunction getElements(parts) {\n if (!parts.length)\n return [];\n const [paired, children, unpaired, after] = parts.slice(0, 4);\n const triple = [paired || unpaired, children || \"\", after];\n return [triple].concat(getElements(parts.slice(4, parts.length)));\n}\nconst makeCounter = (count = 0, prefix = \"\") => () => `${prefix}_${count++}`;\n\nfunction TransNoContext(props) {\n const {\n render,\n component,\n id,\n message,\n formats,\n lingui: { i18n, defaultComponent }\n } = props;\n const values = { ...props.values };\n const components = { ...props.components };\n if (values) {\n Object.keys(values).forEach((key) => {\n const index = Object.keys(components).length;\n if (typeof values[key] === \"string\" || typeof values[key] === \"number\") {\n return;\n }\n components[index] = /* @__PURE__ */ React.createElement(React.Fragment, null, values[key]);\n values[key] = `<${index}/>`;\n });\n }\n const _translation = i18n && typeof i18n._ === \"function\" ? i18n._(id, values, { message, formats }) : id;\n const translation = _translation ? formatElements(_translation, components) : null;\n if (render === null || component === null) {\n return translation;\n }\n const FallbackComponent = defaultComponent || RenderFragment;\n const i18nProps = {\n id,\n message,\n translation,\n children: translation\n // for type-compatibility with `component` prop\n };\n if (render && component) {\n console.error(\n \"You can't use both `component` and `render` prop at the same time. `component` is ignored.\"\n );\n } else if (render && typeof render !== \"function\") {\n console.error(\n `Invalid value supplied to prop \\`render\\`. It must be a function, provided ${render}`\n );\n } else if (component && typeof component !== \"function\") {\n console.error(\n `Invalid value supplied to prop \\`component\\`. It must be a React component, provided ${component}`\n );\n return React.createElement(FallbackComponent, i18nProps, translation);\n }\n if (typeof render === \"function\") {\n return render(i18nProps);\n }\n const Component = component || FallbackComponent;\n return React.createElement(Component, i18nProps, translation);\n}\nconst RenderFragment = ({ children }) => {\n return /* @__PURE__ */ React.createElement(React.Fragment, null, children);\n};\n\nexport { TransNoContext as T };\n","'use client';\nimport React from 'react';\nimport { T as TransNoContext } from './shared/react.31c3b5fa.mjs';\n\nconst LinguiContext = React.createContext(null);\nconst useLinguiInternal = (devErrorMessage) => {\n const context = React.useContext(LinguiContext);\n if (process.env.NODE_ENV !== \"production\") {\n if (context == null) {\n throw new Error(\n devErrorMessage ?? \"useLingui hook was used without I18nProvider.\"\n );\n }\n }\n return context;\n};\nfunction useLingui() {\n return useLinguiInternal();\n}\nfunction I18nProvider({\n i18n,\n defaultComponent,\n children\n}) {\n const latestKnownLocale = React.useRef(i18n.locale);\n const makeContext = React.useCallback(\n () => ({\n i18n,\n defaultComponent,\n _: i18n.t.bind(i18n)\n }),\n [i18n, defaultComponent]\n );\n const [context, setContext] = React.useState(makeContext());\n React.useEffect(() => {\n const updateContext = () => {\n latestKnownLocale.current = i18n.locale;\n setContext(makeContext());\n };\n const unsubscribe = i18n.on(\"change\", updateContext);\n if (latestKnownLocale.current !== i18n.locale) {\n updateContext();\n }\n return unsubscribe;\n }, [i18n, makeContext]);\n if (!latestKnownLocale.current) {\n process.env.NODE_ENV === \"development\" && console.log(\n \"I18nProvider rendered `null`. A call to `i18n.activate` needs to happen in order for translations to be activated and for the I18nProvider to render.This is not an error but an informational message logged only in development.\"\n );\n return null;\n }\n return /* @__PURE__ */ React.createElement(LinguiContext.Provider, { value: context }, children);\n}\n\nfunction Trans(props) {\n let errMessage = void 0;\n if (process.env.NODE_ENV !== \"production\") {\n errMessage = `Trans component was rendered without I18nProvider.\nAttempted to render message: ${props.message} id: ${props.id}. Make sure this component is rendered inside a I18nProvider.`;\n }\n const lingui = useLinguiInternal(errMessage);\n return React.createElement(TransNoContext, { ...props, lingui });\n}\n\nexport { I18nProvider, LinguiContext, Trans, useLingui };\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","const torrentStatusMap = [\n 'downloading',\n 'seeding',\n 'checking',\n 'complete',\n 'stopped',\n 'active',\n 'inactive',\n 'error',\n] as const;\n\nexport type TorrentStatus = (typeof torrentStatusMap)[number];\nexport default torrentStatusMap;\n","import {makeAutoObservable} from 'mobx';\nimport jsonpatch, {Operation} from 'fast-json-patch';\nimport {KeyboardEvent, MouseEvent, TouchEvent} from 'react';\n\nimport type {Taxonomy} from '@shared/types/Taxonomy';\nimport torrentStatusMap, {TorrentStatus} from '@shared/constants/torrentStatusMap';\n\nclass TorrentFilterStore {\n locationFilter: Array<string> = [];\n searchFilter = '';\n statusFilter: Array<TorrentStatus> = [];\n tagFilter: Array<string> = [];\n trackerFilter: Array<string> = [];\n\n filterTrigger = false;\n\n taxonomy: Taxonomy = {\n locationTree: {directoryName: '', fullPath: '', children: [], containedCount: 0, containedSize: 0},\n statusCounts: {},\n statusSizes: {},\n tagCounts: {},\n tagSizes: {},\n trackerCounts: {},\n trackerSizes: {},\n };\n\n get isFilterActive() {\n return (\n this.locationFilter.length ||\n this.searchFilter !== '' ||\n this.statusFilter.length ||\n this.tagFilter.length ||\n this.trackerFilter.length\n );\n }\n\n constructor() {\n makeAutoObservable(this);\n }\n\n clearAllFilters() {\n this.locationFilter = [];\n this.searchFilter = '';\n this.statusFilter = [];\n this.tagFilter = [];\n this.trackerFilter = [];\n this.filterTrigger = !this.filterTrigger;\n }\n\n handleTorrentTaxonomyDiffChange(diff: Operation[]) {\n jsonpatch.applyPatch(this.taxonomy, diff);\n }\n\n handleTorrentTaxonomyFullUpdate(taxonomy: Taxonomy) {\n this.taxonomy = taxonomy;\n }\n\n setSearchFilter(filter: string) {\n this.searchFilter = filter;\n this.filterTrigger = !this.filterTrigger;\n }\n\n setLocationFilters(filter: string | '', event: KeyboardEvent | MouseEvent | TouchEvent) {\n // keys: [] to disable shift-clicking as it doesn't make sense in a tree\n this.computeFilters([], this.locationFilter, filter, event);\n this.filterTrigger = !this.filterTrigger;\n }\n\n setStatusFilters(filter: TorrentStatus | '', event: KeyboardEvent | MouseEvent | TouchEvent) {\n this.computeFilters(torrentStatusMap, this.statusFilter, filter, event);\n this.filterTrigger = !this.filterTrigger;\n }\n\n setTagFilters(filter: string, event: KeyboardEvent | MouseEvent | TouchEvent) {\n const tags = Object.keys(this.taxonomy.tagCounts).sort((a, b) => {\n if (a === 'untagged') return -1;\n else if (b === 'untagged') return 1;\n else return a.localeCompare(b);\n });\n\n // Put 'untagged' in the correct second position for shift click ordering\n tags.splice(tags.indexOf('untagged'), 1);\n tags.splice(1, 0, 'untagged');\n\n this.computeFilters(tags, this.tagFilter, filter, event);\n this.filterTrigger = !this.filterTrigger;\n }\n\n setTrackerFilters(filter: string, event: KeyboardEvent | MouseEvent | TouchEvent) {\n const trackers = Object.keys(this.taxonomy.trackerCounts).sort((a, b) => a.localeCompare(b));\n\n this.computeFilters(trackers, this.trackerFilter, filter, event);\n this.filterTrigger = !this.filterTrigger;\n }\n\n private computeFilters<T extends TorrentStatus | string>(\n keys: readonly T[],\n currentFilters: Array<T>,\n newFilter: T,\n event: KeyboardEvent | MouseEvent | TouchEvent,\n ) {\n if (newFilter === ('' as T)) {\n currentFilters.splice(0);\n } else if (event.shiftKey && keys.length) {\n if (currentFilters.length) {\n const lastKey = currentFilters[currentFilters.length - 1];\n const lastKeyIndex = keys.indexOf(lastKey);\n let currentKeyIndex = keys.indexOf(newFilter);\n\n if (!~currentKeyIndex || !~lastKeyIndex) {\n return;\n }\n\n // from the previously selected index to the currently selected index,\n // add all filters to the selected array.\n // if the newly selected index is larger than the previous, start from\n // the newly selected index and work backwards. otherwise go forwards.\n const increment = currentKeyIndex > lastKeyIndex ? -1 : 1;\n\n for (; currentKeyIndex !== lastKeyIndex; currentKeyIndex += increment) {\n const foundKey = keys[currentKeyIndex] as T;\n // if the filter isn't already selected, add the filter to the array.\n if (!currentFilters.includes(foundKey)) {\n currentFilters.push(foundKey);\n }\n }\n } else {\n currentFilters.splice(0, currentFilters.length, newFilter);\n }\n } else if (event.metaKey || event.ctrlKey) {\n if (currentFilters.includes(newFilter)) {\n currentFilters.splice(currentFilters.indexOf(newFilter), 1);\n } else {\n currentFilters.push(newFilter);\n }\n } else {\n currentFilters.splice(0, currentFilters.length, newFilter);\n }\n }\n}\n\nexport default new TorrentFilterStore();\n","import {makeAutoObservable} from 'mobx';\n\nimport type {AuthMethod} from '@shared/schema/Auth';\nimport type {AuthVerificationPreloadConfigs} from '@shared/schema/api/auth';\n\nconst queryUserPreferDark = (): boolean | null => {\n const preference = window.localStorage.getItem('userPreferDark');\n\n if (preference != null) {\n if (preference === 'true') {\n return true;\n }\n\n if (preference === 'false') {\n return false;\n }\n }\n\n return null;\n};\n\nclass ConfigStore {\n baseURI = window.location.pathname.substr(0, window.location.pathname.lastIndexOf('/') + 1);\n authMethod: AuthMethod = 'default';\n pollInterval = 2000;\n\n isSmallScreen = false;\n\n isSystemPreferDark = false;\n isUserPreferDark: boolean | null = queryUserPreferDark();\n get isPreferDark(): boolean {\n return this.isUserPreferDark ?? this.isSystemPreferDark;\n }\n\n constructor() {\n makeAutoObservable(this);\n }\n\n setSmallScreen(preference: boolean): void {\n this.isSmallScreen = preference;\n }\n\n setSystemPreferDark(preference: boolean): void {\n this.isSystemPreferDark = preference;\n }\n\n setUserPreferDark(preference: boolean | null): void {\n this.isUserPreferDark = preference;\n if (preference == null) {\n window.localStorage.removeItem('userPreferDark');\n } else {\n window.localStorage.setItem('userPreferDark', `${preference}`);\n }\n }\n\n handlePreloadConfigs({authMethod, pollInterval}: AuthVerificationPreloadConfigs) {\n this.authMethod = authMethod || 'default';\n this.pollInterval = pollInterval || 2000;\n }\n}\n\nexport default new ConfigStore();\n","// >>> INTERFACES <<<\r\n// >>> HELPERS <<<\r\nvar castComparer = function (comparer) { return function (a, b, order) { return comparer(a, b, order) * order; }; };\r\nvar throwInvalidConfigErrorIfTrue = function (condition, context) {\r\n if (condition)\r\n throw Error(\"Invalid sort config: \" + context);\r\n};\r\nvar unpackObjectSorter = function (sortByObj) {\r\n var _a = sortByObj || {}, asc = _a.asc, desc = _a.desc;\r\n var order = asc ? 1 : -1;\r\n var sortBy = (asc || desc);\r\n // Validate object config\r\n throwInvalidConfigErrorIfTrue(!sortBy, 'Expected `asc` or `desc` property');\r\n throwInvalidConfigErrorIfTrue(asc && desc, 'Ambiguous object with `asc` and `desc` config properties');\r\n var comparer = sortByObj.comparer && castComparer(sortByObj.comparer);\r\n return { order: order, sortBy: sortBy, comparer: comparer };\r\n};\r\n// >>> SORTERS <<<\r\nvar multiPropertySorterProvider = function (defaultComparer) {\r\n return function multiPropertySorter(sortBy, sortByArr, depth, order, comparer, a, b) {\r\n var valA;\r\n var valB;\r\n if (typeof sortBy === 'string') {\r\n valA = a[sortBy];\r\n valB = b[sortBy];\r\n }\r\n else if (typeof sortBy === 'function') {\r\n valA = sortBy(a);\r\n valB = sortBy(b);\r\n }\r\n else {\r\n var objectSorterConfig = unpackObjectSorter(sortBy);\r\n return multiPropertySorter(objectSorterConfig.sortBy, sortByArr, depth, objectSorterConfig.order, objectSorterConfig.comparer || defaultComparer, a, b);\r\n }\r\n var equality = comparer(valA, valB, order);\r\n if ((equality === 0 || (valA == null && valB == null)) &&\r\n sortByArr.length > depth) {\r\n return multiPropertySorter(sortByArr[depth], sortByArr, depth + 1, order, comparer, a, b);\r\n }\r\n return equality;\r\n };\r\n};\r\nfunction getSortStrategy(sortBy, comparer, order) {\r\n // Flat array sorter\r\n if (sortBy === undefined || sortBy === true) {\r\n return function (a, b) { return comparer(a, b, order); };\r\n }\r\n // Sort list of objects by single object key\r\n if (typeof sortBy === 'string') {\r\n throwInvalidConfigErrorIfTrue(sortBy.includes('.'), 'String syntax not allowed for nested properties.');\r\n return function (a, b) { return comparer(a[sortBy], b[sortBy], order); };\r\n }\r\n // Sort list of objects by single function sorter\r\n if (typeof sortBy === 'function') {\r\n return function (a, b) { return comparer(sortBy(a), sortBy(b), order); };\r\n }\r\n // Sort by multiple properties\r\n if (Array.isArray(sortBy)) {\r\n var multiPropSorter_1 = multiPropertySorterProvider(comparer);\r\n return function (a, b) { return multiPropSorter_1(sortBy[0], sortBy, 1, order, comparer, a, b); };\r\n }\r\n // Unpack object config to get actual sorter strategy\r\n var objectSorterConfig = unpackObjectSorter(sortBy);\r\n return getSortStrategy(objectSorterConfig.sortBy, objectSorterConfig.comparer || comparer, objectSorterConfig.order);\r\n}\r\nvar sortArray = function (order, ctx, sortBy, comparer) {\r\n var _a;\r\n if (!Array.isArray(ctx)) {\r\n return ctx;\r\n }\r\n // Unwrap sortBy if array with only 1 value to get faster sort strategy\r\n if (Array.isArray(sortBy) && sortBy.length < 2) {\r\n _a = sortBy, sortBy = _a[0];\r\n }\r\n return ctx.sort(getSortStrategy(sortBy, comparer, order));\r\n};\r\nfunction createNewSortInstance(opts) {\r\n var comparer = castComparer(opts.comparer);\r\n return function (arrayToSort) {\r\n var ctx = Array.isArray(arrayToSort) && !opts.inPlaceSorting\r\n ? arrayToSort.slice()\r\n : arrayToSort;\r\n return {\r\n asc: function (sortBy) {\r\n return sortArray(1, ctx, sortBy, comparer);\r\n },\r\n desc: function (sortBy) {\r\n return sortArray(-1, ctx, sortBy, comparer);\r\n },\r\n by: function (sortBy) {\r\n return sortArray(1, ctx, sortBy, comparer);\r\n },\r\n };\r\n };\r\n}\r\nvar defaultComparer = function (a, b, order) {\r\n if (a == null)\r\n return order;\r\n if (b == null)\r\n return -order;\r\n if (typeof a !== typeof b) {\r\n return typeof a < typeof b ? -1 : 1;\r\n }\r\n if (a < b)\r\n return -1;\r\n if (a > b)\r\n return 1;\r\n return 0;\r\n};\r\nvar sort = createNewSortInstance({\r\n comparer: defaultComparer,\r\n});\r\nvar inPlaceSort = createNewSortInstance({\r\n comparer: defaultComparer,\r\n inPlaceSorting: true,\r\n});\n\nexport { createNewSortInstance, defaultComparer, inPlaceSort, sort };\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.F = {};\n__webpack_require__.E = (chunkId) => {\n\tObject.keys(__webpack_require__.F).map((key) => {\n\t\t__webpack_require__.F[key](chunkId);\n\t});\n}","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"6\":\"i18n16\",\"17\":\"i18n19\",\"41\":\"i18n0\",\"52\":\"i18n5\",\"64\":\"i18n9\",\"129\":\"i18n28\",\"152\":\"i18n21\",\"164\":\"i18n25\",\"175\":\"i18n26\",\"232\":\"i18n1\",\"243\":\"i18n2\",\"255\":\"i18n6\",\"309\":\"flag2\",\"354\":\"i18n23\",\"355\":\"i18n22\",\"366\":\"i18n27\",\"421\":\"i18n15\",\"500\":\"flag3\",\"557\":\"i18n24\",\"601\":\"i18n11\",\"612\":\"i18n14\",\"624\":\"i18n18\",\"703\":\"flag0\",\"792\":\"i18n10\",\"803\":\"i18n13\",\"815\":\"i18n17\",\"850\":\"i18n3\",\"861\":\"i18n4\",\"873\":\"i18n8\",\"894\":\"flag1\",\"961\":\"i18n20\",\"994\":\"i18n12\"}[chunkId] || chunkId) + \".\" + {\"6\":\"72597f50\",\"17\":\"39cd469a\",\"41\":\"ec6ce9de\",\"52\":\"5d0467c6\",\"64\":\"7a446f59\",\"129\":\"c7adecad\",\"152\":\"50abaf1d\",\"164\":\"bd8904ad\",\"175\":\"6b4d29ff\",\"179\":\"43c61c39\",\"232\":\"024a1e0a\",\"243\":\"79e0d92e\",\"255\":\"95586fce\",\"309\":\"55e1234c\",\"354\":\"bed06736\",\"355\":\"1b255305\",\"366\":\"aef61718\",\"421\":\"9bccd290\",\"500\":\"f007a894\",\"525\":\"57b74c72\",\"557\":\"3c9dd350\",\"579\":\"c74a7ebb\",\"601\":\"cc9e4457\",\"612\":\"bd0e0339\",\"624\":\"7f743233\",\"703\":\"390f4d80\",\"704\":\"2754d905\",\"792\":\"b180a8fe\",\"803\":\"4e1bcc7d\",\"815\":\"a512a8ea\",\"850\":\"0dd26c81\",\"861\":\"aa48660a\",\"873\":\"c41df595\",\"894\":\"c2493006\",\"961\":\"3abdb6e8\",\"994\":\"434bfc84\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl + \"../../\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t411: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n__webpack_require__.F.j = (chunkId) => {\n\tif((!__webpack_require__.o(installedChunks, chunkId) || installedChunks[chunkId] === undefined) && true) {\n\t\tinstalledChunks[chunkId] = null;\n\t\tvar link = document.createElement('link');\n\t\tlink.charset = 'utf-8';\n\n\t\tif (__webpack_require__.nc) {\n\t\t\tlink.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tlink.rel = \"prefetch\";\n\t\tlink.as = \"script\";\n\t\tlink.href = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\tdocument.head.appendChild(link);\n\t}\n};\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunk_jesec_flood\"] = globalThis[\"webpackChunk_jesec_flood\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.O(0, [411], () => {\n\t__webpack_require__.E(704);\n}, 5);","/**\n * React Router DOM v6.30.3\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { UNSAFE_mapRouteProperties, UNSAFE_logV6DeprecationWarnings, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, Router, UNSAFE_useRoutesImpl, UNSAFE_NavigationContext, useHref, useResolvedPath, useLocation, useNavigate, createPath, UNSAFE_useRouteId, UNSAFE_RouteContext, useMatches, useNavigation, useBlocker } from 'react-router';\nexport { AbortedDeferredError, Await, MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, UNSAFE_DataRouterContext, UNSAFE_DataRouterStateContext, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, UNSAFE_useRouteId, createMemoryRouter, createPath, createRoutesFromChildren, createRoutesFromElements, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, renderMatches, replace, resolvePath, useActionData, useAsyncError, useAsyncValue, useBlocker, useHref, useInRouterContext, useLoaderData, useLocation, useMatch, useMatches, useNavigate, useNavigation, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRevalidator, useRouteError, useRouteLoaderData, useRoutes } from 'react-router';\nimport { stripBasename, UNSAFE_warning, createRouter, createBrowserHistory, createHashHistory, UNSAFE_ErrorResponseImpl, UNSAFE_invariant, joinPaths, IDLE_FETCHER, matchPath } from '@remix-run/router';\nexport { UNSAFE_ErrorResponseImpl } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nconst defaultMethod = \"get\";\nconst defaultEncType = \"application/x-www-form-urlencoded\";\nfunction isHtmlElement(object) {\n return object != null && typeof object.tagName === \"string\";\n}\nfunction isButtonElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\nfunction isFormElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\nfunction isInputElement(object) {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\nfunction shouldProcessLinkClick(event, target) {\n return event.button === 0 && (\n // Ignore everything but left clicks\n !target || target === \"_self\") &&\n // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ;\n}\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nfunction createSearchParams(init) {\n if (init === void 0) {\n init = \"\";\n }\n return new URLSearchParams(typeof init === \"string\" || Array.isArray(init) || init instanceof URLSearchParams ? init : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(Array.isArray(value) ? value.map(v => [key, v]) : [[key, value]]);\n }, []));\n}\nfunction getSearchParamsForLocation(locationSearch, defaultSearchParams) {\n let searchParams = createSearchParams(locationSearch);\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach(value => {\n searchParams.append(key, value);\n });\n }\n });\n }\n return searchParams;\n}\n// One-time check for submitter support\nlet _formDataSupportsSubmitter = null;\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0);\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\nconst supportedFormEncTypes = new Set([\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"]);\nfunction getFormEncType(encType) {\n if (encType != null && !supportedFormEncTypes.has(encType)) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"\\\"\" + encType + \"\\\" is not a valid `encType` for `<Form>`/`<fetcher.Form>` \" + (\"and will default to \\\"\" + defaultEncType + \"\\\"\")) : void 0;\n return null;\n }\n return encType;\n}\nfunction getFormSubmissionInfo(target, basename) {\n let method;\n let action;\n let encType;\n let formData;\n let body;\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n formData = new FormData(target);\n } else if (isButtonElement(target) || isInputElement(target) && (target.type === \"submit\" || target.type === \"image\")) {\n let form = target.form;\n if (form == null) {\n throw new Error(\"Cannot submit a <button> or <input type=\\\"submit\\\"> without a <form>\");\n }\n // <button>/<input type=\"submit\"> may override attributes of <form>\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"formaction\") || form.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"formmethod\") || form.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"formenctype\")) || getFormEncType(form.getAttribute(\"enctype\")) || defaultEncType;\n // Build a FormData object populated from a form and submitter\n formData = new FormData(form, target);\n // If this browser doesn't support the `FormData(el, submitter)` format,\n // then tack on the submitter value at the end. This is a lightweight\n // solution that is not 100% spec compliant. For complete support in older\n // browsers, consider using the `formdata-submitter-polyfill` package\n if (!isFormDataSubmitterSupported()) {\n let {\n name,\n type,\n value\n } = target;\n if (type === \"image\") {\n let prefix = name ? name + \".\" : \"\";\n formData.append(prefix + \"x\", \"0\");\n formData.append(prefix + \"y\", \"0\");\n } else if (name) {\n formData.append(name, value);\n }\n }\n } else if (isHtmlElement(target)) {\n throw new Error(\"Cannot submit element that is not <form>, <button>, or \" + \"<input type=\\\"submit|image\\\">\");\n } else {\n method = defaultMethod;\n action = null;\n encType = defaultEncType;\n body = target;\n }\n // Send body for <Form encType=\"text/plain\" so we encode it into text\n if (formData && encType === \"text/plain\") {\n body = formData;\n formData = undefined;\n }\n return {\n action,\n method: method.toLowerCase(),\n encType,\n formData,\n body\n };\n}\n\nconst _excluded = [\"onClick\", \"relative\", \"reloadDocument\", \"replace\", \"state\", \"target\", \"to\", \"preventScrollReset\", \"viewTransition\"],\n _excluded2 = [\"aria-current\", \"caseSensitive\", \"className\", \"end\", \"style\", \"to\", \"viewTransition\", \"children\"],\n _excluded3 = [\"fetcherKey\", \"navigate\", \"reloadDocument\", \"replace\", \"state\", \"method\", \"action\", \"onSubmit\", \"relative\", \"preventScrollReset\", \"viewTransition\"];\n// HEY YOU! DON'T TOUCH THIS VARIABLE!\n//\n// It is replaced with the proper version at build time via a babel plugin in\n// the rollup config.\n//\n// Export a global property onto the window for React Router detection by the\n// Core Web Vitals Technology Report. This way they can configure the `wappalyzer`\n// to detect and properly classify live websites as being built with React Router:\n// https://github.com/HTTPArchive/wappalyzer/blob/main/src/technologies/r.json\nconst REACT_ROUTER_VERSION = \"6\";\ntry {\n window.__reactRouterVersion = REACT_ROUTER_VERSION;\n} catch (e) {\n // no-op\n}\nfunction createBrowserRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createBrowserHistory({\n window: opts == null ? void 0 : opts.window\n }),\n hydrationData: (opts == null ? void 0 : opts.hydrationData) || parseHydrationData(),\n routes,\n mapRouteProperties: UNSAFE_mapRouteProperties,\n dataStrategy: opts == null ? void 0 : opts.dataStrategy,\n patchRoutesOnNavigation: opts == null ? void 0 : opts.patchRoutesOnNavigation,\n window: opts == null ? void 0 : opts.window\n }).initialize();\n}\nfunction createHashRouter(routes, opts) {\n return createRouter({\n basename: opts == null ? void 0 : opts.basename,\n future: _extends({}, opts == null ? void 0 : opts.future, {\n v7_prependBasename: true\n }),\n history: createHashHistory({\n window: opts == null ? void 0 : opts.window\n }),\n hydrationData: (opts == null ? void 0 : opts.hydrationData) || parseHydrationData(),\n routes,\n mapRouteProperties: UNSAFE_mapRouteProperties,\n dataStrategy: opts == null ? void 0 : opts.dataStrategy,\n patchRoutesOnNavigation: opts == null ? void 0 : opts.patchRoutesOnNavigation,\n window: opts == null ? void 0 : opts.window\n }).initialize();\n}\nfunction parseHydrationData() {\n var _window;\n let state = (_window = window) == null ? void 0 : _window.__staticRouterHydrationData;\n if (state && state.errors) {\n state = _extends({}, state, {\n errors: deserializeErrors(state.errors)\n });\n }\n return state;\n}\nfunction deserializeErrors(errors) {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // serializeErrors in react-router-dom/server.tsx :)\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new UNSAFE_ErrorResponseImpl(val.status, val.statusText, val.data, val.internal === true);\n } else if (val && val.__type === \"Error\") {\n // Attempt to reconstruct the right type of Error (i.e., ReferenceError)\n if (val.__subType) {\n let ErrorConstructor = window[val.__subType];\n if (typeof ErrorConstructor === \"function\") {\n try {\n // @ts-expect-error\n let error = new ErrorConstructor(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n } catch (e) {\n // no-op - fall through and create a normal Error\n }\n }\n }\n if (serialized[key] == null) {\n let error = new Error(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n }\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\nconst ViewTransitionContext = /*#__PURE__*/React.createContext({\n isTransitioning: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n ViewTransitionContext.displayName = \"ViewTransition\";\n}\nconst FetchersContext = /*#__PURE__*/React.createContext(new Map());\nif (process.env.NODE_ENV !== \"production\") {\n FetchersContext.displayName = \"Fetchers\";\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Components\n////////////////////////////////////////////////////////////////////////////////\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\nconst FLUSH_SYNC = \"flushSync\";\nconst flushSyncImpl = ReactDOM[FLUSH_SYNC];\nconst USE_ID = \"useId\";\nconst useIdImpl = React[USE_ID];\nfunction startTransitionSafe(cb) {\n if (startTransitionImpl) {\n startTransitionImpl(cb);\n } else {\n cb();\n }\n}\nfunction flushSyncSafe(cb) {\n if (flushSyncImpl) {\n flushSyncImpl(cb);\n } else {\n cb();\n }\n}\nclass Deferred {\n constructor() {\n this.status = \"pending\";\n this.promise = new Promise((resolve, reject) => {\n this.resolve = value => {\n if (this.status === \"pending\") {\n this.status = \"resolved\";\n resolve(value);\n }\n };\n this.reject = reason => {\n if (this.status === \"pending\") {\n this.status = \"rejected\";\n reject(reason);\n }\n };\n });\n }\n}\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let [pendingState, setPendingState] = React.useState();\n let [vtContext, setVtContext] = React.useState({\n isTransitioning: false\n });\n let [renderDfd, setRenderDfd] = React.useState();\n let [transition, setTransition] = React.useState();\n let [interruption, setInterruption] = React.useState();\n let fetcherData = React.useRef(new Map());\n let {\n v7_startTransition\n } = future || {};\n let optInStartTransition = React.useCallback(cb => {\n if (v7_startTransition) {\n startTransitionSafe(cb);\n } else {\n cb();\n }\n }, [v7_startTransition]);\n let setState = React.useCallback((newState, _ref2) => {\n let {\n deletedFetchers,\n flushSync: flushSync,\n viewTransitionOpts: viewTransitionOpts\n } = _ref2;\n newState.fetchers.forEach((fetcher, key) => {\n if (fetcher.data !== undefined) {\n fetcherData.current.set(key, fetcher.data);\n }\n });\n deletedFetchers.forEach(key => fetcherData.current.delete(key));\n let isViewTransitionUnavailable = router.window == null || router.window.document == null || typeof router.window.document.startViewTransition !== \"function\";\n // If this isn't a view transition or it's not available in this browser,\n // just update and be done with it\n if (!viewTransitionOpts || isViewTransitionUnavailable) {\n if (flushSync) {\n flushSyncSafe(() => setStateImpl(newState));\n } else {\n optInStartTransition(() => setStateImpl(newState));\n }\n return;\n }\n // flushSync + startViewTransition\n if (flushSync) {\n // Flush through the context to mark DOM elements as transition=ing\n flushSyncSafe(() => {\n // Cancel any pending transitions\n if (transition) {\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n }\n setVtContext({\n isTransitioning: true,\n flushSync: true,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n });\n // Update the DOM\n let t = router.window.document.startViewTransition(() => {\n flushSyncSafe(() => setStateImpl(newState));\n });\n // Clean up after the animation completes\n t.finished.finally(() => {\n flushSyncSafe(() => {\n setRenderDfd(undefined);\n setTransition(undefined);\n setPendingState(undefined);\n setVtContext({\n isTransitioning: false\n });\n });\n });\n flushSyncSafe(() => setTransition(t));\n return;\n }\n // startTransition + startViewTransition\n if (transition) {\n // Interrupting an in-progress transition, cancel and let everything flush\n // out, and then kick off a new transition from the interruption state\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n setInterruption({\n state: newState,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n } else {\n // Completed navigation update with opted-in view transitions, let 'er rip\n setPendingState(newState);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation\n });\n }\n }, [router.window, transition, renderDfd, fetcherData, optInStartTransition]);\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n // When we start a view transition, create a Deferred we can use for the\n // eventual \"completed\" render\n React.useEffect(() => {\n if (vtContext.isTransitioning && !vtContext.flushSync) {\n setRenderDfd(new Deferred());\n }\n }, [vtContext]);\n // Once the deferred is created, kick off startViewTransition() to update the\n // DOM and then wait on the Deferred to resolve (indicating the DOM update has\n // happened)\n React.useEffect(() => {\n if (renderDfd && pendingState && router.window) {\n let newState = pendingState;\n let renderPromise = renderDfd.promise;\n let transition = router.window.document.startViewTransition(async () => {\n optInStartTransition(() => setStateImpl(newState));\n await renderPromise;\n });\n transition.finished.finally(() => {\n setRenderDfd(undefined);\n setTransition(undefined);\n setPendingState(undefined);\n setVtContext({\n isTransitioning: false\n });\n });\n setTransition(transition);\n }\n }, [optInStartTransition, pendingState, renderDfd, router.window]);\n // When the new location finally renders and is committed to the DOM, this\n // effect will run to resolve the transition\n React.useEffect(() => {\n if (renderDfd && pendingState && state.location.key === pendingState.location.key) {\n renderDfd.resolve();\n }\n }, [renderDfd, transition, state.location, pendingState]);\n // If we get interrupted with a new navigation during a transition, we skip\n // the active transition, let it cleanup, then kick it off again here\n React.useEffect(() => {\n if (!vtContext.isTransitioning && interruption) {\n setPendingState(interruption.state);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: interruption.currentLocation,\n nextLocation: interruption.nextLocation\n });\n setInterruption(undefined);\n }\n }, [vtContext.isTransitioning, interruption]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`<RouterProvider fallbackElement>` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n let routerFuture = React.useMemo(() => ({\n v7_relativeSplatPath: router.future.v7_relativeSplatPath\n }), [router.future.v7_relativeSplatPath]);\n React.useEffect(() => UNSAFE_logV6DeprecationWarnings(future, router.future), [future, router.future]);\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UNSAFE_DataRouterContext.Provider, {\n value: dataRouterContext\n }, /*#__PURE__*/React.createElement(UNSAFE_DataRouterStateContext.Provider, {\n value: state\n }, /*#__PURE__*/React.createElement(FetchersContext.Provider, {\n value: fetcherData.current\n }, /*#__PURE__*/React.createElement(ViewTransitionContext.Provider, {\n value: vtContext\n }, /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n location: state.location,\n navigationType: state.historyAction,\n navigator: navigator,\n future: routerFuture\n }, state.initialized || router.future.v7_partialHydration ? /*#__PURE__*/React.createElement(MemoizedDataRoutes, {\n routes: router.routes,\n future: router.future,\n state: state\n }) : fallbackElement))))), null);\n}\n// Memoize to avoid re-renders when updating `ViewTransitionContext`\nconst MemoizedDataRoutes = /*#__PURE__*/React.memo(DataRoutes);\nfunction DataRoutes(_ref3) {\n let {\n routes,\n future,\n state\n } = _ref3;\n return UNSAFE_useRoutesImpl(routes, undefined, state, future);\n}\n/**\n * A `<Router>` for use in web browsers. Provides the cleanest URLs.\n */\nfunction BrowserRouter(_ref4) {\n let {\n basename,\n children,\n future,\n window\n } = _ref4;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({\n window,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n React.useEffect(() => UNSAFE_logV6DeprecationWarnings(future), [future]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * A `<Router>` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nfunction HashRouter(_ref5) {\n let {\n basename,\n children,\n future,\n window\n } = _ref5;\n let historyRef = React.useRef();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({\n window,\n v5Compat: true\n });\n }\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n React.useEffect(() => UNSAFE_logV6DeprecationWarnings(future), [future]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\n/**\n * A `<Router>` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter(_ref6) {\n let {\n basename,\n children,\n future,\n history\n } = _ref6;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location\n });\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n v7_startTransition && startTransitionImpl ? startTransitionImpl(() => setStateImpl(newState)) : setStateImpl(newState);\n }, [setStateImpl, v7_startTransition]);\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n React.useEffect(() => UNSAFE_logV6DeprecationWarnings(future), [future]);\n return /*#__PURE__*/React.createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history,\n future: future\n });\n}\nif (process.env.NODE_ENV !== \"production\") {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\nconst isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\";\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n/**\n * The public API for rendering a history-aware `<a>`.\n */\nconst Link = /*#__PURE__*/React.forwardRef(function LinkWithRef(_ref7, ref) {\n let {\n onClick,\n relative,\n reloadDocument,\n replace,\n state,\n target,\n to,\n preventScrollReset,\n viewTransition\n } = _ref7,\n rest = _objectWithoutPropertiesLoose(_ref7, _excluded);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n // Rendered into <a href> for absolute URLs\n let absoluteHref;\n let isExternal = false;\n if (typeof to === \"string\" && ABSOLUTE_URL_REGEX.test(to)) {\n // Render the absolute href server- and client-side\n absoluteHref = to;\n // Only check for external origins client-side\n if (isBrowser) {\n try {\n let currentUrl = new URL(window.location.href);\n let targetUrl = to.startsWith(\"//\") ? new URL(currentUrl.protocol + to) : new URL(to);\n let path = stripBasename(targetUrl.pathname, basename);\n if (targetUrl.origin === currentUrl.origin && path != null) {\n // Strip the protocol/origin/basename for same-origin absolute URLs\n to = path + targetUrl.search + targetUrl.hash;\n } else {\n isExternal = true;\n }\n } catch (e) {\n // We can't do external URL detection without a valid URL\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"<Link to=\\\"\" + to + \"\\\"> contains an invalid URL which will probably break \" + \"when clicked - please update to a valid URL path.\") : void 0;\n }\n }\n }\n // Rendered into <a href> for relative URLs\n let href = useHref(to, {\n relative\n });\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n preventScrollReset,\n relative,\n viewTransition\n });\n function handleClick(event) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n React.createElement(\"a\", _extends({}, rest, {\n href: absoluteHref || href,\n onClick: isExternal || reloadDocument ? onClick : handleClick,\n ref: ref,\n target: target\n }))\n );\n});\nif (process.env.NODE_ENV !== \"production\") {\n Link.displayName = \"Link\";\n}\n/**\n * A `<Link>` wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = /*#__PURE__*/React.forwardRef(function NavLinkWithRef(_ref8, ref) {\n let {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n viewTransition,\n children\n } = _ref8,\n rest = _objectWithoutPropertiesLoose(_ref8, _excluded2);\n let path = useResolvedPath(to, {\n relative: rest.relative\n });\n let location = useLocation();\n let routerState = React.useContext(UNSAFE_DataRouterStateContext);\n let {\n navigator,\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let isTransitioning = routerState != null &&\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useViewTransitionState(path) && viewTransition === true;\n let toPathname = navigator.encodeLocation ? navigator.encodeLocation(path).pathname : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname = routerState && routerState.navigation && routerState.navigation.location ? routerState.navigation.location.pathname : null;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname ? nextLocationPathname.toLowerCase() : null;\n toPathname = toPathname.toLowerCase();\n }\n if (nextLocationPathname && basename) {\n nextLocationPathname = stripBasename(nextLocationPathname, basename) || nextLocationPathname;\n }\n // If the `to` has a trailing slash, look at that exact spot. Otherwise,\n // we're looking for a slash _after_ what's in `to`. For example:\n //\n // <NavLink to=\"/users\"> and <NavLink to=\"/users/\">\n // both want to look for a / at index 6 to match URL `/users/matt`\n const endSlashPosition = toPathname !== \"/\" && toPathname.endsWith(\"/\") ? toPathname.length - 1 : toPathname.length;\n let isActive = locationPathname === toPathname || !end && locationPathname.startsWith(toPathname) && locationPathname.charAt(endSlashPosition) === \"/\";\n let isPending = nextLocationPathname != null && (nextLocationPathname === toPathname || !end && nextLocationPathname.startsWith(toPathname) && nextLocationPathname.charAt(toPathname.length) === \"/\");\n let renderProps = {\n isActive,\n isPending,\n isTransitioning\n };\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n let className;\n if (typeof classNameProp === \"function\") {\n className = classNameProp(renderProps);\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for <NavLink />s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null, isPending ? \"pending\" : null, isTransitioning ? \"transitioning\" : null].filter(Boolean).join(\" \");\n }\n let style = typeof styleProp === \"function\" ? styleProp(renderProps) : styleProp;\n return /*#__PURE__*/React.createElement(Link, _extends({}, rest, {\n \"aria-current\": ariaCurrent,\n className: className,\n ref: ref,\n style: style,\n to: to,\n viewTransition: viewTransition\n }), typeof children === \"function\" ? children(renderProps) : children);\n});\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n}\n/**\n * A `@remix-run/router`-aware `<form>`. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nconst Form = /*#__PURE__*/React.forwardRef((_ref9, forwardedRef) => {\n let {\n fetcherKey,\n navigate,\n reloadDocument,\n replace,\n state,\n method = defaultMethod,\n action,\n onSubmit,\n relative,\n preventScrollReset,\n viewTransition\n } = _ref9,\n props = _objectWithoutPropertiesLoose(_ref9, _excluded3);\n let submit = useSubmit();\n let formAction = useFormAction(action, {\n relative\n });\n let formMethod = method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n let submitHandler = event => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n let submitter = event.nativeEvent.submitter;\n let submitMethod = (submitter == null ? void 0 : submitter.getAttribute(\"formmethod\")) || method;\n submit(submitter || event.currentTarget, {\n fetcherKey,\n method: submitMethod,\n navigate,\n replace,\n state,\n relative,\n preventScrollReset,\n viewTransition\n });\n };\n return /*#__PURE__*/React.createElement(\"form\", _extends({\n ref: forwardedRef,\n method: formMethod,\n action: formAction,\n onSubmit: reloadDocument ? onSubmit : submitHandler\n }, props));\n});\nif (process.env.NODE_ENV !== \"production\") {\n Form.displayName = \"Form\";\n}\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nfunction ScrollRestoration(_ref10) {\n let {\n getKey,\n storageKey\n } = _ref10;\n useScrollRestoration({\n getKey,\n storageKey\n });\n return null;\n}\nif (process.env.NODE_ENV !== \"production\") {\n ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\nvar DataRouterHook;\n(function (DataRouterHook) {\n DataRouterHook[\"UseScrollRestoration\"] = \"useScrollRestoration\";\n DataRouterHook[\"UseSubmit\"] = \"useSubmit\";\n DataRouterHook[\"UseSubmitFetcher\"] = \"useSubmitFetcher\";\n DataRouterHook[\"UseFetcher\"] = \"useFetcher\";\n DataRouterHook[\"useViewTransitionState\"] = \"useViewTransitionState\";\n})(DataRouterHook || (DataRouterHook = {}));\nvar DataRouterStateHook;\n(function (DataRouterStateHook) {\n DataRouterStateHook[\"UseFetcher\"] = \"useFetcher\";\n DataRouterStateHook[\"UseFetchers\"] = \"useFetchers\";\n DataRouterStateHook[\"UseScrollRestoration\"] = \"useScrollRestoration\";\n})(DataRouterStateHook || (DataRouterStateHook = {}));\n// Internal hooks\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/v6/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(UNSAFE_DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(UNSAFE_DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\n// External hooks\n/**\n * Handles the click behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same click behavior we\n * use in our exported `<Link>`.\n */\nfunction useLinkClickHandler(to, _temp) {\n let {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n viewTransition\n } = _temp === void 0 ? {} : _temp;\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, {\n relative\n });\n return React.useCallback(event => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n // If the URL hasn't changed, a regular <a> will do a replace instead of\n // a push, so do the same here unless the replace prop is explicitly set\n let replace = replaceProp !== undefined ? replaceProp : createPath(location) === createPath(path);\n navigate(to, {\n replace,\n state,\n preventScrollReset,\n relative,\n viewTransition\n });\n }\n }, [location, navigate, path, replaceProp, state, target, to, preventScrollReset, relative, viewTransition]);\n}\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nfunction useSearchParams(defaultInit) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(typeof URLSearchParams !== \"undefined\", \"You cannot use the `useSearchParams` hook in a browser that does not \" + \"support the URLSearchParams API. If you need to support Internet \" + \"Explorer 11, we recommend you load a polyfill such as \" + \"https://github.com/ungap/url-search-params.\") : void 0;\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n let hasSetSearchParamsRef = React.useRef(false);\n let location = useLocation();\n let searchParams = React.useMemo(() =>\n // Only merge in the defaults if we haven't yet called setSearchParams.\n // Once we call that we want those to take precedence, otherwise you can't\n // remove a param with setSearchParams({}) if it has an initial value\n getSearchParamsForLocation(location.search, hasSetSearchParamsRef.current ? null : defaultSearchParamsRef.current), [location.search]);\n let navigate = useNavigate();\n let setSearchParams = React.useCallback((nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit);\n hasSetSearchParamsRef.current = true;\n navigate(\"?\" + newSearchParams, navigateOptions);\n }, [navigate, searchParams]);\n return [searchParams, setSearchParams];\n}\nfunction validateClientSideSubmission() {\n if (typeof document === \"undefined\") {\n throw new Error(\"You are calling submit during the server render. \" + \"Try calling submit within a `useEffect` or callback instead.\");\n }\n}\nlet fetcherId = 0;\nlet getUniqueFetcherId = () => \"__\" + String(++fetcherId) + \"__\";\n/**\n * Returns a function that may be used to programmatically submit a form (or\n * some arbitrary data) to the server.\n */\nfunction useSubmit() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseSubmit);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let currentRouteId = UNSAFE_useRouteId();\n return React.useCallback(function (target, options) {\n if (options === void 0) {\n options = {};\n }\n validateClientSideSubmission();\n let {\n action,\n method,\n encType,\n formData,\n body\n } = getFormSubmissionInfo(target, basename);\n if (options.navigate === false) {\n let key = options.fetcherKey || getUniqueFetcherId();\n router.fetch(key, currentRouteId, options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType,\n flushSync: options.flushSync\n });\n } else {\n router.navigate(options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || method,\n formEncType: options.encType || encType,\n replace: options.replace,\n state: options.state,\n fromRouteId: currentRouteId,\n flushSync: options.flushSync,\n viewTransition: options.viewTransition\n });\n }\n }, [router, basename, currentRouteId]);\n}\n// v7: Eventually we should deprecate this entirely in favor of using the\n// router method directly?\nfunction useFormAction(action, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let routeContext = React.useContext(UNSAFE_RouteContext);\n !routeContext ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFormAction must be used inside a RouteContext\") : UNSAFE_invariant(false) : void 0;\n let [match] = routeContext.matches.slice(-1);\n // Shallow clone path so we can modify it below, otherwise we modify the\n // object referenced by useMemo inside useResolvedPath\n let path = _extends({}, useResolvedPath(action ? action : \".\", {\n relative\n }));\n // If no action was specified, browsers will persist current search params\n // when determining the path, so match that behavior\n // https://github.com/remix-run/remix/issues/927\n let location = useLocation();\n if (action == null) {\n // Safe to write to this directly here since if action was undefined, we\n // would have called useResolvedPath(\".\") which will never include a search\n path.search = location.search;\n // When grabbing search params from the URL, remove any included ?index param\n // since it might not apply to our contextual route. We add it back based\n // on match.route.index below\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n let hasNakedIndexParam = indexValues.some(v => v === \"\");\n if (hasNakedIndexParam) {\n params.delete(\"index\");\n indexValues.filter(v => v).forEach(v => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? \"?\" + qs : \"\";\n }\n }\n if ((!action || action === \".\") && match.route.index) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n }\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the form action. If this is a root navigation, then just use\n // the raw basename which allows the basename to have full control over the\n // presence of a trailing slash on root actions\n if (basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// TODO: (v7) Change the useFetcher generic default from `any` to `unknown`\n/**\n * Interacts with route loaders and actions without causing a navigation. Great\n * for any interaction that stays on the same page.\n */\nfunction useFetcher(_temp3) {\n var _route$matches;\n let {\n key\n } = _temp3 === void 0 ? {} : _temp3;\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseFetcher);\n let state = useDataRouterState(DataRouterStateHook.UseFetcher);\n let fetcherData = React.useContext(FetchersContext);\n let route = React.useContext(UNSAFE_RouteContext);\n let routeId = (_route$matches = route.matches[route.matches.length - 1]) == null ? void 0 : _route$matches.route.id;\n !fetcherData ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher must be used inside a FetchersContext\") : UNSAFE_invariant(false) : void 0;\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher must be used inside a RouteContext\") : UNSAFE_invariant(false) : void 0;\n !(routeId != null) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"useFetcher can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n // Fetcher key handling\n // OK to call conditionally to feature detect `useId`\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let defaultKey = useIdImpl ? useIdImpl() : \"\";\n let [fetcherKey, setFetcherKey] = React.useState(key || defaultKey);\n if (key && key !== fetcherKey) {\n setFetcherKey(key);\n } else if (!fetcherKey) {\n // We will only fall through here when `useId` is not available\n setFetcherKey(getUniqueFetcherId());\n }\n // Registration/cleanup\n React.useEffect(() => {\n router.getFetcher(fetcherKey);\n return () => {\n // Tell the router we've unmounted - if v7_fetcherPersist is enabled this\n // will not delete immediately but instead queue up a delete after the\n // fetcher returns to an `idle` state\n router.deleteFetcher(fetcherKey);\n };\n }, [router, fetcherKey]);\n // Fetcher additions\n let load = React.useCallback((href, opts) => {\n !routeId ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"No routeId available for fetcher.load()\") : UNSAFE_invariant(false) : void 0;\n router.fetch(fetcherKey, routeId, href, opts);\n }, [fetcherKey, routeId, router]);\n let submitImpl = useSubmit();\n let submit = React.useCallback((target, opts) => {\n submitImpl(target, _extends({}, opts, {\n navigate: false,\n fetcherKey\n }));\n }, [fetcherKey, submitImpl]);\n let FetcherForm = React.useMemo(() => {\n let FetcherForm = /*#__PURE__*/React.forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(Form, _extends({}, props, {\n navigate: false,\n fetcherKey: fetcherKey,\n ref: ref\n }));\n });\n if (process.env.NODE_ENV !== \"production\") {\n FetcherForm.displayName = \"fetcher.Form\";\n }\n return FetcherForm;\n }, [fetcherKey]);\n // Exposed FetcherWithComponents\n let fetcher = state.fetchers.get(fetcherKey) || IDLE_FETCHER;\n let data = fetcherData.get(fetcherKey);\n let fetcherWithComponents = React.useMemo(() => _extends({\n Form: FetcherForm,\n submit,\n load\n }, fetcher, {\n data\n }), [FetcherForm, submit, load, fetcher, data]);\n return fetcherWithComponents;\n}\n/**\n * Provides all fetchers currently on the page. Useful for layouts and parent\n * routes that need to provide pending/optimistic UI regarding the fetch.\n */\nfunction useFetchers() {\n let state = useDataRouterState(DataRouterStateHook.UseFetchers);\n return Array.from(state.fetchers.entries()).map(_ref11 => {\n let [key, fetcher] = _ref11;\n return _extends({}, fetcher, {\n key\n });\n });\n}\nconst SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nlet savedScrollPositions = {};\n/**\n * When rendered inside a RouterProvider, will restore scroll positions on navigations\n */\nfunction useScrollRestoration(_temp4) {\n let {\n getKey,\n storageKey\n } = _temp4 === void 0 ? {} : _temp4;\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseScrollRestoration);\n let {\n restoreScrollPosition,\n preventScrollReset\n } = useDataRouterState(DataRouterStateHook.UseScrollRestoration);\n let {\n basename\n } = React.useContext(UNSAFE_NavigationContext);\n let location = useLocation();\n let matches = useMatches();\n let navigation = useNavigation();\n // Trigger manual scroll restoration while we're active\n React.useEffect(() => {\n window.history.scrollRestoration = \"manual\";\n return () => {\n window.history.scrollRestoration = \"auto\";\n };\n }, []);\n // Save positions on pagehide\n usePageHide(React.useCallback(() => {\n if (navigation.state === \"idle\") {\n let key = (getKey ? getKey(location, matches) : null) || location.key;\n savedScrollPositions[key] = window.scrollY;\n }\n try {\n sessionStorage.setItem(storageKey || SCROLL_RESTORATION_STORAGE_KEY, JSON.stringify(savedScrollPositions));\n } catch (error) {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, \"Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (\" + error + \").\") : void 0;\n }\n window.history.scrollRestoration = \"auto\";\n }, [storageKey, getKey, navigation.state, location, matches]));\n // Read in any saved scroll locations\n if (typeof document !== \"undefined\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n try {\n let sessionPositions = sessionStorage.getItem(storageKey || SCROLL_RESTORATION_STORAGE_KEY);\n if (sessionPositions) {\n savedScrollPositions = JSON.parse(sessionPositions);\n }\n } catch (e) {\n // no-op, use default empty object\n }\n }, [storageKey]);\n // Enable scroll restoration in the router\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n let getKeyWithoutBasename = getKey && basename !== \"/\" ? (location, matches) => getKey( // Strip the basename to match useLocation()\n _extends({}, location, {\n pathname: stripBasename(location.pathname, basename) || location.pathname\n }), matches) : getKey;\n let disableScrollRestoration = router == null ? void 0 : router.enableScrollRestoration(savedScrollPositions, () => window.scrollY, getKeyWithoutBasename);\n return () => disableScrollRestoration && disableScrollRestoration();\n }, [router, basename, getKey]);\n // Restore scrolling when state.restoreScrollPosition changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n // Explicit false means don't do anything (used for submissions)\n if (restoreScrollPosition === false) {\n return;\n }\n // been here before, scroll to it\n if (typeof restoreScrollPosition === \"number\") {\n window.scrollTo(0, restoreScrollPosition);\n return;\n }\n // try to scroll to the hash\n if (location.hash) {\n let el = document.getElementById(decodeURIComponent(location.hash.slice(1)));\n if (el) {\n el.scrollIntoView();\n return;\n }\n }\n // Don't reset if this navigation opted out\n if (preventScrollReset === true) {\n return;\n }\n // otherwise go to the top on new locations\n window.scrollTo(0, 0);\n }, [location, restoreScrollPosition, preventScrollReset]);\n }\n}\n/**\n * Setup a callback to be fired on the window's `beforeunload` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction useBeforeUnload(callback, options) {\n let {\n capture\n } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? {\n capture\n } : undefined;\n window.addEventListener(\"beforeunload\", callback, opts);\n return () => {\n window.removeEventListener(\"beforeunload\", callback, opts);\n };\n }, [callback, capture]);\n}\n/**\n * Setup a callback to be fired on the window's `pagehide` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes. This event is better supported than beforeunload across browsers.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction usePageHide(callback, options) {\n let {\n capture\n } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? {\n capture\n } : undefined;\n window.addEventListener(\"pagehide\", callback, opts);\n return () => {\n window.removeEventListener(\"pagehide\", callback, opts);\n };\n }, [callback, capture]);\n}\n/**\n * Wrapper around useBlocker to show a window.confirm prompt to users instead\n * of building a custom UI with useBlocker.\n *\n * Warning: This has *a lot of rough edges* and behaves very differently (and\n * very incorrectly in some cases) across browsers if user click addition\n * back/forward navigations while the confirm is open. Use at your own risk.\n */\nfunction usePrompt(_ref12) {\n let {\n when,\n message\n } = _ref12;\n let blocker = useBlocker(when);\n React.useEffect(() => {\n if (blocker.state === \"blocked\") {\n let proceed = window.confirm(message);\n if (proceed) {\n // This timeout is needed to avoid a weird \"race\" on POP navigations\n // between the `window.history` revert navigation and the result of\n // `window.confirm`\n setTimeout(blocker.proceed, 0);\n } else {\n blocker.reset();\n }\n }\n }, [blocker, message]);\n React.useEffect(() => {\n if (blocker.state === \"blocked\" && !when) {\n blocker.reset();\n }\n }, [blocker, when]);\n}\n/**\n * Return a boolean indicating if there is an active view transition to the\n * given href. You can use this value to render CSS classes or viewTransitionName\n * styles onto your elements\n *\n * @param href The destination href\n * @param [opts.relative] Relative routing type (\"route\" | \"path\")\n */\nfunction useViewTransitionState(to, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let vtContext = React.useContext(ViewTransitionContext);\n !(vtContext != null) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. \" + \"Did you accidentally import `RouterProvider` from `react-router`?\") : UNSAFE_invariant(false) : void 0;\n let {\n basename\n } = useDataRouterContext(DataRouterHook.useViewTransitionState);\n let path = useResolvedPath(to, {\n relative: opts.relative\n });\n if (!vtContext.isTransitioning) {\n return false;\n }\n let currentPath = stripBasename(vtContext.currentLocation.pathname, basename) || vtContext.currentLocation.pathname;\n let nextPath = stripBasename(vtContext.nextLocation.pathname, basename) || vtContext.nextLocation.pathname;\n // Transition is active if we're going to or coming from the indicated\n // destination. This ensures that other PUSH navigations that reverse\n // an indicated transition apply. I.e., on the list view you have:\n //\n // <NavLink to=\"/details/1\" viewTransition>\n //\n // If you click the breadcrumb back to the list view:\n //\n // <NavLink to=\"/list\" viewTransition>\n //\n // We should apply the transition because it's indicated as active going\n // from /list -> /details/1 and therefore should be active on the reverse\n // (even though this isn't strictly a POP reverse)\n return matchPath(path.pathname, nextPath) != null || matchPath(path.pathname, currentPath) != null;\n}\n//#endregion\n\nexport { BrowserRouter, Form, HashRouter, Link, NavLink, RouterProvider, ScrollRestoration, FetchersContext as UNSAFE_FetchersContext, ViewTransitionContext as UNSAFE_ViewTransitionContext, useScrollRestoration as UNSAFE_useScrollRestoration, createBrowserRouter, createHashRouter, createSearchParams, HistoryRouter as unstable_HistoryRouter, usePrompt as unstable_usePrompt, useBeforeUnload, useFetcher, useFetchers, useFormAction, useLinkClickHandler, useSearchParams, useSubmit, useViewTransitionState };\n//# sourceMappingURL=index.js.map\n","import { useEffect, useState } from 'react';\nimport { isBrowser } from './misc/util';\nvar getInitialState = function (query, defaultState) {\n // Prevent a React hydration mismatch when a default value is provided by not defaulting to window.matchMedia(query).matches.\n if (defaultState !== undefined) {\n return defaultState;\n }\n if (isBrowser) {\n return window.matchMedia(query).matches;\n }\n // A default value has not been provided, and you are rendering on the server, warn of a possible hydration mismatch when defaulting to false.\n if (process.env.NODE_ENV !== 'production') {\n console.warn('`useMedia` When server side rendering, defaultState should be defined to prevent a hydration mismatches.');\n }\n return false;\n};\nvar useMedia = function (query, defaultState) {\n var _a = useState(getInitialState(query, defaultState)), state = _a[0], setState = _a[1];\n useEffect(function () {\n var mounted = true;\n var mql = window.matchMedia(query);\n var onChange = function () {\n if (!mounted) {\n return;\n }\n setState(!!mql.matches);\n };\n mql.addEventListener('change', onChange);\n setState(mql.matches);\n return function () {\n mounted = false;\n mql.removeEventListener('change', onChange);\n };\n }, [query]);\n return state;\n};\nexport default useMedia;\n","import {FC, ReactText, useRef, useState} from 'react';\nimport {observer} from 'mobx-react-lite';\nimport {Trans} from '@lingui/react';\n\nimport {\n Button,\n Form,\n FormError,\n FormRow,\n Panel,\n PanelContent,\n PanelHeader,\n PanelFooter,\n Select,\n SelectItem,\n} from '@client/ui';\nimport AuthActions from '@client/actions/AuthActions';\nimport AuthStore from '@client/stores/AuthStore';\nimport ClientActions from '@client/actions/ClientActions';\nimport FloodActions from '@client/actions/FloodActions';\n\nimport type {ClientConnectionSettings} from '@shared/schema/ClientConnectionSettings';\n\nimport ClientConnectionSettingsForm from './connection-settings/ClientConnectionSettingsForm';\n\nconst ClientConnectionInterruption: FC = observer(() => {\n const [error, setError] = useState<string | null>(null);\n const [isSubmitting, setSubmitting] = useState<boolean>(false);\n const [selection, setSelection] = useState<ReactText>('retry');\n const clientConnectionSettingsRef = useRef<ClientConnectionSettings | null>(null);\n\n return (\n <Panel spacing=\"large\">\n <Form\n onSubmit={async () => {\n setSubmitting(true);\n\n if (selection === 'config') {\n const currentUsername = AuthStore.currentUser.username;\n const connectionSettings = clientConnectionSettingsRef.current;\n\n if (currentUsername == null || connectionSettings == null) {\n setError('connection.settings.error.empty');\n setSubmitting(false);\n return;\n }\n\n try {\n await AuthActions.updateUser(currentUsername, {\n client: connectionSettings,\n })\n .then(() => {\n // do nothing.\n })\n .catch((e) => {\n setError('general.error.unknown');\n throw e;\n });\n } catch {\n setSubmitting(false);\n return;\n }\n }\n\n await ClientActions.testConnection()\n .then(() => {\n FloodActions.restartActivityStream();\n })\n .catch(() => {\n setError('connection-interruption.verification-error');\n });\n\n setSubmitting(false);\n }}\n >\n <PanelHeader>\n <h1>\n <Trans id=\"connection-interruption.heading\" />\n </h1>\n </PanelHeader>\n <PanelContent>\n {error && (\n <FormRow>\n <FormError>\n <Trans id={error} />\n </FormError>\n </FormRow>\n )}\n {AuthStore.currentUser.isAdmin ? (\n <FormRow>\n <Select id=\"action\" onSelect={setSelection} defaultID=\"retry\">\n <SelectItem key=\"retry\" id=\"retry\">\n <Trans id=\"connection-interruption.action.selection.retry\" />\n </SelectItem>\n <SelectItem key=\"config\" id=\"config\">\n <Trans id=\"connection-interruption.action.selection.config\" />\n </SelectItem>\n </Select>\n </FormRow>\n ) : (\n <p className=\"copy--lead\">\n <Trans id=\"connection-interruption.not.admin\" />\n </p>\n )}\n {selection === 'config' && (\n <ClientConnectionSettingsForm\n onSettingsChange={(settings) => {\n clientConnectionSettingsRef.current = settings;\n }}\n />\n )}\n </PanelContent>\n <PanelFooter hasBorder>\n <FormRow justify=\"end\">\n {selection === 'retry' && (\n <Button type=\"submit\" isLoading={isSubmitting}>\n <Trans id=\"button.retry\" />\n </Button>\n )}\n {selection === 'config' && (\n <Button type=\"submit\" isLoading={isSubmitting}>\n <Trans id=\"button.save\" />\n </Button>\n )}\n </FormRow>\n </PanelFooter>\n </Form>\n </Panel>\n );\n});\n\nexport default ClientConnectionInterruption;\n","import {FC} from 'react';\nimport {observer} from 'mobx-react-lite';\nimport {useLingui} from '@lingui/react';\n\nimport {compute, getTranslationString} from '../../util/size';\nimport SettingStore from '../../stores/SettingStore';\nimport TransferDataStore from '../../stores/TransferDataStore';\n\nconst WindowTitle: FC = observer(() => {\n const {UIPageTitleSpeedEnabled: enabled} = SettingStore.floodSettings;\n const {transferSummary: summary} = TransferDataStore;\n const {i18n} = useLingui();\n\n let title = 'Flood';\n\n if (enabled && summary != null && Object.keys(summary).length > 0) {\n const down = compute(summary.downRate);\n const up = compute(summary.upRate);\n\n const formattedDownSpeed = i18n.number(down.value);\n const formattedUpSpeed = i18n.number(up.value);\n\n const translatedDownUnit = i18n._('unit.speed', {\n baseUnit: i18n._(getTranslationString(down.unit)),\n });\n const translatedUpUnit = i18n._('unit.speed', {\n baseUnit: i18n._(getTranslationString(up.unit)),\n });\n\n title = `↓ ${formattedDownSpeed} ${translatedDownUnit} ↑ ${formattedUpSpeed} ${translatedUpUnit} - Flood`;\n }\n\n document.title = title;\n\n return null;\n});\n\nexport default WindowTitle;\n","import classnames from 'classnames';\nimport {FC} from 'react';\n\ninterface LoadingIndicatorProps {\n inverse?: boolean;\n}\n\nconst LoadingIndicator: FC<LoadingIndicatorProps> = ({inverse = true}: LoadingIndicatorProps) => {\n const classes = classnames('loading-indicator', {\n 'is-inverse': inverse,\n });\n\n return (\n <div className={classes} key=\"loading-indicator\">\n <div className=\"loading-indicator__bar loading-indicator__bar--1\" />\n <div className=\"loading-indicator__bar loading-indicator__bar--2\" />\n <div className=\"loading-indicator__bar loading-indicator__bar--3\" />\n </div>\n );\n};\n\nexport default LoadingIndicator;\n","import classnames from 'classnames';\nimport {FC} from 'react';\nimport {useLingui} from '@lingui/react';\n\nimport {CheckmarkThick} from '@client/ui/icons';\n\nimport type {Dependencies} from '@client/stores/UIStore';\n\nimport LoadingIndicator from './LoadingIndicator';\n\nconst ICONS = {\n satisfied: <CheckmarkThick />,\n};\n\nconst LoadingDependencyList: FC<{dependencies: Dependencies}> = ({dependencies}: {dependencies: Dependencies}) => {\n const {i18n} = useLingui();\n\n return (\n <ul className=\"dependency-list\">\n {Object.keys(dependencies).map((id: string) => {\n const {message, satisfied} = dependencies[id];\n const statusIcon = ICONS.satisfied;\n const classes = classnames('dependency-list__dependency', {\n 'dependency-list__dependency--satisfied': satisfied,\n });\n\n return (\n <li className={classes} key={id}>\n {satisfied != null ? <span className=\"dependency-list__dependency__icon\">{statusIcon}</span> : null}\n <span className=\"dependency-list__dependency__message\">\n {typeof message === 'string' ? message : i18n._(message)}\n </span>\n </li>\n );\n })}\n </ul>\n );\n};\n\nconst LoadingOverlay: FC<{dependencies?: Dependencies}> = ({dependencies}: {dependencies?: Dependencies}) => {\n return (\n <div className=\"application__loading-overlay\">\n <LoadingIndicator inverse />\n {dependencies != null ? <LoadingDependencyList dependencies={dependencies} /> : null}\n </div>\n );\n};\n\nexport default LoadingOverlay;\n","import classnames from 'classnames';\nimport {CSSTransition} from 'react-transition-group';\nimport {FC, ReactNode} from 'react';\nimport {observer} from 'mobx-react-lite';\nimport {useEffectOnce} from 'react-use';\nimport {useNavigate} from 'react-router';\nimport {useSearchParams} from 'react-router-dom';\nimport {css} from '@client/styled-system/css';\n\nimport AuthActions from '@client/actions/AuthActions';\nimport AuthStore from '@client/stores/AuthStore';\nimport ConfigStore from '@client/stores/ConfigStore';\nimport ClientStatusStore from '@client/stores/ClientStatusStore';\nimport UIStore from '@client/stores/UIStore';\n\nimport ClientConnectionInterruption from './general/ClientConnectionInterruption';\nimport WindowTitle from './general/WindowTitle';\nimport LoadingOverlay from './general/LoadingOverlay';\nimport LogoutButton from './sidebar/LogoutButton';\n\ninterface AppWrapperProps {\n children: ReactNode;\n className?: string;\n}\n\nconst AppWrapper: FC<AppWrapperProps> = observer(({children, className}: AppWrapperProps) => {\n const navigate = useNavigate();\n\n const [searchParams] = useSearchParams();\n\n useEffectOnce(() => {\n AuthActions.verify().then(\n ({initialUser}: {initialUser?: boolean}): void => {\n if (initialUser) {\n navigate('/register', {replace: true});\n } else {\n navigate('/overview', {replace: true});\n }\n },\n (): void => {\n navigate('/login', {replace: true});\n },\n );\n });\n\n if (searchParams.has('action')) {\n if (searchParams.get('action') === 'add-urls') {\n if (searchParams.has('url')) {\n UIStore.setActiveModal({\n id: 'add-torrents',\n tab: 'by-url',\n urls: [{id: 0, value: searchParams.get('url') as string}],\n });\n }\n }\n }\n\n const showDepsOverlay =\n !AuthStore.isAuthenticating || (AuthStore.isAuthenticated && !UIStore.haveUIDependenciesResolved);\n const showConnOverlay =\n AuthStore.isAuthenticated && !ClientStatusStore.isConnected && ConfigStore.authMethod !== 'none';\n\n return (\n <div className={classnames('application', className)}>\n <WindowTitle />\n <CSSTransition\n mountOnEnter={true}\n unmountOnExit={true}\n in={showDepsOverlay}\n timeout={{enter: 1000, exit: 1000}}\n classNames=\"application__loading-overlay\"\n >\n <LoadingOverlay dependencies={UIStore.dependencies} />\n </CSSTransition>\n <CSSTransition\n mountOnEnter={true}\n unmountOnExit={true}\n in={showConnOverlay}\n timeout={{enter: 1000, exit: 1000}}\n classNames=\"application__loading-overlay\"\n >\n <div className=\"application__loading-overlay\">\n <div className=\"application__entry-barrier\">\n <LogoutButton className={css({position: 'absolute', left: '5px', top: '5px'})} />\n <ClientConnectionInterruption />\n </div>\n </div>\n </CSSTransition>\n {children}\n </div>\n );\n});\n\nexport default AppWrapper;\n","import { compileMessage } from '@lingui/message-utils/compileMessage';\n\nconst isString = (s) => typeof s === \"string\";\nconst isFunction = (f) => typeof f === \"function\";\n\nconst cache = /* @__PURE__ */ new Map();\nconst defaultLocale = \"en\";\nfunction normalizeLocales(locales) {\n const out = Array.isArray(locales) ? locales : [locales];\n return [...out, defaultLocale];\n}\nfunction date(locales, value, format) {\n const _locales = normalizeLocales(locales);\n if (!format) {\n format = \"default\";\n }\n let o;\n if (typeof format === \"string\") {\n o = {\n day: \"numeric\",\n month: \"short\",\n year: \"numeric\"\n };\n switch (format) {\n case \"full\":\n o.weekday = \"long\";\n case \"long\":\n o.month = \"long\";\n break;\n case \"short\":\n o.month = \"numeric\";\n break;\n }\n } else {\n o = format;\n }\n const formatter = getMemoized(\n () => cacheKey(\"date\", _locales, format),\n () => new Intl.DateTimeFormat(_locales, o)\n );\n return formatter.format(isString(value) ? new Date(value) : value);\n}\nfunction time(locales, value, format) {\n let o;\n if (!format) {\n format = \"default\";\n }\n if (typeof format === \"string\") {\n o = {\n second: \"numeric\",\n minute: \"numeric\",\n hour: \"numeric\"\n };\n switch (format) {\n case \"full\":\n case \"long\":\n o.timeZoneName = \"short\";\n break;\n case \"short\":\n delete o.second;\n }\n } else {\n o = format;\n }\n return date(locales, value, o);\n}\nfunction number(locales, value, format) {\n const _locales = normalizeLocales(locales);\n const formatter = getMemoized(\n () => cacheKey(\"number\", _locales, format),\n () => new Intl.NumberFormat(_locales, format)\n );\n return formatter.format(value);\n}\nfunction plural(locales, ordinal, value, { offset = 0, ...rules }) {\n const _locales = normalizeLocales(locales);\n const plurals = ordinal ? getMemoized(\n () => cacheKey(\"plural-ordinal\", _locales),\n () => new Intl.PluralRules(_locales, { type: \"ordinal\" })\n ) : getMemoized(\n () => cacheKey(\"plural-cardinal\", _locales),\n () => new Intl.PluralRules(_locales, { type: \"cardinal\" })\n );\n return rules[value] ?? rules[plurals.select(value - offset)] ?? rules.other;\n}\nfunction getMemoized(getKey, construct) {\n const key = getKey();\n let formatter = cache.get(key);\n if (!formatter) {\n formatter = construct();\n cache.set(key, formatter);\n }\n return formatter;\n}\nfunction cacheKey(type, locales, options) {\n const localeKey = locales.join(\"-\");\n return `${type}-${localeKey}-${JSON.stringify(options)}`;\n}\n\nconst formats = {\n __proto__: null,\n date: date,\n defaultLocale: defaultLocale,\n number: number,\n plural: plural,\n time: time\n};\n\nconst ESCAPE_SEQUENCE_REGEX = /\\\\u[a-fA-F0-9]{4}|\\\\x[a-fA-F0-9]{2}/;\nconst decodeEscapeSequences = (str) => {\n return str.replace(\n // Same pattern but with capturing groups for extracting values during replacement\n /\\\\u([a-fA-F0-9]{4})|\\\\x([a-fA-F0-9]{2})/g,\n (_, unicode, hex) => {\n if (unicode) {\n const codePoint = parseInt(unicode, 16);\n return String.fromCharCode(codePoint);\n } else {\n const codePoint = parseInt(hex, 16);\n return String.fromCharCode(codePoint);\n }\n }\n );\n};\n\nconst OCTOTHORPE_PH = \"%__lingui_octothorpe__%\";\nconst getDefaultFormats = (locale, passedLocales, formats = {}) => {\n const locales = passedLocales || locale;\n const style = (format) => {\n if (typeof format === \"object\")\n return format;\n return formats[format];\n };\n const replaceOctothorpe = (value, message) => {\n const numberFormat = Object.keys(formats).length ? style(\"number\") : void 0;\n const valueStr = number(locales, value, numberFormat);\n return message.replace(new RegExp(OCTOTHORPE_PH, \"g\"), valueStr);\n };\n return {\n plural: (value, cases) => {\n const { offset = 0 } = cases;\n const message = plural(locales, false, value, cases);\n return replaceOctothorpe(value - offset, message);\n },\n selectordinal: (value, cases) => {\n const { offset = 0 } = cases;\n const message = plural(locales, true, value, cases);\n return replaceOctothorpe(value - offset, message);\n },\n select: selectFormatter,\n number: (value, format) => number(\n locales,\n value,\n style(format) || { style: format }\n ),\n date: (value, format) => date(locales, value, style(format) || format),\n time: (value, format) => time(locales, value, style(format) || format)\n };\n};\nconst selectFormatter = (value, rules) => rules[value] ?? rules.other;\nfunction interpolate(translation, locale, locales) {\n return (values = {}, formats) => {\n const formatters = getDefaultFormats(locale, locales, formats);\n const formatMessage = (tokens, replaceOctothorpe = false) => {\n if (!Array.isArray(tokens))\n return tokens;\n return tokens.reduce((message, token) => {\n if (token === \"#\" && replaceOctothorpe) {\n return message + OCTOTHORPE_PH;\n }\n if (isString(token)) {\n return message + token;\n }\n const [name, type, format] = token;\n let interpolatedFormat = {};\n if (type === \"plural\" || type === \"selectordinal\" || type === \"select\") {\n Object.entries(format).forEach(\n ([key, value2]) => {\n interpolatedFormat[key] = formatMessage(\n value2,\n type === \"plural\" || type === \"selectordinal\"\n );\n }\n );\n } else {\n interpolatedFormat = format;\n }\n let value;\n if (type) {\n const formatter = formatters[type];\n value = formatter(values[name], interpolatedFormat);\n } else {\n value = values[name];\n }\n if (value == null) {\n return message;\n }\n return message + value;\n }, \"\");\n };\n const result = formatMessage(translation);\n if (isString(result) && ESCAPE_SEQUENCE_REGEX.test(result)) {\n return decodeEscapeSequences(result);\n }\n if (isString(result))\n return result;\n return result ? String(result) : \"\";\n };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => {\n __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass EventEmitter {\n constructor() {\n __publicField$1(this, \"_events\", {});\n }\n on(event, listener) {\n var _a;\n (_a = this._events)[event] ?? (_a[event] = []);\n this._events[event].push(listener);\n return () => this.removeListener(event, listener);\n }\n removeListener(event, listener) {\n const maybeListeners = this._getListeners(event);\n if (!maybeListeners)\n return;\n const index = maybeListeners.indexOf(listener);\n if (~index)\n maybeListeners.splice(index, 1);\n }\n emit(event, ...args) {\n const maybeListeners = this._getListeners(event);\n if (!maybeListeners)\n return;\n maybeListeners.map((listener) => listener.apply(this, args));\n }\n _getListeners(event) {\n const maybeListeners = this._events[event];\n return Array.isArray(maybeListeners) ? maybeListeners : false;\n }\n}\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass I18n extends EventEmitter {\n constructor(params) {\n super();\n __publicField(this, \"_locale\", \"\");\n __publicField(this, \"_locales\");\n __publicField(this, \"_localeData\", {});\n __publicField(this, \"_messages\", {});\n __publicField(this, \"_missing\");\n __publicField(this, \"_messageCompiler\");\n /**\n * Alias for {@see I18n._}\n */\n __publicField(this, \"t\", this._.bind(this));\n if (process.env.NODE_ENV !== \"production\") {\n this.setMessagesCompiler(compileMessage);\n }\n if (params.missing != null)\n this._missing = params.missing;\n if (params.messages != null)\n this.load(params.messages);\n if (params.localeData != null)\n this.loadLocaleData(params.localeData);\n if (typeof params.locale === \"string\" || params.locales) {\n this.activate(params.locale ?? defaultLocale, params.locales);\n }\n }\n get locale() {\n return this._locale;\n }\n get locales() {\n return this._locales;\n }\n get messages() {\n return this._messages[this._locale] ?? {};\n }\n /**\n * @deprecated this has no effect. Please remove this from the code. Deprecated in v4\n */\n get localeData() {\n return this._localeData[this._locale] ?? {};\n }\n _loadLocaleData(locale, localeData) {\n const maybeLocaleData = this._localeData[locale];\n if (!maybeLocaleData) {\n this._localeData[locale] = localeData;\n } else {\n Object.assign(maybeLocaleData, localeData);\n }\n }\n /**\n * Registers a `MessageCompiler` to enable the use of uncompiled catalogs at runtime.\n *\n * In production builds, the `MessageCompiler` is typically excluded to reduce bundle size.\n * By default, message catalogs should be precompiled during the build process. However,\n * if you need to compile catalogs at runtime, you can use this method to set a message compiler.\n *\n * Example usage:\n *\n * ```ts\n * import { compileMessage } from \"@lingui/message-utils/compileMessage\";\n *\n * i18n.setMessagesCompiler(compileMessage);\n * ```\n */\n setMessagesCompiler(compiler) {\n this._messageCompiler = compiler;\n return this;\n }\n /**\n * @deprecated Plurals automatically used from Intl.PluralRules you can safely remove this call. Deprecated in v4\n */\n loadLocaleData(localeOrAllData, localeData) {\n if (typeof localeOrAllData === \"string\") {\n this._loadLocaleData(localeOrAllData, localeData);\n } else {\n Object.keys(localeOrAllData).forEach(\n (locale) => this._loadLocaleData(locale, localeOrAllData[locale])\n );\n }\n this.emit(\"change\");\n }\n _load(locale, messages) {\n const maybeMessages = this._messages[locale];\n if (!maybeMessages) {\n this._messages[locale] = messages;\n } else {\n Object.assign(maybeMessages, messages);\n }\n }\n load(localeOrMessages, messages) {\n if (typeof localeOrMessages == \"string\" && typeof messages === \"object\") {\n this._load(localeOrMessages, messages);\n } else {\n Object.entries(localeOrMessages).forEach(\n ([locale, messages2]) => this._load(locale, messages2)\n );\n }\n this.emit(\"change\");\n }\n /**\n * @param options {@link LoadAndActivateOptions}\n */\n loadAndActivate({ locale, locales, messages }) {\n this._locale = locale;\n this._locales = locales || void 0;\n this._messages[this._locale] = messages;\n this.emit(\"change\");\n }\n activate(locale, locales) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!this._messages[locale]) {\n console.warn(`Messages for locale \"${locale}\" not loaded.`);\n }\n }\n this._locale = locale;\n this._locales = locales;\n this.emit(\"change\");\n }\n _(id, values, options) {\n if (!this.locale) {\n throw new Error(\n \"Lingui: Attempted to call a translation function without setting a locale.\\nMake sure to call `i18n.activate(locale)` before using Lingui functions.\\nThis issue may also occur due to a race condition in your initialization logic.\"\n );\n }\n let message = options?.message;\n if (!id) {\n id = \"\";\n }\n if (!isString(id)) {\n values = id.values || values;\n message = id.message;\n id = id.id;\n }\n const messageForId = this.messages[id];\n const messageMissing = messageForId === void 0;\n const missing = this._missing;\n if (missing && messageMissing) {\n return isFunction(missing) ? missing(this._locale, id) : missing;\n }\n if (messageMissing) {\n this.emit(\"missing\", { id, locale: this._locale });\n }\n let translation = messageForId || message || id;\n if (isString(translation)) {\n if (this._messageCompiler) {\n translation = this._messageCompiler(translation);\n } else {\n console.warn(`Uncompiled message detected! Message:\n\n> ${translation}\n\nThat means you use raw catalog or your catalog doesn't have a translation for the message and fallback was used.\nICU features such as interpolation and plurals will not work properly for that message. \n\nPlease compile your catalog first. \n`);\n }\n }\n if (isString(translation) && ESCAPE_SEQUENCE_REGEX.test(translation))\n return decodeEscapeSequences(translation);\n if (isString(translation))\n return translation;\n return interpolate(\n translation,\n this._locale,\n this._locales\n )(values, options?.formats);\n }\n date(value, format) {\n return date(this._locales || this._locale, value, format);\n }\n number(value, format) {\n return number(this._locales || this._locale, value, format);\n }\n}\nfunction setupI18n(params = {}) {\n return new I18n(params);\n}\n\nconst i18n = setupI18n();\n\nexport { I18n, formats, i18n, setupI18n };\n","import memoize from 'lodash.memoize';\n\nfunction resolver(options) {\n return JSON.stringify(options);\n}\n\nfunction uniqDefined(arr) {\n return arr.filter(function (el, index) {\n return el && arr.indexOf(el) === index;\n });\n}\n\nfunction normalizeLocales(arr) {\n return arr.map(function (el) {\n if (!el || el.indexOf('-') === -1 || el.toLowerCase() !== el) {\n return el;\n }\n\n var splitEl = el.split('-');\n return splitEl[0] + \"-\" + splitEl[1].toUpperCase();\n });\n}\n\nfunction getUserLocalesInternal(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$useFallbackLocal = _ref.useFallbackLocale,\n useFallbackLocale = _ref$useFallbackLocal === void 0 ? true : _ref$useFallbackLocal,\n _ref$fallbackLocale = _ref.fallbackLocale,\n fallbackLocale = _ref$fallbackLocale === void 0 ? 'en-US' : _ref$fallbackLocale;\n\n var languageList = [];\n\n if (typeof window !== 'undefined') {\n var _window = window,\n navigator = _window.navigator;\n languageList = languageList.concat(navigator.languages, navigator.language, navigator.userLanguage, navigator.browserLanguage, navigator.systemLanguage);\n }\n\n if (useFallbackLocale) {\n languageList.push(fallbackLocale);\n }\n\n return normalizeLocales(uniqDefined(languageList));\n}\n\nexport var getUserLocales = memoize(getUserLocalesInternal, resolver);\n\nfunction getUserLocaleInternal(options) {\n return getUserLocales(options)[0] || null;\n}\n\nexport var getUserLocale = memoize(getUserLocaleInternal, resolver);\nexport default getUserLocale;","import {getUserLocales} from 'get-user-locale';\n\nimport Languages from '@client/constants/Languages';\nimport type {Language} from '@client/constants/Languages';\n\nexport interface LocaleConfig {\n locale: string;\n language: Exclude<Language, 'auto'>;\n}\n\nconst detectedLocales: LocaleConfig = {\n locale: 'en',\n language: 'en',\n};\n\nlet localeDetected = false;\n\nconst detectLocale = (): LocaleConfig => {\n if (localeDetected) {\n return detectedLocales;\n }\n\n // Reverse loop to respect language priority of user\n getUserLocales()\n .reverse()\n .forEach((userLocale): void => {\n detectedLocales.locale = userLocale;\n switch (detectedLocales.locale) {\n // Special handlings for languages with variants\n case 'zh':\n case 'zh-CN':\n case 'zh-SG':\n case 'zh-MY':\n detectedLocales.locale = 'zh-Hans';\n break;\n case 'zh-TW':\n case 'zh-HK':\n case 'zh-MO':\n detectedLocales.locale = 'zh-Hant';\n break;\n default:\n break;\n }\n if (Object.prototype.hasOwnProperty.call(Languages, detectedLocales.locale)) {\n detectedLocales.language = detectedLocales.locale as Exclude<Language, 'auto'>;\n } else if (Object.prototype.hasOwnProperty.call(Languages, detectedLocales.locale.substr(0, 2))) {\n // In rare cases, user provides a locale (eg. en-US) without fallback (eg. en)\n detectedLocales.language = detectedLocales.locale.substr(0, 2) as Exclude<Language, 'auto'>;\n }\n });\n\n localeDetected = true;\n return detectedLocales;\n};\n\nexport default detectLocale;\n","import {FC, ReactNode, useEffect} from 'react';\nimport {i18n} from '@lingui/core';\nimport {I18nProvider} from '@lingui/react';\nimport {observer} from 'mobx-react-lite';\n\nimport detectLocale from '@client/util/detectLocale';\nimport Languages from '@client/constants/Languages';\nimport SettingStore from '@client/stores/SettingStore';\n\nimport {messages as EN} from '@lingui/loader!./strings/en.json?raw-lingui';\n\nimport type {Language} from '@client/constants/Languages';\nimport type {LocaleConfig} from '@client/util/detectLocale';\n\nconst messagesCache: Partial<Record<Exclude<Language, 'auto'>, Record<string, string[]>>> = {en: EN};\n\ni18n.load('en', messagesCache.en as Record<string, string[]>);\ni18n.activate('en');\n\nasync function loadMessages(locale: Exclude<Language, 'auto'>) {\n const {messages} = await import(\n /* webpackChunkName: 'i18n' */\n `@lingui/loader!./strings/${locale}.json?raw-lingui`\n );\n\n messagesCache[locale] = messages;\n\n return messages;\n}\n\nasync function getMessages(locale: Exclude<Language, 'auto'>): Promise<Record<string, string[]>> {\n const cached = messagesCache[locale];\n if (cached != null) {\n return cached;\n }\n\n return loadMessages(locale as Exclude<Language, 'auto' | 'en'>);\n}\n\ninterface AsyncIntlProviderProps {\n children: ReactNode;\n}\n\nconst AsyncIntlProvider: FC<AsyncIntlProviderProps> = observer(({children}: AsyncIntlProviderProps) => {\n const {language} = SettingStore.floodSettings;\n\n useEffect(() => {\n let validatedLocale: LocaleConfig;\n if (language == null || language === 'auto' || !Object.prototype.hasOwnProperty.call(Languages, language)) {\n validatedLocale = detectLocale();\n } else {\n validatedLocale = {\n locale: language,\n language,\n };\n }\n\n (async () => {\n i18n.load(validatedLocale.locale, {...EN, ...(await getMessages(validatedLocale.language))});\n i18n.activate(validatedLocale.locale);\n })();\n }, [language]);\n\n return <I18nProvider i18n={i18n}>{children}</I18nProvider>;\n});\n\nexport default AsyncIntlProvider;\n","export default {\n withoutTrailingSlash: (input: string): string => input.replace(/\\/{1,}$/, ''),\n};\n","import {BrowserRouter} from 'react-router-dom';\nimport {createRoot} from 'react-dom/client';\nimport {FC, lazy, Suspense, useEffect} from 'react';\nimport {observer} from 'mobx-react-lite';\nimport {Route, Routes} from 'react-router';\nimport {useMedia} from 'react-use';\n\nimport AppWrapper from './components/AppWrapper';\nimport LoadingOverlay from './components/general/LoadingOverlay';\nimport AsyncIntlProvider from './i18n/languages';\nimport ConfigStore from './stores/ConfigStore';\nimport UIStore from './stores/UIStore';\n\nimport stringUtil from '@shared/util/stringUtil';\n\nimport '../sass/style.scss';\nimport '../sass/panda.css';\n\nconst Login = lazy(() => import(/* webpackPrefetch: true */ './routes/Login'));\nconst Overview = lazy(() => import(/* webpackPreload: true */ './routes/Overview'));\nconst Register = lazy(() => import(/* webpackPrefetch: true */ './routes/Register'));\n\nconst FloodApp: FC = observer(() => {\n useEffect(() => {\n UIStore.registerDependency([\n {\n id: 'notifications',\n message: {id: 'dependency.loading.notifications'},\n },\n ]);\n\n UIStore.registerDependency([\n {\n id: 'torrent-taxonomy',\n message: {id: 'dependency.loading.torrent.taxonomy'},\n },\n ]);\n\n UIStore.registerDependency([\n {\n id: 'transfer-data',\n message: {id: 'dependency.loading.transfer.rate.details'},\n },\n {\n id: 'transfer-history',\n message: {id: 'dependency.loading.transfer.history'},\n },\n ]);\n\n UIStore.registerDependency([\n {\n id: 'torrent-list',\n message: {id: 'dependency.loading.torrent.list'},\n },\n ]);\n }, []);\n\n const isSystemPreferDark = useMedia('(prefers-color-scheme: dark)');\n useEffect(() => {\n ConfigStore.setSystemPreferDark(isSystemPreferDark);\n }, [isSystemPreferDark]);\n\n // max-width here must sync with CSS\n const isSmallScreen = useMedia('(max-width: 720px)');\n useEffect(() => {\n ConfigStore.setSmallScreen(isSmallScreen);\n }, [isSmallScreen]);\n\n return (\n <Suspense fallback={<LoadingOverlay />}>\n <AsyncIntlProvider>\n <BrowserRouter basename={stringUtil.withoutTrailingSlash(ConfigStore.baseURI)}>\n <AppWrapper className={ConfigStore.isPreferDark ? 'dark' : undefined}>\n <Routes>\n <Route path=\"/login\" element={<Login />} />\n <Route path=\"/overview\" element={<Overview />} />\n <Route path=\"/register\" element={<Register />} />\n </Routes>\n </AppWrapper>\n </BrowserRouter>\n </AsyncIntlProvider>\n </Suspense>\n );\n});\n\nconst container = document.getElementById('app') as HTMLElement;\nconst root = createRoot(container);\n\nroot.render(<FloodApp />);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","module","exports","value","defaultTarget","window","isListenerType1","target","addEventListener","isListenerType2","on","name","handler","options","useEffect","off","JSON","stringify","torrentList","opts","filter","length","type","torrent","some","directory","startsWith","status","includes","trackerURIs","uri","domain","URL","hostname","split","includeUntagged","tags","tag","event","shiftKey","selectedTorrents","hash","lastHash","currentHashIndex","lastHashIndex","index","increment","foundHash","indexOf","push","metaKey","ctrlKey","hashPosition","splice","torrents","sortBy","property","sortRules","direction","p","eta","Infinity","join","toLowerCase","sort","by","constructor","makeAutoObservable","this","sortedTorrents","sortTorrents","Object","values","SettingStore","floodSettings","filteredTorrents","locationFilter","searchFilter","statusFilter","tagFilter","trackerFilter","TorrentFilterStore","assign","filterTorrents","termMatch","properties","setSelectedTorrents","selectTorrents","selectAllTorrents","map","v","handleTorrentListDiffChange","torrentListDiffs","applyPatch","handleTorrentListFullUpdate","Symbol","objectProto","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","undefined","isOwn","call","unmasked","e","result","memo","className","_jsx","classnames","viewBox","children","d","points","_jsxs","width","height","xmlns","fillRule","cx","cy","r","fillOpacity","x","y","flagsCache","CountryFlag","countryCode","flag","async","then","default","image","finally","loadFlag","getFlag","alt","title","src","style","transform","Spinner","maskID","uniqueId","id","maskUnits","xlinkHref","mask","fill","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","err","console","error","f","k","for","l","m","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","key","ref","__self","__source","q","c","a","g","b","h","defaultProps","$$typeof","props","_owner","current","Fragment","jsx","jsxs","bind","fn","thisArg","apply","arguments","getPrototypeOf","iterator","kindOf","cache","create","thing","str","slice","kindOfTest","typeOfTest","isArray","Array","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isString","isNumber","isObject","isPlainObject","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","forEach","obj","allOwnKeys","i","keys","getOwnPropertyNames","len","findKey","_key","_global","globalThis","self","global","isContextDefined","context","isTypedArray","TypedArray","Uint8Array","isHTMLForm","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","ret","defineProperties","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","token","Math","random","callbacks","source","data","shift","cb","setTimeout","asap","queueMicrotask","process","nextTick","isFormData","kind","FormData","append","isArrayBufferView","ArrayBuffer","isView","buffer","isBoolean","isEmptyObject","isStream","pipe","merge","caseless","skipUndefined","assignValue","targetKey","extend","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","defineProperty","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","searchString","position","String","lastIndex","toArray","arr","forEachEntry","_iterator","next","done","pair","matchAll","regExp","matches","exec","hasOwnProp","freezeMethods","enumerable","writable","set","Error","toObjectSet","arrayOrString","delimiter","define","toCamelCase","p1","p2","toUpperCase","noop","toFiniteNumber","defaultValue","Number","isFinite","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isThenable","catch","isIterable","AxiosError","message","code","config","request","response","captureStackTrace","utils","toJSON","description","number","fileName","lineNumber","columnNumber","from","customProps","axiosError","msg","errCode","cause","configurable","isVisitable","removeBrackets","renderKey","path","dots","concat","predicates","test","formData","TypeError","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","isFlatArray","el","exposedHelpers","build","pop","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","url","serialize","serializeFn","serializedParams","hashmarkIndex","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","clear","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","document","_navigator","navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","buildPath","isNumericKey","isLast","arrayToObject","entries","parsePropPath","defaults","transitional","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","platform","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","parseReviver","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","method","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","dest","entry","get","tokens","tokensRE","parseTokens","has","matcher","deleted","deleteHeader","normalize","format","normalized","w","char","formatHeader","targets","asStrings","getSetCookie","first","computed","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","resolve","reject","ERR_BAD_REQUEST","floor","samplesCount","min","bytes","timestamps","firstSampleTS","head","tail","chunkLength","now","Date","startedAt","bytesCount","passed","round","freq","lastArgs","timer","timestamp","threshold","invoke","args","clearTimeout","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","progressEventDecorator","throttled","asyncDecorator","isMSIE","protocol","host","port","userAgent","write","expires","secure","cookie","toGMTString","read","RegExp","decodeURIComponent","remove","buildFullPath","baseURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","newConfig","auth","btoa","username","password","unescape","getHeaders","formHeaders","allowedHeaders","isURLSameOrigin","xsrfValue","cookies","XMLHttpRequest","Promise","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","removeEventListener","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","open","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","cancel","abort","subscribe","aborted","parseProtocol","send","signals","Boolean","controller","AbortController","reason","streamChunk","chunk","chunkSize","byteLength","end","pos","readStream","stream","asyncIterator","reader","getReader","trackStream","onProgress","onFinish","iterable","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","return","highWaterMark","globalFetchAPI","Request","Response","factory","fetch","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","body","duplex","supportsResponseStream","resolvers","res","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","size","_request","getBodyLength","fetchOptions","_fetch","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","flush","isCredentialsSupported","resolvedOptions","credentials","isStreamResponse","responseContentLength","responseData","seedCache","Map","getFetch","seeds","seed","knownAdapters","http","xhr","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","ERR_DEPRECATED","warn","spelling","correctSpelling","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","configOrUrl","dummy","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","instance","toFormData","Cancel","all","promises","spread","callback","isAxiosError","payload","formToJSON","getAdapter","messages","deps","_a","useMemoHandler","useMemo","keyFilter","predicate","handlerEvent","transformAnchor","anchor","clearanceStart","clearanceEnd","tooltipDimension","triggerDimension","tooltipOverflow","getAnchor","isVertical","clearance","tooltipWidth","tooltipHeight","left","right","boundingRect","top","bottom","Tooltip","forwardRef","align","offset","maxWidth","interactive","suppress","stayOpen","wrapText","contentClassName","wrapperClassName","styles","onOpen","onClose","onClick","onMouseLeave","setState","useState","isOpen","wasTriggeredClose","coordinates","container","useRef","triggerNode","tooltipNode","scrollListenerRef","stateRef","propsRef","getCoordinates","useCallback","tooltipPosition","getIdealLocation","anchorProp","positionProp","domNode","viewportHeight","max","documentElement","clientHeight","innerHeight","viewportWidth","clientWidth","innerWidth","getBoundingClientRect","getNodeClearance","tooltipRect","newPosition","getPosition","dismissTooltipInternal","currentState","currentProps","prevState","dismissTooltip","forceClose","handleTooltipMouseEnter","handleTooltipMouseLeave","handleMouseEnter","forceOpen","newAnchor","handleMouseLeave","useImperativeHandle","containerElement","finalAnchor","finalPosition","tooltipClasses","tooltipStyle","appElement","getElementById","css","_focus","outline","WebkitTapHighlightColor","tabIndex","role","onKeyPress","preventDefault","onFocus","onBlur","onMouseEnter","createPortal","displayName","fetchStatus","clientSettingsFetched","floodSettingsFetched","clientSettings","defaultFloodSettings","totalCellWidth","torrentListColumns","reduce","accumulator","visible","torrentListColumnWidths","isNaN","handleClientSettingsFetchSuccess","settings","handleSettingsFetchSuccess","saveFloodSettings","saveClientSettings","webpackAsyncContext","req","__webpack_require__","o","ids","t","aa","ca","da","Set","ea","fa","ha","add","ia","createElement","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","z","ra","sa","ta","pa","qa","oa","removeAttribute","setAttribute","setAttributeNS","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","A","Ma","Na","Oa","prepareStackTrace","Reflect","construct","Pa","render","Qa","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","getOwnPropertyDescriptor","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","db","ownerDocument","eb","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","lb","mb","nb","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","setProperty","charAt","tb","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","track","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","altKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","fromCharCode","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","range","search","tel","text","time","week","me","ne","oe","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","node","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","start","selectionStart","selectionEnd","defaultView","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","element","scrollLeft","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","D","of","pf","qf","rf","sf","capture","passive","J","u","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Jf","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","elementType","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","_stringRef","refs","Mg","Ng","Og","Pg","Qg","Rg","implementation","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","_currentValue","bh","childLanes","ch","dependencies","firstContext","lanes","dh","eh","memoizedValue","fh","gh","hh","interleaved","ih","jh","kh","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","lh","mh","eventTime","lane","nh","K","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","tagName","zh","Ah","Bh","L","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","ReactCurrentDispatcher","Gh","Hh","M","N","O","Ih","Jh","Kh","Lh","P","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","queue","Uh","Vh","Wh","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","Q","di","lastEffect","stores","ei","fi","gi","hi","ii","destroy","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","R","Bi","readContext","useContext","useInsertionEffect","useLayoutEffect","useReducer","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ci","Di","Ei","isMounted","_reactInternals","enqueueSetState","enqueueReplaceState","enqueueForceUpdate","Fi","shouldComponentUpdate","isPureReactComponent","Gi","contextType","updater","Hi","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ii","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Ji","digest","Ki","Li","Mi","WeakMap","Ni","Oi","Pi","Qi","getDerivedStateFromError","componentDidCatch","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","compare","bj","cj","dj","baseLanes","cachePool","transitions","ej","fj","gj","hj","ij","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","jj","kj","pendingContext","lj","zj","Aj","Bj","Cj","mj","nj","oj","fallback","pj","qj","sj","dataset","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","last","tailMode","xj","Dj","S","Ej","Fj","wasMultiple","multiple","suppressHydrationWarning","onclick","createElementNS","autoFocus","createTextNode","T","Gj","Hj","Ij","Jj","U","Kj","WeakSet","V","Lj","W","Mj","Nj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","insertBefore","_reactRootContainer","Wj","X","Xj","Yj","Zj","onCommitFiberUnmount","componentWillUnmount","ak","bk","ck","dk","ek","isHidden","fk","gk","display","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","Vk","lk","ceil","mk","nk","ok","Y","Z","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","finishedWork","finishedLanes","Pk","timeoutHandle","Qk","Rk","Sk","Tk","Uk","mutableReadLanes","Bc","Oj","onCommitFiberRoot","mc","onRecoverableError","Wk","onPostCommitFiberRoot","Xk","Yk","$k","isReactComponent","pendingChildren","al","mutableSourceEagerHydrationData","bl","pendingSuspenseBoundaries","dl","fl","gl","hl","il","yj","Zk","kl","reportError","ll","_internalRoot","ml","nl","ol","pl","rl","ql","unmount","unstable_scheduleHydration","querySelectorAll","form","sl","usingClientEntryPoint","Events","tl","findFiberByHostInstance","bundleType","rendererPackageName","ul","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","vl","isDisabled","supportsFiber","inject","cl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","getRawTag","objectToString","elements","sub","queries","searchTerms","every","query","_i","baseToString","defaultNoopBatch","printDebugValue","globalIsUsingStaticRendering","isUsingStaticRendering","_b","TimerBasedFinalizationRegistry","finalize","_this","maxAge","sweepTimeout","registrations","registration","registeredAt","scheduleSweep","sweep","observerFinalizationRegistry","FinalizationRegistry","adm","reaction","dispose","createReaction","stateVersion","onStoreChange","useObserver","baseComponentName","admRef","adm_1","unregister","renderResult","exception","register","hasSymbol","isFunctionNameConfigurable","ReactForwardRefSymbol","ReactMemoSymbol","observer","baseComponent","useForwardRef","observerComponent","hoistBlackList","reactionScheduler","language","percentComplete","downTotal","downRate","upTotal","upRate","ratio","sizeBytes","peers","dateActive","dateAdded","dateCreated","dateFinished","isPrivate","torrentContextMenuActions","torrentListViewSize","speedLimits","download","mountPoints","deleteTorrentData","startTorrentsOnLoad","UIPageTitleSpeedEnabled","baseGetTag","isObjectLike","auto","en","cs","es","fr","it","hu","no","pt","ru","ro","sv","ko","ar","TRANSFER_DIRECTIONS","transferRates","transferSummary","appendCurrentTransferRateToHistory","handleFetchTransferHistorySuccess","transferData","handleTransferSummaryFullUpdate","effect","freeGlobal","activeContextMenu","activeDropdownMenu","activeModal","globalStyles","haveUIDependenciesResolved","styleElement","createStyleElement","addGlobalStyle","cssString","applyStyles","nextStyleString","styleSheet","cssText","stylesheetRef","dismissContextMenu","menuID","handleSetTaxonomySuccess","setActiveModal","removeGlobalStyle","registerDependency","dependency","satisfied","satisfyDependency","dependencyID","verifyDependencies","setActiveContextMenu","contextMenu","setActiveDropdownMenu","dropdownMenu","modal","array","iteratee","extendStatics","__extends","setPrototypeOf","__proto__","__","_hasOwnProperty","_objectKeys","keys_1","_deepClone","isInteger","escapePathComponent","unescapePathComponent","hasUndefined","i_1","objKeys","objKeysLength","patchErrorMessageFormatter","messageParts","PatchError","_super","operation","tree","_newTarget","JsonPatchError","deepClone","objOps","newDocument","removed","move","getValueByPointer","originalValue","applyOperation","op","copy","valueToCopy","_areEquals","_get","arrOps","pointer","getOriginalDestination","validateOperation","mutateDocument","banPrototypeModifications","existingPathFragment","validateFunction","patch","results","length_1","applyReducer","operationResult","pathLen","existingPathLen","validate","sequence","externalValidator","arrA","arrB","beforeDict","Mirror","observers","ObserverInfo","unobserve","root","observe","mirror","getMirror","observerInfo","getObserverFromMirror","dirtyCheck","generate","fastCheck","patches","object","removeObserverFromMirror","invertible","_generate","temp","newKeys","oldKeys","oldVal","newVal","tree1","tree2","forceUpdate","escape","_status","_result","Children","count","only","Component","Profiler","PureComponent","StrictMode","Suspense","act","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","isValidElement","lazy","startTransition","unstable_act","LogoutButton","i18n","useLingui","ConfigStore","authMethod","_","AuthActions","logout","reload","Logout","_setPrototypeOf","_inheritsLoose","_extends","Action","PopStateEventType","createBrowserHistory","getUrlBasedHistory","globalHistory","pathname","createLocation","usr","to","createPath","invariant","warning","cond","getHistoryState","idx","parsePath","substr","_ref","parsedPath","hashIndex","searchIndex","getLocation","createHref","validateLocation","v5Compat","history","Pop","getIndex","handlePop","nextIndex","delta","createURL","replaceState","listen","encodeLocation","Push","historyState","pushState","DOMException","Replace","go","ResultType","matchRoutes","routes","locationArg","basename","matchRoutesImpl","allowPartial","stripBasename","branches","flattenRoutes","score","siblings","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","decoded","decodePath","matchRouteBranch","parentsMeta","parentPath","flattenRoute","route","relativePath","caseSensitive","joinPaths","computeScore","_route$path","exploded","explodeOptionalSegments","segments","rest","isOptional","required","restExploded","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","pattern","compiledParams","regexpSource","paramName","compilePath","captureGroups","splatValue","startIndex","nextChar","ABSOLUTE_URL_REGEX$1","isAbsoluteUrl","resolvePathname","fromPathname","getInvalidPathError","field","getPathContributingMatches","getResolveToMatches","v7_relativeSplatPath","pathMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","oldPathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","AbortedDeferredError","isRouteErrorResponse","internal","validMutationMethodsArr","validRequestMethodsArr","baseURI","authenticate","post","AuthStore","handleLoginSuccess","errorMessage","handleLoginError","ClientActions","fetchSettings","SettingActions","FloodActions","restartActivityStream","createUser","handleCreateUserSuccess","updateUser","deleteUser","fetchUsers","handleListUsersSuccess","handleRegisterSuccess","verify","configs","handlePreloadConfigs","handleAuthVerificationSuccess","handleAuthVerificationError","INITIAL_COUNT_STATE","unread","notifications","notificationCount","hasNotification","clearAll","handleNotificationCountChange","handleNotificationsFetchSuccess","isConnected","handleConnectivityStatusChange","replaceClassName","origClass","classToRemove","forceReflow","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","nextCallback","_proto","updateStatus","prevProps","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","nodeRef","performEnter","performExit","_this2","appearing","_ref2","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","nextState","setNextCallback","_this4","active","doesNotHaveTimeoutOrListener","addEndListener","_ref3","maybeNextCallback","_this$props","childProps","TransitionGroupContext","propTypes","removeClass","classList","baseVal","CSSTransition","_len","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","_this$resolveArgument3","getClassNames","classNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","hasClass","_addClass","_this$appliedClasses$","FadeIn","isIn","FormElementAddon","addonPlacement","addonIndex","isInteractive","grow","shrink","Button","additionalClassNames","buttonRef","labelOffset","isLoading","wrap","wrapper","FormRowItem","wrapperProps","addonNodes","childNodes","childAsElement","LoadingRing","WrapperComponent","dispatchChangeEvent","eventID","Event","createEvent","initEvent","getDataFromForm","inputElement","retForm","ToggleInput","groupID","icon","matchTextboxHeight","inputRef","onChange","Checkmark","Overlay","onContextMenu","isTransparent","onClickCapture","onContextMenuCapture","matchTriggerWidth","menuAlign","padding","scrolling","triggerRef","triggerCoordinates","onOverlayClick","onOverlayRightClick","overlayProps","dropdownStyle","shouldRenderAbove","buttonBoundingRect","windowHeight","spaceAbove","spaceBelow","maxHeight","windowWidth","enterActive","exitActive","appearActive","Form","onSubmit","formRef","handleFormChange","handleFormSubmit","getFormData","resetForm","getAttribute","customEventHandler","onInput","FormError","FormGroup","label","FormRow","justify","Panel","spacing","transparent","inverse","isPreferDark","PanelContent","hasBorder","borderPosition","PanelFooter","PanelHeader","level","Portal","mountPoint","ReactDOM","Circle","Select","defaultID","persistentPlaceholder","onSelect","menuRef","setIsOpen","selectedID","setSelectedID","find","selectedItem","item","isPlaceholder","useKey","useEvent","htmlFor","Chevron","isTrigger","ContextMenu","selection","isSelected","ContextMenuItem","textAlign","SelectItem","placeholder","autoComplete","readOnly","addonCount","childElements","inputClasses","wrapperClasses","disks","setDiskUsage","hasOwn","arg","appendClass","parseValue","newClass","idCounter","prefix","isAuthenticating","isAuthenticated","users","optimisticUsers","currentUser","isAdmin","isInitialUser","nextUserList","optimisticUser","databaseUser","AccessLevel","ADMINISTRATOR","initialUser","UNIT_TO_STRING_ID","kB","MB","GB","TB","compute","precision","kilobyte","megabyte","gigabyte","terabyte","unit","toFixed","getTranslationString","sortIndex","performance","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","alerts","sortedAlerts","asc","alert","updated","duration","curAlert","scheduleClose","newAlert","extendObservable","runInAction","arrayMap","isSymbol","symbolProto","symbolToString","HASH_UNDEFINED","funcTag","genTag","reIsHostCtor","freeSelf","Function","uid","arrayProto","funcProto","coreJsData","maskSrcKey","IE_PROTO","funcToString","reIsNative","getNative","nativeCreate","Hash","ListCache","MapCache","assocIndexOf","eq","baseIsNative","func","isHostObject","toSource","getMapData","__data__","memoize","resolver","memoized","Cache","other","DataRouterContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useInRouterContext","useLocation","useIsomorphicLayoutEffect","static","useNavigate","router","useDataRouterContext","DataRouterHook","UseNavigateStable","useCurrentRouteId","DataRouterStateHook","activeRef","navigate","fromRouteId","useNavigateStable","dataRouterContext","future","routePathnamesJson","relative","useNavigateUnstable","useRoutesImpl","dataRouterState","parentMatches","routeMatch","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","parentSegments","renderedMatches","_renderMatches","navigationType","DefaultErrorComponent","_state$errors","useDataRouterState","UseRouteError","routeId","errors","useRouteError","lightgrey","preStyles","backgroundColor","fontStyle","defaultErrorElement","RenderErrorBoundary","super","revalidation","errorInfo","routeContext","component","RenderedRoute","staticContext","errorElement","ErrorBoundary","_deepestRenderedBoundaryId","_dataRouterState","_future","v7_partialHydration","initialized","errorIndex","findIndex","renderFallback","fallbackIndex","HydrateFallback","hydrateFallbackElement","loaderData","needsToRunLoader","loader","reduceRight","shouldRenderHydrateFallback","alreadyWarned$1","getChildren","hookName","ctx","useRouteContext","thisRoute","logDeprecation","logV6DeprecationWarnings","renderFuture","routerFuture","v7_startTransition","v7_fetcherPersist","v7_normalizeFormMethod","v7_skipActionErrorRevalidation","Route","_props","Router","_ref5","basenameProp","locationProp","staticProp","navigationContext","locationContext","trailingPathname","Routes","_ref6","createRoutesFromChildren","treePath","hasErrorBoundary","shouldRevalidate","handle","die","mockGlobal","getGlobal","getDescriptor","objectPrototype","EMPTY_ARRAY","freeze","EMPTY_OBJECT","hasProxy","Proxy","plainObjectString","assertProxies","once","invoked","isStringish","proto","protoConstructor","isGenerator","addHiddenProp","propName","addHiddenFinalProp","createInstanceofPredicate","theClass","isES6Map","isES6Set","hasGetOwnPropertySymbols","getOwnPropertySymbols","ownKeys","toPrimitive","hasProp","setFlag","newValue","_arrayLikeToArray","_defineProperties","_toPropertyKey","_createClass","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_toPrimitive","storedAnnotationsSymbol","createDecoratorAnnotation","annotation","is20223Decorator","decorate_20223_","storeAnnotation","annotationType_","OVERRIDE","isOverride","$mobx","Atom","name_","flags_","observers_","lastAccessedBy_","lowestObserverState_","IDerivationState_","NOT_TRACKING_","onBOL","onBUOL","onBO","onBUO","reportObserved","reportChanged","startBatch","propagateChanged","endBatch","isBeingObservedMask_","isPendingUnobservationMask_","diffValueMask_","isAtom","createAtom","onBecomeObservedHandler","onBecomeUnobservedHandler","atom","interceptHook","ON_BECOME_OBSERVED","onBecomeUnobserved","comparer","identity","structural","deepEqual","shallow","deepEnhancer","isObservable","observable","isAction","isFlow","flow","autoAction","referenceEnhancer","createActionAnnotation","options_","make_","make_$1","extend_","extend_$1","decorate_20223_$1","_this$options_","bound","target_","actionDescriptor","createActionDescriptor","proxyTrap","defineProperty_","mthd","_this$options_2","addInitializer","ann","_createAction","_ann$options_$name","_ann$options_","_ann$options_$autoAct","_ann$options_2","createAction","initMthd","_ann$options_3","isMobxAction","safeDescriptors","_annotation$options_","_annotation$options_$","_annotation$options_2","_annotation$options_$2","_annotation$options_3","_annotation$options_4","_adm$proxy_2","globalState","_adm$proxy_","proxy_","isPlainObject_","createFlowAnnotation","make_$2","extend_$2","decorate_20223_$2","flowDescriptor","createFlowDescriptor","_this$options_3","isMobXFlow","createComputedAnnotation","make_$3","extend_$3","decorate_20223_$3","assertComputedDescriptor","defineComputedProperty_","asObservableObject","values_","ComputedValue","getObservablePropValue_","createObservableAnnotation","make_$4","extend_$4","decorate_20223_$4","_this$options_$enhanc","assertObservableDescriptor","defineObservableProperty_","enhancer","initializedObjects","initializeObservable","_ann$options_$enhance","ObservableValue","setObservablePropValue_","init","AUTO","autoAnnotation","createAutoAnnotation","make_$5","extend_$5","decorate_20223_$5","_this$options_4","autoBind","observableAnnotation","deep","_this$options_5","_this$options_6","defaultCreateObservableOptions","defaultDecorator","proxy","asCreateObservableOptions","observableRefAnnotation","observableShallowAnnotation","isObservableObject","isObservableArray","isObservableMap","isObservableSet","observableStructAnnotation","oldValue","observableDecoratorAnnotation","getEnhancerFromOptions","createObservable","box","_getDescriptor$config","_getDescriptor","equals","initialValues","useProxies","createLegacyArray","createObservableArray","ObservableMap","ObservableSet","decorators","initObservable","_target$$mobx","_target$$mobx$proxy_","objectProxyTraps","asDynamicObservableObject","struct","COMPUTED","computedAnnotation","computedStructAnnotation","currentActionId","nextActionId","tmpNameDescriptor","actionName","executeAction","canRunAsDerivation","scope","runInfo","notifySpy_","startTime_","prevDerivation_","trackingDerivation","runAsAction","prevAllowStateChanges_","allowStateChanges","untrackedStart","allowStateChangesStart","prevAllowStateReads_","allowStateReadsStart","runAsAction_","actionId_","parentActionId_","_startAction","error_","suppressReactionErrors","allowStateChangesEnd","allowStateReadsEnd","untrackedEnd","_endAction","prev","_Atom","notifySpy","hasUnreportedChange_","interceptors_","changeListeners_","value_","dehancer","dehanceValue","prepareNewValue_","UNCHANGED","setNewValue_","checkIfStateModificationsAreAllowed","hasInterceptors","change","interceptChange","UPDATE","hasListeners","notifyListeners","intercept_","registerInterceptor","observe_","fireImmediately","observableKind","debugObjectName","registerListener","raw","dependenciesState_","observing_","newObserving_","runId_","UP_TO_DATE_","unboundDepsCount_","CaughtException","triggeredBy_","derivation","setter_","isTracing_","TraceMode","NONE","scope_","equals_","requiresReaction_","keepAlive_","compareStructural","requiresReaction","keepAlive","onBecomeStale_","POSSIBLY_STALE_","propagateMaybeChanged","isComputing","inBatch","shouldCompute","prevTrackingContext","trackingContext","trackAndCompute","STALE_","propagateChangeConfirmed","warnAboutUntrackedRead_","computeValue_","isCaughtException","isRunningSetter","wasSuspended","changed","trackDerivedFunction","disableErrorBoundaries","suspend_","clearObserving","firstTime","prevValue","autorun","prevU","isComputingMask_","isRunningSetterMask_","isComputedValue","prevAllowStateReads","prevUntracked","obs","changeDependenciesStateTo0","runId","prevTracking","prevObserving","observing","lowestNewObservingDerivationState","i0","dep","diffValue","_dep","removeObserver","_dep2","addObserver","bindDependencies","untracked","allowStateReads","MobXGlobals","mobxGuid","pendingUnobservations","pendingReactions","isRunningReactions","enforceActions","spyListeners","globalReactionErrorHandlers","computedRequiresReaction","reactionRequiresObservable","observableRequiresReaction","verifyProxies","canMergeGlobalState","isolateCalled","__mobxInstanceCount","__mobxGlobals","queueForUnobservation","isPendingUnobservation","runReactions","list","isBeingObserved","Reaction","onInvalidate_","errorHandler_","requiresObservable_","schedule_","isScheduled","runReaction_","isDisposed","isTrackPending","reportExceptionInDerivation_","isRunning","prevReaction","getDisposer_","abortSignal","trace","enterBreakPoint","isDisposedMask_","isScheduledMask_","isTrackPendingMask_","isRunningMask_","MAX_REACTION_ITERATIONS","runReactionsHelper","allReactions","iterations","remainingReactions","isReaction","ACTION","AUTOACTION","DEFAULT_ACTION_NAME","actionAnnotation","actionBoundAnnotation","autoActionAnnotation","autoActionBoundAnnotation","createActionFactory","_opts$name","_opts","_opts2","_opts3","scheduler","reactionRunner","requiresObservable","createSchedulerFromOptions","run","expression","_opts$name2","_opts4","_opts5","errorHandler","baseFn","effectAction","runSync","nextValue","ON_BECOME_UNOBSERVED","hook","getAtom","listenersKey","hookListeners","NEVER","ALWAYS","OBSERVED","configure","isolateGlobalState","baseScheduler","annotations","getDependencyTree","nodeToDependencyTree","generatorId","FlowCancellationError","flowAnnotation","flowBoundAnnotation","generator","rejector","gen","pendingPromise","stepId","cancelPromise","_res","yieldedPromise","_isObservable","transaction","getAdm","has_","get_","_getAdm$set_","set_","deleteProperty","_getAdm$delete_","delete_","_getAdm$definePropert","ownKeys_","preventExtensions","interceptable","listenable","makeObservable","collectStoredAnnotations","keysSymbol","overrides","SPLICE","arrayTraps","getArrayLength_","arrayExtensions","parseInt","setArrayLength_","ObservableArrayAdministration","owned_","legacyMode_","atom_","enhancer_","lastKnownLength_","newV","oldV","dehanceValue_","dehanceValues_","added","addedCount","removedCount","newLength","currentLength","newItems","spliceWithArray_","updateArrayLength_","oldLength","reserveArrayBuffer","deleteCount","lengthDelta","spliceItemsIntoValues_","notifyArraySplice_","_this$values_","oldItems","notifyArrayChildUpdate_","notify","owned","spliceWithArray","_len2","items","_key2","_len3","_key3","reverse","addArrayExtension","funcName","funcFactory","simpleFunc","dehancedValues","mapLikeFunc","reduceLikeFunc","currentValue","isObservableArrayAdministration","ObservableMapMarker","ADD","DELETE","initialData","data_","hasMap_","keysAtom_","newEntry","hasKey","updateValue_","addValue_","_change","_this3$hasMap_$get","_this4$hasMap_$get","makeIterableForMap","_keys$next","_keys$next2","_step","_step$value","_this5","mapProto","symbols","propertyIsEnumerable","getPlainObjectKeys","_this6","_step2","_iterator2","_this7","_step3","replacementMap","dataStructure","convertToMap","orderedData","keysReportChangedCalled","_iterator3","_step4","_iterator4","_step4$value","keyExisted","_value2","iter1","iter2","next1","next2","makeIterable","ObservableSetMarker","callbackFn","_change2","makeIterableForSet","_values$next","_values$next2","intersection","otherSet","union","difference","symmetricDifference","isSubsetOf","isSupersetOf","isDisjointFrom","descriptorCache","REMOVE","ObservableObjectAdministration","defaultAnnotation_","appliedAnnotations_","pendingKeys_","assertAnnotable","_this$target_$storedA","outcome","recordAnnotationApplied","deleteOutcome","notifyPropertyAddition_","cachedDescriptor","getCachedObservablePropDescriptor","_this$pendingKeys_","_this$pendingKeys_2","keys_","_options$name","_options$defaultDecor","getAnnotationFromOptions","isObservableObjectAdministration","_adm$target_$storedAn","ctor","ENTRY_0","createArrayEntryDescriptor","safariPrototypeSetterInheritanceBug","OBSERVABLE_ARRAY_BUFFER_SIZE","StubArray","LegacyObservableArray","_StubArray","arrays","createArrayBufferItem","getDebugName","_observable","getAdministration","named","_getGlobal$Iterator","depth","aStack","bStack","unwrap","areArrays","aCtor","bCtor","_length","maybeIteratorPrototype","Iterator","getSelf","__MOBX_DEVTOOLS_GLOBAL_HOOK__","injectMobx","spy","extras","SUPPORTED_CLIENTS","DelugeConnectionSettingsForm","onSettingsChange","setSettings","client","newSettings","FormRowGroup","Textbox","Trans","QBittorrentConnectionSettingsForm","RTorrentConnectionSettingsForm","setType","socket","Radio","TransmissionConnectionSettingsForm","DEFAULT_SELECTION","ClientConnectionSettingsForm","selectedClient","setSelectedClient","settingsForm","newSelectedClient","strokeLinecap","strokeLinejoin","compact","fromEntries","value2","toChar","toHash","abs","toName","toPhash","importantRegex","withoutSpace","replaceAll","MERGE_OMIT","mergeProps","sources","isNotNullish","walkObject","stop","getKey","inner","childPath","normalizeStyleObject","shorthand","utility","conditions","hasShorthand","resolveShorthand","breakpoints","acc","fallbackCondition","wordRegex","msRegex","hypenateProperty","lengthUnitsPattern","conditionRegex","isCondition","underscoreRegex","conditionsSelectorRegex","classNameByProp","shorthands","shorthandList","hashFn","cssFn","conds","formatClassName","normalizedObject","important","isImportant","allConditions","isBaseCondition","transformed","withoutImportant","sanitize","baseArray","createCss","mergeCss","assignCss","allStyles","flat","compactStyles","createMergeCss","saveSettings","success","AlertStore","saveSetting","testConnection","React","objectIs","checkIfSnapshotChanged","inst","latestGetSnapshot","shim","_useState","_objectWithoutPropertiesLoose","visibilityChangeTimeout","activityStreamEventSource","ServerEventHandlers","CLIENT_CONNECTIVITY_STATUS_CHANGE","ClientStatusStore","DISK_USAGE_CHANGE","DiskUsageStore","NOTIFICATION_COUNT_CHANGE","NotificationStore","UIStore","TORRENT_LIST_DIFF_CHANGE","TorrentStore","TORRENT_LIST_FULL_UPDATE","TAXONOMY_DIFF_CHANGE","handleTorrentTaxonomyDiffChange","TAXONOMY_FULL_UPDATE","handleTorrentTaxonomyFullUpdate","TRANSFER_SUMMARY_FULL_UPDATE","TransferDataStore","TRANSFER_HISTORY_FULL_UPDATE","clearNotifications","closeActivityStream","fetchDirectoryList","fetchNotifications","startActivityStream","EventSource","handleProlongedInactivity","handleWindowVisibilityChange","hidden","tagRe","voidElementTags","formatElements","makeCounter","parts","before","after","getElements","paired","unpaired","TransNoContext","formats","lingui","defaultComponent","components","_translation","translation","FallbackComponent","RenderFragment","i18nProps","LinguiContext","useLinguiInternal","devErrorMessage","I18nProvider","latestKnownLocale","makeContext","setContext","updateContext","errMessage","filterTrigger","taxonomy","locationTree","directoryName","fullPath","containedCount","containedSize","statusCounts","statusSizes","tagCounts","tagSizes","trackerCounts","trackerSizes","isFilterActive","clearAllFilters","diff","jsonpatch","setSearchFilter","setLocationFilters","computeFilters","setStatusFilters","torrentStatusMap","setTagFilters","localeCompare","setTrackerFilters","trackers","currentFilters","newFilter","lastKey","lastKeyIndex","currentKeyIndex","foundKey","lastIndexOf","pollInterval","isSmallScreen","isSystemPreferDark","isUserPreferDark","queryUserPreferDark","preference","localStorage","getItem","setSmallScreen","setSystemPreferDark","setUserPreferDark","removeItem","setItem","castComparer","throwInvalidConfigErrorIfTrue","condition","unpackObjectSorter","sortByObj","getSortStrategy","multiPropSorter_1","defaultComparer","multiPropertySorter","sortByArr","valA","valB","objectSorterConfig","equality","multiPropertySorterProvider","sortArray","createNewSortInstance","arrayToSort","inPlaceSorting","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","chunkIds","notFulfilled","j","chunkId","getter","__esModule","ns","def","definition","miniCssF","script","needAttach","scripts","getElementsByTagName","charset","nc","onScriptComplete","onload","doneFns","nmd","scriptUrl","currentScript","installedChunks","installedChunkData","errorType","realSrc","rel","as","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","createSearchParams","__reactRouterVersion","startTransitionImpl","BrowserRouter","_ref4","historyRef","setStateImpl","newState","useSearchParams","defaultInit","defaultSearchParamsRef","hasSetSearchParamsRef","searchParams","locationSearch","defaultSearchParams","getAll","getSearchParamsForLocation","setSearchParams","nextInit","navigateOptions","newSearchParams","defaultState","matchMedia","getInitialState","mounted","mql","setError","isSubmitting","setSubmitting","setSelection","clientConnectionSettingsRef","currentUsername","connectionSettings","WindowTitle","enabled","summary","down","up","formattedDownSpeed","formattedUpSpeed","baseUnit","LoadingIndicator","ICONS","CheckmarkThick","LoadingDependencyList","statusIcon","LoadingOverlay","useEffectOnce","tab","urls","showDepsOverlay","showConnOverlay","ClientConnectionInterruption","defaultLocale","normalizeLocales","locales","_locales","day","year","weekday","getMemoized","cacheKey","Intl","DateTimeFormat","second","minute","hour","timeZoneName","NumberFormat","plural","ordinal","rules","plurals","PluralRules","select","formatter","ESCAPE_SEQUENCE_REGEX","decodeEscapeSequences","unicode","hex","codePoint","OCTOTHORPE_PH","selectFormatter","interpolate","formatters","passedLocales","replaceOctothorpe","numberFormat","valueStr","cases","selectordinal","getDefaultFormats","interpolatedFormat","__defProp$1","__publicField$1","__defNormalProp$1","EventEmitter","_events","removeListener","maybeListeners","_getListeners","emit","__defProp","__publicField","__defNormalProp","I18n","missing","_missing","load","localeData","loadLocaleData","activate","_locale","_messages","_localeData","_loadLocaleData","maybeLocaleData","setMessagesCompiler","compiler","_messageCompiler","localeOrAllData","_load","maybeMessages","localeOrMessages","messages2","loadAndActivate","messageForId","messageMissing","setupI18n","getUserLocales","_temp","_ref$useFallbackLocal","useFallbackLocale","_ref$fallbackLocale","fallbackLocale","languageList","languages","userLanguage","browserLanguage","systemLanguage","splitEl","detectedLocales","localeDetected","detectLocale","userLocale","Languages","messagesCache","EN","getMessages","cached","loadMessages","validatedLocale","Login","Overview","Register","FloodApp","useMedia","AsyncIntlProvider","stringUtil","AppWrapper"],"sourceRoot":""}
|