@sheetxl/mcp 0.8.0-beta.15 → 0.8.0-beta.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +8 -7
- package/assets/{OVRdpPUzR0-ueTxE.js → -PtBguqpLi7Nr4Df.js} +2 -2
- package/assets/{BOPsJmq7v7HOKUkO.js → 2GLqCzpAJP6jbaRx.js} +12 -12
- package/assets/{BPwmBu_aouERJjiW.js → 3_NofB4A4Qhl-4YY.js} +2 -2
- package/assets/{CGBGyaCGdlZFQYK0.js → 3t-I20nDzFHBd5UJ.js} +2 -2
- package/assets/{hulrR0PldUxMJm_F.js → 4vS8pASPZSU7QcRZ.js} +4 -4
- package/assets/{Bh0PNKlrR4VAqnP8.js → 5B_tapYOcjOv1wGO.js} +35528 -30074
- package/assets/{FS9NbEKgQvz5wqvZ.js → 8NrxfSWBHDaEJvhz.js} +2 -2
- package/assets/{oxjm7Yr7u7MeaO5P.js → 9MXt8KXdWlbEJNc2.js} +2 -2
- package/assets/{CduNzsdbTigxH-ZK.js → AjWB-QdIkr07kToW.js} +189 -189
- package/assets/{DvUUArnZwoYOKOuk.js → B16N6VSLY5HPgVkD.js} +2 -2
- package/assets/{C0CiMKC3lWK1z9p5.js → B2YEEPHIkNcezk9T.js} +3 -3
- package/assets/{CNz3LdmvsOEJoLO9.js → B3MqN3t5naY3moOk.js} +2 -2
- package/assets/BBPjYcS8XKQREith.js +199 -0
- package/assets/{B4VnJacrzr1x4PHR.js → BCSRsSAEPlwR59H5.js} +5 -5
- package/assets/{CMK6tIDVqYYvK4GZ.js → BIUUGUhypimIDg2a.js} +2 -2
- package/assets/{iujMYIEPx_v3sdPf.js → BNrpvJZtIL0Ex_wE.js} +996 -995
- package/assets/{DA_ar3QKLKtJ9fJD.js → BR66nPIzyzlOcP10.js} +2 -2
- package/assets/{CvngwB17_ve4W49b.js → BRLA4pJWiYdpW-69.js} +73 -73
- package/assets/{Crt2kLdGIlBHANgg.js → BUAq-ENCmL0XGLIu.js} +2 -2
- package/assets/{Bn8D2bebQ2tFfwQt.js → BYqyNLuwXl7GKuzh.js} +43 -41
- package/assets/{ZuYfVKlp41IJnrOS.js → BZbxPclVVopktv3l.js} +2 -2
- package/assets/{Cf9LpgZz-W5blzy_.js → B_nQLUWaxp-Q1IfV.js} +3 -3
- package/assets/{BbcUxIZe3YXywsQR.js → BbDKWV_FQAICqZjP.js} +2 -2
- package/assets/{B2udpZ-uIaql3AUh.js → BbXlmp8W_cbr75FN.js} +6 -6
- package/assets/{CxjchwpiqxPM1XKd.js → BdMebk9YSA0oxQ_d.js} +70 -70
- package/assets/{JO3zH9hupFSV6vj2.js → Bdt9nQs8gDIzu_IG.js} +2 -2
- package/assets/{Cf2dcwmmmf13Rywg.js → BiE9M6RctwQ339_7.js} +2 -2
- package/assets/{BJxfinOazQqqByc-.js → BiGm1tKvxUh8oWbD.js} +2 -2
- package/assets/{DH7sGHzxUqIQkDnd.js → BjDsx_FHl0mShqHX.js} +2 -2
- package/assets/{DB-tkqI6wFXDKEfB.js → BlIrJwQGEASCgJdZ.js} +2 -2
- package/assets/{DD8HNAUFroTCuD-b.js → BlWfQ5HPEehB_lPz.js} +3288 -2130
- package/assets/BpgPKKZwxXklRyo7.js +7 -0
- package/assets/{D7oUtYjetuykGhQ5.js → BrtLeTsrulaU6osB.js} +2 -2
- package/assets/{LyLlBk--VJD2V-f8.js → BsFWmVYPrLyh5Dre.js} +34 -34
- package/assets/{DJiLWtmPR2OQNjzi.js → BtNRIFE92ka4hATo.js} +2 -2
- package/assets/{DKLm4nWzynGw1Kr9.js → BuhHuKVWppW4L8AV.js} +2 -2
- package/assets/{C4z2IilWTuu2TWXw.js → C-AIgWmHugqMcl9J.js} +3 -3
- package/assets/{U1XXGEPuuqIAzYl1.js → C-gN7uBg-MWHRo4g.js} +2 -2
- package/assets/{vZZi_iKYHm05gAye.js → C0JSC9gVwR1QxopD.js} +2 -2
- package/assets/{Cfhv_Yw_LT8VzAMt.js → C2dG4GHThf9O-IJy.js} +2 -2
- package/assets/{Cg51xaLRUkVOMdCZ.js → C3Wibs7QGFZ1FI7W.js} +2 -2
- package/assets/{BuUEsifnQALe49uk.js → C75i_5ip7OhGkuiF.js} +2 -2
- package/assets/{DDnwKPJSznyfYDZS.js → C95HXhZkkhnUx_aE.js} +3 -3
- package/assets/{CWl6oHiJxkNKRixk.js → CAEhAL7-0FG7jdzN.js} +2 -2
- package/assets/{D-ffk16w8c5w0mxI.js → CAMrW5ypKhgn105y.js} +2 -2
- package/assets/{B-MqXm_7luDLwazY.js → CBPkPTmeaEokFPSI.js} +2 -2
- package/assets/{xnhBSX6lAcmBM65y.js → CDqG64rXHp9-2tXr.js} +2 -2
- package/assets/{ClNQN3vEg5b5qUDp.js → CFdJvXLSbUrvNera.js} +2435 -2447
- package/assets/{PpFbmF0DFeUdpb9I.js → CG8zvnxueimOY7wm.js} +2 -2
- package/assets/{BsQZI1vXTRE63Zy-.js → CIqJdIUKSLZkNwHy.js} +345 -235
- package/assets/{_fUXIv6nKvgZkhxn.js → CJa8JVvKGVBz8Q7q.js} +3 -3
- package/assets/{CwPBmcY6xSP8dNlh.js → CK9h6iDOreaI8GEt.js} +12 -12
- package/assets/CL1-ziDI0aAaVbhJ.js +7 -0
- package/assets/{C7ONfuYIWRmDu_vs.js → CVRc6jQcH155Z89u.js} +2 -2
- package/assets/{B9US2ZrF93KOjmAx.js → CVbRpT7QPHOMgwTx.js} +2 -2
- package/assets/CW-ivE6pl3V7vKuT.js +2563 -0
- package/assets/{F_f0jJqM5MrXGbwC.js → CX-6eYkcr5y0VmQm.js} +4 -4
- package/assets/{BlPubAFi7DY7VrAo.js → CZepo1lDTQp1myg6.js} +2 -2
- package/assets/{D8J14MLlN2HRXdXB.js → C_0RM0w6Pw70Bx_Y.js} +2 -2
- package/assets/{C2OrZ8LZ-TI6eYG0.js → Ci7-PIIhZwb2mVv5.js} +2 -2
- package/assets/{BleMG0hAQgjE8fTa.js → Cl98sBOj9GM2XnFe.js} +3 -3
- package/assets/{DwWngYJTgC0KLbih.js → CoIjAX2gECGb3Wxl.js} +2 -2
- package/assets/{DcWTBOi_iBFc6U4J.js → Co_y6GfwJTYtOmlt.js} +8 -8
- package/assets/{BQMDOjNBMjAx9WiW.js → CrwtgrD7BbXyCkx0.js} +2 -2
- package/assets/{CJ5WQnaoCsdr5gf4.js → CsjjeeOHE2624pGt.js} +2 -2
- package/assets/Ct5VTtdW77k-WcP_.js +529 -0
- package/assets/{DwLZpYUp85UHBE3H.js → CvJkwRgwm80S2bcd.js} +2 -2
- package/assets/{fDMpDhXp36CatF-G.js → D-irgQZ2WmkP9dnK.js} +2 -2
- package/assets/{BFdeov2e_xUQPEY_.js → D1g6IOzdvInVLV-x.js} +7 -7
- package/assets/{Btys7KwtvV3hz2F6.js → D2YdqNWXwSHJMPbA.js} +109 -109
- package/assets/{BQbF1RkUH8WyXqSD.js → D3bxrF1Ys2GSVfQH.js} +25 -19
- package/assets/{wfVh0olISLRWdv9Q.js → D7iU4kaxzl_PojNt.js} +2 -2
- package/assets/{DTfl-4Iboi6TQU5m.js → D7ibkNIu_Pn4TeBD.js} +4 -4
- package/assets/DBANZf_eAzaCFdIj.js +4676 -0
- package/assets/{DoILAmhKUOlKWRVw.js → DBMZF6PRHCko9K9R.js} +2 -2
- package/assets/{BFXeoFUbuc4IKTz9.js → DEIkGoOZ_WeuY0Lj.js} +2 -2
- package/assets/{xmTQJJVyCrcq77WR.js → DFAqI-o57Kd_Azlt.js} +2 -2
- package/assets/{BtjqpAKczftx91BQ.js → DFn_thWGK0_EZI5k.js} +2 -2
- package/assets/{DlBdhv6NHgrNp5Yo.js → DFvs1LVzXKm1N5M2.js} +3 -3
- package/assets/{DVchxwp6w6lu2Ihu.js → DJdRl2yX9DP_D8kh.js} +3 -3
- package/assets/{BG5kgbDRXMc0re6W.js → DKRa_Oc4XqB3DABB.js} +9 -9
- package/assets/{BZPTaa0WjpoUAbgZ.js → DLhlBqwsDnmscAuL.js} +2 -2
- package/assets/{BRzp6DEIYUgM3NkN.js → DMhtIFfkX-DZT_e3.js} +4 -4
- package/assets/{DpdHDTFOeuzDVNEe.js → DNhfziNrJGdL8BYs.js} +78 -77
- package/assets/{jadLBUNBVR9mbZ35.js → DOZ40EyxD3m0gCos.js} +809 -494
- package/assets/{SHZe9VOU1prGs1F9.js → DQcus4X_kTKIIyX6.js} +2 -2
- package/assets/{C7Z1li2XjWi6bkrp.js → DR9xHYH6v5G0lOqf.js} +4 -4
- package/assets/{DsCI_ZYm_jDjXF3J.js → DTLbKr_XIJMwQJmk.js} +52 -52
- package/assets/{_d5XJ7dn1CKKYrep.js → DaILIYfy-jPVTXjz.js} +3 -3
- package/assets/{S16s2h9qoYVBlVEa.js → Dd8CHUZz7xuYTfp-.js} +1444 -1356
- package/assets/{B5lHOOQ_rkP4Mi2r.js → DdrsYdX3bLixdb_9.js} +2 -2
- package/assets/DfWWAHOjmhqvN3m_.js +7166 -0
- package/assets/{9U9XCqqdn-q3i2fj.js → DfzLOnWTNL_2J90y.js} +2 -2
- package/assets/{BTQhJQ3e0hsiousD.js → Dg4JXbd1yPGNZOtL.js} +2 -2
- package/assets/Di4ehJD7muvtcrN3.js +169 -0
- package/assets/{BbAmA46MhQSu3ZF_.js → DmLbqbAez7Dzwyl7.js} +2 -2
- package/assets/{CudNpUD78SrtJIiy.js → Dp-dLoOaBndV2N5i.js} +3 -3
- package/assets/DsTi7zHk_Xl37bAD.js +14 -0
- package/assets/{Diee6f_qAmcZBd2_.js → DvFwVzuc5YfagNnH.js} +2 -2
- package/assets/{D0CHDsemn0S31ltt.js → Dy67BUF2yd8VRPwL.js} +2 -2
- package/assets/{LEJp05fjmflKgyqF.js → DzkccbbE6iXMqQDO.js} +451 -447
- package/assets/{B7gUyrfLln3TiyKM.js → Gqh12ggLm5KlvN3v.js} +2 -2
- package/assets/{BjqQjxBuoXza8oqg.js → JC8UUcu6m23qqrr3.js} +3 -4
- package/assets/{ChWpsFGl-BYOnX_A.js → LwFDS0HxPZKiiEnN.js} +2 -2
- package/assets/{BeLr36oL3jmeXFFi.js → POdlv6cpSx6ftJxx.js} +2 -2
- package/assets/{CMWAsUQ66V8fYrME.js → QVWayvB03YMyTKt3.js} +3 -3
- package/assets/{Dz8UUJ7Xc2oN5PBG.js → SB2aKOIVln0EkgXR.js} +2 -2
- package/assets/SaCo3me4_hw2b1L4.js +2039 -0
- package/assets/{CecTe22WURiXbVdY.js → TNQaiw20sEAEUiK5.js} +386 -372
- package/assets/{jPUOH4FHF4b-rapv.js → W2FU69Pfo4chpqtk.js} +2 -2
- package/assets/{CXHslDxkWCuEcCSQ.js → YXC__Myl-BuIFW6s.js} +2 -2
- package/assets/{DPCKMM7sgWbrtB8z.js → Z01wJImjl6lBMpf4.js} +2 -2
- package/assets/{C97xDe_wBbLZh_uW.js → h6EQSu5n2vTsu2yd.js} +2 -2
- package/assets/{FzNG48GE_wso6RII.js → iULnLPcNKVpz00r7.js} +2 -2
- package/assets/{DEW2GxfGYqVFvrfg.js → iqQWGoJaPha0_8lU.js} +2 -2
- package/assets/{BrcQmHcE7Hcr1erJ.js → nDmE2I07HvkpRdR0.js} +2 -2
- package/assets/{Bg95xYj5siqhHVEz.js → nmB0nnkFQf5NWo0i.js} +3 -3
- package/assets/{BCy1zP97fsiIcvj6.js → pQUJKbHGetb7dcOr.js} +2 -2
- package/assets/{B2Ek-DWpZMGJ0V1Z.js → rfwqMukKbJBeJBuC.js} +3 -3
- package/assets/{By-7OWXShMlFFejV.js → soSlr334Fv1j5t2m.js} +2 -2
- package/index.js +2010 -1944
- package/lib.js +2 -2
- package/licenses/dependencies.txt +259 -194
- package/package.json +4 -9
- package/resources/locales/@sheetxl/sdk/de/model.msg.json +82 -1
- package/resources/locales/@sheetxl/sdk/en/model.msg.json +80 -1
- package/screenshot-page/assets/{CSUd8n1H0VBfREnk.js → -N4OYIMgf6f5vgNy.js} +1 -1
- package/screenshot-page/assets/{B4PbXdzBe9BsoZ0e.js → B7eQ3rE-7Vayb_4O.js} +1 -1
- package/screenshot-page/assets/B8i4Sr2kMQAXp0rb.js +4 -0
- package/screenshot-page/assets/{DQWHkaQeNXft9j8b.js → B8qybUclSjEYP5FJ.js} +2 -2
- package/screenshot-page/assets/BIHbD4jMsk3NetOd.js +1 -0
- package/screenshot-page/assets/BIrVK5hdDCUYmxGO.js +1 -0
- package/screenshot-page/assets/{l32n8O_A78Qqduv3.js → BJ2r2WfEL3SgkBAX.js} +1 -1
- package/screenshot-page/assets/BJviQwDXR5L6l1DA.js +1 -0
- package/screenshot-page/assets/BM78thqEW6HwXFAK.js +13 -0
- package/screenshot-page/assets/{BcOdl17EeFSxnAiq.js → BMf827t1Ul65MHd5.js} +1 -1
- package/screenshot-page/assets/BMwQInar0xVS5FRu.js +1 -0
- package/screenshot-page/assets/{BUjI304IvdJnFXH3.js → BU5S8KEzPmIA_Flm.js} +1 -1
- package/screenshot-page/assets/{D6Jpaz2YkhOfzxDB.js → BYQZ8o8k3-MDoNat.js} +1 -1
- package/screenshot-page/assets/{CZf9s6otzzoaBlSs.js → BftXEPOuf5Uwxpud.js} +1 -1
- package/screenshot-page/assets/Bir0SSOHX0w2yo8h.js +1 -0
- package/screenshot-page/assets/{CykecBozGGFl26KA.js → Btgo0VFTT0JxuaP3.js} +74 -68
- package/screenshot-page/assets/C2H2lX8eyKpxpP6M.js +2 -0
- package/screenshot-page/assets/{B-KIwD5F_5S-NsPg.js → C71ZZMVLfHdPl441.js} +1 -1
- package/screenshot-page/assets/CFfgJlXaIS8QMx5O.js +1 -0
- package/screenshot-page/assets/{DGXDfjkGZjMRAXPg.js → CN8u05DjKwNHbUHN.js} +1 -1
- package/screenshot-page/assets/CQFj5AGXfIA9z9zI.js +1 -0
- package/screenshot-page/assets/{gG0AFZ45VxS_moMw.js → CRsTnamLrPN5-Dsi.js} +1 -1
- package/screenshot-page/assets/CYfkL98Zu43S8-50.js +42 -0
- package/screenshot-page/assets/{DXQLzGmxoyN3kfQi.js → CZa1rha3RnQUWyOk.js} +7 -7
- package/screenshot-page/assets/{CpbohdgEaEsVDi9J.js → C_vPl50T1L5HWnhv.js} +1 -1
- package/screenshot-page/assets/{CbUDukmvDZmVfhJH.js → CfkssmHURDicfYvR.js} +1 -1
- package/screenshot-page/assets/{Bj-vfAT28PK-tWWa.js → CguXw0IcKNPbmAbj.js} +2 -2
- package/screenshot-page/assets/{DmbuCapSSCYIa3yk.js → ClzJdxlUDDtBYjH8.js} +1 -1
- package/screenshot-page/assets/{BTboCICZ-951XWsi.js → CqyMYduWKFvmMs_Z.js} +1 -1
- package/screenshot-page/assets/CzsoLbEIUVK5ia1C.js +1 -0
- package/screenshot-page/assets/D2IHCJ1QWDKwmhge.js +1 -0
- package/screenshot-page/assets/D6CzedWHXTesD55R.js +1 -0
- package/screenshot-page/assets/D7biuwkvm3zAwsBa.js +39 -0
- package/screenshot-page/assets/D8s3sJnhFxbI3Dqn.js +1 -0
- package/screenshot-page/assets/{hp_-JA1DMK4Yoztn.js → DDkL9PZPXAggW2Yr.js} +19 -19
- package/screenshot-page/assets/DEpn6VGd30cHEJOS.js +1 -0
- package/screenshot-page/assets/{CIged53b3hHKxa-o.js → DLFFFQjTi5Ji1940.js} +1 -1
- package/screenshot-page/assets/DMxrNtfw275en7pm.js +1 -0
- package/screenshot-page/assets/{CqR3hGrC956TkCMj.js → DRncpwDkZZX8rL9S.js} +1 -1
- package/screenshot-page/assets/DTrnAtpccj55fGg5.js +1 -0
- package/screenshot-page/assets/D_kJ3WunvjIINcHC.js +1 -0
- package/screenshot-page/assets/{BFaiQZKle44Rhyou.js → D_rtIYQ7FDC2CoEn.js} +1 -1
- package/screenshot-page/assets/{Bf7xq8PyF4ohjMzP.js → Db6bZVJ-184DJIoe.js} +2 -2
- package/screenshot-page/assets/{DyLWQxXXTw5uwPVy.js → DeyRZ5rprDbRbuf4.js} +1 -1
- package/screenshot-page/assets/{D47ePD4x1lVazNdl.js → DgtqX4DiBgkepVZZ.js} +1 -1
- package/screenshot-page/assets/DhB6GjSJIeTmIODk.js +1 -0
- package/screenshot-page/assets/Dn5PwRw7rrTKNnql.js +586 -0
- package/screenshot-page/assets/{TfhknTx8vxQkw4zV.js → Dq7wGcTrNIshovlT.js} +2 -2
- package/screenshot-page/assets/{BUGXf2DEBog16Slb.js → DqXO_Zw1Cp7rAQ04.js} +2 -2
- package/screenshot-page/assets/{21oAESJyBGXeHegm.js → DtihumgXQ7ETaN0A.js} +2 -2
- package/screenshot-page/assets/DuYb_otrRZZDq6-f.js +2 -0
- package/screenshot-page/assets/DyiVrm8mEnEaoZHa.js +3 -0
- package/screenshot-page/assets/{BHqg55S-4_OoAu3P.js → LYyM_ig973jLdOU0.js} +2 -2
- package/screenshot-page/assets/TilS2JSBGVkd1za3.js +3 -0
- package/screenshot-page/assets/Tph2vYqw17-NBCtd.js +1 -0
- package/screenshot-page/assets/UKFgEuwI1UMhPqKF.js +2 -0
- package/screenshot-page/assets/XgsioU5Px1T5gKAY.js +1 -0
- package/screenshot-page/assets/cTMKPkmZF8FWQaMn.js +1 -0
- package/screenshot-page/assets/hlxJ87-H830aSZBQ.js +1 -0
- package/screenshot-page/assets/{DDQWM8rNYCYzKa9R.js → lgeNUp9cU20IAotv.js} +1 -1
- package/screenshot-page/assets/nM1r2xslndIMKlI2.js +2 -0
- package/screenshot-page/assets/{BSdFVGZNhU6YHbMI.js → rOzyaU7hqchMbhRL.js} +1 -1
- package/screenshot-page/index.html +12 -12
- package/screenshot-page/resources/locales/@sheetxl/sdk/de/model.msg.json +82 -1
- package/screenshot-page/resources/locales/@sheetxl/sdk/en/model.msg.json +80 -1
- package/types/scripting-api.json +9967 -9497
- package/types/scripting-enums.json +27 -0
- package/types/scripting.d.ts +2282 -166
- package/assets/BBb_3gEGzmEzbTIk.js +0 -359
- package/assets/BSxTn2BhkEEeF9x_.js +0 -2346
- package/assets/CWVWdbY1B1-WLl9k.js +0 -199
- package/assets/CZTSZL3T_f-vSXqM.js +0 -7
- package/assets/DaoSWy3EFlqpZaLr.js +0 -4437
- package/assets/Dht2mcOSyYlPY32b.js +0 -14
- package/assets/DkibD_CEVePaoj_y.js +0 -7
- package/assets/jiEe5eKV3BFPBWfi.js +0 -6294
- package/screenshot-page/assets/0MTaPYjKud2Q9QG9.js +0 -1
- package/screenshot-page/assets/B2MJPcMcsuv6FekC.js +0 -1
- package/screenshot-page/assets/BQfe-XTIOGeUnD9B.js +0 -1
- package/screenshot-page/assets/BTMW3ukmc44U2fy7.js +0 -1
- package/screenshot-page/assets/B_W2QroTKADz3ABp.js +0 -2
- package/screenshot-page/assets/BksaQEoZr5OWq-_d.js +0 -3
- package/screenshot-page/assets/BnoVwUBEor8NgQNs.js +0 -4
- package/screenshot-page/assets/BzQ5GyiXq8gTz-H-.js +0 -1
- package/screenshot-page/assets/C2Wh2h27c7FUb8Yk.js +0 -1
- package/screenshot-page/assets/C81mK8aZKZAAS-AB.js +0 -1
- package/screenshot-page/assets/Ca6nxdhEuLLty3d7.js +0 -2
- package/screenshot-page/assets/CwqNb7JYzC03lCj0.js +0 -1
- package/screenshot-page/assets/CzhH7lTYQrYGHct6.js +0 -1
- package/screenshot-page/assets/D66vSE1ConAuENmB.js +0 -586
- package/screenshot-page/assets/DCVUZ_ayOXFwV2d_.js +0 -3
- package/screenshot-page/assets/DFE-fKq5NV7_O8V6.js +0 -1
- package/screenshot-page/assets/DK_QSosKV62NDcuT.js +0 -42
- package/screenshot-page/assets/DTFRGj188QuLKEXw.js +0 -1
- package/screenshot-page/assets/DXWWyJlMSWgDFxs1.js +0 -10
- package/screenshot-page/assets/DZDRRw-62D6Zw7qs.js +0 -1
- package/screenshot-page/assets/DeAKjatTVaZ0u_FY.js +0 -1
- package/screenshot-page/assets/Dsx0NUmGIxS7SvZ8.js +0 -1
- package/screenshot-page/assets/IRtoU5oVgBWu9rnK.js +0 -2
- package/screenshot-page/assets/Q5EKmzoJZCE81Om-.js +0 -2
- package/screenshot-page/assets/VvqAh6BWzaD5OUPF.js +0 -1
- package/screenshot-page/assets/fGlPAximvsxzPzGA.js +0 -1
- package/screenshot-page/assets/rPOkVKdPbFpTG6AY.js +0 -1
- package/screenshot-page/assets/sHBomL5R4-_px8rD.js +0 -1
- package/screenshot-page/assets/skRJ2qjA7kcmnOsh.js +0 -39
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license @sheetxl/mcp - MCP server exposing SheetXL spreadsheet operations as tools and resources. - v0.8.0-beta.
|
|
2
|
+
* @license @sheetxl/mcp - MCP server exposing SheetXL spreadsheet operations as tools and resources. - v0.8.0-beta.16
|
|
3
3
|
*
|
|
4
4
|
* (C) 2026-present SheetXL Inc. & Michael T. Ford
|
|
5
|
-
* License:
|
|
5
|
+
* License: SheetXL EULA — https://www.sheetxl.com/eula
|
|
6
6
|
*/
|
|
7
|
-
import { d as e } from "./
|
|
8
|
-
import {
|
|
7
|
+
import { d as e } from "./D3bxrF1Ys2GSVfQH.js";
|
|
8
|
+
import { C as t, Ct as n, Ea as i, Ei as r, Ir as s, Ln as o, P as a, Pa as c, Qn as h, R as l, Tr as u, Vr as d, Wi as p, Wn as f, Xa as m, Z as E, di as T, hi as g, it as O, j as A, jt as R, la as I, lo as _, ri as N, sr as L, t as S, ta as C, ya as y, yn as k, zi as v } from "./5B_tapYOcjOv1wGO.js";
|
|
9
9
|
function x(e) {
|
|
10
10
|
console && console.error && console.error(`Error: ${e}`);
|
|
11
11
|
}
|
|
@@ -4187,7 +4187,7 @@ var jn = class extends $n {
|
|
|
4187
4187
|
}
|
|
4188
4188
|
}, Gn = class t {
|
|
4189
4189
|
static shared(e) {
|
|
4190
|
-
const n = e?.locale ??
|
|
4190
|
+
const n = e?.locale ?? u, i = e?.maxColumn ?? Hn, r = e?.maxRow ?? Yn;
|
|
4191
4191
|
let s = Vn.get(n);
|
|
4192
4192
|
s || (s = /* @__PURE__ */ new Map(), Vn.set(n, s));
|
|
4193
4193
|
const o = `${i}:${r}`;
|
|
@@ -4199,34 +4199,34 @@ var jn = class extends $n {
|
|
|
4199
4199
|
}), s.set(o, a)), a;
|
|
4200
4200
|
}
|
|
4201
4201
|
constructor(e) {
|
|
4202
|
-
const t = e?.maxColumn ?? Hn, n = e?.maxRow ?? Yn, i = e?.locale ??
|
|
4202
|
+
const t = e?.maxColumn ?? Hn, n = e?.maxRow ?? Yn, i = e?.locale ?? u;
|
|
4203
4203
|
this._locale = i, this._maxColumn = t, this._maxRow = n;
|
|
4204
4204
|
const { separatorFunction: r, separatorColumn: s, separatorRow: o, separatorDecimal: a } = i.separators;
|
|
4205
4205
|
if (s === o) throw new Error(`FormulaLexer: separatorColumn and separatorRow must differ (both '${s}')`);
|
|
4206
|
-
const
|
|
4206
|
+
const c = pt({
|
|
4207
4207
|
name: "WhiteSpace",
|
|
4208
4208
|
pattern: /[ \n\v\f\r\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,
|
|
4209
4209
|
group: tt.SKIPPED
|
|
4210
|
-
}),
|
|
4210
|
+
}), h = pt({
|
|
4211
4211
|
name: "StringToken",
|
|
4212
4212
|
pattern: /"(""|[^"])*"/
|
|
4213
|
-
}),
|
|
4213
|
+
}), l = pt({
|
|
4214
4214
|
name: "FunctionToken",
|
|
4215
4215
|
pattern: /[a-zA-Z_\u007F-\uFFFF]+[a-zA-Z0-9_.\u007F-\uFFFF]*(?=\()/
|
|
4216
4216
|
}), d = pt({
|
|
4217
4217
|
name: "TableReference",
|
|
4218
|
-
pattern: { exec:
|
|
4218
|
+
pattern: { exec: C },
|
|
4219
4219
|
line_breaks: !1,
|
|
4220
4220
|
start_chars_hint: Wn
|
|
4221
4221
|
}), p = pt({
|
|
4222
4222
|
name: "BracketedString",
|
|
4223
|
-
pattern: { exec:
|
|
4223
|
+
pattern: { exec: f },
|
|
4224
4224
|
line_breaks: !1,
|
|
4225
4225
|
start_chars_hint: [91],
|
|
4226
|
-
longer_alt: [d,
|
|
4227
|
-
}),
|
|
4226
|
+
longer_alt: [d, h]
|
|
4227
|
+
}), m = (e) => (e ?? []).map((e) => e?.trim()).filter(Boolean).map((e) => e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).map((e) => e + "|").join(""), E = (e) => e.replace(/[A-Za-z]/g, (e) => `[${e.toUpperCase()}${e.toLowerCase()}]`), T = pt({
|
|
4228
4228
|
name: "LiteralError",
|
|
4229
|
-
pattern: new RegExp(
|
|
4229
|
+
pattern: new RegExp(m(i.errorLiterals) + [
|
|
4230
4230
|
"#PARSE!",
|
|
4231
4231
|
"#NULL!",
|
|
4232
4232
|
"#DIV\\/0!",
|
|
@@ -4243,10 +4243,10 @@ var jn = class extends $n {
|
|
|
4243
4243
|
"#BUSY!",
|
|
4244
4244
|
"#PYTHON!",
|
|
4245
4245
|
"#TIMEOUT!"
|
|
4246
|
-
].map(
|
|
4246
|
+
].map(E).join("|"))
|
|
4247
4247
|
}), g = pt({
|
|
4248
4248
|
name: "RefError",
|
|
4249
|
-
pattern: new RegExp(
|
|
4249
|
+
pattern: new RegExp(m(i.errorRefs) + ["#REF!", "#NAME\\?"].map(E).join("|"))
|
|
4250
4250
|
}), O = pt({
|
|
4251
4251
|
name: "SingleQuotedString",
|
|
4252
4252
|
pattern: /'(''|[^'])*'/
|
|
@@ -4274,13 +4274,13 @@ var jn = class extends $n {
|
|
|
4274
4274
|
line_breaks: !1,
|
|
4275
4275
|
start_chars_hint: [36, ...Kn],
|
|
4276
4276
|
longer_alt: _
|
|
4277
|
-
}),
|
|
4277
|
+
}), L = pt({
|
|
4278
4278
|
name: "Column",
|
|
4279
4279
|
pattern: { exec: Xn(t) },
|
|
4280
4280
|
line_breaks: !1,
|
|
4281
4281
|
start_chars_hint: [36, ...Kn],
|
|
4282
4282
|
longer_alt: _
|
|
4283
|
-
}),
|
|
4283
|
+
}), S = pt({
|
|
4284
4284
|
name: "AbsRow",
|
|
4285
4285
|
pattern: /[$][0-9]+/
|
|
4286
4286
|
}), y = "." === a ? "\\." : a, k = pt({
|
|
@@ -4363,7 +4363,7 @@ var jn = class extends $n {
|
|
|
4363
4363
|
}), ee = pt({
|
|
4364
4364
|
name: "ArrayAnchorOp",
|
|
4365
4365
|
pattern: /#/,
|
|
4366
|
-
longer_alt: [
|
|
4366
|
+
longer_alt: [T, g]
|
|
4367
4367
|
}), te = pt({
|
|
4368
4368
|
name: "GtOp",
|
|
4369
4369
|
pattern: />/
|
|
@@ -4374,15 +4374,15 @@ var jn = class extends $n {
|
|
|
4374
4374
|
name: "LtOp",
|
|
4375
4375
|
pattern: /</
|
|
4376
4376
|
}), re = [
|
|
4377
|
+
c,
|
|
4377
4378
|
h,
|
|
4378
|
-
l,
|
|
4379
4379
|
A,
|
|
4380
4380
|
O,
|
|
4381
4381
|
R,
|
|
4382
|
-
|
|
4382
|
+
l,
|
|
4383
4383
|
d,
|
|
4384
4384
|
p,
|
|
4385
|
-
|
|
4385
|
+
T,
|
|
4386
4386
|
g,
|
|
4387
4387
|
b,
|
|
4388
4388
|
...s !== r ? [U] : [],
|
|
@@ -4393,8 +4393,8 @@ var jn = class extends $n {
|
|
|
4393
4393
|
F,
|
|
4394
4394
|
N,
|
|
4395
4395
|
M,
|
|
4396
|
+
L,
|
|
4396
4397
|
S,
|
|
4397
|
-
C,
|
|
4398
4398
|
k,
|
|
4399
4399
|
v,
|
|
4400
4400
|
x,
|
|
@@ -4533,9 +4533,9 @@ function Qn(e) {
|
|
|
4533
4533
|
return new RegExp(e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"));
|
|
4534
4534
|
}
|
|
4535
4535
|
var Zn = class {
|
|
4536
|
-
constructor(e =
|
|
4536
|
+
constructor(e = u) {
|
|
4537
4537
|
const t = function(e) {
|
|
4538
|
-
const t = [...
|
|
4538
|
+
const t = [...O];
|
|
4539
4539
|
if (e) for (const n of Object.values(e)) {
|
|
4540
4540
|
const e = n?.trim();
|
|
4541
4541
|
e && !t.some((t) => t.toLowerCase() === e.toLowerCase()) && t.push(e);
|
|
@@ -4582,7 +4582,7 @@ var Zn = class {
|
|
|
4582
4582
|
return this._lexer.tokenize(e);
|
|
4583
4583
|
}
|
|
4584
4584
|
}, Jn = class extends jn {
|
|
4585
|
-
constructor(e =
|
|
4585
|
+
constructor(e = u) {
|
|
4586
4586
|
const t = new Zn(e), n = t.getVocabulary();
|
|
4587
4587
|
super(n, {
|
|
4588
4588
|
nodeLocationTracking: "none",
|
|
@@ -4590,45 +4590,45 @@ var Zn = class {
|
|
|
4590
4590
|
skipValidations: !0,
|
|
4591
4591
|
recoveryEnabled: !1
|
|
4592
4592
|
}), this._lexer = t;
|
|
4593
|
-
const { TableSpecifier:
|
|
4594
|
-
|
|
4595
|
-
const e = [], t =
|
|
4596
|
-
return
|
|
4593
|
+
const { TableSpecifier: i, BracketedColumn: r, BareSpecifier: s, ColumnSep: o, ListSep: a } = n, c = this;
|
|
4594
|
+
c.RULE("ruleContent", () => {
|
|
4595
|
+
const e = [], t = c.SUBRULE(c.ruleItem);
|
|
4596
|
+
return c.ACTION(() => {
|
|
4597
4597
|
t && e.push(t);
|
|
4598
|
-
}),
|
|
4599
|
-
|
|
4600
|
-
const t =
|
|
4601
|
-
|
|
4598
|
+
}), c.MANY(() => {
|
|
4599
|
+
c.CONSUME(a), c.OPTION(() => {
|
|
4600
|
+
const t = c.SUBRULE2(c.ruleItem);
|
|
4601
|
+
c.ACTION(() => {
|
|
4602
4602
|
t && e.push(t);
|
|
4603
4603
|
});
|
|
4604
4604
|
});
|
|
4605
4605
|
}), e;
|
|
4606
|
-
}),
|
|
4607
|
-
const t =
|
|
4608
|
-
return
|
|
4609
|
-
const n =
|
|
4606
|
+
}), c.RULE("ruleItem", () => c.OR([{ ALT: () => c.SUBRULE(c.ruleSpecifier) }, { ALT: () => c.SUBRULE(c.ruleColumnOrRange) }])), c.RULE("ruleSpecifier", () => c.OR([{ ALT: () => {
|
|
4607
|
+
const t = c.CONSUME(i);
|
|
4608
|
+
return c.ACTION(() => {
|
|
4609
|
+
const n = k(t.image, e);
|
|
4610
4610
|
return n.image = t.image, n;
|
|
4611
4611
|
});
|
|
4612
4612
|
} }, { ALT: () => {
|
|
4613
|
-
const t =
|
|
4614
|
-
return
|
|
4615
|
-
const n =
|
|
4613
|
+
const t = c.CONSUME(s);
|
|
4614
|
+
return c.ACTION(() => {
|
|
4615
|
+
const n = k(t.image, e);
|
|
4616
4616
|
return n.image = t.image, n;
|
|
4617
4617
|
});
|
|
4618
|
-
} }])),
|
|
4619
|
-
const e =
|
|
4618
|
+
} }])), c.RULE("ruleColumnOrRange", () => {
|
|
4619
|
+
const e = c.CONSUME(r);
|
|
4620
4620
|
let t, n;
|
|
4621
|
-
return
|
|
4622
|
-
t =
|
|
4623
|
-
}),
|
|
4624
|
-
const i =
|
|
4621
|
+
return c.OPTION(() => {
|
|
4622
|
+
t = c.CONSUME(o), n = c.CONSUME2(r);
|
|
4623
|
+
}), c.ACTION(() => {
|
|
4624
|
+
const i = _(e.image);
|
|
4625
4625
|
if (i.image = e.image, !n) return i;
|
|
4626
|
-
const r =
|
|
4626
|
+
const r = _(n.image);
|
|
4627
4627
|
r.image = n.image;
|
|
4628
|
-
const s =
|
|
4628
|
+
const s = g(":", i, r, !0);
|
|
4629
4629
|
return s.image = t?.image ?? ":", s;
|
|
4630
4630
|
});
|
|
4631
|
-
}),
|
|
4631
|
+
}), c.performSelfAnalysis();
|
|
4632
4632
|
}
|
|
4633
4633
|
_parseInner(e) {
|
|
4634
4634
|
const t = this._lexer.tokenize(e);
|
|
@@ -4636,37 +4636,37 @@ var Zn = class {
|
|
|
4636
4636
|
}
|
|
4637
4637
|
_parseContent(e) {
|
|
4638
4638
|
if (!e) return [];
|
|
4639
|
-
const
|
|
4640
|
-
if (!
|
|
4641
|
-
const
|
|
4642
|
-
if ("@" ===
|
|
4643
|
-
const e =
|
|
4639
|
+
const t = e.trim();
|
|
4640
|
+
if (!t) return [];
|
|
4641
|
+
const n = t[0];
|
|
4642
|
+
if ("@" === n) {
|
|
4643
|
+
const e = t.slice(1).trim();
|
|
4644
4644
|
if (!e) {
|
|
4645
|
-
const e =
|
|
4645
|
+
const e = S("@", null, !0);
|
|
4646
4646
|
return e.image = "@", [e];
|
|
4647
4647
|
}
|
|
4648
4648
|
if ("[" === e.charAt(0)) {
|
|
4649
|
-
const
|
|
4650
|
-
if (1 ===
|
|
4651
|
-
const e =
|
|
4649
|
+
const t = this._parseInner(e);
|
|
4650
|
+
if (1 === t.length && "infix" === t[0].type) {
|
|
4651
|
+
const e = S("@", t[0], !0);
|
|
4652
4652
|
return e.image = "@", [e];
|
|
4653
4653
|
}
|
|
4654
4654
|
}
|
|
4655
|
-
const
|
|
4656
|
-
|
|
4657
|
-
const
|
|
4658
|
-
return
|
|
4655
|
+
const n = _(e);
|
|
4656
|
+
n.image = e;
|
|
4657
|
+
const i = S("@", n, !0);
|
|
4658
|
+
return i.image = "@", [i];
|
|
4659
4659
|
}
|
|
4660
|
-
if ("[" !==
|
|
4661
|
-
const t =
|
|
4660
|
+
if ("[" !== n && "#" !== n) {
|
|
4661
|
+
const t = _(e);
|
|
4662
4662
|
return t.image = e, [t];
|
|
4663
4663
|
}
|
|
4664
|
-
return this._parseInner(
|
|
4664
|
+
return this._parseInner(t);
|
|
4665
4665
|
}
|
|
4666
4666
|
parse(e, t, n) {
|
|
4667
4667
|
this.reset();
|
|
4668
4668
|
const i = () => ({
|
|
4669
|
-
root:
|
|
4669
|
+
root: l("", []),
|
|
4670
4670
|
errors: []
|
|
4671
4671
|
});
|
|
4672
4672
|
if (!n) return i();
|
|
@@ -4679,7 +4679,7 @@ var Zn = class {
|
|
|
4679
4679
|
if (-1 === s) return i();
|
|
4680
4680
|
const o = n.slice(0, s), a = n.slice(s + 1, -1), c = this._parseContent(a);
|
|
4681
4681
|
return {
|
|
4682
|
-
root:
|
|
4682
|
+
root: l(o, c),
|
|
4683
4683
|
errors: this.errors.length > 0 ? [...this.errors] : []
|
|
4684
4684
|
};
|
|
4685
4685
|
}
|
|
@@ -4694,7 +4694,7 @@ var Zn = class {
|
|
|
4694
4694
|
":."
|
|
4695
4695
|
]), ni = (e) => {
|
|
4696
4696
|
if (!e) return null;
|
|
4697
|
-
if (e.type ===
|
|
4697
|
+
if (e.type === L.Cell) {
|
|
4698
4698
|
const t = e.value;
|
|
4699
4699
|
return t.rowIndex === Number.MIN_SAFE_INTEGER ? "col" : t.colIndex === Number.MIN_SAFE_INTEGER ? "row" : null;
|
|
4700
4700
|
}
|
|
@@ -4725,8 +4725,8 @@ var ai = {
|
|
|
4725
4725
|
}
|
|
4726
4726
|
}, ci = class extends jn {
|
|
4727
4727
|
constructor(e) {
|
|
4728
|
-
const
|
|
4729
|
-
super(
|
|
4728
|
+
const c = e?.lexer ?? Gn.shared(e?.lexerOptions), l = c.getVocabulary();
|
|
4729
|
+
super(l, {
|
|
4730
4730
|
skipValidations: !0,
|
|
4731
4731
|
recoveryEnabled: !0,
|
|
4732
4732
|
...e,
|
|
@@ -4734,9 +4734,9 @@ var ai = {
|
|
|
4734
4734
|
errorMessageProvider: ai,
|
|
4735
4735
|
maxLookahead: 1
|
|
4736
4736
|
}), this._ruleInfixOp = this.RULE("ruleInfixOp", () => {
|
|
4737
|
-
const { PlusOp: e, MinOp: t, MulOp: n, DivOp: i, ExOp: r, ConcatOp: s, GtOp: o, EqOp: a, LtOp: c, NeqOp: h, GteOp: l, LteOp:
|
|
4738
|
-
return
|
|
4739
|
-
const
|
|
4737
|
+
const { PlusOp: e, MinOp: t, MulOp: n, DivOp: i, ExOp: r, ConcatOp: s, GtOp: o, EqOp: a, LtOp: c, NeqOp: h, GteOp: l, LteOp: u } = this._vocab, d = [];
|
|
4738
|
+
return d.push({ node: this.SUBRULE(this._rulePostfixOp) }), this.MANY(() => {
|
|
4739
|
+
const p = this.OR(this._c1 || (this._c1 = [
|
|
4740
4740
|
{ ALT: () => this.CONSUME(e).image },
|
|
4741
4741
|
{ ALT: () => this.CONSUME(t).image },
|
|
4742
4742
|
{ ALT: () => this.CONSUME(n).image },
|
|
@@ -4748,32 +4748,32 @@ var ai = {
|
|
|
4748
4748
|
{ ALT: () => this.CONSUME(c).image },
|
|
4749
4749
|
{ ALT: () => this.CONSUME(h).image },
|
|
4750
4750
|
{ ALT: () => this.CONSUME(l).image },
|
|
4751
|
-
{ ALT: () => this.CONSUME(
|
|
4752
|
-
])),
|
|
4753
|
-
value:
|
|
4751
|
+
{ ALT: () => this.CONSUME(u).image }
|
|
4752
|
+
])), f = {
|
|
4753
|
+
value: p,
|
|
4754
4754
|
index: this.getLexerPosition(),
|
|
4755
|
-
isRange:
|
|
4756
|
-
},
|
|
4757
|
-
|
|
4758
|
-
op:
|
|
4759
|
-
node:
|
|
4755
|
+
isRange: A.includes(p)
|
|
4756
|
+
}, m = this.SUBRULE2(this._rulePostfixOp);
|
|
4757
|
+
d.push({
|
|
4758
|
+
op: f,
|
|
4759
|
+
node: m
|
|
4760
4760
|
});
|
|
4761
4761
|
}), this.ACTION(() => {
|
|
4762
|
-
let e =
|
|
4763
|
-
const t =
|
|
4762
|
+
let e = d.length - 1;
|
|
4763
|
+
const t = E.length;
|
|
4764
4764
|
for (let n = 0; e > 0 && n < t; n++) {
|
|
4765
|
-
const t =
|
|
4765
|
+
const t = E[n];
|
|
4766
4766
|
let i = 1;
|
|
4767
|
-
for (; i <
|
|
4768
|
-
const n =
|
|
4767
|
+
for (; i < d.length;) {
|
|
4768
|
+
const n = d[i].op;
|
|
4769
4769
|
if (t.includes(n.value)) {
|
|
4770
|
-
const t =
|
|
4771
|
-
let s =
|
|
4772
|
-
s = this._tag(s, n.index),
|
|
4770
|
+
const t = d[i - 1].node, r = d[i].node;
|
|
4771
|
+
let s = g(n.value, t, r, n.isRange);
|
|
4772
|
+
s = this._tag(s, n.index), d[i - 1].node = s, d.splice(i, 1), e--;
|
|
4773
4773
|
} else i++;
|
|
4774
4774
|
}
|
|
4775
4775
|
}
|
|
4776
|
-
}),
|
|
4776
|
+
}), d[0].node;
|
|
4777
4777
|
}), this._rulePlusMinusOp = this.RULE("rulePlusMinusOp", () => {
|
|
4778
4778
|
const { PlusOp: e, MinOp: t } = this._vocab;
|
|
4779
4779
|
return this.OR([{ ALT: () => this.CONSUME(e) }, { ALT: () => this.CONSUME(t) }]);
|
|
@@ -4789,30 +4789,30 @@ var ai = {
|
|
|
4789
4789
|
}), this.ACTION(() => {
|
|
4790
4790
|
const e = n.length;
|
|
4791
4791
|
if (0 !== e) for (let i = 0; i < e; i++) {
|
|
4792
|
-
const e = n[i], r = e[0], s = e[1],
|
|
4793
|
-
t =
|
|
4792
|
+
const e = n[i], r = e[0], s = e[1], a = A.includes(r);
|
|
4793
|
+
t = o(r, t, a), t = this._tag(t, s);
|
|
4794
4794
|
}
|
|
4795
4795
|
}), t;
|
|
4796
4796
|
}), this._rulePrefixOp = this.RULE("rulePrefixOp", () => {
|
|
4797
|
-
const { PlusOp: e, MinOp:
|
|
4797
|
+
const { PlusOp: e, MinOp: t, ImplicitIntersectOp: n } = this._vocab, i = [];
|
|
4798
4798
|
this.MANY(() => {
|
|
4799
|
-
const
|
|
4799
|
+
const r = this.OR([
|
|
4800
4800
|
{ ALT: () => this.CONSUME(e).image },
|
|
4801
|
-
{ ALT: () => this.CONSUME(
|
|
4802
|
-
{ ALT: () => this.CONSUME(
|
|
4801
|
+
{ ALT: () => this.CONSUME(t).image },
|
|
4802
|
+
{ ALT: () => this.CONSUME(n).image }
|
|
4803
4803
|
]);
|
|
4804
4804
|
this.ACTION(() => {
|
|
4805
|
-
|
|
4805
|
+
i.push([r, this.getLexerPosition()]);
|
|
4806
4806
|
});
|
|
4807
4807
|
});
|
|
4808
|
-
let
|
|
4808
|
+
let r = this.SUBRULE(this._ruleRangeOp);
|
|
4809
4809
|
return this.ACTION(() => {
|
|
4810
|
-
const e =
|
|
4811
|
-
if (0 !== e) for (let
|
|
4812
|
-
const e =
|
|
4813
|
-
|
|
4810
|
+
const e = i.length;
|
|
4811
|
+
if (0 !== e) for (let t = e - 1; t >= 0; t--) {
|
|
4812
|
+
const e = i[t], n = e[0], s = e[1], o = A.includes(n);
|
|
4813
|
+
r = S(n, r, o), r = this._tag(r, s);
|
|
4814
4814
|
}
|
|
4815
|
-
}),
|
|
4815
|
+
}), r;
|
|
4816
4816
|
}), this._ruleRangeOp = this.RULE("ruleRangeOp", () => {
|
|
4817
4817
|
const { RangeOp: e, RangeTrimFullOp: t, RangeTrimLeadingOp: n, RangeTrimTrailingOp: i, ArrayAnchorOp: r } = this._vocab, s = [];
|
|
4818
4818
|
return s.push({ node: this.SUBRULE(this._ruleCallOp) }), this.MANY2(() => {
|
|
@@ -4838,22 +4838,22 @@ var ai = {
|
|
|
4838
4838
|
const t = s[e], n = s[e + 1];
|
|
4839
4839
|
if (":" !== t.op?.value || ":" !== n.op?.value) continue;
|
|
4840
4840
|
const i = ni(t.node);
|
|
4841
|
-
i && ni(n.node) === i && ni(s[e - 1].node) !== i && (t.node = this._tag(
|
|
4841
|
+
i && ni(n.node) === i && ni(s[e - 1].node) !== i && (t.node = this._tag(g(":", t.node, n.node, !0), n.op.index), s.splice(e + 1, 1));
|
|
4842
4842
|
}
|
|
4843
4843
|
for (let e = 1; e < s.length; e++) {
|
|
4844
4844
|
const t = s[e];
|
|
4845
4845
|
if (void 0 !== t.anchor) {
|
|
4846
|
-
s[0].node = this._tag(
|
|
4846
|
+
s[0].node = this._tag(o("#", s[0].node, !0), t.anchor);
|
|
4847
4847
|
continue;
|
|
4848
4848
|
}
|
|
4849
4849
|
const n = t.op;
|
|
4850
|
-
let i =
|
|
4850
|
+
let i = g(n.value, s[0].node, t.node, !0);
|
|
4851
4851
|
i = this._tag(i, n.index), s[0].node = i;
|
|
4852
4852
|
}
|
|
4853
4853
|
}), s[0].node;
|
|
4854
4854
|
}), this._ruleCallOp = this.RULE("ruleCallOp", () => {
|
|
4855
4855
|
const { OpenParen: e, CloseParen: t } = this._vocab;
|
|
4856
|
-
let
|
|
4856
|
+
let i = this.SUBRULE(this._ruleFormula);
|
|
4857
4857
|
return this.MANY({
|
|
4858
4858
|
GATE: () => {
|
|
4859
4859
|
const t = this.LA(0), n = this.LA(1);
|
|
@@ -4861,12 +4861,12 @@ var ai = {
|
|
|
4861
4861
|
},
|
|
4862
4862
|
DEF: () => {
|
|
4863
4863
|
this.CONSUME(e);
|
|
4864
|
-
const
|
|
4864
|
+
const r = this.getLexerPosition(), s = this.SUBRULE(this._ruleFunctionArguments), o = i, a = this.ACTION(() => this._tag(n(o, s), r)), c = this.OPTION(() => this.CONSUME(t));
|
|
4865
4865
|
this.ACTION(() => {
|
|
4866
|
-
|
|
4866
|
+
c || this._reportError(a, "Missing closing parenthesis ')'", r), this._tagClose(a, this.getLexerPosition()), i = a;
|
|
4867
4867
|
});
|
|
4868
4868
|
}
|
|
4869
|
-
}),
|
|
4869
|
+
}), i;
|
|
4870
4870
|
}), this._ruleIntersectOp = this.RULE("ruleIntersectOp", () => {
|
|
4871
4871
|
const e = [this.SUBRULE(this._ruleInfixOp)];
|
|
4872
4872
|
return this.MANY(() => {
|
|
@@ -4883,7 +4883,7 @@ var ai = {
|
|
|
4883
4883
|
for (; e.length > 1;) {
|
|
4884
4884
|
let t = e.length - 1;
|
|
4885
4885
|
for (let n = 0; n < t; n++) {
|
|
4886
|
-
const i = e[n], r = e[n + 1], s =
|
|
4886
|
+
const i = e[n], r = e[n + 1], s = g(" ", i, r, !0), o = this._tokenMap.get(i);
|
|
4887
4887
|
o && delete o.tokenIndexClose;
|
|
4888
4888
|
const a = this._tokenMap.get(r), c = a?.tokenIndex;
|
|
4889
4889
|
if (void 0 !== c) {
|
|
@@ -4913,16 +4913,16 @@ var ai = {
|
|
|
4913
4913
|
}), t;
|
|
4914
4914
|
}), this._ruleParen = this.RULE("ruleParen", () => {
|
|
4915
4915
|
const { OpenParen: e, CloseParen: t } = this._vocab;
|
|
4916
|
-
return this._processParen(
|
|
4916
|
+
return this._processParen(L.Paren, e, t);
|
|
4917
4917
|
}), this._ruleLiteralArray = this.RULE("ruleLiteralArray", () => {
|
|
4918
4918
|
const { OpenCurlyParen: e, CloseCurlyParen: t, ColSeparator: n, RowSeparator: i } = this._vocab;
|
|
4919
|
-
let r =
|
|
4919
|
+
let r = I();
|
|
4920
4920
|
this.CONSUME(e);
|
|
4921
|
-
const
|
|
4922
|
-
let
|
|
4923
|
-
const
|
|
4921
|
+
const s = this.getLexerPosition();
|
|
4922
|
+
let o = this.ACTION(() => this._tag(p(r), s));
|
|
4923
|
+
const a = this.SUBRULE(this._ruleLiteralForArray);
|
|
4924
4924
|
this.ACTION(() => {
|
|
4925
|
-
r.value.push(
|
|
4925
|
+
r.value.push(a);
|
|
4926
4926
|
}), this.MANY(() => {
|
|
4927
4927
|
let e = !1;
|
|
4928
4928
|
this.OR([{ ALT: () => {
|
|
@@ -4930,37 +4930,37 @@ var ai = {
|
|
|
4930
4930
|
} }, { ALT: () => this.CONSUME(i) }]);
|
|
4931
4931
|
const t = this.SUBRULE2(this._ruleLiteralForArray);
|
|
4932
4932
|
this.ACTION(() => {
|
|
4933
|
-
e || (r =
|
|
4933
|
+
e || (r = I(), o.value.push(r)), r.value.push(t);
|
|
4934
4934
|
});
|
|
4935
4935
|
});
|
|
4936
|
-
const
|
|
4937
|
-
return
|
|
4936
|
+
const c = this.OPTION(() => this.CONSUME(t));
|
|
4937
|
+
return o = this.ACTION(() => (c || this._reportError(o, "Missing closing parenthesis '}'", s), this._tagClose(o, this.getLexerPosition()))), o;
|
|
4938
4938
|
}), this._ruleLiteralForArray = this.RULE("ruleLiteralForArray", () => {
|
|
4939
|
-
const { StringToken: e, BooleanToken: t, LiteralError:
|
|
4939
|
+
const { StringToken: e, BooleanToken: t, LiteralError: n, RefError: i } = this._vocab;
|
|
4940
4940
|
return this.OR([
|
|
4941
4941
|
{ ALT: () => {
|
|
4942
4942
|
const e = this.OPTION(() => this.SUBRULE(this._rulePlusMinusOp)), t = this.SUBRULE(this._ruleNumber), n = this.ACTION(() => this._tag(d(t.image, this._locale), this.getLexerPosition()));
|
|
4943
|
-
return this.ACTION(() => e ?
|
|
4943
|
+
return this.ACTION(() => e ? h(e.image, n) : n);
|
|
4944
4944
|
} },
|
|
4945
4945
|
{ ALT: () => {
|
|
4946
4946
|
const t = this.CONSUME(e);
|
|
4947
|
-
return this.ACTION(() => this._tag(
|
|
4947
|
+
return this.ACTION(() => this._tag(v(t.image), this.getLexerPosition()));
|
|
4948
4948
|
} },
|
|
4949
4949
|
{ ALT: () => {
|
|
4950
4950
|
const e = this.CONSUME(t);
|
|
4951
|
-
return this.ACTION(() => this._tag(
|
|
4951
|
+
return this.ACTION(() => this._tag(y(e.image, this._locale), this.getLexerPosition()));
|
|
4952
4952
|
} },
|
|
4953
4953
|
{ ALT: () => {
|
|
4954
|
-
const e = this.CONSUME(
|
|
4955
|
-
return this.ACTION(() => this._tag(
|
|
4954
|
+
const e = this.CONSUME(n);
|
|
4955
|
+
return this.ACTION(() => this._tag(T(e.image, this._locale), this.getLexerPosition()));
|
|
4956
4956
|
} },
|
|
4957
4957
|
{ ALT: () => {
|
|
4958
|
-
const e = this.CONSUME(
|
|
4959
|
-
return this.ACTION(() => this._tag(
|
|
4958
|
+
const e = this.CONSUME(i);
|
|
4959
|
+
return this.ACTION(() => this._tag(r(e.image, this._locale), this.getLexerPosition()));
|
|
4960
4960
|
} }
|
|
4961
4961
|
]);
|
|
4962
4962
|
}), this._ruleLiteral = this.RULE("ruleLiteral", () => {
|
|
4963
|
-
const { StringToken: e, BooleanToken: t, LiteralError:
|
|
4963
|
+
const { StringToken: e, BooleanToken: t, LiteralError: n, RefError: i } = this._vocab;
|
|
4964
4964
|
return this.OR([
|
|
4965
4965
|
{ ALT: () => {
|
|
4966
4966
|
const e = this.SUBRULE(this._ruleNumber);
|
|
@@ -4968,26 +4968,26 @@ var ai = {
|
|
|
4968
4968
|
} },
|
|
4969
4969
|
{ ALT: () => {
|
|
4970
4970
|
const t = this.CONSUME(e);
|
|
4971
|
-
return this.ACTION(() => this._tag(
|
|
4971
|
+
return this.ACTION(() => this._tag(v(t.image), this.getLexerPosition()));
|
|
4972
4972
|
} },
|
|
4973
4973
|
{ ALT: () => {
|
|
4974
4974
|
const e = this.CONSUME(t);
|
|
4975
|
-
return this.ACTION(() => this._tag(
|
|
4975
|
+
return this.ACTION(() => this._tag(y(e.image, this._locale), this.getLexerPosition()));
|
|
4976
4976
|
} },
|
|
4977
4977
|
{ ALT: () => {
|
|
4978
|
-
const e = this.CONSUME(
|
|
4979
|
-
return this.ACTION(() => this._tag(
|
|
4978
|
+
const e = this.CONSUME(n);
|
|
4979
|
+
return this.ACTION(() => this._tag(T(e.image, this._locale), this.getLexerPosition()));
|
|
4980
4980
|
} },
|
|
4981
4981
|
{ ALT: () => {
|
|
4982
|
-
const e = this.CONSUME(
|
|
4983
|
-
return this.ACTION(() => this._tag(
|
|
4982
|
+
const e = this.CONSUME(i);
|
|
4983
|
+
return this.ACTION(() => this._tag(r(e.image, this._locale), this.getLexerPosition()));
|
|
4984
4984
|
} }
|
|
4985
4985
|
]);
|
|
4986
4986
|
}), this._ruleFunction = this.RULE("ruleFunction", () => {
|
|
4987
4987
|
const { FunctionToken: e, OpenParen: t, CloseParen: n } = this._vocab, i = this.CONSUME(e).image, r = this.getLexerPosition();
|
|
4988
4988
|
this.CONSUME(t);
|
|
4989
4989
|
const s = this.SUBRULE(this._ruleFunctionArguments);
|
|
4990
|
-
let o = this.ACTION(() => this._tag(
|
|
4990
|
+
let o = this.ACTION(() => this._tag(R(i, s), r));
|
|
4991
4991
|
const a = this.OPTION(() => this.CONSUME(n));
|
|
4992
4992
|
return o = this.ACTION(() => (a || this._reportError(o, "Missing closing parenthesis ')'", r), this._tagClose(o, this.getLexerPosition()))), o;
|
|
4993
4993
|
}), this._ruleFunctionArguments = this.RULE("ruleFunctionArguments", () => {
|
|
@@ -4998,11 +4998,11 @@ var ai = {
|
|
|
4998
4998
|
let t;
|
|
4999
4999
|
this.OPTION2(() => {
|
|
5000
5000
|
t = this.SUBRULE(this._ruleIntersectOp);
|
|
5001
|
-
}), t = this.ACTION(() => t ?? this._tagClose(
|
|
5001
|
+
}), t = this.ACTION(() => t ?? this._tagClose(s(), this.getLexerPosition())), n.push(t), this.MANY(() => {
|
|
5002
5002
|
let t;
|
|
5003
5003
|
this.CONSUME(e), this.OPTION3(() => {
|
|
5004
5004
|
t = this.SUBRULE2(this._ruleIntersectOp);
|
|
5005
|
-
}), t = this.ACTION(() => t ?? this._tagClose(
|
|
5005
|
+
}), t = this.ACTION(() => t ?? this._tagClose(s(), this.getLexerPosition())), n.push(t);
|
|
5006
5006
|
});
|
|
5007
5007
|
}
|
|
5008
5008
|
}), n;
|
|
@@ -5021,60 +5021,60 @@ var ai = {
|
|
|
5021
5021
|
return this._tag(e.root, n);
|
|
5022
5022
|
});
|
|
5023
5023
|
}), this._ruleReference = this.RULE("ruleReference", () => {
|
|
5024
|
-
const { Sheet: e, SheetQuoted:
|
|
5025
|
-
let
|
|
5024
|
+
const { Sheet: e, SheetQuoted: n, DivOp: s, MulOp: o, PlusOp: c, MinOp: h, ArgSeparator: l, Cell: u, NamedToken: d, SingleQuotedString: p, Column: f, AbsRow: E, DigitToken: T, RefError: g } = this._vocab;
|
|
5025
|
+
let O, A;
|
|
5026
5026
|
this.OPTION2({
|
|
5027
5027
|
GATE: () => {
|
|
5028
|
-
for (let
|
|
5029
|
-
const
|
|
5030
|
-
if (
|
|
5031
|
-
if ("" ===
|
|
5028
|
+
for (let t = 1; t < 6; t++) {
|
|
5029
|
+
const i = this.LA(t);
|
|
5030
|
+
if (i.tokenType === e || i.tokenType === n) return !0;
|
|
5031
|
+
if ("" === i.image || ")" === i.image || i.tokenType === s || i.tokenType === o || i.tokenType === c || i.tokenType === h || i.tokenType === l) break;
|
|
5032
5032
|
}
|
|
5033
5033
|
return !1;
|
|
5034
5034
|
},
|
|
5035
5035
|
DEF: () => {
|
|
5036
|
-
|
|
5036
|
+
A = this.getLexerPosition() + 1, O = this.SUBRULE(this._rulePrefixSheetName);
|
|
5037
5037
|
}
|
|
5038
5038
|
});
|
|
5039
|
-
let
|
|
5039
|
+
let R = this.OR([
|
|
5040
5040
|
{ ALT: () => {
|
|
5041
|
-
const e = this.CONSUME(
|
|
5042
|
-
return this.ACTION(() => this._tag(
|
|
5041
|
+
const e = this.CONSUME(u), n = this.getLexerPosition();
|
|
5042
|
+
return this.ACTION(() => this._tag(t(e.image, this.rowIndex, this.colIndex), n));
|
|
5043
5043
|
} },
|
|
5044
5044
|
{ ALT: () => {
|
|
5045
|
-
const e = this.OR2([{ ALT: () => this.CONSUME(
|
|
5046
|
-
return this.ACTION(() => this._tag(
|
|
5045
|
+
const e = this.OR2([{ ALT: () => this.CONSUME(d) }, { ALT: () => this.CONSUME(p) }]);
|
|
5046
|
+
return this.ACTION(() => this._tag(i(e.image), this.getLexerPosition()));
|
|
5047
5047
|
} },
|
|
5048
5048
|
{ ALT: () => this.SUBRULE(this._ruleBracketedString) },
|
|
5049
5049
|
{ ALT: () => this.SUBRULE(this._ruleFunction) },
|
|
5050
5050
|
{ ALT: () => {
|
|
5051
|
-
const e = this.CONSUME(
|
|
5052
|
-
return this.ACTION(() => this._tag(
|
|
5051
|
+
const e = this.CONSUME(f);
|
|
5052
|
+
return this.ACTION(() => this._tag(m(e.image, this.colIndex), this.getLexerPosition()));
|
|
5053
5053
|
} },
|
|
5054
5054
|
{ ALT: () => {
|
|
5055
|
-
const e = this.CONSUME(
|
|
5056
|
-
return this.ACTION(() => this._tag(
|
|
5055
|
+
const e = this.CONSUME(E);
|
|
5056
|
+
return this.ACTION(() => this._tag(a(e.image, this.rowIndex), this.getLexerPosition()));
|
|
5057
5057
|
} },
|
|
5058
5058
|
{ ALT: () => {
|
|
5059
|
-
const e = this.CONSUME(
|
|
5060
|
-
return this.ACTION(() => this._tag(
|
|
5059
|
+
const e = this.CONSUME(T);
|
|
5060
|
+
return this.ACTION(() => this._tag(a(e.image, this.rowIndex), this.getLexerPosition()));
|
|
5061
5061
|
} },
|
|
5062
5062
|
{ ALT: () => {
|
|
5063
|
-
const e = this.CONSUME(
|
|
5064
|
-
return this.ACTION(() => this._tag(
|
|
5063
|
+
const e = this.CONSUME(g);
|
|
5064
|
+
return this.ACTION(() => this._tag(r(e.image, this._locale), this.getLexerPosition()));
|
|
5065
5065
|
} }
|
|
5066
5066
|
]);
|
|
5067
5067
|
return this.ACTION(() => {
|
|
5068
|
-
if (
|
|
5069
|
-
if ("" ===
|
|
5070
|
-
let e =
|
|
5071
|
-
if (
|
|
5072
|
-
e.value.scope =
|
|
5068
|
+
if (O && R) {
|
|
5069
|
+
if ("" === O.name) return void this._reportError(R, `'${O.image}' is not a valid sheet reference — a '!' needs a sheet name before it`);
|
|
5070
|
+
let e = R;
|
|
5071
|
+
if (R.type === L.Postfix && R.inputs?.[0] && (e = R.inputs[0]), e.type === L.Cell || e.type === L.Named || e.type === L.Row || e.type === L.TableColumn || e.type === L.Error) {
|
|
5072
|
+
e.value.scope = O.name, e.value.scopeImage = O.image;
|
|
5073
5073
|
const t = this._tokenMap.get(e);
|
|
5074
|
-
t && void 0 !==
|
|
5074
|
+
t && void 0 !== A && (t.tokenIndex = A);
|
|
5075
5075
|
}
|
|
5076
5076
|
}
|
|
5077
|
-
}),
|
|
5077
|
+
}), R;
|
|
5078
5078
|
}), this._rulePrefixSheetName = this.RULE("rulePrefixSheetName", () => {
|
|
5079
5079
|
const { SheetQuoted: e, BracketedString: t, NamedToken: n, Column: i, RangeOp: r, Sheet: s } = this._vocab;
|
|
5080
5080
|
return this.OR([{ ALT: () => {
|
|
@@ -5114,43 +5114,43 @@ var ai = {
|
|
|
5114
5114
|
return this.MANY(() => {
|
|
5115
5115
|
this.CONSUME(e), n.push(this.SUBRULE2(this._ruleIntersectOp));
|
|
5116
5116
|
}), this.ACTION(() => 0 === n.length ? t : {
|
|
5117
|
-
type:
|
|
5117
|
+
type: L.List,
|
|
5118
5118
|
value: ",",
|
|
5119
5119
|
inputs: [t, ...n],
|
|
5120
5120
|
isReference: !0
|
|
5121
5121
|
});
|
|
5122
|
-
}), this._lexer =
|
|
5122
|
+
}), this._lexer = c, this._locale = c.getLocale(), this._vocab = l, this._srParser = e?.srParser ?? new Jn(this._locale), this.performSelfAnalysis();
|
|
5123
5123
|
}
|
|
5124
5124
|
getLexer() {
|
|
5125
5125
|
return this._lexer;
|
|
5126
5126
|
}
|
|
5127
|
-
parse(t, n,
|
|
5128
|
-
const s = this._lexer.tokenize(
|
|
5127
|
+
parse(t, n, r) {
|
|
5128
|
+
const s = this._lexer.tokenize(r);
|
|
5129
5129
|
let o;
|
|
5130
5130
|
if (!s) return {
|
|
5131
5131
|
root: {
|
|
5132
|
-
type:
|
|
5133
|
-
value:
|
|
5132
|
+
type: L.Unparsed,
|
|
5133
|
+
value: r
|
|
5134
5134
|
},
|
|
5135
5135
|
errors: []
|
|
5136
5136
|
};
|
|
5137
|
-
const
|
|
5138
|
-
if (0 ===
|
|
5139
|
-
return this.input =
|
|
5140
|
-
const
|
|
5141
|
-
if (o &&
|
|
5142
|
-
const n =
|
|
5143
|
-
return
|
|
5137
|
+
const h = s.tokens;
|
|
5138
|
+
if (0 === h.length) throw new e.Parse(ri);
|
|
5139
|
+
return this.input = h, this._inputText = r, this._inputTextLength = r.length, this.rowIndex = t, this.colIndex = n, this._astErrors = [], this._tokenMap = /* @__PURE__ */ new Map(), this.reset(), o = this._ruleRoot(), o && this._bindAllWhitespace(o), o = c(o, (e, n) => {
|
|
5140
|
+
const r = e.type, s = n?.isReference ? n.value : void 0, o = "string" == typeof s && ei.has(s), c = "string" == typeof s && ti.has(s), h = o ? n.inputs : void 0, l = h ? h[0] === e ? h[1] : h[0] : void 0, u = this._lexer.getMaxRow();
|
|
5141
|
+
if (o && r !== L.Cell && Number.isInteger(e.value)) {
|
|
5142
|
+
const n = a(e.image, t);
|
|
5143
|
+
return N(n, e), "row" !== ni(l) ? this._reportError(n, `'${e.image}' is not a valid reference — a whole row can only pair with another row (as in ${e.image}:${e.image})`) : ii(e.image, u) || this._reportError(n, `'${e.image}' is not a valid row — rows run from 1 to ${u}`), n;
|
|
5144
5144
|
}
|
|
5145
|
-
if (
|
|
5146
|
-
if (
|
|
5147
|
-
const t = e.value, n = t.colIndex === Number.MIN_SAFE_INTEGER,
|
|
5148
|
-
if ((n ||
|
|
5149
|
-
if (n ||
|
|
5150
|
-
const o =
|
|
5151
|
-
|
|
5152
|
-
const
|
|
5153
|
-
return
|
|
5145
|
+
if (c && r === L.Named) return this._reportError(e, `'${e.image ?? e.value?.nameId}' is a name — '${s}' needs a cell or range on both sides`), e;
|
|
5146
|
+
if (r === L.Cell) {
|
|
5147
|
+
const t = e.value, n = t.colIndex === Number.MIN_SAFE_INTEGER, r = t.rowIndex === Number.MIN_SAFE_INTEGER;
|
|
5148
|
+
if ((n || r) && ni(l) === (n ? "row" : "col")) return n && !ii(e.image, u) && this._reportError(e, `'${e.image}' is not a valid row — rows run from 1 to ${u}`), e;
|
|
5149
|
+
if (n || r || t.colIndex >= 16384) {
|
|
5150
|
+
const o = i(e.image);
|
|
5151
|
+
N(o, e);
|
|
5152
|
+
const a = t.scope;
|
|
5153
|
+
return a && (o.value.scope = a, o.value.scopeImage = t.scopeImage), n ? this._reportError(o, `'${e.image}' is not a valid reference — a row needs a column (use ${e.image}:${e.image} for the whole row)`) : r && e.image.includes("$") ? this._reportError(o, `'${e.image}' is not a valid reference — a whole column can only pair with another column (as in ${e.image}:${e.image})`) : c && this._reportError(o, `'${e.image}' is a name — '${s}' needs a cell or range on both sides`), o;
|
|
5154
5154
|
}
|
|
5155
5155
|
}
|
|
5156
5156
|
return e;
|
|
@@ -5211,7 +5211,7 @@ var ai = {
|
|
|
5211
5211
|
_bindAllWhitespace(e) {
|
|
5212
5212
|
if (e) {
|
|
5213
5213
|
if (this._bindNodeWhitespace(e), e.inputs) for (const t of e.inputs) t && this._bindAllWhitespace(t);
|
|
5214
|
-
if (e.type ===
|
|
5214
|
+
if (e.type === L.Array && Array.isArray(e.value)) {
|
|
5215
5215
|
for (const t of e.value) if (t && Array.isArray(t.value)) for (const e of t.value) e && this._bindAllWhitespace(e);
|
|
5216
5216
|
}
|
|
5217
5217
|
}
|